@wordpress/block-library 9.25.0 → 9.26.1-next.719a03cbe.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 (179) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/avatar/edit.js +84 -39
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/avatar/user-control.js +32 -17
  5. package/build/avatar/user-control.js.map +1 -1
  6. package/build/button/edit.js +1 -1
  7. package/build/button/edit.js.map +1 -1
  8. package/build/cover/edit/inspector-controls.js +2 -2
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/details/index.js +1 -1
  11. package/build/details/index.js.map +1 -1
  12. package/build/embed/variations.js +0 -10
  13. package/build/embed/variations.js.map +1 -1
  14. package/build/form/edit.js +0 -1
  15. package/build/form/edit.js.map +1 -1
  16. package/build/form/index.js +3 -3
  17. package/build/form/index.js.map +1 -1
  18. package/build/form-input/index.js +2 -1
  19. package/build/form-input/index.js.map +1 -1
  20. package/build/form-submission-notification/index.js +2 -1
  21. package/build/form-submission-notification/index.js.map +1 -1
  22. package/build/form-submit-button/index.js +2 -1
  23. package/build/form-submit-button/index.js.map +1 -1
  24. package/build/gallery/constants.js +2 -1
  25. package/build/gallery/constants.js.map +1 -1
  26. package/build/gallery/edit.js +93 -15
  27. package/build/gallery/edit.js.map +1 -1
  28. package/build/image/edit.js +6 -0
  29. package/build/image/edit.js.map +1 -1
  30. package/build/image/image.js +1 -0
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/view.js +0 -3
  33. package/build/image/view.js.map +1 -1
  34. package/build/list/index.js +0 -1
  35. package/build/list/index.js.map +1 -1
  36. package/build/more/edit.native.js +17 -32
  37. package/build/more/edit.native.js.map +1 -1
  38. package/build/navigation-link/edit.js +28 -1
  39. package/build/navigation-link/edit.js.map +1 -1
  40. package/build/post-author/edit.js +152 -52
  41. package/build/post-author/edit.js.map +1 -1
  42. package/build/post-comments-form/form.js +1 -1
  43. package/build/post-comments-form/form.js.map +1 -1
  44. package/build/post-featured-image/edit.js +2 -1
  45. package/build/post-featured-image/edit.js.map +1 -1
  46. package/build/post-navigation-link/edit.js +72 -33
  47. package/build/post-navigation-link/edit.js.map +1 -1
  48. package/build/search/edit.js +1 -1
  49. package/build/search/edit.js.map +1 -1
  50. package/build/site-logo/edit.js +69 -24
  51. package/build/site-logo/edit.js.map +1 -1
  52. package/build/social-link/edit.js +21 -5
  53. package/build/social-link/edit.js.map +1 -1
  54. package/build/social-link/edit.native.js +13 -5
  55. package/build/social-link/edit.native.js.map +1 -1
  56. package/build/social-link/social-list.js +17 -25
  57. package/build/social-link/social-list.js.map +1 -1
  58. package/build/social-links/edit.js +8 -5
  59. package/build/social-links/edit.js.map +1 -1
  60. package/build/video/tracks-editor.js +23 -9
  61. package/build/video/tracks-editor.js.map +1 -1
  62. package/build-module/avatar/edit.js +83 -38
  63. package/build-module/avatar/edit.js.map +1 -1
  64. package/build-module/avatar/user-control.js +33 -18
  65. package/build-module/avatar/user-control.js.map +1 -1
  66. package/build-module/button/edit.js +1 -1
  67. package/build-module/button/edit.js.map +1 -1
  68. package/build-module/cover/edit/inspector-controls.js +2 -2
  69. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  70. package/build-module/details/index.js +1 -1
  71. package/build-module/details/index.js.map +1 -1
  72. package/build-module/embed/variations.js +0 -10
  73. package/build-module/embed/variations.js.map +1 -1
  74. package/build-module/form/edit.js +0 -1
  75. package/build-module/form/edit.js.map +1 -1
  76. package/build-module/form/index.js +3 -3
  77. package/build-module/form/index.js.map +1 -1
  78. package/build-module/form-input/index.js +2 -1
  79. package/build-module/form-input/index.js.map +1 -1
  80. package/build-module/form-submission-notification/index.js +2 -1
  81. package/build-module/form-submission-notification/index.js.map +1 -1
  82. package/build-module/form-submit-button/index.js +2 -1
  83. package/build-module/form-submit-button/index.js.map +1 -1
  84. package/build-module/gallery/constants.js +1 -0
  85. package/build-module/gallery/constants.js.map +1 -1
  86. package/build-module/gallery/edit.js +95 -17
  87. package/build-module/gallery/edit.js.map +1 -1
  88. package/build-module/image/edit.js +6 -0
  89. package/build-module/image/edit.js.map +1 -1
  90. package/build-module/image/image.js +1 -0
  91. package/build-module/image/image.js.map +1 -1
  92. package/build-module/image/view.js +0 -3
  93. package/build-module/image/view.js.map +1 -1
  94. package/build-module/list/index.js +0 -1
  95. package/build-module/list/index.js.map +1 -1
  96. package/build-module/more/edit.native.js +16 -30
  97. package/build-module/more/edit.native.js.map +1 -1
  98. package/build-module/navigation-link/edit.js +29 -2
  99. package/build-module/navigation-link/edit.js.map +1 -1
  100. package/build-module/post-author/edit.js +153 -53
  101. package/build-module/post-author/edit.js.map +1 -1
  102. package/build-module/post-comments-form/form.js +1 -1
  103. package/build-module/post-comments-form/form.js.map +1 -1
  104. package/build-module/post-featured-image/edit.js +2 -1
  105. package/build-module/post-featured-image/edit.js.map +1 -1
  106. package/build-module/post-navigation-link/edit.js +73 -34
  107. package/build-module/post-navigation-link/edit.js.map +1 -1
  108. package/build-module/search/edit.js +1 -1
  109. package/build-module/search/edit.js.map +1 -1
  110. package/build-module/site-logo/edit.js +70 -25
  111. package/build-module/site-logo/edit.js.map +1 -1
  112. package/build-module/social-link/edit.js +24 -8
  113. package/build-module/social-link/edit.js.map +1 -1
  114. package/build-module/social-link/edit.native.js +15 -6
  115. package/build-module/social-link/edit.native.js.map +1 -1
  116. package/build-module/social-link/social-list.js +16 -21
  117. package/build-module/social-link/social-list.js.map +1 -1
  118. package/build-module/social-links/edit.js +8 -5
  119. package/build-module/social-links/edit.js.map +1 -1
  120. package/build-module/video/tracks-editor.js +24 -10
  121. package/build-module/video/tracks-editor.js.map +1 -1
  122. package/build-style/calendar/style-rtl.css +7 -7
  123. package/build-style/calendar/style.css +7 -7
  124. package/build-style/comments-pagination/editor-rtl.css +0 -12
  125. package/build-style/comments-pagination/editor.css +0 -14
  126. package/build-style/comments-pagination/style-rtl.css +0 -7
  127. package/build-style/comments-pagination/style.css +0 -9
  128. package/build-style/editor-rtl.css +0 -30
  129. package/build-style/editor.css +0 -32
  130. package/build-style/gallery/editor-rtl.css +0 -13
  131. package/build-style/gallery/editor.css +0 -13
  132. package/build-style/navigation/style-rtl.css +5 -0
  133. package/build-style/navigation/style.css +5 -0
  134. package/build-style/style-rtl.css +12 -14
  135. package/build-style/style.css +12 -16
  136. package/package.json +35 -35
  137. package/src/avatar/edit.js +99 -51
  138. package/src/avatar/user-control.js +34 -29
  139. package/src/button/edit.js +1 -1
  140. package/src/calendar/style.scss +10 -10
  141. package/src/comments-pagination/editor.scss +0 -15
  142. package/src/comments-pagination/style.scss +0 -8
  143. package/src/cover/edit/inspector-controls.js +1 -1
  144. package/src/details/index.js +1 -1
  145. package/src/editor.scss +0 -1
  146. package/src/embed/variations.js +0 -8
  147. package/src/form/block.json +1 -2
  148. package/src/form/edit.js +0 -1
  149. package/src/form/index.js +1 -0
  150. package/src/form-input/index.js +1 -0
  151. package/src/form-submission-notification/index.js +1 -0
  152. package/src/form-submit-button/index.js +1 -0
  153. package/src/gallery/constants.js +1 -0
  154. package/src/gallery/edit.js +182 -68
  155. package/src/gallery/editor.scss +0 -17
  156. package/src/image/edit.js +12 -0
  157. package/src/image/image.js +1 -0
  158. package/src/image/index.php +4 -1
  159. package/src/image/view.js +0 -3
  160. package/src/list/block.json +0 -1
  161. package/src/more/edit.native.js +19 -33
  162. package/src/navigation/style.scss +9 -0
  163. package/src/navigation-link/edit.js +32 -2
  164. package/src/post-author/edit.js +178 -63
  165. package/src/post-comments-form/form.js +1 -1
  166. package/src/post-featured-image/edit.js +1 -0
  167. package/src/post-navigation-link/edit.js +96 -51
  168. package/src/rss/index.php +2 -1
  169. package/src/search/edit.js +1 -1
  170. package/src/site-logo/edit.js +90 -35
  171. package/src/social-link/edit.js +18 -7
  172. package/src/social-link/edit.native.js +10 -4
  173. package/src/social-link/index.php +13 -0
  174. package/src/social-link/social-list.js +15 -20
  175. package/src/social-links/edit.js +6 -7
  176. package/src/video/tracks-editor.js +18 -6
  177. package/build-style/post-author/editor-rtl.css +0 -140
  178. package/build-style/post-author/editor.css +0 -140
  179. package/src/post-author/editor.scss +0 -7
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","isBlobURL","createInterpolateElement","useEffect","useState","__","isRTL","PanelBody","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","DropZone","FlexItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","useSelect","useDispatch","coreStore","crop","upload","noticesStore","MIN_SIZE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","children","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","id","url","onSaveImage","imageAttributes","onFinishEditing","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","shouldUseNewUrl","window","__experimentalUseCustomizerSiteLogoUrl","siteIconSettingsUrl","syncSiteIconHelpText","a","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newWidth","min","max","initialPosition","value","disabled","checked","undefined","help","group","icon","SiteLogoReplaceFlow","mediaURL","mediaReplaceProps","allowedTypes","accept","InspectorLogoPreview","media","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","as","justify","numberOfLines","LogoEdit","siteLogoId","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","kind","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","temporaryURL","setTemporaryURL","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","multiple","mediaReplaceFlowProps","onSelect","onReset","controls","logoImage","isLoading","placeholder","content","placeholderClassName","preview","withIllustration","classes","blockProps","mediaInspectorPanel","isBordered","renderToggle","props","mediaLibraryButton","open","variant","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.maxWidth,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<>\n\t\t\t<img\n\t\t\t\tclassName=\"custom-logo\"\n\t\t\t\tsrc={ logoUrl }\n\t\t\t\talt={ alt }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetNaturalSize( {\n\t\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isBlobURL( logoUrl ) && <Spinner /> }\n\t\t</>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName=\"custom-logo-link\"\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tif ( ! isResizable || ! naturalWidth || ! naturalHeight ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={ siteIconSettingsUrl }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { mediaURL, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tmediaURL={ mediaURL }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t/>\n\t);\n}\n\nconst InspectorLogoPreview = ( { media, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = media ?? {};\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t!! _siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetTemporaryURL( media.url );\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetTemporaryURL( image.url );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tname: ! logoUrl ? __( 'Choose logo' ) : __( 'Replace' ),\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonReset: onRemoveLogo,\n\t};\n\tconst controls = canUserEdit && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\n\t// Reset temporary url when logoUrl is available.\n\tuseEffect( () => {\n\t\tif ( logoUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ logoUrl, temporaryURL ] );\n\n\tif ( !! logoUrl || !! temporaryURL ) {\n\t\tlogoImage = (\n\t\t\t<>\n\t\t\t\t<SiteLogo\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tlogoUrl={ temporaryURL || logoUrl }\n\t\t\t\t\tsetLogo={ setLogo }\n\t\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\t\tsiteUrl={ url }\n\t\t\t\t\tsetIcon={ setIcon }\n\t\t\t\t\ticonId={ siteIconId }\n\t\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t\t/>\n\t\t\t\t{ canUserEdit && <DropZone onFilesDrop={ onFilesDrop } /> }\n\t\t\t</>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-default-size': ! width,\n\t\t'is-transient': temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t{ ! canUserEdit ? (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t\t!! logoUrl ? (\n\t\t\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t__( 'Choose logo' )\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\trenderToggle={ ( props ) => (\n\t\t\t\t\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t\t\t\t\t{ temporaryURL ? (\n\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\tprops.children\n\t\t\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) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ ( !! logoUrl || !! temporaryURL ) && logoImage }\n\t\t\t{ ( isLoading ||\n\t\t\t\t( ! temporaryURL && ! logoUrl && ! canUserEdit ) ) && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\" withIllustration>\n\t\t\t\t\t{ isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isLoading && ! temporaryURL && ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\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\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Choose logo' ) }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"middle right\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","isBlobURL","createInterpolateElement","useEffect","useState","__","isRTL","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","DropZone","FlexItem","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","__experimentalHStack","HStack","__experimentalTruncate","Truncate","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","useSelect","useDispatch","coreStore","crop","upload","noticesStore","MIN_SIZE","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","isLargeViewport","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","dropdownMenuProps","imageEditing","maxWidth","title","select","settings","getSettings","siteEntities","getEntityRecord","name","onResizeStart","onResizeStop","img","children","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","id","url","onSaveImage","imageAttributes","onFinishEditing","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","shouldUseNewUrl","window","__experimentalUseCustomizerSiteLogoUrl","siteIconSettingsUrl","syncSiteIconHelpText","a","label","isShownByDefault","hasValue","onDeselect","undefined","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","newWidth","min","max","initialPosition","value","disabled","checked","help","group","icon","SiteLogoReplaceFlow","mediaURL","mediaReplaceProps","allowedTypes","accept","InspectorLogoPreview","media","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","as","justify","numberOfLines","LogoEdit","siteLogoId","siteIconId","mediaItemData","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","kind","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","temporaryURL","setTemporaryURL","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","onSelectLogo","onRemoveLogo","createErrorNotice","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","multiple","mediaReplaceFlowProps","onSelect","onReset","controls","logoImage","isLoading","placeholder","content","placeholderClassName","preview","withIllustration","classes","blockProps","mediaInspectorPanel","gridColumn","isBordered","renderToggle","props","mediaLibraryButton","open","variant","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { MIN_SIZE } from '../image/constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.maxWidth,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<>\n\t\t\t<img\n\t\t\t\tclassName=\"custom-logo\"\n\t\t\t\tsrc={ logoUrl }\n\t\t\t\talt={ alt }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetNaturalSize( {\n\t\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isBlobURL( logoUrl ) && <Spinner /> }\n\t\t</>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName=\"custom-logo-link\"\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tif ( ! isResizable || ! naturalWidth || ! naturalHeight ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={ siteIconSettingsUrl }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! width }\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget === '_blank' }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! shouldSyncIcon }\n\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t\t\t\t\t\t\tsetIcon( undefined );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { mediaURL, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tmediaURL={ mediaURL }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t/>\n\t);\n}\n\nconst InspectorLogoPreview = ( { media, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = media ?? {};\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t!! _siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetTemporaryURL( media.url );\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetTemporaryURL( image.url );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tname: ! logoUrl ? __( 'Choose logo' ) : __( 'Replace' ),\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonReset: onRemoveLogo,\n\t};\n\tconst controls = canUserEdit && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\n\t// Reset temporary url when logoUrl is available.\n\tuseEffect( () => {\n\t\tif ( logoUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ logoUrl, temporaryURL ] );\n\n\tif ( !! logoUrl || !! temporaryURL ) {\n\t\tlogoImage = (\n\t\t\t<>\n\t\t\t\t<SiteLogo\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tlogoUrl={ temporaryURL || logoUrl }\n\t\t\t\t\tsetLogo={ setLogo }\n\t\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\t\tsiteUrl={ url }\n\t\t\t\t\tsetIcon={ setIcon }\n\t\t\t\t\ticonId={ siteIconId }\n\t\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t\t/>\n\t\t\t\t{ canUserEdit && <DropZone onFilesDrop={ onFilesDrop } /> }\n\t\t\t</>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-default-size': ! width,\n\t\t'is-transient': temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Media' ) }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ ! canUserEdit ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-container\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1 / -1' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! logoUrl }\n\t\t\t\t\t\tlabel={ __( 'Logo' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t\t!! logoUrl ? (\n\t\t\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\t\t\tmedia={ mediaItemData }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t__( 'Choose logo' )\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\trenderToggle={ ( props ) => (\n\t\t\t\t\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t\t\t\t\t{ temporaryURL ? (\n\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\tprops.children\n\t\t\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) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ ( !! logoUrl || !! temporaryURL ) && logoImage }\n\t\t\t{ ( isLoading ||\n\t\t\t\t( ! temporaryURL && ! logoUrl && ! canUserEdit ) ) && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\" withIllustration>\n\t\t\t\t\t{ isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isLoading && ! temporaryURL && ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\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\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Choose logo' ) }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"middle right\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SACCC,wBAAwB,EACxBC,SAAS,EACTC,QAAQ,QACF,oBAAoB;AAC3B,SAASC,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SACCC,YAAY,EACZC,YAAY,EACZC,OAAO,EACPC,aAAa,EACbC,aAAa,EACbC,WAAW,EACXC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACRC,wBAAwB,IAAIC,UAAU,EACtCC,4BAA4B,IAAIC,cAAc,EAC9CC,uBAAuB,IAAIC,SAAS,EACpCC,oBAAoB,IAAIC,MAAM,EAC9BC,sBAAsB,IAAIC,QAAQ,QAC5B,uBAAuB;AAC9B,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SACCC,aAAa,EACbC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,EACzBC,yBAAyB,IAAIC,WAAW,QAClC,yBAAyB;AAChC,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASL,KAAK,IAAIM,SAAS,QAAQ,sBAAsB;AACzD,SAASC,IAAI,EAAEC,MAAM,QAAQ,kBAAkB;AAC/C,SAASR,KAAK,IAAIS,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,8BAA8B,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhE,MAAMC,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,mBAAmB,GAAG,SAAS;AAErC,MAAMC,QAAQ,GAAGA,CAAE;EAClBC,GAAG;EACHC,UAAU,EAAE;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAe,CAAC;EACxEC,UAAU;EACVC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC;AACD,CAAC,KAAM;EACN,MAAMC,eAAe,GAAG5C,gBAAgB,CAAE,QAAS,CAAC;EACpD,MAAM6C,aAAa,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,CAACC,QAAQ,CAAEjB,KAAM,CAAC;EAC1D,MAAMkB,WAAW,GAAG,CAAEF,aAAa,IAAID,eAAe;EACtD,MAAM,CAAE;IAAEI,YAAY;IAAEC;EAAc,CAAC,EAAEC,cAAc,CAAE,GAAGxE,QAAQ,CAAE,CAAC,CAAE,CAAC;EAC1E,MAAM,CAAEyE,cAAc,EAAEC,iBAAiB,CAAE,GAAG1E,QAAQ,CAAE,KAAM,CAAC;EAC/D,MAAM;IAAE2E;EAAgB,CAAC,GAAG1C,WAAW,CAAEJ,gBAAiB,CAAC;EAC3D,MAAM+C,iBAAiB,GAAGrC,8BAA8B,CAAC,CAAC;EAC1D,MAAM;IAAEsC,YAAY;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAG/C,SAAS,CAAIgD,MAAM,IAAM;IAClE,MAAMC,QAAQ,GAAGD,MAAM,CAAEnD,gBAAiB,CAAC,CAACqD,WAAW,CAAC,CAAC;IACzD,MAAMC,YAAY,GAAGH,MAAM,CAAE9C,SAAU,CAAC,CAACkD,eAAe,CACvD,MAAM,EACN,gBACD,CAAC;IACD,OAAO;MACNL,KAAK,EAAEI,YAAY,EAAEE,IAAI;MACzBR,YAAY,EAAEI,QAAQ,CAACJ,YAAY;MACnCC,QAAQ,EAAEG,QAAQ,CAACH;IACpB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP/E,SAAS,CAAE,MAAM;IAChB;IACA;IACA;IACA,IAAKyD,cAAc,IAAIM,MAAM,KAAKC,MAAM,EAAG;MAC1CL,aAAa,CAAE;QAAEF,cAAc,EAAE;MAAM,CAAE,CAAC;IAC3C;EACD,CAAC,EAAE,EAAG,CAAC;EAEPzD,SAAS,CAAE,MAAM;IAChB,IAAK,CAAE0D,UAAU,EAAG;MACnBiB,iBAAiB,CAAE,KAAM,CAAC;IAC3B;EACD,CAAC,EAAE,CAAEjB,UAAU,CAAG,CAAC;EAEnB,SAAS6B,aAAaA,CAAA,EAAG;IACxBX,eAAe,CAAE,KAAM,CAAC;EACzB;EAEA,SAASY,YAAYA,CAAA,EAAG;IACvBZ,eAAe,CAAE,IAAK,CAAC;EACxB;EAEA,MAAMa,GAAG,gBACR3C,KAAA,CAAAF,SAAA;IAAA8C,QAAA,gBACChD,IAAA;MACCiD,SAAS,EAAC,aAAa;MACvBC,GAAG,EAAG/B,OAAS;MACfX,GAAG,EAAGA,GAAK;MACX2C,MAAM,EAAKC,KAAK,IAAM;QACrBrB,cAAc,CAAE;UACfF,YAAY,EAAEuB,KAAK,CAACC,MAAM,CAACxB,YAAY;UACvCC,aAAa,EAAEsB,KAAK,CAACC,MAAM,CAACvB;QAC7B,CAAE,CAAC;MACJ;IAAG,CACH,CAAC,EACA1E,SAAS,CAAE+D,OAAQ,CAAC,iBAAInB,IAAA,CAACpC,OAAO,IAAE,CAAC;EAAA,CACpC,CACF;EAED,IAAI0F,UAAU,GAAGP,GAAG;;EAEpB;EACA;EACA,IAAKlC,MAAM,EAAG;IACbyC,UAAU;IAAA;IACT;IACAtD,IAAA;MACCuD,IAAI,EAAGnC,OAAS;MAChB6B,SAAS,EAAC,kBAAkB;MAC5BO,GAAG,EAAC,MAAM;MACVlB,KAAK,EAAGA,KAAO;MACfmB,OAAO,EAAKL,KAAK,IAAMA,KAAK,CAACM,cAAc,CAAC,CAAG;MAAAV,QAAA,EAE7CD;IAAG,CACH;IACH,0GACA;EACF;EAEA,IAAK,CAAEnB,WAAW,IAAI,CAAEC,YAAY,IAAI,CAAEC,aAAa,EAAG;IACzD,oBAAO9B,IAAA;MAAK2D,KAAK,EAAG;QAAEhD,KAAK;QAAEC;MAAO,CAAG;MAAAoC,QAAA,EAAGM;IAAU,CAAO,CAAC;EAC7D;;EAEA;EACA;EACA,MAAMM,YAAY,GAAG,GAAG;EAExB,MAAMC,YAAY,GAAGlD,KAAK,IAAIiD,YAAY;EAC1C,MAAME,KAAK,GAAGjC,YAAY,GAAGC,aAAa;EAC1C,MAAMiC,aAAa,GAAGF,YAAY,GAAGC,KAAK;EAC1C,MAAME,QAAQ,GACbnC,YAAY,GAAGC,aAAa,GAAGjC,QAAQ,GAAGoE,IAAI,CAACC,IAAI,CAAErE,QAAQ,GAAGiE,KAAM,CAAC;EACxE,MAAMK,SAAS,GACdrC,aAAa,GAAGD,YAAY,GAAGhC,QAAQ,GAAGoE,IAAI,CAACC,IAAI,CAAErE,QAAQ,GAAGiE,KAAM,CAAC;;EAExE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMM,cAAc,GAAG/B,QAAQ,GAAG,GAAG;EAErC,IAAIgC,eAAe,GAAG,KAAK;EAC3B,IAAIC,cAAc,GAAG,KAAK;;EAE1B;EACA;EACA,IAAK5D,KAAK,KAAK,QAAQ,EAAG;IACzB;IACA2D,eAAe,GAAG,IAAI;IACtBC,cAAc,GAAG,IAAI;EACtB,CAAC,MAAM,IAAK7G,KAAK,CAAC,CAAC,EAAG;IACrB;IACA;IACA;IACA,IAAKiD,KAAK,KAAK,MAAM,EAAG;MACvB2D,eAAe,GAAG,IAAI;IACvB,CAAC,MAAM;MACNC,cAAc,GAAG,IAAI;IACtB;EACD,CAAC,MAAM;IACN;IACA;IACA,IAAK5D,KAAK,KAAK,OAAO,EAAG;MACxB4D,cAAc,GAAG,IAAI;IACtB,CAAC,MAAM;MACND,eAAe,GAAG,IAAI;IACvB;EACD;EACA;;EAEA,MAAME,YAAY,GACjBlD,MAAM,IAAIQ,YAAY,IAAIC,aAAa,IAAIM,YAAY;EAExD,MAAMoC,OAAO,GACZD,YAAY,IAAIvC,cAAc,gBAC7BhC,IAAA,CAACV,WAAW;IACXmF,EAAE,EAAGpD,MAAQ;IACbqD,GAAG,EAAGvD,OAAS;IACfR,KAAK,EAAGkD,YAAc;IACtBjD,MAAM,EAAGmD,aAAe;IACxBjC,aAAa,EAAGA,aAAe;IAC/BD,YAAY,EAAGA,YAAc;IAC7B8C,WAAW,EAAKC,eAAe,IAAM;MACpC1D,OAAO,CAAE0D,eAAe,CAACH,EAAG,CAAC;IAC9B,CAAG;IACHI,eAAe,EAAGA,CAAA,KAAM;MACvB5C,iBAAiB,CAAE,KAAM,CAAC;IAC3B;EAAG,CACH,CAAC,gBAEFjC,IAAA,CAACrC,YAAY;IACZmH,IAAI,EAAG;MACNnE,KAAK,EAAEkD,YAAY;MACnBjD,MAAM,EAAEmD;IACT,CAAG;IACHgB,UAAU,EAAG/D,UAAY;IACzBgD,QAAQ,EAAGA,QAAU;IACrB3B,QAAQ,EAAG+B,cAAgB;IAC3BD,SAAS,EAAGA,SAAW;IACvBa,SAAS,EAAGZ,cAAc,GAAGN,KAAO;IACpCmB,eAAe;IACfC,MAAM,EAAG;MACRC,GAAG,EAAE,KAAK;MACVC,KAAK,EAAEf,eAAe;MACtBgB,MAAM,EAAE,IAAI;MACZC,IAAI,EAAEhB;IACP,CAAG;IACHzB,aAAa,EAAGA,aAAe;IAC/BC,YAAY,EAAGA,CAAEM,KAAK,EAAEmC,SAAS,EAAEC,GAAG,EAAEC,KAAK,KAAM;MAClD3C,YAAY,CAAC,CAAC;MACd7B,aAAa,CAAE;QACdN,KAAK,EAAE+E,QAAQ,CAAE7B,YAAY,GAAG4B,KAAK,CAAC9E,KAAK,EAAE,EAAG,CAAC;QACjDC,MAAM,EAAE8E,QAAQ,CAAE3B,aAAa,GAAG0B,KAAK,CAAC7E,MAAM,EAAE,EAAG;MACpD,CAAE,CAAC;IACJ,CAAG;IAAAoC,QAAA,EAEDM;EAAU,CACC,CACd;;EAEF;EACA;EACA,MAAMqC,eAAe,GAAG,CAAEC,MAAM,EAAEC,sCAAsC;EAExE,MAAMC,mBAAmB,GAAGH,eAAe,GACxCvE,OAAO,GAAG,+BAA+B,GACzCA,OAAO,GAAG,0DAA0D;EAEvE,MAAM2E,oBAAoB,GAAG1I,wBAAwB,CACpDG,EAAE,CACD,kMACD,CAAC,EACD;IACCwI,CAAC;IAAA;IACA;IACAhG,IAAA;MACCuD,IAAI,EAAGuC,mBAAqB;MAC5BzC,MAAM,EAAC,QAAQ;MACfG,GAAG,EAAC;IAAqB,CACzB;EAEH,CACD,CAAC;EAED,oBACCpD,KAAA,CAAAF,SAAA;IAAA8C,QAAA,gBACChD,IAAA,CAACjB,iBAAiB;MAAAiE,QAAA,eACjB5C,KAAA,CAAChC,UAAU;QACV6H,KAAK,EAAGzI,EAAE,CAAE,UAAW,CAAG;QAC1B2E,iBAAiB,EAAGA,iBAAmB;QAAAa,QAAA,gBAEvChD,IAAA,CAAC1B,cAAc;UACd4H,gBAAgB;UAChBC,QAAQ,EAAGA,CAAA,KAAM,CAAC,CAAExF,KAAO;UAC3BsF,KAAK,EAAGzI,EAAE,CAAE,aAAc,CAAG;UAC7B4I,UAAU,EAAGA,CAAA,KACZnF,aAAa,CAAE;YAAEN,KAAK,EAAE0F;UAAU,CAAE,CACpC;UAAArD,QAAA,eAEDhD,IAAA,CAACtC,YAAY;YACZ4I,uBAAuB;YACvBC,qBAAqB;YACrBN,KAAK,EAAGzI,EAAE,CAAE,aAAc,CAAG;YAC7BgJ,QAAQ,EAAKC,QAAQ,IACpBxF,aAAa,CAAE;cAAEN,KAAK,EAAE8F;YAAS,CAAE,CACnC;YACDC,GAAG,EAAG1C,QAAU;YAChB2C,GAAG,EAAGvC,cAAgB;YACtBwC,eAAe,EAAG3C,IAAI,CAACyC,GAAG,CACzB9C,YAAY,EACZQ,cACD,CAAG;YACHyC,KAAK,EAAGlG,KAAK,IAAI,EAAI;YACrBmG,QAAQ,EAAG,CAAElF;UAAa,CAC1B;QAAC,CACa,CAAC,eAEjB5B,IAAA,CAAC1B,cAAc;UACd4H,gBAAgB;UAChBC,QAAQ,EAAGA,CAAA,KAAM,CAAEtF,MAAQ;UAC3BoF,KAAK,EAAGzI,EAAE,CAAE,oBAAqB,CAAG;UACpC4I,UAAU,EAAGA,CAAA,KAAMnF,aAAa,CAAE;YAAEJ,MAAM,EAAE;UAAK,CAAE,CAAG;UAAAmC,QAAA,eAEtDhD,IAAA,CAACnC,aAAa;YACbyI,uBAAuB;YACvBL,KAAK,EAAGzI,EAAE,CAAE,oBAAqB,CAAG;YACpCgJ,QAAQ,EAAGA,CAAA,KACVvF,aAAa,CAAE;cAAEJ,MAAM,EAAE,CAAEA;YAAO,CAAE,CACpC;YACDkG,OAAO,EAAGlG;UAAQ,CAClB;QAAC,CACa,CAAC,EAEfA,MAAM,iBACPb,IAAA,CAAC1B,cAAc;UACd4H,gBAAgB;UAChBC,QAAQ,EAAGA,CAAA,KAAMrF,UAAU,KAAK,QAAU;UAC1CmF,KAAK,EAAGzI,EAAE,CAAE,iBAAkB,CAAG;UACjC4I,UAAU,EAAGA,CAAA,KACZnF,aAAa,CAAE;YAAEH,UAAU,EAAE;UAAQ,CAAE,CACvC;UAAAkC,QAAA,eAEDhD,IAAA,CAACnC,aAAa;YACbyI,uBAAuB;YACvBL,KAAK,EAAGzI,EAAE,CAAE,iBAAkB,CAAG;YACjCgJ,QAAQ,EAAKK,KAAK,IACjB5F,aAAa,CAAE;cACdH,UAAU,EAAE+F,KAAK,GAAG,QAAQ,GAAG;YAChC,CAAE,CACF;YACDE,OAAO,EAAGjG,UAAU,KAAK;UAAU,CACnC;QAAC,CACa,CAChB,EAECU,WAAW,iBACZxB,IAAA,CAAC1B,cAAc;UACd4H,gBAAgB;UAChBC,QAAQ,EAAGA,CAAA,KAAM,CAAC,CAAEpF,cAAgB;UACpCkF,KAAK,EAAGzI,EAAE,CAAE,kBAAmB,CAAG;UAClC4I,UAAU,EAAGA,CAAA,KAAM;YAClBnF,aAAa,CAAE;cAAEF,cAAc,EAAE;YAAM,CAAE,CAAC;YAC1CQ,OAAO,CAAE8E,SAAU,CAAC;UACrB,CAAG;UAAArD,QAAA,eAEHhD,IAAA,CAACnC,aAAa;YACbyI,uBAAuB;YACvBL,KAAK,EAAGzI,EAAE,CAAE,kBAAmB,CAAG;YAClCgJ,QAAQ,EAAKK,KAAK,IAAM;cACvB5F,aAAa,CAAE;gBAAEF,cAAc,EAAE8F;cAAM,CAAE,CAAC;cAC1CtF,OAAO,CAAEsF,KAAK,GAAGxF,MAAM,GAAGgF,SAAU,CAAC;YACtC,CAAG;YACHU,OAAO,EAAG,CAAC,CAAEhG,cAAgB;YAC7BiG,IAAI,EAAGjB;UAAsB,CAC7B;QAAC,CACa,CAChB;MAAA,CACU;IAAC,CACK,CAAC,eACpB/F,IAAA,CAAClB,aAAa;MAACmI,KAAK,EAAC,OAAO;MAAAjE,QAAA,EACzBuB,YAAY,IAAI,CAAEvC,cAAc,iBACjChC,IAAA,CAAClC,aAAa;QACb2F,OAAO,EAAGA,CAAA,KAAMxB,iBAAiB,CAAE,IAAK,CAAG;QAC3CiF,IAAI,EAAGxH,IAAM;QACbuG,KAAK,EAAGzI,EAAE,CAAE,MAAO;MAAG,CACtB;IACD,CACa,CAAC,EACdgH,OAAO;EAAA,CACR,CAAC;AAEL,CAAC;;AAED;AACA;AACA,SAAS2C,mBAAmBA,CAAE;EAAEC,QAAQ;EAAE,GAAGC;AAAkB,CAAC,EAAG;EAClE,oBACCrH,IAAA,CAACf,gBAAgB;IAAA,GACXoI,iBAAiB;IACtBD,QAAQ,EAAGA,QAAU;IACrBE,YAAY,EAAGjH,mBAAqB;IACpCkH,MAAM,EAAGjH;EAAqB,CAC9B,CAAC;AAEJ;AAEA,MAAMkH,oBAAoB,GAAGA,CAAE;EAAEC,KAAK;EAAEC;AAAe,CAAC,KAAM;EAC7D,MAAM;IACLC,QAAQ,EAAEnH,GAAG;IACboH,UAAU,EAAEzG,OAAO;IACnB0G,IAAI,EAAEC,QAAQ;IACdC,aAAa,EAAEC;EAChB,CAAC,GAAGP,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CAAC,CAAC;EACf,MAAMQ,SAAS,GAAGD,gBAAgB,EAAEE,KAAK,EAAEC,IAAI,EAAEC,IAAI,IAAIN,QAAQ;EACjE,oBACC9H,IAAA,CAACxB,SAAS;IAAA,GAAMkJ,cAAc;IAAGW,EAAE,EAAC,MAAM;IAAArF,QAAA,eACzC5C,KAAA,CAAC1B,MAAM;MAAC4J,OAAO,EAAC,YAAY;MAACD,EAAE,EAAC,MAAM;MAAArF,QAAA,gBACrChD,IAAA;QAAKkD,GAAG,EAAG/B,OAAS;QAACX,GAAG,EAAGA;MAAK,CAAE,CAAC,eACnCR,IAAA,CAAC9B,QAAQ;QAACmK,EAAE,EAAC,MAAM;QAAArF,QAAA,eAClBhD,IAAA,CAACpB,QAAQ;UACR2J,aAAa,EAAG,CAAG;UACnBtF,SAAS,EAAC,wDAAwD;UAAAD,QAAA,EAEhEiF;QAAS,CACF;MAAC,CACF,CAAC;IAAA,CACJ;EAAC,CACC,CAAC;AAEd,CAAC;AAED,eAAe,SAASO,QAAQA,CAAE;EACjC/H,UAAU;EACVwC,SAAS;EACThC,aAAa;EACbD;AACD,CAAC,EAAG;EACH,MAAM;IAAEL,KAAK;IAAEI;EAAe,CAAC,GAAGN,UAAU;EAC5C,MAAM;IACLgI,UAAU;IACVjH,WAAW;IACXkD,GAAG;IACHgE,UAAU;IACVC,aAAa;IACbC;EACD,CAAC,GAAGrJ,SAAS,CAAIgD,MAAM,IAAM;IAC5B,MAAM;MAAEsG,OAAO;MAAElG,eAAe;MAAEmG;IAAsB,CAAC,GACxDvG,MAAM,CAAE9C,SAAU,CAAC;IACpB,MAAMsJ,YAAY,GAAGF,OAAO,CAAE,QAAQ,EAAE;MACvCG,IAAI,EAAE,MAAM;MACZpG,IAAI,EAAE;IACP,CAAE,CAAC;IACH,MAAMqG,YAAY,GAAGF,YAAY,GAC9BD,qBAAqB,CAAE,MAAM,EAAE,MAAO,CAAC,GACvCzC,SAAS;IACZ,MAAM6C,QAAQ,GAAGvG,eAAe,CAAE,MAAM,EAAE,gBAAiB,CAAC;IAC5D,MAAMwG,WAAW,GAAGJ,YAAY,GAC7BE,YAAY,EAAEG,SAAS,GACvBF,QAAQ,EAAEE,SAAS;IACtB,MAAMC,WAAW,GAAGJ,YAAY,EAAEK,SAAS;IAC3C,MAAMC,SAAS,GACdJ,WAAW,IACX5G,MAAM,CAAE9C,SAAU,CAAC,CAAC+J,QAAQ,CAAEL,WAAW,EAAE;MAC1CM,OAAO,EAAE;IACV,CAAE,CAAC;IACJ,MAAMC,sBAAsB,GAC3B,CAAC,CAAEP,WAAW,IACd,CAAE5G,MAAM,CAAE9C,SAAU,CAAC,CAACkK,qBAAqB,CAAE,UAAU,EAAE,CACxDR,WAAW,EACX;MAAEM,OAAO,EAAE;IAAO,CAAC,CAClB,CAAC;IAEJ,OAAO;MACNhB,UAAU,EAAEU,WAAW;MACvB3H,WAAW,EAAEuH,YAAY;MACzBrE,GAAG,EAAEwE,QAAQ,EAAEU,IAAI;MACnBjB,aAAa,EAAEY,SAAS;MACxBX,qBAAqB,EAAEc,sBAAsB;MAC7ChB,UAAU,EAAEW;IACb,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAE5G;EAAY,CAAC,GAAGlD,SAAS,CAAEH,gBAAiB,CAAC;EACrD,MAAM,CAAEyK,YAAY,EAAEC,eAAe,CAAE,GAAGvM,QAAQ,CAAC,CAAC;EACpD,MAAM4E,iBAAiB,GAAGrC,8BAA8B,CAAC,CAAC;EAE1D,MAAM;IAAEiK;EAAiB,CAAC,GAAGvK,WAAW,CAAEC,SAAU,CAAC;EAErD,MAAMyB,OAAO,GAAGA,CAAE8I,QAAQ,EAAEC,eAAe,GAAG,KAAK,KAAM;IACxD;IACA;IACA,IAAKlJ,cAAc,IAAIkJ,eAAe,EAAG;MACxC1I,OAAO,CAAEyI,QAAS,CAAC;IACpB;IAEAD,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAE1D,SAAS,EAAE;MAC5C+C,SAAS,EAAEY;IACZ,CAAE,CAAC;EACJ,CAAC;EAED,MAAMzI,OAAO,GAAKyI,QAAQ;EACzB;EACAD,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAE1D,SAAS,EAAE;IAC5CiD,SAAS,EAAEU,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EACxB,CAAE,CAAC;EAEJ,MAAM;IAAErC,QAAQ,EAAEnH,GAAG;IAAEoH,UAAU,EAAEzG;EAAQ,CAAC,GAAGwH,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAC;EAElE,MAAMuB,mBAAmB,GAAKzC,KAAK,IAAM;IACxC;IACA;IACA,IAAK1G,cAAc,KAAKsF,SAAS,EAAG;MACnC,MAAM4D,eAAe,GAAG,CAAEvB,UAAU;MACpCzH,aAAa,CAAE;QAAEF,cAAc,EAAEkJ;MAAgB,CAAE,CAAC;;MAEpD;MACA;MACAE,YAAY,CAAE1C,KAAK,EAAEwC,eAAgB,CAAC;MACtC;IACD;IAEAE,YAAY,CAAE1C,KAAM,CAAC;EACtB,CAAC;EAED,MAAM0C,YAAY,GAAGA,CAAE1C,KAAK,EAAEwC,eAAe,GAAG,KAAK,KAAM;IAC1D,IAAK,CAAExC,KAAK,EAAG;MACd;IACD;IAEA,IAAK,CAAEA,KAAK,CAAChD,EAAE,IAAIgD,KAAK,CAAC/C,GAAG,EAAG;MAC9B;MACAoF,eAAe,CAAErC,KAAK,CAAC/C,GAAI,CAAC;MAC5BxD,OAAO,CAAEmF,SAAU,CAAC;MACpB;IACD;IAEAnF,OAAO,CAAEuG,KAAK,CAAChD,EAAE,EAAEwF,eAAgB,CAAC;EACrC,CAAC;EAED,MAAMG,YAAY,GAAGA,CAAA,KAAM;IAC1BlJ,OAAO,CAAE,IAAK,CAAC;IACfD,aAAa,CAAE;MAAEN,KAAK,EAAE0F;IAAU,CAAE,CAAC;EACtC,CAAC;EAED,MAAM;IAAEgE;EAAkB,CAAC,GAAG7K,WAAW,CAAEI,YAAa,CAAC;EACzD,MAAM0K,aAAa,GAAKC,OAAO,IAAM;IACpCF,iBAAiB,CAAEE,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;IAClDV,eAAe,CAAC,CAAC;EAClB,CAAC;EAED,MAAMW,WAAW,GAAKC,SAAS,IAAM;IACpCjI,WAAW,CAAC,CAAC,CAACkI,WAAW,CAAE;MAC1BrD,YAAY,EAAEjH,mBAAmB;MACjCqK,SAAS;MACTE,YAAYA,CAAE,CAAEC,KAAK,CAAE,EAAG;QACzB,IAAKzN,SAAS,CAAEyN,KAAK,EAAEnG,GAAI,CAAC,EAAG;UAC9BoF,eAAe,CAAEe,KAAK,CAACnG,GAAI,CAAC;UAC5B;QACD;QACAwF,mBAAmB,CAAEW,KAAM,CAAC;MAC7B,CAAC;MACDC,OAAO,EAAER,aAAa;MACtBS,QAAQ,EAAE;IACX,CAAE,CAAC;EACJ,CAAC;EAED,MAAMC,qBAAqB,GAAG;IAC7B5D,QAAQ,EAAEjG,OAAO;IACjByB,IAAI,EAAE,CAAEzB,OAAO,GAAG3D,EAAE,CAAE,aAAc,CAAC,GAAGA,EAAE,CAAE,SAAU,CAAC;IACvDyN,QAAQ,EAAEd,YAAY;IACtBW,OAAO,EAAER,aAAa;IACtBY,OAAO,EAAEd;EACV,CAAC;EACD,MAAMe,QAAQ,GAAG3J,WAAW,iBAC3BxB,IAAA,CAAClB,aAAa;IAACmI,KAAK,EAAC,OAAO;IAAAjE,QAAA,eAC3BhD,IAAA,CAACmH,mBAAmB;MAAA,GAAM6D;IAAqB,CAAI;EAAC,CACtC,CACf;EAED,IAAII,SAAS;EACb,MAAMC,SAAS,GAAG5C,UAAU,KAAKpC,SAAS,IAAIuC,qBAAqB;EACnE,IAAKyC,SAAS,EAAG;IAChBD,SAAS,gBAAGpL,IAAA,CAACpC,OAAO,IAAE,CAAC;EACxB;;EAEA;EACAN,SAAS,CAAE,MAAM;IAChB,IAAK6D,OAAO,IAAI0I,YAAY,EAAG;MAC9BC,eAAe,CAAC,CAAC;IAClB;EACD,CAAC,EAAE,CAAE3I,OAAO,EAAE0I,YAAY,CAAG,CAAC;EAE9B,IAAK,CAAC,CAAE1I,OAAO,IAAI,CAAC,CAAE0I,YAAY,EAAG;IACpCuB,SAAS,gBACRhL,KAAA,CAAAF,SAAA;MAAA8C,QAAA,gBACChD,IAAA,CAACO,QAAQ;QACRC,GAAG,EAAGA,GAAK;QACXC,UAAU,EAAGA,UAAY;QACzBwC,SAAS,EAAGA,SAAW;QACvBjC,UAAU,EAAGA,UAAY;QACzBC,aAAa,EAAGA,aAAe;QAC/BE,OAAO,EAAG0I,YAAY,IAAI1I,OAAS;QACnCD,OAAO,EAAGA,OAAS;QACnBG,MAAM,EAAGsH,aAAa,EAAElE,EAAE,IAAIgE,UAAY;QAC1CrH,OAAO,EAAGsD,GAAK;QACfnD,OAAO,EAAGA,OAAS;QACnBD,MAAM,EAAGoH,UAAY;QACrBlH,WAAW,EAAGA;MAAa,CAC3B,CAAC,EACAA,WAAW,iBAAIxB,IAAA,CAAC/B,QAAQ;QAACwM,WAAW,EAAGA;MAAa,CAAE,CAAC;IAAA,CACxD,CACF;EACF;EACA,MAAMa,WAAW,GAAKC,OAAO,IAAM;IAClC,MAAMC,oBAAoB,GAAGrO,IAAI,CAChC,gCAAgC,EAChC8F,SACD,CAAC;IAED,oBACCjD,IAAA,CAACjC,WAAW;MACXkF,SAAS,EAAGuI,oBAAsB;MAClCC,OAAO,EAAGL,SAAW;MACrBM,gBAAgB;MAChB/H,KAAK,EAAG;QACPhD;MACD,CAAG;MAAAqC,QAAA,EAEDuI;IAAO,CACG,CAAC;EAEhB,CAAC;EAED,MAAMI,OAAO,GAAGxO,IAAI,CAAE8F,SAAS,EAAE;IAChC,iBAAiB,EAAE,CAAEtC,KAAK;IAC1B,cAAc,EAAEkJ;EACjB,CAAE,CAAC;EAEH,MAAM+B,UAAU,GAAG1M,aAAa,CAAE;IAAE+D,SAAS,EAAE0I;EAAQ,CAAE,CAAC;EAE1D,MAAME,mBAAmB,GAAG,CAAErK,WAAW,IAAIL,OAAO,kBACnDnB,IAAA,CAACjB,iBAAiB;IAAAiE,QAAA,eACjBhD,IAAA,CAAC5B,UAAU;MACV6H,KAAK,EAAGzI,EAAE,CAAE,OAAQ,CAAG;MACvB2E,iBAAiB,EAAGA,iBAAmB;MAAAa,QAAA,EAErC,CAAExB,WAAW,gBACdxB,IAAA;QACCiD,SAAS,EAAC,4DAA4D;QACtEU,KAAK,EAAG;UAAEmI,UAAU,EAAE;QAAS,CAAG;QAAA9I,QAAA,eAElChD,IAAA,CAACwH,oBAAoB;UACpBC,KAAK,EAAGkB,aAAe;UACvBjB,cAAc,EAAG;YAChBqE,UAAU,EAAE,IAAI;YAChB9I,SAAS,EACR;UACF;QAAG,CACH;MAAC,CACE,CAAC,gBAENjD,IAAA,CAAC1B,cAAc;QACd6H,QAAQ,EAAGA,CAAA,KAAM,CAAC,CAAEhF,OAAS;QAC7B8E,KAAK,EAAGzI,EAAE,CAAE,MAAO,CAAG;QACtB0I,gBAAgB;QAAAlD,QAAA,eAEhB5C,KAAA;UAAK6C,SAAS,EAAC,4DAA4D;UAAAD,QAAA,gBAC1EhD,IAAA,CAACmH,mBAAmB;YAAA,GACd6D,qBAAqB;YAC1BpI,IAAI,EACH,CAAC,CAAEzB,OAAO,gBACTnB,IAAA,CAACwH,oBAAoB;cACpBC,KAAK,EAAGkB;YAAe,CACvB,CAAC,GAEFnL,EAAE,CAAE,aAAc,CAEnB;YACDwO,YAAY,EAAKC,KAAK,iBACrBjM,IAAA,CAAChC,MAAM;cAAA,GAAMiO,KAAK;cAAG1F,qBAAqB;cAAAvD,QAAA,EACvC6G,YAAY,gBACb7J,IAAA,CAACpC,OAAO,IAAE,CAAC,GAEXqO,KAAK,CAACjJ;YACN,CACM;UACN,CACH,CAAC,eACFhD,IAAA,CAAC/B,QAAQ;YAACwM,WAAW,EAAGA;UAAa,CAAE,CAAC;QAAA,CACpC;MAAC,CACS;IAChB,CACU;EAAC,CACK,CACnB;EAED,oBACCrK,KAAA;IAAA,GAAUwL,UAAU;IAAA5I,QAAA,GACjBmI,QAAQ,EACRU,mBAAmB,EACnB,CAAE,CAAC,CAAE1K,OAAO,IAAI,CAAC,CAAE0I,YAAY,KAAMuB,SAAS,EAC9C,CAAEC,SAAS,IACV,CAAExB,YAAY,IAAI,CAAE1I,OAAO,IAAI,CAAEK,WAAa,kBAChDxB,IAAA,CAACjC,WAAW;MAACkF,SAAS,EAAC,uBAAuB;MAACyI,gBAAgB;MAAA1I,QAAA,EAC5DqI,SAAS,iBACVrL,IAAA;QAAMiD,SAAS,EAAC,iCAAiC;QAAAD,QAAA,eAChDhD,IAAA,CAACpC,OAAO,IAAE;MAAC,CACN;IACN,CACW,CACb,EACC,CAAEyN,SAAS,IAAI,CAAExB,YAAY,IAAI,CAAE1I,OAAO,IAAIK,WAAW,iBAC1DxB,IAAA,CAAChB,gBAAgB;MAChBiM,QAAQ,EAAGf,mBAAqB;MAChC3C,MAAM,EAAGjH,mBAAqB;MAC9BgH,YAAY,EAAGjH,mBAAqB;MACpCyK,OAAO,EAAGR,aAAe;MACzBgB,WAAW,EAAGA,WAAa;MAC3BY,kBAAkB,EAAGA,CAAE;QAAEC;MAAK,CAAC,KAAM;QACpC,oBACCnM,IAAA,CAAChC,MAAM;UACNuI,qBAAqB;UACrBW,IAAI,EAAGvH,MAAQ;UACfyM,OAAO,EAAC,SAAS;UACjBnG,KAAK,EAAGzI,EAAE,CAAE,aAAc,CAAG;UAC7B6O,WAAW;UACXC,eAAe,EAAC,cAAc;UAC9B7I,OAAO,EAAGA,CAAA,KAAM;YACf0I,IAAI,CAAC,CAAC;UACP;QAAG,CACH,CAAC;MAEJ;IAAG,CACH,CACD;EAAA,CACG,CAAC;AAER","ignoreList":[]}
@@ -7,18 +7,19 @@ import clsx from 'clsx';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';
10
- import { useDispatch } from '@wordpress/data';
10
+ import { useDispatch, useSelect } from '@wordpress/data';
11
11
  import { BlockControls, InspectorControls, URLPopover, URLInput, useBlockEditingMode, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
12
12
  import { useState, useRef } from '@wordpress/element';
13
- import { Button, Dropdown, TextControl, ToolbarButton, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper } from '@wordpress/components';
13
+ import { Icon, Button, Dropdown, TextControl, ToolbarButton, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper } from '@wordpress/components';
14
14
  import { useMergeRefs } from '@wordpress/compose';
15
15
  import { __ } from '@wordpress/i18n';
16
16
  import { keyboardReturn } from '@wordpress/icons';
17
+ import { store as blocksStore } from '@wordpress/blocks';
17
18
 
18
19
  /**
19
20
  * Internal dependencies
20
21
  */
21
- import { getIconBySite, getNameBySite } from './social-list';
22
+ import { getSocialService } from './social-list';
22
23
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
23
24
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
24
25
  const SocialLinkURLPopover = ({
@@ -81,7 +82,8 @@ const SocialLinkEdit = ({
81
82
  context,
82
83
  isSelected,
83
84
  setAttributes,
84
- clientId
85
+ clientId,
86
+ name
85
87
  }) => {
86
88
  const {
87
89
  url,
@@ -111,8 +113,20 @@ const SocialLinkEdit = ({
111
113
  // re-renders when the popover's anchor updates.
112
114
  const [popoverAnchor, setPopoverAnchor] = useState(null);
113
115
  const isContentOnlyMode = useBlockEditingMode() === 'contentOnly';
114
- const IconComponent = getIconBySite(service);
115
- const socialLinkName = getNameBySite(service);
116
+ const {
117
+ activeVariation
118
+ } = useSelect(select => {
119
+ const {
120
+ getActiveBlockVariation
121
+ } = select(blocksStore);
122
+ return {
123
+ activeVariation: getActiveBlockVariation(name, attributes)
124
+ };
125
+ }, [name, attributes]);
126
+ const {
127
+ icon,
128
+ label: socialLinkName
129
+ } = getSocialService(activeVariation);
116
130
  // The initial label (ie. the link text) is an empty string.
117
131
  // We want to prevent empty links so that the link text always fallbacks to
118
132
  // the social name, even when users enter and save an empty string or only
@@ -140,7 +154,7 @@ const SocialLinkEdit = ({
140
154
  group: "other",
141
155
  children: /*#__PURE__*/_jsx(Dropdown, {
142
156
  popoverProps: {
143
- position: 'bottom right'
157
+ placement: 'bottom-start'
144
158
  },
145
159
  renderToggle: ({
146
160
  isOpen,
@@ -217,7 +231,9 @@ const SocialLinkEdit = ({
217
231
  "aria-haspopup": "dialog",
218
232
  ...blockProps,
219
233
  role: "button",
220
- children: [/*#__PURE__*/_jsx(IconComponent, {}), /*#__PURE__*/_jsx("span", {
234
+ children: [/*#__PURE__*/_jsx(Icon, {
235
+ icon: icon
236
+ }), /*#__PURE__*/_jsx("span", {
221
237
  className: clsx('wp-block-social-link-label', {
222
238
  'screen-reader-text': !showLabels
223
239
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","DELETE","BACKSPACE","ENTER","useDispatch","BlockControls","InspectorControls","URLPopover","URLInput","useBlockEditingMode","useBlockProps","store","blockEditorStore","useState","useRef","Button","Dropdown","TextControl","ToolbarButton","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","useMergeRefs","__","keyboardReturn","getIconBySite","getNameBySite","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","anchor","onClose","focus","children","className","onSubmit","event","preventDefault","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","includes","keyCode","suffix","variant","icon","type","size","SocialLinkEdit","attributes","context","isSelected","service","rel","dropdownMenuProps","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","wrapperClasses","setPopoverAnchor","isContentOnlyMode","IconComponent","socialLinkName","socialLinkText","trim","ref","blockProps","onClick","group","popoverProps","position","renderToggle","isOpen","onToggle","renderContent","__next40pxDefaultSize","__nextHasNoMarginBottom","help","resetAll","undefined","isShownByDefault","hasValue","onDeselect","role","style","color","backgroundColor"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockEditingMode,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tDropdown,\n\tTextControl,\n\tToolbarButton,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\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\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\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 isContentOnlyMode = useBlockEditingMode() === 'contentOnly';\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ isContentOnlyMode && showLabels && (\n\t\t\t\t// Add an extra control to modify the label attribute when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit this attribute.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Text' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-social-link__toolbar_content_text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Provide a text label or use the default.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\thasValue={ () => !! label }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","DELETE","BACKSPACE","ENTER","useDispatch","useSelect","BlockControls","InspectorControls","URLPopover","URLInput","useBlockEditingMode","useBlockProps","store","blockEditorStore","useState","useRef","Icon","Button","Dropdown","TextControl","ToolbarButton","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","useMergeRefs","__","keyboardReturn","blocksStore","getSocialService","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","anchor","onClose","focus","children","className","onSubmit","event","preventDefault","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","includes","keyCode","suffix","variant","icon","type","size","SocialLinkEdit","attributes","context","isSelected","name","service","rel","dropdownMenuProps","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","wrapperClasses","setPopoverAnchor","isContentOnlyMode","activeVariation","select","getActiveBlockVariation","socialLinkName","socialLinkText","trim","ref","blockProps","onClick","group","popoverProps","placement","renderToggle","isOpen","onToggle","renderContent","__next40pxDefaultSize","__nextHasNoMarginBottom","help","resetAll","undefined","isShownByDefault","hasValue","onDeselect","role","style","color","backgroundColor"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockEditingMode,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tIcon,\n\tButton,\n\tDropdown,\n\tTextControl,\n\tToolbarButton,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getSocialService } from './social-list';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\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\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n\tname,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\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 isContentOnlyMode = useBlockEditingMode() === 'contentOnly';\n\n\tconst { activeVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariation: getActiveBlockVariation( name, attributes ),\n\t\t\t};\n\t\t},\n\t\t[ name, attributes ]\n\t);\n\n\tconst { icon, label: socialLinkName } = getSocialService( activeVariation );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ isContentOnlyMode && showLabels && (\n\t\t\t\t// Add an extra control to modify the label attribute when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit this attribute.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Text' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-social-link__toolbar_content_text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Provide a text label or use the default.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\thasValue={ () => !! label }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -13,10 +13,12 @@ import { compose } from '@wordpress/compose';
13
13
  import { __, sprintf } from '@wordpress/i18n';
14
14
  import { link, Icon } from '@wordpress/icons';
15
15
  import { withSelect } from '@wordpress/data';
16
+ import { store as blocksStore } from '@wordpress/blocks';
17
+
16
18
  /**
17
19
  * Internal dependencies
18
20
  */
19
- import { getIconBySite, getNameBySite } from './social-list';
21
+ import { getSocialService } from './social-list';
20
22
  import styles from './editor.scss';
21
23
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
22
24
  const DEFAULT_ACTIVE_ICON_STYLES = {
@@ -44,7 +46,8 @@ const SocialLinkEdit = ({
44
46
  setAttributes,
45
47
  isSelected,
46
48
  onFocus,
47
- name
49
+ name,
50
+ activeVariation
48
51
  }) => {
49
52
  const {
50
53
  url,
@@ -54,8 +57,10 @@ const SocialLinkEdit = ({
54
57
  const [hasUrl, setHasUrl] = useState(!!url);
55
58
  const activeIcon = styles[`wp-social-link-${service}`] || styles[`wp-social-link`] || DEFAULT_ACTIVE_ICON_STYLES;
56
59
  const animatedValue = useRef(new Animated.Value(0)).current;
57
- const IconComponent = getIconBySite(service)();
58
- const socialLinkName = getNameBySite(service);
60
+ const {
61
+ icon,
62
+ label: socialLinkName
63
+ } = getSocialService(activeVariation);
59
64
 
60
65
  // When new social icon is added link sheet is opened automatically.
61
66
  useEffect(() => {
@@ -149,7 +154,7 @@ const SocialLinkEdit = ({
149
154
  }],
150
155
  children: /*#__PURE__*/_jsx(Icon, {
151
156
  animated: true,
152
- icon: IconComponent,
157
+ icon: icon(),
153
158
  style: {
154
159
  color: activeIcon.color
155
160
  }
@@ -164,10 +169,14 @@ export default compose([withSelect((select, {
164
169
  const {
165
170
  getBlock
166
171
  } = select(blockEditorStore);
172
+ const {
173
+ getActiveBlockVariation
174
+ } = select(blocksStore);
167
175
  const block = getBlock(clientId);
168
176
  const name = block?.name.substring(17);
169
177
  return {
170
- name
178
+ name,
179
+ activeVariation: block ? getActiveBlockVariation(block.name, block.attributes) : undefined
171
180
  };
172
181
  })])(SocialLinkEdit);
173
182
  //# sourceMappingURL=edit.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","Animated","Easing","TouchableWithoutFeedback","BlockControls","store","blockEditorStore","useEffect","useState","useRef","useCallback","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","compose","__","sprintf","link","Icon","withSelect","getIconBySite","getNameBySite","styles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_ACTIVE_ICON_STYLES","backgroundColor","color","ANIMATION_DELAY","ANIMATION_DURATION","linkSettingsOptions","url","label","placeholder","autoFocus","linkLabel","footer","SocialLinkEdit","attributes","setAttributes","isSelected","onFocus","name","service","isLinkSheetVisible","setIsLinkSheetVisible","hasUrl","setHasUrl","activeIcon","animatedValue","Value","current","IconComponent","socialLinkName","setValue","animateColors","interpolationColors","opacity","interpolate","inputRange","outputRange","sequence","delay","timing","toValue","duration","easing","circle","useNativeDriver","start","onCloseSettingsSheet","onOpenSettingsSheet","onEmptyURL","onIconPress","accessibilityHint","style","container","children","title","icon","onClick","isActive","isVisible","rel","onClose","options","withBottomSheet","onPress","accessibilityRole","accessibilityLabel","iconContainer","animated","select","clientId","getBlock","block","substring"],"sources":["@wordpress/block-library/src/social-link/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Animated, Easing, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect, useState, useRef, useCallback } from '@wordpress/element';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n} from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { link, Icon } from '@wordpress/icons';\nimport { withSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\nimport styles from './editor.scss';\n\nconst DEFAULT_ACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#f0f0f0',\n\tcolor: '#444',\n};\nconst ANIMATION_DELAY = 300;\nconst ANIMATION_DURATION = 400;\n\nconst linkSettingsOptions = {\n\turl: {\n\t\tlabel: __( 'URL' ),\n\t\tplaceholder: __( 'Add URL' ),\n\t\tautoFocus: true,\n\t},\n\tlinkLabel: {\n\t\tlabel: __( 'Link label' ),\n\t\tplaceholder: __( 'None' ),\n\t},\n\tfooter: {\n\t\tlabel: __( 'Briefly describe the link to help screen reader user' ),\n\t},\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tonFocus,\n\tname,\n} ) => {\n\tconst { url, service = name } = attributes;\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ hasUrl, setHasUrl ] = useState( !! url );\n\tconst activeIcon =\n\t\tstyles[ `wp-social-link-${ service }` ] ||\n\t\tstyles[ `wp-social-link` ] ||\n\t\tDEFAULT_ACTIVE_ICON_STYLES;\n\tconst animatedValue = useRef( new Animated.Value( 0 ) ).current;\n\n\tconst IconComponent = getIconBySite( service )();\n\tconst socialLinkName = getNameBySite( service );\n\n\t// When new social icon is added link sheet is opened automatically.\n\tuseEffect( () => {\n\t\tif ( isSelected && ! url ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! url ) {\n\t\t\tsetHasUrl( false );\n\t\t\tanimatedValue.setValue( 0 );\n\t\t} else if ( url ) {\n\t\t\tanimateColors();\n\t\t}\n\t}, [ url ] );\n\n\tconst interpolationColors = {\n\t\topacity: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [ 0.3, 1 ],\n\t\t} ),\n\t};\n\n\tconst { opacity } = hasUrl ? activeIcon : interpolationColors;\n\n\tfunction animateColors() {\n\t\tAnimated.sequence( [\n\t\t\tAnimated.delay( ANIMATION_DELAY ),\n\t\t\tAnimated.timing( animatedValue, {\n\t\t\t\ttoValue: 1,\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: Easing.circle,\n\t\t\t\tuseNativeDriver: false,\n\t\t\t} ),\n\t\t] ).start( () => setHasUrl( true ) );\n\t}\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( false );\n\t}, [] );\n\n\tconst onOpenSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( true );\n\t}, [] );\n\n\tconst onEmptyURL = useCallback( () => {\n\t\tanimatedValue.setValue( 0 );\n\t\tsetHasUrl( false );\n\t}, [ animatedValue ] );\n\n\tfunction onIconPress() {\n\t\tif ( isSelected ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tconst accessibilityHint = url\n\t\t? sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has URL set' ),\n\t\t\t\tsocialLinkName\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has no URL set' ),\n\t\t\t\tsocialLinkName\n\t\t );\n\n\treturn (\n\t\t<View style={ styles.container }>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t\t\t\t\t__( 'Add link to %s' ),\n\t\t\t\t\t\t\t\t\tsocialLinkName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onOpenSettingsSheet }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<LinkSettingsNavigation\n\t\t\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\t\t\turl={ attributes.url }\n\t\t\t\t\t\tlabel={ attributes.label }\n\t\t\t\t\t\trel={ attributes.rel }\n\t\t\t\t\t\tonEmptyURL={ onEmptyURL }\n\t\t\t\t\t\tonClose={ onCloseSettingsSheet }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\t\t\twithBottomSheet\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ onIconPress }\n\t\t\t\taccessibilityRole=\"button\"\n\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t__( '%s social icon' ),\n\t\t\t\t\tsocialLinkName\n\t\t\t\t) }\n\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.iconContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbackgroundColor: activeIcon.backgroundColor,\n\t\t\t\t\t\t\topacity,\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tanimated\n\t\t\t\t\t\ticon={ IconComponent }\n\t\t\t\t\t\tstyle={ { color: activeIcon.color } }\n\t\t\t\t\t/>\n\t\t\t\t</Animated.View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\n\t\tconst block = getBlock( clientId );\n\t\tconst name = block?.name.substring( 17 );\n\n\t\treturn {\n\t\t\tname,\n\t\t};\n\t} ),\n] )( SocialLinkEdit );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,wBAAwB,QAAQ,cAAc;;AAE/E;AACA;AACA;AACA,SACCC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,oBAAoB;AAC7E,SACCC,YAAY,EACZC,aAAa,EACbC,sBAAsB,QAChB,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,iBAAiB;AAC5C;AACA;AACA;AACA,SAASC,aAAa,EAAEC,aAAa,QAAQ,eAAe;AAC5D,OAAOC,MAAM,MAAM,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEnC,MAAMC,0BAA0B,GAAG;EAClCC,eAAe,EAAE,SAAS;EAC1BC,KAAK,EAAE;AACR,CAAC;AACD,MAAMC,eAAe,GAAG,GAAG;AAC3B,MAAMC,kBAAkB,GAAG,GAAG;AAE9B,MAAMC,mBAAmB,GAAG;EAC3BC,GAAG,EAAE;IACJC,KAAK,EAAErB,EAAE,CAAE,KAAM,CAAC;IAClBsB,WAAW,EAAEtB,EAAE,CAAE,SAAU,CAAC;IAC5BuB,SAAS,EAAE;EACZ,CAAC;EACDC,SAAS,EAAE;IACVH,KAAK,EAAErB,EAAE,CAAE,YAAa,CAAC;IACzBsB,WAAW,EAAEtB,EAAE,CAAE,MAAO;EACzB,CAAC;EACDyB,MAAM,EAAE;IACPJ,KAAK,EAAErB,EAAE,CAAE,sDAAuD;EACnE;AACD,CAAC;AAED,MAAM0B,cAAc,GAAGA,CAAE;EACxBC,UAAU;EACVC,aAAa;EACbC,UAAU;EACVC,OAAO;EACPC;AACD,CAAC,KAAM;EACN,MAAM;IAAEX,GAAG;IAAEY,OAAO,GAAGD;EAAK,CAAC,GAAGJ,UAAU;EAC1C,MAAM,CAAEM,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGzC,QAAQ,CAAE,KAAM,CAAC;EACvE,MAAM,CAAE0C,MAAM,EAAEC,SAAS,CAAE,GAAG3C,QAAQ,CAAE,CAAC,CAAE2B,GAAI,CAAC;EAChD,MAAMiB,UAAU,GACf9B,MAAM,CAAE,kBAAmByB,OAAO,EAAG,CAAE,IACvCzB,MAAM,CAAE,gBAAgB,CAAE,IAC1BO,0BAA0B;EAC3B,MAAMwB,aAAa,GAAG5C,MAAM,CAAE,IAAIR,QAAQ,CAACqD,KAAK,CAAE,CAAE,CAAE,CAAC,CAACC,OAAO;EAE/D,MAAMC,aAAa,GAAGpC,aAAa,CAAE2B,OAAQ,CAAC,CAAC,CAAC;EAChD,MAAMU,cAAc,GAAGpC,aAAa,CAAE0B,OAAQ,CAAC;;EAE/C;EACAxC,SAAS,CAAE,MAAM;IAChB,IAAKqC,UAAU,IAAI,CAAET,GAAG,EAAG;MAC1Bc,qBAAqB,CAAE,IAAK,CAAC;IAC9B;EACD,CAAC,EAAE,EAAG,CAAC;EAEP1C,SAAS,CAAE,MAAM;IAChB,IAAK,CAAE4B,GAAG,EAAG;MACZgB,SAAS,CAAE,KAAM,CAAC;MAClBE,aAAa,CAACK,QAAQ,CAAE,CAAE,CAAC;IAC5B,CAAC,MAAM,IAAKvB,GAAG,EAAG;MACjBwB,aAAa,CAAC,CAAC;IAChB;EACD,CAAC,EAAE,CAAExB,GAAG,CAAG,CAAC;EAEZ,MAAMyB,mBAAmB,GAAG;IAC3BC,OAAO,EAAER,aAAa,CAACS,WAAW,CAAE;MACnCC,UAAU,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE;MACpBC,WAAW,EAAE,CAAE,GAAG,EAAE,CAAC;IACtB,CAAE;EACH,CAAC;EAED,MAAM;IAAEH;EAAQ,CAAC,GAAGX,MAAM,GAAGE,UAAU,GAAGQ,mBAAmB;EAE7D,SAASD,aAAaA,CAAA,EAAG;IACxB1D,QAAQ,CAACgE,QAAQ,CAAE,CAClBhE,QAAQ,CAACiE,KAAK,CAAElC,eAAgB,CAAC,EACjC/B,QAAQ,CAACkE,MAAM,CAAEd,aAAa,EAAE;MAC/Be,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAEpC,kBAAkB;MAC5BqC,MAAM,EAAEpE,MAAM,CAACqE,MAAM;MACrBC,eAAe,EAAE;IAClB,CAAE,CAAC,CACF,CAAC,CAACC,KAAK,CAAE,MAAMtB,SAAS,CAAE,IAAK,CAAE,CAAC;EACrC;EAEA,MAAMuB,oBAAoB,GAAGhE,WAAW,CAAE,MAAM;IAC/CuC,qBAAqB,CAAE,KAAM,CAAC;EAC/B,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM0B,mBAAmB,GAAGjE,WAAW,CAAE,MAAM;IAC9CuC,qBAAqB,CAAE,IAAK,CAAC;EAC9B,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM2B,UAAU,GAAGlE,WAAW,CAAE,MAAM;IACrC2C,aAAa,CAACK,QAAQ,CAAE,CAAE,CAAC;IAC3BP,SAAS,CAAE,KAAM,CAAC;EACnB,CAAC,EAAE,CAAEE,aAAa,CAAG,CAAC;EAEtB,SAASwB,WAAWA,CAAA,EAAG;IACtB,IAAKjC,UAAU,EAAG;MACjBK,qBAAqB,CAAE,IAAK,CAAC;IAC9B,CAAC,MAAM;MACNJ,OAAO,CAAC,CAAC;IACV;EACD;EAEA,MAAMiC,iBAAiB,GAAG3C,GAAG,GAC1BnB,OAAO;EACP;EACAD,EAAE,CAAE,gBAAiB,CAAC,EACtB0C,cACA,CAAC,GACDzC,OAAO;EACP;EACAD,EAAE,CAAE,mBAAoB,CAAC,EACzB0C,cACA,CAAC;EAEJ,oBACC7B,KAAA,CAAC5B,IAAI;IAAC+E,KAAK,EAAGzD,MAAM,CAAC0D,SAAW;IAAAC,QAAA,GAC7BrC,UAAU,iBACXhB,KAAA,CAAAF,SAAA;MAAAuD,QAAA,gBACCzD,IAAA,CAACpB,aAAa;QAAA6E,QAAA,eACbzD,IAAA,CAACb,YAAY;UAAAsE,QAAA,eACZzD,IAAA,CAACZ,aAAa;YACbsE,KAAK,EAAGlE,OAAO;YACd;YACAD,EAAE,CAAE,gBAAiB,CAAC,EACtB0C,cACD,CAAG;YACH0B,IAAI,EAAGlE,IAAM;YACbmE,OAAO,EAAGT,mBAAqB;YAC/BU,QAAQ,EAAGlD;UAAK,CAChB;QAAC,CACW;MAAC,CACD,CAAC,eAChBX,IAAA,CAACX,sBAAsB;QACtByE,SAAS,EAAGtC,kBAAoB;QAChCb,GAAG,EAAGO,UAAU,CAACP,GAAK;QACtBC,KAAK,EAAGM,UAAU,CAACN,KAAO;QAC1BmD,GAAG,EAAG7C,UAAU,CAAC6C,GAAK;QACtBX,UAAU,EAAGA,UAAY;QACzBY,OAAO,EAAGd,oBAAsB;QAChC/B,aAAa,EAAGA,aAAe;QAC/B8C,OAAO,EAAGvD,mBAAqB;QAC/BwD,eAAe;MAAA,CACf,CAAC;IAAA,CACD,CACF,eAEDlE,IAAA,CAACrB,wBAAwB;MACxBwF,OAAO,EAAGd,WAAa;MACvBe,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAG7E,OAAO;MAC3B;MACAD,EAAE,CAAE,gBAAiB,CAAC,EACtB0C,cACD,CAAG;MACHqB,iBAAiB,EAAGA,iBAAmB;MAAAG,QAAA,eAEvCzD,IAAA,CAACvB,QAAQ,CAACD,IAAI;QACb+E,KAAK,EAAG,CACPzD,MAAM,CAACwE,aAAa,EACpB;UACChE,eAAe,EAAEsB,UAAU,CAACtB,eAAe;UAC3C+B;QACD,CAAC,CACC;QAAAoB,QAAA,eAEHzD,IAAA,CAACN,IAAI;UACJ6E,QAAQ;UACRZ,IAAI,EAAG3B,aAAe;UACtBuB,KAAK,EAAG;YAAEhD,KAAK,EAAEqB,UAAU,CAACrB;UAAM;QAAG,CACrC;MAAC,CACY;IAAC,CACS,CAAC;EAAA,CACtB,CAAC;AAET,CAAC;AAED,eAAejB,OAAO,CAAE,CACvBK,UAAU,CAAE,CAAE6E,MAAM,EAAE;EAAEC;AAAS,CAAC,KAAM;EACvC,MAAM;IAAEC;EAAS,CAAC,GAAGF,MAAM,CAAE1F,gBAAiB,CAAC;EAE/C,MAAM6F,KAAK,GAAGD,QAAQ,CAAED,QAAS,CAAC;EAClC,MAAMnD,IAAI,GAAGqD,KAAK,EAAErD,IAAI,CAACsD,SAAS,CAAE,EAAG,CAAC;EAExC,OAAO;IACNtD;EACD,CAAC;AACF,CAAE,CAAC,CACF,CAAC,CAAEL,cAAe,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["View","Animated","Easing","TouchableWithoutFeedback","BlockControls","store","blockEditorStore","useEffect","useState","useRef","useCallback","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","compose","__","sprintf","link","Icon","withSelect","blocksStore","getSocialService","styles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_ACTIVE_ICON_STYLES","backgroundColor","color","ANIMATION_DELAY","ANIMATION_DURATION","linkSettingsOptions","url","label","placeholder","autoFocus","linkLabel","footer","SocialLinkEdit","attributes","setAttributes","isSelected","onFocus","name","activeVariation","service","isLinkSheetVisible","setIsLinkSheetVisible","hasUrl","setHasUrl","activeIcon","animatedValue","Value","current","icon","socialLinkName","setValue","animateColors","interpolationColors","opacity","interpolate","inputRange","outputRange","sequence","delay","timing","toValue","duration","easing","circle","useNativeDriver","start","onCloseSettingsSheet","onOpenSettingsSheet","onEmptyURL","onIconPress","accessibilityHint","style","container","children","title","onClick","isActive","isVisible","rel","onClose","options","withBottomSheet","onPress","accessibilityRole","accessibilityLabel","iconContainer","animated","select","clientId","getBlock","getActiveBlockVariation","block","substring","undefined"],"sources":["@wordpress/block-library/src/social-link/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Animated, Easing, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect, useState, useRef, useCallback } from '@wordpress/element';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n} from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { link, Icon } from '@wordpress/icons';\nimport { withSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getSocialService } from './social-list';\nimport styles from './editor.scss';\n\nconst DEFAULT_ACTIVE_ICON_STYLES = {\n\tbackgroundColor: '#f0f0f0',\n\tcolor: '#444',\n};\nconst ANIMATION_DELAY = 300;\nconst ANIMATION_DURATION = 400;\n\nconst linkSettingsOptions = {\n\turl: {\n\t\tlabel: __( 'URL' ),\n\t\tplaceholder: __( 'Add URL' ),\n\t\tautoFocus: true,\n\t},\n\tlinkLabel: {\n\t\tlabel: __( 'Link label' ),\n\t\tplaceholder: __( 'None' ),\n\t},\n\tfooter: {\n\t\tlabel: __( 'Briefly describe the link to help screen reader user' ),\n\t},\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tonFocus,\n\tname,\n\tactiveVariation,\n} ) => {\n\tconst { url, service = name } = attributes;\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ hasUrl, setHasUrl ] = useState( !! url );\n\tconst activeIcon =\n\t\tstyles[ `wp-social-link-${ service }` ] ||\n\t\tstyles[ `wp-social-link` ] ||\n\t\tDEFAULT_ACTIVE_ICON_STYLES;\n\tconst animatedValue = useRef( new Animated.Value( 0 ) ).current;\n\n\tconst { icon, label: socialLinkName } = getSocialService( activeVariation );\n\n\t// When new social icon is added link sheet is opened automatically.\n\tuseEffect( () => {\n\t\tif ( isSelected && ! url ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! url ) {\n\t\t\tsetHasUrl( false );\n\t\t\tanimatedValue.setValue( 0 );\n\t\t} else if ( url ) {\n\t\t\tanimateColors();\n\t\t}\n\t}, [ url ] );\n\n\tconst interpolationColors = {\n\t\topacity: animatedValue.interpolate( {\n\t\t\tinputRange: [ 0, 1 ],\n\t\t\toutputRange: [ 0.3, 1 ],\n\t\t} ),\n\t};\n\n\tconst { opacity } = hasUrl ? activeIcon : interpolationColors;\n\n\tfunction animateColors() {\n\t\tAnimated.sequence( [\n\t\t\tAnimated.delay( ANIMATION_DELAY ),\n\t\t\tAnimated.timing( animatedValue, {\n\t\t\t\ttoValue: 1,\n\t\t\t\tduration: ANIMATION_DURATION,\n\t\t\t\teasing: Easing.circle,\n\t\t\t\tuseNativeDriver: false,\n\t\t\t} ),\n\t\t] ).start( () => setHasUrl( true ) );\n\t}\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( false );\n\t}, [] );\n\n\tconst onOpenSettingsSheet = useCallback( () => {\n\t\tsetIsLinkSheetVisible( true );\n\t}, [] );\n\n\tconst onEmptyURL = useCallback( () => {\n\t\tanimatedValue.setValue( 0 );\n\t\tsetHasUrl( false );\n\t}, [ animatedValue ] );\n\n\tfunction onIconPress() {\n\t\tif ( isSelected ) {\n\t\t\tsetIsLinkSheetVisible( true );\n\t\t} else {\n\t\t\tonFocus();\n\t\t}\n\t}\n\n\tconst accessibilityHint = url\n\t\t? sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has URL set' ),\n\t\t\t\tsocialLinkName\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t__( '%s has no URL set' ),\n\t\t\t\tsocialLinkName\n\t\t );\n\n\treturn (\n\t\t<View style={ styles.container }>\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t\t\t\t\t__( 'Add link to %s' ),\n\t\t\t\t\t\t\t\t\tsocialLinkName\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onOpenSettingsSheet }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<LinkSettingsNavigation\n\t\t\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\t\t\turl={ attributes.url }\n\t\t\t\t\t\tlabel={ attributes.label }\n\t\t\t\t\t\trel={ attributes.rel }\n\t\t\t\t\t\tonEmptyURL={ onEmptyURL }\n\t\t\t\t\t\tonClose={ onCloseSettingsSheet }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\t\t\twithBottomSheet\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ onIconPress }\n\t\t\t\taccessibilityRole=\"button\"\n\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t// translators: %s: social link name e.g: \"Instagram\".\n\t\t\t\t\t__( '%s social icon' ),\n\t\t\t\t\tsocialLinkName\n\t\t\t\t) }\n\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\tstyles.iconContainer,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbackgroundColor: activeIcon.backgroundColor,\n\t\t\t\t\t\t\topacity,\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tanimated\n\t\t\t\t\t\ticon={ icon() }\n\t\t\t\t\t\tstyle={ { color: activeIcon.color } }\n\t\t\t\t\t/>\n\t\t\t\t</Animated.View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\tconst block = getBlock( clientId );\n\t\tconst name = block?.name.substring( 17 );\n\n\t\treturn {\n\t\t\tname,\n\t\t\tactiveVariation: block\n\t\t\t\t? getActiveBlockVariation( block.name, block.attributes )\n\t\t\t\t: undefined,\n\t\t};\n\t} ),\n] )( SocialLinkEdit );\n"],"mappings":"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","ignoreList":[]}
@@ -6,30 +6,25 @@ import { __ } from '@wordpress/i18n';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import variations from './variations';
10
9
  import { ChainIcon } from './icons';
11
10
 
12
11
  /**
13
- * Retrieves the social service's icon component.
12
+ * Retrieves the social service's icon component and label.
14
13
  *
15
- * @param {string} name key for a social service (lowercase slug)
16
- *
17
- * @return {Component} Icon component for social service.
18
- */
19
- export const getIconBySite = name => {
20
- const variation = variations.find(v => v.name === name);
21
- return variation ? variation.icon : ChainIcon;
22
- };
23
-
24
- /**
25
- * Retrieves the display name for the social service.
26
- *
27
- * @param {string} name key for a social service (lowercase slug)
28
- *
29
- * @return {string} Display name for social service
14
+ * @param {Object} variation The object of the social service variation.
15
+ * @return {Object} An object containing the Icon component for social service and label.
30
16
  */
31
- export const getNameBySite = name => {
32
- const variation = variations.find(v => v.name === name);
33
- return variation ? variation.title : __('Social Icon');
34
- };
17
+ export function getSocialService(variation) {
18
+ var _variation$icon, _variation$title;
19
+ if (!variation?.name) {
20
+ return {
21
+ icon: ChainIcon,
22
+ label: __('Social Icon')
23
+ };
24
+ }
25
+ return {
26
+ icon: (_variation$icon = variation?.icon) !== null && _variation$icon !== void 0 ? _variation$icon : ChainIcon,
27
+ label: (_variation$title = variation?.title) !== null && _variation$title !== void 0 ? _variation$title : __('Social Icon')
28
+ };
29
+ }
35
30
  //# sourceMappingURL=social-list.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","variations","ChainIcon","getIconBySite","name","variation","find","v","icon","getNameBySite","title"],"sources":["@wordpress/block-library/src/social-link/social-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport variations from './variations';\nimport { ChainIcon } from './icons';\n\n/**\n * Retrieves the social service's icon component.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {Component} Icon component for social service.\n */\nexport const getIconBySite = ( name ) => {\n\tconst variation = variations.find( ( v ) => v.name === name );\n\treturn variation ? variation.icon : ChainIcon;\n};\n\n/**\n * Retrieves the display name for the social service.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {string} Display name for social service\n */\nexport const getNameBySite = ( name ) => {\n\tconst variation = variations.find( ( v ) => v.name === name );\n\treturn variation ? variation.title : __( 'Social Icon' );\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,UAAU,MAAM,cAAc;AACrC,SAASC,SAAS,QAAQ,SAAS;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAKC,IAAI,IAAM;EACxC,MAAMC,SAAS,GAAGJ,UAAU,CAACK,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACH,IAAI,KAAKA,IAAK,CAAC;EAC7D,OAAOC,SAAS,GAAGA,SAAS,CAACG,IAAI,GAAGN,SAAS;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,aAAa,GAAKL,IAAI,IAAM;EACxC,MAAMC,SAAS,GAAGJ,UAAU,CAACK,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACH,IAAI,KAAKA,IAAK,CAAC;EAC7D,OAAOC,SAAS,GAAGA,SAAS,CAACK,KAAK,GAAGV,EAAE,CAAE,aAAc,CAAC;AACzD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["__","ChainIcon","getSocialService","variation","_variation$icon","_variation$title","name","icon","label","title"],"sources":["@wordpress/block-library/src/social-link/social-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { ChainIcon } from './icons';\n\n/**\n * Retrieves the social service's icon component and label.\n *\n * @param {Object} variation The object of the social service variation.\n * @return {Object} An object containing the Icon component for social service and label.\n */\nexport function getSocialService( variation ) {\n\tif ( ! variation?.name ) {\n\t\treturn {\n\t\t\ticon: ChainIcon,\n\t\t\tlabel: __( 'Social Icon' ),\n\t\t};\n\t}\n\n\treturn {\n\t\ticon: variation?.icon ?? ChainIcon,\n\t\tlabel: variation?.title ?? __( 'Social Icon' ),\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,SAAS,QAAQ,SAAS;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,SAAS,EAAG;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAC7C,IAAK,CAAEF,SAAS,EAAEG,IAAI,EAAG;IACxB,OAAO;MACNC,IAAI,EAAEN,SAAS;MACfO,KAAK,EAAER,EAAE,CAAE,aAAc;IAC1B,CAAC;EACF;EAEA,OAAO;IACNO,IAAI,GAAAH,eAAA,GAAED,SAAS,EAAEI,IAAI,cAAAH,eAAA,cAAAA,eAAA,GAAIH,SAAS;IAClCO,KAAK,GAAAH,gBAAA,GAAEF,SAAS,EAAEM,KAAK,cAAAJ,gBAAA,cAAAA,gBAAA,GAAIL,EAAE,CAAE,aAAc;EAC9C,CAAC;AACF","ignoreList":[]}
@@ -18,6 +18,9 @@ import { useSelect } from '@wordpress/data';
18
18
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
19
19
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
20
  const sizeOptions = [{
21
+ label: __('Default'),
22
+ value: ''
23
+ }, {
21
24
  label: __('Small'),
22
25
  value: 'has-small-icon-size'
23
26
  }, {
@@ -152,16 +155,16 @@ export function SocialLinksEdit(props) {
152
155
  setAttributes({
153
156
  openInNewTab: false,
154
157
  showLabels: false,
155
- size: 'has-normal-icon-size'
158
+ size: undefined
156
159
  });
157
160
  },
158
161
  dropdownMenuProps: dropdownMenuProps,
159
162
  children: [/*#__PURE__*/_jsx(ToolsPanelItem, {
160
163
  isShownByDefault: true,
161
- hasValue: () => !!size && size !== 'has-normal-icon-size',
164
+ hasValue: () => !!size,
162
165
  label: __('Icon size'),
163
166
  onDeselect: () => setAttributes({
164
- size: 'has-normal-icon-size'
167
+ size: undefined
165
168
  }),
166
169
  children: /*#__PURE__*/_jsx(SelectControl, {
167
170
  __next40pxDefaultSize: true,
@@ -169,10 +172,10 @@ export function SocialLinksEdit(props) {
169
172
  label: __('Icon Size'),
170
173
  onChange: newSize => {
171
174
  setAttributes({
172
- size: newSize
175
+ size: newSize === '' ? undefined : newSize
173
176
  });
174
177
  },
175
- value: size !== null && size !== void 0 ? size : 'has-normal-icon-size',
178
+ value: size !== null && size !== void 0 ? size : '',
176
179
  options: sizeOptions
177
180
  })
178
181
  }), /*#__PURE__*/_jsx(ToolsPanelItem, {