@wordpress/block-library 9.24.0 → 9.26.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 (300) hide show
  1. package/CHANGELOG.md +4 -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 +29 -17
  7. package/build/button/edit.js.map +1 -1
  8. package/build/columns/edit.js +18 -22
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/comment-author-name/edit.js +41 -12
  11. package/build/comment-author-name/edit.js.map +1 -1
  12. package/build/comment-date/edit.js +41 -12
  13. package/build/comment-date/edit.js.map +1 -1
  14. package/build/comment-edit-link/edit.js +27 -7
  15. package/build/comment-edit-link/edit.js.map +1 -1
  16. package/build/comments/edit/comments-inspector-controls.js +1 -3
  17. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  18. package/build/comments-pagination/edit.js +23 -9
  19. package/build/comments-pagination/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +41 -12
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/details/edit.js +27 -3
  23. package/build/details/edit.js.map +1 -1
  24. package/build/embed/edit.js +2 -4
  25. package/build/embed/edit.js.map +1 -1
  26. package/build/embed/embed-controls.js +41 -22
  27. package/build/embed/embed-controls.js.map +1 -1
  28. package/build/embed/variations.js +0 -10
  29. package/build/embed/variations.js.map +1 -1
  30. package/build/file/inspector.js +73 -30
  31. package/build/file/inspector.js.map +1 -1
  32. package/build/form/edit.js +67 -38
  33. package/build/form/edit.js.map +1 -1
  34. package/build/form/index.js +3 -3
  35. package/build/form/index.js.map +1 -1
  36. package/build/form-input/edit.js +47 -18
  37. package/build/form-input/edit.js.map +1 -1
  38. package/build/form-input/index.js +2 -1
  39. package/build/form-input/index.js.map +1 -1
  40. package/build/form-submission-notification/index.js +2 -1
  41. package/build/form-submission-notification/index.js.map +1 -1
  42. package/build/form-submit-button/index.js +2 -1
  43. package/build/form-submit-button/index.js.map +1 -1
  44. package/build/image/image.js +1 -0
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/view.js +0 -3
  47. package/build/image/view.js.map +1 -1
  48. package/build/latest-posts/edit.js +154 -82
  49. package/build/latest-posts/edit.js.map +1 -1
  50. package/build/list/ordered-list-settings.js +131 -52
  51. package/build/list/ordered-list-settings.js.map +1 -1
  52. package/build/navigation/edit/index.js +93 -51
  53. package/build/navigation/edit/index.js.map +1 -1
  54. package/build/navigation/edit/overlay-menu-preview.js +43 -27
  55. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  56. package/build/navigation-link/edit.js +11 -0
  57. package/build/navigation-link/edit.js.map +1 -1
  58. package/build/navigation-link/index.js +3 -0
  59. package/build/navigation-link/index.js.map +1 -1
  60. package/build/navigation-link/transforms.js +2 -0
  61. package/build/navigation-link/transforms.js.map +1 -1
  62. package/build/navigation-link/update-attributes.js +1 -0
  63. package/build/navigation-link/update-attributes.js.map +1 -1
  64. package/build/navigation-submenu/index.js +3 -0
  65. package/build/navigation-submenu/index.js.map +1 -1
  66. package/build/post-author/edit.js +75 -18
  67. package/build/post-author/edit.js.map +1 -1
  68. package/build/post-comments-count/index.js +3 -1
  69. package/build/post-comments-count/index.js.map +1 -1
  70. package/build/post-comments-count/transforms.js +26 -0
  71. package/build/post-comments-count/transforms.js.map +1 -0
  72. package/build/post-comments-link/index.js +3 -1
  73. package/build/post-comments-link/index.js.map +1 -1
  74. package/build/post-comments-link/transforms.js +26 -0
  75. package/build/post-comments-link/transforms.js.map +1 -0
  76. package/build/post-navigation-link/edit.js +72 -33
  77. package/build/post-navigation-link/edit.js.map +1 -1
  78. package/build/post-title/edit.js +56 -18
  79. package/build/post-title/edit.js.map +1 -1
  80. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  81. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  82. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  83. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  84. package/build/rss/edit.js +120 -46
  85. package/build/rss/edit.js.map +1 -1
  86. package/build/separator/edit.js +52 -20
  87. package/build/separator/edit.js.map +1 -1
  88. package/build/shortcode/index.js +2 -1
  89. package/build/shortcode/index.js.map +1 -1
  90. package/build/site-logo/edit.js +53 -19
  91. package/build/site-logo/edit.js.map +1 -1
  92. package/build/social-link/edit.js +21 -5
  93. package/build/social-link/edit.js.map +1 -1
  94. package/build/social-link/edit.native.js +13 -5
  95. package/build/social-link/edit.native.js.map +1 -1
  96. package/build/social-link/social-list.js +17 -25
  97. package/build/social-link/social-list.js.map +1 -1
  98. package/build/social-link/variations.js +53 -48
  99. package/build/social-link/variations.js.map +1 -1
  100. package/build/social-links/edit.js +38 -45
  101. package/build/social-links/edit.js.map +1 -1
  102. package/build/video/tracks-editor.js +63 -21
  103. package/build/video/tracks-editor.js.map +1 -1
  104. package/build-module/avatar/edit.js +83 -38
  105. package/build-module/avatar/edit.js.map +1 -1
  106. package/build-module/avatar/user-control.js +33 -18
  107. package/build-module/avatar/user-control.js.map +1 -1
  108. package/build-module/button/edit.js +30 -18
  109. package/build-module/button/edit.js.map +1 -1
  110. package/build-module/columns/edit.js +18 -22
  111. package/build-module/columns/edit.js.map +1 -1
  112. package/build-module/comment-author-name/edit.js +42 -13
  113. package/build-module/comment-author-name/edit.js.map +1 -1
  114. package/build-module/comment-date/edit.js +42 -13
  115. package/build-module/comment-date/edit.js.map +1 -1
  116. package/build-module/comment-edit-link/edit.js +28 -8
  117. package/build-module/comment-edit-link/edit.js.map +1 -1
  118. package/build-module/comments/edit/comments-inspector-controls.js +1 -3
  119. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  120. package/build-module/comments-pagination/edit.js +24 -10
  121. package/build-module/comments-pagination/edit.js.map +1 -1
  122. package/build-module/comments-title/edit.js +42 -13
  123. package/build-module/comments-title/edit.js.map +1 -1
  124. package/build-module/details/edit.js +29 -5
  125. package/build-module/details/edit.js.map +1 -1
  126. package/build-module/embed/edit.js +2 -4
  127. package/build-module/embed/edit.js.map +1 -1
  128. package/build-module/embed/embed-controls.js +42 -23
  129. package/build-module/embed/embed-controls.js.map +1 -1
  130. package/build-module/embed/variations.js +0 -10
  131. package/build-module/embed/variations.js.map +1 -1
  132. package/build-module/file/inspector.js +74 -31
  133. package/build-module/file/inspector.js.map +1 -1
  134. package/build-module/form/edit.js +68 -39
  135. package/build-module/form/edit.js.map +1 -1
  136. package/build-module/form/index.js +3 -3
  137. package/build-module/form/index.js.map +1 -1
  138. package/build-module/form-input/edit.js +48 -19
  139. package/build-module/form-input/edit.js.map +1 -1
  140. package/build-module/form-input/index.js +2 -1
  141. package/build-module/form-input/index.js.map +1 -1
  142. package/build-module/form-submission-notification/index.js +2 -1
  143. package/build-module/form-submission-notification/index.js.map +1 -1
  144. package/build-module/form-submit-button/index.js +2 -1
  145. package/build-module/form-submit-button/index.js.map +1 -1
  146. package/build-module/image/image.js +1 -0
  147. package/build-module/image/image.js.map +1 -1
  148. package/build-module/image/view.js +0 -3
  149. package/build-module/image/view.js.map +1 -1
  150. package/build-module/latest-posts/edit.js +155 -83
  151. package/build-module/latest-posts/edit.js.map +1 -1
  152. package/build-module/list/ordered-list-settings.js +132 -53
  153. package/build-module/list/ordered-list-settings.js.map +1 -1
  154. package/build-module/navigation/edit/index.js +94 -52
  155. package/build-module/navigation/edit/index.js.map +1 -1
  156. package/build-module/navigation/edit/overlay-menu-preview.js +44 -28
  157. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  158. package/build-module/navigation-link/edit.js +11 -0
  159. package/build-module/navigation-link/edit.js.map +1 -1
  160. package/build-module/navigation-link/index.js +3 -0
  161. package/build-module/navigation-link/index.js.map +1 -1
  162. package/build-module/navigation-link/transforms.js +2 -0
  163. package/build-module/navigation-link/transforms.js.map +1 -1
  164. package/build-module/navigation-link/update-attributes.js +1 -0
  165. package/build-module/navigation-link/update-attributes.js.map +1 -1
  166. package/build-module/navigation-submenu/index.js +3 -0
  167. package/build-module/navigation-submenu/index.js.map +1 -1
  168. package/build-module/post-author/edit.js +76 -19
  169. package/build-module/post-author/edit.js.map +1 -1
  170. package/build-module/post-comments-count/index.js +3 -1
  171. package/build-module/post-comments-count/index.js.map +1 -1
  172. package/build-module/post-comments-count/transforms.js +19 -0
  173. package/build-module/post-comments-count/transforms.js.map +1 -0
  174. package/build-module/post-comments-link/index.js +3 -1
  175. package/build-module/post-comments-link/index.js.map +1 -1
  176. package/build-module/post-comments-link/transforms.js +19 -0
  177. package/build-module/post-comments-link/transforms.js.map +1 -0
  178. package/build-module/post-navigation-link/edit.js +73 -34
  179. package/build-module/post-navigation-link/edit.js.map +1 -1
  180. package/build-module/post-title/edit.js +57 -19
  181. package/build-module/post-title/edit.js.map +1 -1
  182. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  183. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  184. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  185. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  186. package/build-module/rss/edit.js +121 -47
  187. package/build-module/rss/edit.js.map +1 -1
  188. package/build-module/separator/edit.js +54 -22
  189. package/build-module/separator/edit.js.map +1 -1
  190. package/build-module/shortcode/index.js +2 -1
  191. package/build-module/shortcode/index.js.map +1 -1
  192. package/build-module/site-logo/edit.js +54 -20
  193. package/build-module/site-logo/edit.js.map +1 -1
  194. package/build-module/social-link/edit.js +24 -8
  195. package/build-module/social-link/edit.js.map +1 -1
  196. package/build-module/social-link/edit.native.js +15 -6
  197. package/build-module/social-link/edit.native.js.map +1 -1
  198. package/build-module/social-link/social-list.js +16 -21
  199. package/build-module/social-link/social-list.js.map +1 -1
  200. package/build-module/social-link/variations.js +53 -48
  201. package/build-module/social-link/variations.js.map +1 -1
  202. package/build-module/social-links/edit.js +40 -47
  203. package/build-module/social-links/edit.js.map +1 -1
  204. package/build-module/video/tracks-editor.js +65 -23
  205. package/build-module/video/tracks-editor.js.map +1 -1
  206. package/build-style/calendar/style-rtl.css +7 -7
  207. package/build-style/calendar/style.css +7 -7
  208. package/build-style/comments-pagination/editor-rtl.css +0 -12
  209. package/build-style/comments-pagination/editor.css +0 -14
  210. package/build-style/comments-pagination/style-rtl.css +0 -7
  211. package/build-style/comments-pagination/style.css +0 -9
  212. package/build-style/editor-rtl.css +9 -21
  213. package/build-style/editor.css +9 -23
  214. package/build-style/gallery/style-rtl.css +1 -0
  215. package/build-style/gallery/style.css +1 -0
  216. package/build-style/navigation/editor-rtl.css +8 -3
  217. package/build-style/navigation/editor.css +8 -3
  218. package/build-style/navigation/style-rtl.css +4 -0
  219. package/build-style/navigation/style.css +4 -0
  220. package/build-style/pullquote/editor-rtl.css +1 -1
  221. package/build-style/pullquote/editor.css +1 -1
  222. package/build-style/pullquote/style-rtl.css +2 -3
  223. package/build-style/pullquote/style.css +2 -3
  224. package/build-style/pullquote/theme-rtl.css +2 -2
  225. package/build-style/pullquote/theme.css +2 -2
  226. package/build-style/style-rtl.css +14 -17
  227. package/build-style/style.css +14 -19
  228. package/build-style/theme-rtl.css +2 -2
  229. package/build-style/theme.css +2 -2
  230. package/package.json +35 -35
  231. package/src/avatar/edit.js +99 -51
  232. package/src/avatar/user-control.js +34 -29
  233. package/src/button/edit.js +44 -29
  234. package/src/calendar/style.scss +10 -10
  235. package/src/columns/edit.js +20 -31
  236. package/src/comment-author-name/edit.js +54 -13
  237. package/src/comment-date/edit.js +50 -15
  238. package/src/comment-edit-link/edit.js +39 -11
  239. package/src/comments/edit/comments-inspector-controls.js +0 -2
  240. package/src/comments-pagination/edit.js +29 -9
  241. package/src/comments-pagination/editor.scss +0 -15
  242. package/src/comments-pagination/style.scss +0 -8
  243. package/src/comments-title/edit.js +53 -15
  244. package/src/details/edit.js +36 -4
  245. package/src/editor.scss +0 -1
  246. package/src/embed/edit.js +3 -5
  247. package/src/embed/embed-controls.js +55 -33
  248. package/src/embed/variations.js +0 -8
  249. package/src/file/inspector.js +99 -45
  250. package/src/form/block.json +1 -2
  251. package/src/form/edit.js +91 -47
  252. package/src/form/index.js +1 -0
  253. package/src/form-input/edit.js +56 -18
  254. package/src/form-input/index.js +1 -0
  255. package/src/form-submission-notification/index.js +1 -0
  256. package/src/form-submit-button/index.js +1 -0
  257. package/src/gallery/style.scss +1 -0
  258. package/src/image/image.js +1 -0
  259. package/src/image/index.php +4 -1
  260. package/src/image/view.js +0 -3
  261. package/src/latest-posts/edit.js +206 -98
  262. package/src/list/ordered-list-settings.js +172 -62
  263. package/src/navigation/edit/index.js +127 -64
  264. package/src/navigation/edit/overlay-menu-preview.js +43 -26
  265. package/src/navigation/editor.scss +8 -4
  266. package/src/navigation/style.scss +8 -0
  267. package/src/navigation-link/block.json +3 -0
  268. package/src/navigation-link/edit.js +14 -1
  269. package/src/navigation-link/index.php +4 -0
  270. package/src/navigation-link/transforms.js +2 -1
  271. package/src/navigation-link/update-attributes.js +1 -0
  272. package/src/navigation-submenu/block.json +3 -0
  273. package/src/navigation-submenu/index.php +4 -0
  274. package/src/post-author/edit.js +91 -27
  275. package/src/post-comments-count/index.js +2 -0
  276. package/src/post-comments-count/transforms.js +20 -0
  277. package/src/post-comments-link/index.js +2 -0
  278. package/src/post-comments-link/transforms.js +20 -0
  279. package/src/post-navigation-link/edit.js +96 -51
  280. package/src/post-title/edit.js +76 -24
  281. package/src/pullquote/editor.scss +1 -1
  282. package/src/pullquote/style.scss +2 -3
  283. package/src/pullquote/theme.scss +2 -2
  284. package/src/query/edit/enhanced-pagination-modal.js +1 -5
  285. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -13
  286. package/src/rss/edit.js +141 -55
  287. package/src/separator/edit.js +66 -21
  288. package/src/shortcode/block.json +2 -1
  289. package/src/site-logo/edit.js +69 -26
  290. package/src/site-title/index.php +1 -1
  291. package/src/social-link/edit.js +18 -7
  292. package/src/social-link/edit.native.js +10 -4
  293. package/src/social-link/index.php +62 -49
  294. package/src/social-link/social-list.js +15 -20
  295. package/src/social-link/variations.js +53 -48
  296. package/src/social-links/edit.js +38 -60
  297. package/src/video/tracks-editor.js +75 -22
  298. package/build-style/post-author/editor-rtl.css +0 -140
  299. package/build-style/post-author/editor.css +0 -140
  300. package/src/post-author/editor.scss +0 -7
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","InspectorControls","useBlockProps","__experimentalUseBorderProps","useBorderProps","PanelBody","RangeControl","ResizableBox","ToggleControl","__","isRTL","addQueryArgs","removeQueryArgs","useUserAvatar","useCommentAvatar","UserControl","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","children","title","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newSize","size","min","minSize","max","maxSize","initialPosition","value","isLink","checked","linkTarget","userId","ResizableAvatar","blockProps","isSelected","borderProps","doubledSizedSrc","src","s","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","bottom","left","minWidth","maxWidth","alt","className","style","CommentEdit","context","commentId","href","onClick","preventDefault","UserEdit","postId","postType","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","InspectorControls","useBlockProps","__experimentalUseBorderProps","useBorderProps","RangeControl","ResizableBox","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","isRTL","addQueryArgs","removeQueryArgs","useToolsPanelDropdownMenuProps","useCommentAvatar","useUserAvatar","UserControl","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","AvatarInspectorControls","setAttributes","avatar","attributes","selectUser","dropdownMenuProps","children","label","resetAll","size","isLink","linkTarget","userId","undefined","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","__next40pxDefaultSize","onChange","newSize","min","minSize","max","maxSize","initialPosition","value","checked","ResizableAvatar","blockProps","isSelected","borderProps","doubledSizedSrc","src","s","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","bottom","left","minWidth","maxWidth","alt","className","style","CommentEdit","context","commentId","href","onClick","preventDefault","UserEdit","postId","postType","Edit","props"],"sources":["@wordpress/block-library/src/avatar/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { useCommentAvatar, useUserAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: 96,\n\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\tuserId: undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => attributes?.size !== 96 }\n\t\t\t\t\tonDeselect={ () => setAttributes( { size: 96 } ) }\n\t\t\t\t>\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 size' ) }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ avatar.minSize }\n\t\t\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\t\t\tvalue={ attributes?.size }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => attributes?.isLink }\n\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\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 to user profile' ) }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ attributes.isLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ attributes.isLink && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => attributes?.linkTarget !== '_self' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t}\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={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ selectUser && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'User' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! attributes?.userId }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { userId: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<UserControl\n\t\t\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tuserId: value,\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,34 +5,49 @@ import { __ } from '@wordpress/i18n';
5
5
  import { ComboboxControl } from '@wordpress/components';
6
6
  import { useSelect } from '@wordpress/data';
7
7
  import { store as coreStore } from '@wordpress/core-data';
8
- import { useState } from '@wordpress/element';
8
+ import { useMemo, useState } from '@wordpress/element';
9
+ import { debounce } from '@wordpress/compose';
10
+ import { decodeEntities } from '@wordpress/html-entities';
9
11
  import { jsx as _jsx } from "react/jsx-runtime";
10
12
  const AUTHORS_QUERY = {
11
13
  who: 'authors',
12
- per_page: -1,
14
+ per_page: 100,
13
15
  _fields: 'id,name',
14
16
  context: 'view'
15
17
  };
16
- function UserControl({
18
+ export default function UserControl({
17
19
  value,
18
20
  onChange
19
21
  }) {
20
- const [filteredAuthorsList, setFilteredAuthorsList] = useState();
21
- const authorsList = useSelect(select => {
22
+ const [filterValue, setFilterValue] = useState('');
23
+ const {
24
+ authors,
25
+ isLoading
26
+ } = useSelect(select => {
22
27
  const {
23
- getUsers
28
+ getUsers,
29
+ isResolving
24
30
  } = select(coreStore);
25
- return getUsers(AUTHORS_QUERY);
26
- }, []);
27
- if (!authorsList) {
28
- return null;
29
- }
30
- const options = authorsList.map(author => {
31
+ const query = {
32
+ ...AUTHORS_QUERY
33
+ };
34
+ if (filterValue) {
35
+ query.search = filterValue;
36
+ query.search_columns = ['name'];
37
+ }
31
38
  return {
32
- label: author.name,
33
- value: author.id
39
+ authors: getUsers(query),
40
+ isLoading: isResolving('getUsers', [query])
34
41
  };
35
- });
42
+ }, [filterValue]);
43
+ const options = useMemo(() => {
44
+ return (authors !== null && authors !== void 0 ? authors : []).map(author => {
45
+ return {
46
+ value: author.id,
47
+ label: decodeEntities(author.name)
48
+ };
49
+ });
50
+ }, [authors]);
36
51
  return /*#__PURE__*/_jsx(ComboboxControl, {
37
52
  __next40pxDefaultSize: true,
38
53
  __nextHasNoMarginBottom: true,
@@ -40,9 +55,9 @@ function UserControl({
40
55
  help: __('Select the avatar user to display, if it is blank it will use the post/page author.'),
41
56
  value: value,
42
57
  onChange: onChange,
43
- options: filteredAuthorsList || options,
44
- onFilterValueChange: inputValue => setFilteredAuthorsList(options.filter(option => option.label.toLowerCase().startsWith(inputValue.toLowerCase())))
58
+ options: options,
59
+ onFilterValueChange: debounce(setFilterValue, 300),
60
+ isLoading: isLoading
45
61
  });
46
62
  }
47
- export default UserControl;
48
63
  //# sourceMappingURL=user-control.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","ComboboxControl","useSelect","store","coreStore","useState","jsx","_jsx","AUTHORS_QUERY","who","per_page","_fields","context","UserControl","value","onChange","filteredAuthorsList","setFilteredAuthorsList","authorsList","select","getUsers","options","map","author","label","name","id","__next40pxDefaultSize","__nextHasNoMarginBottom","help","onFilterValueChange","inputValue","filter","option","toLowerCase","startsWith"],"sources":["@wordpress/block-library/src/avatar/user-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction UserControl( { value, onChange } ) {\n\tconst [ filteredAuthorsList, setFilteredAuthorsList ] = useState();\n\tconst authorsList = useSelect( ( select ) => {\n\t\tconst { getUsers } = select( coreStore );\n\t\treturn getUsers( AUTHORS_QUERY );\n\t}, [] );\n\tif ( ! authorsList ) {\n\t\treturn null;\n\t}\n\n\tconst options = authorsList.map( ( author ) => {\n\t\treturn {\n\t\t\tlabel: author.name,\n\t\t\tvalue: author.id,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'User' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Select the avatar user to display, if it is blank it will use the post/page author.'\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\toptions={ filteredAuthorsList || options }\n\t\t\tonFilterValueChange={ ( inputValue ) =>\n\t\t\t\tsetFilteredAuthorsList(\n\t\t\t\t\toptions.filter( ( option ) =>\n\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.startsWith( inputValue.toLowerCase() )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport default UserControl;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,QAAQ,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE9C,MAAMC,aAAa,GAAG;EACrBC,GAAG,EAAE,SAAS;EACdC,QAAQ,EAAE,CAAC,CAAC;EACZC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACV,CAAC;AAED,SAASC,WAAWA,CAAE;EAAEC,KAAK;EAAEC;AAAS,CAAC,EAAG;EAC3C,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAGZ,QAAQ,CAAC,CAAC;EAClE,MAAMa,WAAW,GAAGhB,SAAS,CAAIiB,MAAM,IAAM;IAC5C,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEf,SAAU,CAAC;IACxC,OAAOgB,QAAQ,CAAEZ,aAAc,CAAC;EACjC,CAAC,EAAE,EAAG,CAAC;EACP,IAAK,CAAEU,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,MAAMG,OAAO,GAAGH,WAAW,CAACI,GAAG,CAAIC,MAAM,IAAM;IAC9C,OAAO;MACNC,KAAK,EAAED,MAAM,CAACE,IAAI;MAClBX,KAAK,EAAES,MAAM,CAACG;IACf,CAAC;EACF,CAAE,CAAC;EAEH,oBACCnB,IAAA,CAACN,eAAe;IACf0B,qBAAqB;IACrBC,uBAAuB;IACvBJ,KAAK,EAAGxB,EAAE,CAAE,MAAO,CAAG;IACtB6B,IAAI,EAAG7B,EAAE,CACR,qFACD,CAAG;IACHc,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA,QAAU;IACrBM,OAAO,EAAGL,mBAAmB,IAAIK,OAAS;IAC1CS,mBAAmB,EAAKC,UAAU,IACjCd,sBAAsB,CACrBI,OAAO,CAACW,MAAM,CAAIC,MAAM,IACvBA,MAAM,CAACT,KAAK,CACVU,WAAW,CAAC,CAAC,CACbC,UAAU,CAAEJ,UAAU,CAACG,WAAW,CAAC,CAAE,CACxC,CACD;EACA,CACD,CAAC;AAEJ;AAEA,eAAerB,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["__","ComboboxControl","useSelect","store","coreStore","useMemo","useState","debounce","decodeEntities","jsx","_jsx","AUTHORS_QUERY","who","per_page","_fields","context","UserControl","value","onChange","filterValue","setFilterValue","authors","isLoading","select","getUsers","isResolving","query","search","search_columns","options","map","author","id","label","name","__next40pxDefaultSize","__nextHasNoMarginBottom","help","onFilterValueChange"],"sources":["@wordpress/block-library/src/avatar/user-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nexport default function UserControl( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst options = useMemo( () => {\n\t\treturn ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\t}, [ authors ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'User' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Select the avatar user to display, if it is blank it will use the post/page author.'\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\toptions={ options }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,cAAc,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,aAAa,GAAG;EACrBC,GAAG,EAAE,SAAS;EACdC,QAAQ,EAAE,GAAG;EACbC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACV,CAAC;AAED,eAAe,SAASC,WAAWA,CAAE;EAAEC,KAAK;EAAEC;AAAS,CAAC,EAAG;EAC1D,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAGd,QAAQ,CAAE,EAAG,CAAC;EACtD,MAAM;IAAEe,OAAO;IAAEC;EAAU,CAAC,GAAGpB,SAAS,CACrCqB,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC;IAAY,CAAC,GAAGF,MAAM,CAAEnB,SAAU,CAAC;IAErD,MAAMsB,KAAK,GAAG;MAAE,GAAGf;IAAc,CAAC;IAClC,IAAKQ,WAAW,EAAG;MAClBO,KAAK,CAACC,MAAM,GAAGR,WAAW;MAC1BO,KAAK,CAACE,cAAc,GAAG,CAAE,MAAM,CAAE;IAClC;IAEA,OAAO;MACNP,OAAO,EAAEG,QAAQ,CAAEE,KAAM,CAAC;MAC1BJ,SAAS,EAAEG,WAAW,CAAE,UAAU,EAAE,CAAEC,KAAK,CAAG;IAC/C,CAAC;EACF,CAAC,EACD,CAAEP,WAAW,CACd,CAAC;EAED,MAAMU,OAAO,GAAGxB,OAAO,CAAE,MAAM;IAC9B,OAAO,CAAEgB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE,EAAGS,GAAG,CAAIC,MAAM,IAAM;MAC3C,OAAO;QACNd,KAAK,EAAEc,MAAM,CAACC,EAAE;QAChBC,KAAK,EAAEzB,cAAc,CAAEuB,MAAM,CAACG,IAAK;MACpC,CAAC;IACF,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEb,OAAO,CAAG,CAAC;EAEhB,oBACCX,IAAA,CAACT,eAAe;IACfkC,qBAAqB;IACrBC,uBAAuB;IACvBH,KAAK,EAAGjC,EAAE,CAAE,MAAO,CAAG;IACtBqC,IAAI,EAAGrC,EAAE,CACR,qFACD,CAAG;IACHiB,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA,QAAU;IACrBW,OAAO,EAAGA,OAAS;IACnBS,mBAAmB,EAAG/B,QAAQ,CAAEa,cAAc,EAAE,GAAI,CAAG;IACvDE,SAAS,EAAGA;EAAW,CACvB,CAAC;AAEJ","ignoreList":[]}
@@ -10,6 +10,7 @@ import { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';
10
10
  import { getUpdatedLinkAttributes } from './get-updated-link-attributes';
11
11
  import removeAnchorTag from '../utils/remove-anchor-tag';
12
12
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
13
+ import { unlock } from '../lock-unlock';
13
14
 
14
15
  /**
15
16
  * WordPress dependencies
@@ -17,13 +18,16 @@ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
17
18
  import { __, sprintf } from '@wordpress/i18n';
18
19
  import { useEffect, useState, useRef, useMemo, createInterpolateElement } from '@wordpress/element';
19
20
  import { TextControl, ToolbarButton, Popover, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption } from '@wordpress/components';
20
- import { AlignmentControl, BlockControls, InspectorControls, RichText, useBlockProps, LinkControl, __experimentalUseBorderProps as useBorderProps, __experimentalUseColorProps as useColorProps, __experimentalGetSpacingClassesAndStyles as useSpacingProps, __experimentalGetShadowClassesAndStyles as useShadowProps, __experimentalGetElementClassName, store as blockEditorStore, useBlockEditingMode, getTypographyClassesAndStyles as useTypographyProps, useSettings } from '@wordpress/block-editor';
21
+ import { AlignmentControl, BlockControls, InspectorControls, RichText, useBlockProps, LinkControl, __experimentalUseBorderProps as useBorderProps, __experimentalUseColorProps as useColorProps, __experimentalGetSpacingClassesAndStyles as useSpacingProps, __experimentalGetShadowClassesAndStyles as useShadowProps, __experimentalGetElementClassName, store as blockEditorStore, useBlockEditingMode, getTypographyClassesAndStyles as useTypographyProps, useSettings, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
21
22
  import { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';
22
23
  import { link, linkOff } from '@wordpress/icons';
23
24
  import { createBlock, cloneBlock, getDefaultBlockName, getBlockBindingsSource } from '@wordpress/blocks';
24
25
  import { useMergeRefs, useRefEffect } from '@wordpress/compose';
25
26
  import { useSelect, useDispatch } from '@wordpress/data';
26
27
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
28
+ const {
29
+ HTMLElementControl
30
+ } = unlock(blockEditorPrivateApis);
27
31
  const LINK_SETTINGS = [...LinkControl.DEFAULT_LINK_SETTINGS, {
28
32
  id: 'nofollow',
29
33
  title: __('Mark as nofollow')
@@ -245,6 +249,8 @@ function ButtonEdit(props) {
245
249
  wideSize: layout?.wideSize
246
250
  }
247
251
  });
252
+ const hasNonContentControls = blockEditingMode === 'default';
253
+ const hasBlockControls = hasNonContentControls || isLinkTag && !lockUrlControls;
248
254
  return /*#__PURE__*/_jsxs(_Fragment, {
249
255
  children: [/*#__PURE__*/_jsx("div", {
250
256
  ...blockProps,
@@ -279,28 +285,22 @@ function ButtonEdit(props) {
279
285
  onMerge: mergeBlocks,
280
286
  identifier: "text"
281
287
  })
282
- }), /*#__PURE__*/_jsxs(BlockControls, {
288
+ }), hasBlockControls && /*#__PURE__*/_jsxs(BlockControls, {
283
289
  group: "block",
284
- children: [blockEditingMode === 'default' && /*#__PURE__*/_jsx(AlignmentControl, {
290
+ children: [hasNonContentControls && /*#__PURE__*/_jsx(AlignmentControl, {
285
291
  value: textAlign,
286
292
  onChange: nextAlign => {
287
293
  setAttributes({
288
294
  textAlign: nextAlign
289
295
  });
290
296
  }
291
- }), !isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/_jsx(ToolbarButton, {
297
+ }), isLinkTag && !lockUrlControls && /*#__PURE__*/_jsx(ToolbarButton, {
292
298
  name: "link",
293
- icon: link,
294
- title: __('Link'),
295
- shortcut: displayShortcut.primary('k'),
296
- onClick: startEditing
297
- }), isURLSet && isLinkTag && !lockUrlControls && /*#__PURE__*/_jsx(ToolbarButton, {
298
- name: "link",
299
- icon: linkOff,
300
- title: __('Unlink'),
301
- shortcut: displayShortcut.primaryShift('k'),
302
- onClick: unlink,
303
- isActive: true
299
+ icon: !isURLSet ? link : linkOff,
300
+ title: !isURLSet ? __('Link') : __('Unlink'),
301
+ shortcut: !isURLSet ? displayShortcut.primary('k') : displayShortcut.primaryShift('k'),
302
+ onClick: !isURLSet ? startEditing : unlink,
303
+ isActive: isURLSet
304
304
  })]
305
305
  }), isLinkTag && isSelected && (isEditingURL || isURLSet) && !lockUrlControls && /*#__PURE__*/_jsx(Popover, {
306
306
  placement: "bottom",
@@ -339,9 +339,21 @@ function ButtonEdit(props) {
339
339
  selectedWidth: width,
340
340
  setAttributes: setAttributes
341
341
  })
342
- }), /*#__PURE__*/_jsx(InspectorControls, {
342
+ }), /*#__PURE__*/_jsxs(InspectorControls, {
343
343
  group: "advanced",
344
- children: isLinkTag && /*#__PURE__*/_jsx(TextControl, {
344
+ children: [/*#__PURE__*/_jsx(HTMLElementControl, {
345
+ tagName: tagName,
346
+ onChange: value => setAttributes({
347
+ tagName: value
348
+ }),
349
+ options: [{
350
+ label: __('Default (<a>)'),
351
+ value: 'a'
352
+ }, {
353
+ label: '<button>',
354
+ value: 'button'
355
+ }]
356
+ }), isLinkTag && /*#__PURE__*/_jsx(TextControl, {
345
357
  __next40pxDefaultSize: true,
346
358
  __nextHasNoMarginBottom: true,
347
359
  label: __('Link rel'),
@@ -349,7 +361,7 @@ function ButtonEdit(props) {
349
361
  onChange: newRel => setAttributes({
350
362
  rel: newRel
351
363
  })
352
- })
364
+ })]
353
365
  })]
354
366
  });
355
367
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","NEW_TAB_TARGET","NOFOLLOW_REL","getUpdatedLinkAttributes","removeAnchorTag","useToolsPanelDropdownMenuProps","__","sprintf","useEffect","useState","useRef","useMemo","createInterpolateElement","TextControl","ToolbarButton","Popover","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","LinkControl","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalGetShadowClassesAndStyles","useShadowProps","__experimentalGetElementClassName","store","blockEditorStore","useBlockEditingMode","getTypographyClassesAndStyles","useTypographyProps","useSettings","displayShortcut","isKeyboardEvent","ENTER","link","linkOff","createBlock","cloneBlock","getDefaultBlockName","getBlockBindingsSource","useMergeRefs","useRefEffect","useSelect","useDispatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","LINK_SETTINGS","DEFAULT_LINK_SETTINGS","id","title","useEnter","props","replaceBlocks","selectionChange","getBlock","getBlockRootClientId","getBlockIndex","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","innerBlocks","slice","middle","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","dropdownMenuProps","label","resetAll","width","undefined","children","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","value","onChange","newWidth","isBlock","__next40pxDefaultSize","map","widthValue","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","context","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","shadowProps","ref","blockProps","blockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","nofollow","includes","isLinkTag","createPageEntity","userCanCreatePages","lockUrlControls","select","_settings","getSettings","blockBindingsSource","bindings","source","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","canUserEditValue","args","handleCreate","pageTitle","page","status","type","rendered","kind","createButtonText","searchTerm","mark","linkValue","useEnterRef","mergedRef","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","withoutInteractiveFormatting","border","radius","fontSize","writingMode","onMerge","identifier","group","nextAlign","name","icon","shortcut","onClick","isActive","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","newURL","newOpensInNewTab","newNofollow","onRemove","forceIsEditingLink","settings","createSuggestion","withCreateSuggestion","createSuggestionButtonText","newRel"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tLinkControl,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tgetBlockBindingsSource,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => setAttributes( { width: undefined } ) }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! selectedWidth }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t<ToggleGroupControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tvalue={ selectedWidth }\n\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tisBlock\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t>\n\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\tvalue={ widthValue }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: Percentage value. */\n\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\twidthValue\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</ToggleGroupControl>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t\tcontext,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\ttextAlign,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\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\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tconst {\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tlockUrlControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst _settings = select( blockEditorStore ).getSettings();\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSelected, metadata?.bindings?.url ]\n\t);\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst [ fluidTypographySettings, layout ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout'\n\t);\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\ttypographyProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\t\t\t\tblockProps.style.fontSize,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t\t...typographyProps.style,\n\t\t\t\t\t\twritingMode: undefined,\n\t\t\t\t\t} }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t\tcreateSuggestion={\n\t\t\t\t\t\t\t\tcreatePageEntity && handleCreate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","NEW_TAB_TARGET","NOFOLLOW_REL","getUpdatedLinkAttributes","removeAnchorTag","useToolsPanelDropdownMenuProps","unlock","__","sprintf","useEffect","useState","useRef","useMemo","createInterpolateElement","TextControl","ToolbarButton","Popover","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","LinkControl","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalGetShadowClassesAndStyles","useShadowProps","__experimentalGetElementClassName","store","blockEditorStore","useBlockEditingMode","getTypographyClassesAndStyles","useTypographyProps","useSettings","privateApis","blockEditorPrivateApis","displayShortcut","isKeyboardEvent","ENTER","link","linkOff","createBlock","cloneBlock","getDefaultBlockName","getBlockBindingsSource","useMergeRefs","useRefEffect","useSelect","useDispatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HTMLElementControl","LINK_SETTINGS","DEFAULT_LINK_SETTINGS","id","title","useEnter","props","replaceBlocks","selectionChange","getBlock","getBlockRootClientId","getBlockIndex","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","innerBlocks","slice","middle","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","dropdownMenuProps","label","resetAll","width","undefined","children","isShownByDefault","hasValue","onDeselect","__nextHasNoMarginBottom","value","onChange","newWidth","isBlock","__next40pxDefaultSize","map","widthValue","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","context","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","shadowProps","ref","blockProps","blockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","nofollow","includes","isLinkTag","createPageEntity","userCanCreatePages","lockUrlControls","select","_settings","getSettings","blockBindingsSource","bindings","source","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","canUserEditValue","args","handleCreate","pageTitle","page","status","type","rendered","kind","createButtonText","searchTerm","mark","linkValue","useEnterRef","mergedRef","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","hasNonContentControls","hasBlockControls","withoutInteractiveFormatting","border","radius","fontSize","writingMode","onMerge","identifier","group","nextAlign","name","icon","shortcut","onClick","isActive","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","newURL","newOpensInNewTab","newNofollow","onRemove","forceIsEditingLink","settings","createSuggestion","withCreateSuggestion","createSuggestionButtonText","options","newRel"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tLinkControl,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tgetBlockBindingsSource,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => setAttributes( { width: undefined } ) }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! selectedWidth }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t>\n\t\t\t\t<ToggleGroupControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tvalue={ selectedWidth }\n\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tisBlock\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t>\n\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\tvalue={ widthValue }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: Percentage value. */\n\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\twidthValue\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</ToggleGroupControl>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t\tcontext,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\ttextAlign,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\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\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tconst {\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tlockUrlControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst _settings = select( blockEditorStore ).getSettings();\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSelected, metadata?.bindings?.url ]\n\t);\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst [ fluidTypographySettings, layout ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout'\n\t);\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst hasBlockControls =\n\t\thasNonContentControls || ( isLinkTag && ! lockUrlControls );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\ttypographyProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\t\t\t\tblockProps.style.fontSize,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t\t...typographyProps.style,\n\t\t\t\t\t\twritingMode: undefined,\n\t\t\t\t\t} }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ hasNonContentControls && (\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\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{ isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ ! isURLSet ? link : linkOff }\n\t\t\t\t\t\t\ttitle={ ! isURLSet ? __( 'Link' ) : __( 'Unlink' ) }\n\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t! isURLSet\n\t\t\t\t\t\t\t\t\t? displayShortcut.primary( 'k' )\n\t\t\t\t\t\t\t\t\t: displayShortcut.primaryShift( 'k' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ ! isURLSet ? startEditing : unlink }\n\t\t\t\t\t\t\tisActive={ isURLSet }\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{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t\tcreateSuggestion={\n\t\t\t\t\t\t\t\tcreatePageEntity && handleCreate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<a>)' ), value: 'a' },\n\t\t\t\t\t\t{ label: '<button>', value: 'button' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -109,33 +109,29 @@ function ColumnInspectorControls({
109
109
  return /*#__PURE__*/_jsxs(ToolsPanel, {
110
110
  label: __('Settings'),
111
111
  resetAll: () => {
112
- updateColumns(count, minCount);
113
112
  setAttributes({
114
113
  isStackedOnMobile: true
115
114
  });
116
115
  },
117
116
  dropdownMenuProps: dropdownMenuProps,
118
- children: [canInsertColumnBlock && /*#__PURE__*/_jsx(ToolsPanelItem, {
119
- label: __('Columns'),
120
- isShownByDefault: true,
121
- hasValue: () => count,
122
- onDeselect: () => updateColumns(count, minCount),
123
- children: /*#__PURE__*/_jsxs(VStack, {
124
- spacing: 4,
125
- children: [/*#__PURE__*/_jsx(RangeControl, {
126
- __nextHasNoMarginBottom: true,
127
- __next40pxDefaultSize: true,
128
- label: __('Columns'),
129
- value: count,
130
- onChange: value => updateColumns(count, Math.max(minCount, value)),
131
- min: Math.max(1, minCount),
132
- max: Math.max(6, count)
133
- }), count > 6 && /*#__PURE__*/_jsx(Notice, {
134
- status: "warning",
135
- isDismissible: false,
136
- children: __('This column count exceeds the recommended amount and may cause visual breakage.')
137
- })]
138
- })
117
+ children: [canInsertColumnBlock && /*#__PURE__*/_jsxs(VStack, {
118
+ spacing: 4,
119
+ style: {
120
+ gridColumn: '1 / -1'
121
+ },
122
+ children: [/*#__PURE__*/_jsx(RangeControl, {
123
+ __nextHasNoMarginBottom: true,
124
+ __next40pxDefaultSize: true,
125
+ label: __('Columns'),
126
+ value: count,
127
+ onChange: value => updateColumns(count, Math.max(minCount, value)),
128
+ min: Math.max(1, minCount),
129
+ max: Math.max(6, count)
130
+ }), count > 6 && /*#__PURE__*/_jsx(Notice, {
131
+ status: "warning",
132
+ isDismissible: false,
133
+ children: __('This column count exceeds the recommended amount and may cause visual breakage.')
134
+ })]
139
135
  }), /*#__PURE__*/_jsx(ToolsPanelItem, {
140
136
  label: __('Stack on mobile'),
141
137
  isShownByDefault: true,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","Notice","RangeControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","useDispatch","useSelect","useRegistry","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_BLOCK","name","ColumnInspectorControls","clientId","setAttributes","isStackedOnMobile","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlockOrder","blockOrder","preventRemovalBlockIndexes","reduce","acc","blockId","index","push","length","Math","max","getBlocks","replaceInnerBlocks","updateColumns","previousColumns","newColumns","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","newlyAddedColumns","widths","Array","from","map","width","slice","dropdownMenuProps","label","resetAll","children","isShownByDefault","hasValue","onDeselect","spacing","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","min","status","isDismissible","checked","ColumnsEditContainer","attributes","verticalAlignment","templateLock","registry","updateBlockAttributes","classes","blockProps","className","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","updateAlignment","newVerticalAlignment","innerBlockClientIds","batch","Placeholder","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","instructions","onSelect","nextVariation","allowSkip","ColumnsEdit","props","hasInnerBlocks","Component"],"sources":["@wordpress/block-library/src/columns/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/column',\n};\n\nfunction ColumnInspectorControls( {\n\tclientId,\n\tsetAttributes,\n\tisStackedOnMobile,\n} ) {\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, canRemoveBlock, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = blockOrder.reduce(\n\t\t\t\t( acc, blockId, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( blockId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: blockOrder.length,\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Updates the column count, including necessary revisions to child Column\n\t * blocks to grant required or redistribute available space.\n\t *\n\t * @param {number} previousColumns Previous column count.\n\t * @param {number} newColumns New column count.\n\t */\n\tfunction updateColumns( previousColumns, newColumns ) {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t// Redistribute available width for existing inner blocks.\n\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\t\t\tconst newlyAddedColumns = newColumns - previousColumns;\n\n\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t// constraining the available working width.\n\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\tinnerBlocks,\n\t\t\t\t100 - newColumnWidth * newlyAddedColumns\n\t\t\t);\n\n\t\t\tinnerBlocks = [\n\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newlyAddedColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( isAddingColumn ) {\n\t\t\tinnerBlocks = [\n\t\t\t\t...innerBlocks,\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t0,\n\t\t\t\t-( previousColumns - newColumns )\n\t\t\t);\n\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\tconst widths = getRedistributedColumnWidths( innerBlocks, 100 );\n\n\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t}\n\t\t}\n\n\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t}\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tupdateColumns( count, minCount );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => count }\n\t\t\t\t\tonDeselect={ () => updateColumns( count, minCount ) }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 4 }>\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={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateColumns(\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tMath.max( minCount, value )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => isStackedOnMobile !== true }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnsEditContainer( { attributes, setAttributes, clientId } ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst classes = clsx( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\t/**\n\t * Update all child Column blocks with a new vertical alignment setting\n\t * based on whatever alignment is passed in. This allows change to parent\n\t * to override anything set on a individual column basis.\n\t *\n\t * @param {string} newVerticalAlignment The vertical alignment setting.\n\t */\n\tfunction updateAlignment( newVerticalAlignment ) {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Update own and child Column block vertical alignments.\n\t\t// This is a single action; the batching prevents creating multiple history records.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { verticalAlignment: newVerticalAlignment } );\n\t\t\tupdateBlockAttributes( innerBlockClientIds, {\n\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tinstructions={ __( 'Divide into columns. Select a layout:' ) }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? ColumnsEditContainer : Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SACCC,MAAM,EACNC,YAAY,EACZC,aAAa,EACbC,wBAAwB,IAAIC,UAAU,EACtCC,4BAA4B,IAAIC,cAAc,EAC9CC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAE9B,SACCC,iBAAiB,EACjBC,mBAAmB,EACnBC,aAAa,EACbC,6BAA6B,EAC7BC,kCAAkC,EAClCC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,WAAW,EAAEC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACrE,SACCC,WAAW,EACXC,mCAAmC,EACnCN,KAAK,IAAIO,WAAW,QACd,mBAAmB;;AAE1B;AACA;AACA;AACA,SACCC,8BAA8B,EAC9BC,qBAAqB,EACrBC,4BAA4B,EAC5BC,gBAAgB,QACV,SAAS;AAChB,SAASC,8BAA8B,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEhE,MAAMC,aAAa,GAAG;EACrBC,IAAI,EAAE;AACP,CAAC;AAED,SAASC,uBAAuBA,CAAE;EACjCC,QAAQ;EACRC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,KAAK;IAAEC,oBAAoB;IAAEC;EAAS,CAAC,GAAGxB,SAAS,CACxDyB,MAAM,IAAM;IACb,MAAM;MAAEC,kBAAkB;MAAEC,cAAc;MAAEC;IAAc,CAAC,GAC1DH,MAAM,CAAE3B,gBAAiB,CAAC;IAC3B,MAAM+B,UAAU,GAAGD,aAAa,CAAET,QAAS,CAAC;;IAE5C;IACA;IACA,MAAMW,0BAA0B,GAAGD,UAAU,CAACE,MAAM,CACnD,CAAEC,GAAG,EAAEC,OAAO,EAAEC,KAAK,KAAM;MAC1B,IAAK,CAAEP,cAAc,CAAEM,OAAQ,CAAC,EAAG;QAClCD,GAAG,CAACG,IAAI,CAAED,KAAM,CAAC;MAClB;MACA,OAAOF,GAAG;IACX,CAAC,EACD,EACD,CAAC;IAED,OAAO;MACNV,KAAK,EAAEO,UAAU,CAACO,MAAM;MACxBb,oBAAoB,EAAEG,kBAAkB,CACvC,aAAa,EACbP,QACD,CAAC;MACDK,QAAQ,EAAEa,IAAI,CAACC,GAAG,CAAE,GAAGR,0BAA2B,CAAC,GAAG;IACvD,CAAC;EACF,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EACD,MAAM;IAAEoB;EAAU,CAAC,GAAGvC,SAAS,CAAEF,gBAAiB,CAAC;EACnD,MAAM;IAAE0C;EAAmB,CAAC,GAAGzC,WAAW,CAAED,gBAAiB,CAAC;;EAE9D;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAAS2C,aAAaA,CAAEC,eAAe,EAAEC,UAAU,EAAG;IACrD,IAAIC,WAAW,GAAGL,SAAS,CAAEpB,QAAS,CAAC;IACvC,MAAM0B,iBAAiB,GAAGxC,8BAA8B,CAAEuC,WAAY,CAAC;;IAEvE;IACA,MAAME,cAAc,GAAGH,UAAU,GAAGD,eAAe;IAEnD,IAAKI,cAAc,IAAID,iBAAiB,EAAG;MAC1C;MACA;MACA,MAAME,cAAc,GAAGvC,gBAAgB,CAAE,GAAG,GAAGmC,UAAW,CAAC;MAC3D,MAAMK,iBAAiB,GAAGL,UAAU,GAAGD,eAAe;;MAEtD;MACA;MACA,MAAMO,MAAM,GAAG1C,4BAA4B,CAC1CqC,WAAW,EACX,GAAG,GAAGG,cAAc,GAAGC,iBACxB,CAAC;MAEDJ,WAAW,GAAG,CACb,GAAGtC,qBAAqB,CAAEsC,WAAW,EAAEK,MAAO,CAAC,EAC/C,GAAGC,KAAK,CAACC,IAAI,CAAE;QACdf,MAAM,EAAEY;MACT,CAAE,CAAC,CAACI,GAAG,CAAE,MAAM;QACd,OAAOlD,WAAW,CAAE,aAAa,EAAE;UAClCmD,KAAK,EAAE,GAAIN,cAAc;QAC1B,CAAE,CAAC;MACJ,CAAE,CAAC,CACH;IACF,CAAC,MAAM,IAAKD,cAAc,EAAG;MAC5BF,WAAW,GAAG,CACb,GAAGA,WAAW,EACd,GAAGM,KAAK,CAACC,IAAI,CAAE;QACdf,MAAM,EAAEO,UAAU,GAAGD;MACtB,CAAE,CAAC,CAACU,GAAG,CAAE,MAAM;QACd,OAAOlD,WAAW,CAAE,aAAc,CAAC;MACpC,CAAE,CAAC,CACH;IACF,CAAC,MAAM,IAAKyC,UAAU,GAAGD,eAAe,EAAG;MAC1C;MACAE,WAAW,GAAGA,WAAW,CAACU,KAAK,CAC9B,CAAC,EACD,EAAGZ,eAAe,GAAGC,UAAU,CAChC,CAAC;MACD,IAAKE,iBAAiB,EAAG;QACxB;QACA,MAAMI,MAAM,GAAG1C,4BAA4B,CAAEqC,WAAW,EAAE,GAAI,CAAC;QAE/DA,WAAW,GAAGtC,qBAAqB,CAAEsC,WAAW,EAAEK,MAAO,CAAC;MAC3D;IACD;IAEAT,kBAAkB,CAAErB,QAAQ,EAAEyB,WAAY,CAAC;EAC5C;EAEA,MAAMW,iBAAiB,GAAG9C,8BAA8B,CAAC,CAAC;EAE1D,oBACCI,KAAA,CAAC3B,UAAU;IACVsE,KAAK,EAAG3E,EAAE,CAAE,UAAW,CAAG;IAC1B4E,QAAQ,EAAGA,CAAA,KAAM;MAChBhB,aAAa,CAAEnB,KAAK,EAAEE,QAAS,CAAC;MAChCJ,aAAa,CAAE;QACdC,iBAAiB,EAAE;MACpB,CAAE,CAAC;IACJ,CAAG;IACHkC,iBAAiB,EAAGA,iBAAmB;IAAAG,QAAA,GAErCnC,oBAAoB,iBACrBZ,IAAA,CAACvB,cAAc;MACdoE,KAAK,EAAG3E,EAAE,CAAE,SAAU,CAAG;MACzB8E,gBAAgB;MAChBC,QAAQ,EAAGA,CAAA,KAAMtC,KAAO;MACxBuC,UAAU,EAAGA,CAAA,KAAMpB,aAAa,CAAEnB,KAAK,EAAEE,QAAS,CAAG;MAAAkC,QAAA,eAErD7C,KAAA,CAACvB,MAAM;QAACwE,OAAO,EAAG,CAAG;QAAAJ,QAAA,gBACpB/C,IAAA,CAAC5B,YAAY;UACZgF,uBAAuB;UACvBC,qBAAqB;UACrBR,KAAK,EAAG3E,EAAE,CAAE,SAAU,CAAG;UACzBoF,KAAK,EAAG3C,KAAO;UACf4C,QAAQ,EAAKD,KAAK,IACjBxB,aAAa,CACZnB,KAAK,EACLe,IAAI,CAACC,GAAG,CAAEd,QAAQ,EAAEyC,KAAM,CAC3B,CACA;UACDE,GAAG,EAAG9B,IAAI,CAACC,GAAG,CAAE,CAAC,EAAEd,QAAS,CAAG;UAC/Bc,GAAG,EAAGD,IAAI,CAACC,GAAG,CAAE,CAAC,EAAEhB,KAAM;QAAG,CAC5B,CAAC,EACAA,KAAK,GAAG,CAAC,iBACVX,IAAA,CAAC7B,MAAM;UAACsF,MAAM,EAAC,SAAS;UAACC,aAAa,EAAG,KAAO;UAAAX,QAAA,EAC7C7E,EAAE,CACH,iFACD;QAAC,CACM,CACR;MAAA,CACM;IAAC,CACM,CAChB,eACD8B,IAAA,CAACvB,cAAc;MACdoE,KAAK,EAAG3E,EAAE,CAAE,iBAAkB,CAAG;MACjC8E,gBAAgB;MAChBC,QAAQ,EAAGA,CAAA,KAAMvC,iBAAiB,KAAK,IAAM;MAC7CwC,UAAU,EAAGA,CAAA,KACZzC,aAAa,CAAE;QACdC,iBAAiB,EAAE;MACpB,CAAE,CACF;MAAAqC,QAAA,eAED/C,IAAA,CAAC3B,aAAa;QACb+E,uBAAuB;QACvBP,KAAK,EAAG3E,EAAE,CAAE,iBAAkB,CAAG;QACjCyF,OAAO,EAAGjD,iBAAmB;QAC7B6C,QAAQ,EAAGA,CAAA,KACV9C,aAAa,CAAE;UACdC,iBAAiB,EAAE,CAAEA;QACtB,CAAE;MACF,CACD;IAAC,CACa,CAAC;EAAA,CACN,CAAC;AAEf;AAEA,SAASkD,oBAAoBA,CAAE;EAAEC,UAAU;EAAEpD,aAAa;EAAED;AAAS,CAAC,EAAG;EACxE,MAAM;IAAEE,iBAAiB;IAAEoD,iBAAiB;IAAEC;EAAa,CAAC,GAAGF,UAAU;EACzE,MAAMG,QAAQ,GAAG1E,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAE2B;EAAc,CAAC,GAAG5B,SAAS,CAAEF,gBAAiB,CAAC;EACvD,MAAM;IAAE8E;EAAsB,CAAC,GAAG7E,WAAW,CAAED,gBAAiB,CAAC;EAEjE,MAAM+E,OAAO,GAAGjG,IAAI,CAAE;IACrB,CAAE,0BAA2B6F,iBAAiB,EAAG,GAAIA,iBAAiB;IACtE,CAAE,0BAA0B,GAAI,CAAEpD;EACnC,CAAE,CAAC;EAEH,MAAMyD,UAAU,GAAGlF,aAAa,CAAE;IACjCmF,SAAS,EAAEF;EACZ,CAAE,CAAC;EACH,MAAMG,gBAAgB,GAAGxF,mBAAmB,CAAEsF,UAAU,EAAE;IACzDG,YAAY,EAAEjE,aAAa;IAC3BkE,YAAY,EAAE,IAAI;IAClBC,WAAW,EAAE,YAAY;IACzBC,cAAc,EAAE,KAAK;IACrBV;EACD,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;AACA;EACC,SAASW,eAAeA,CAAEC,oBAAoB,EAAG;IAChD,MAAMC,mBAAmB,GAAG3D,aAAa,CAAET,QAAS,CAAC;;IAErD;IACA;IACAwD,QAAQ,CAACa,KAAK,CAAE,MAAM;MACrBpE,aAAa,CAAE;QAAEqD,iBAAiB,EAAEa;MAAqB,CAAE,CAAC;MAC5DV,qBAAqB,CAAEW,mBAAmB,EAAE;QAC3Cd,iBAAiB,EAAEa;MACpB,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ;EAEA,oBACCzE,KAAA,CAAAE,SAAA;IAAA2C,QAAA,gBACC/C,IAAA,CAAClB,aAAa;MAAAiE,QAAA,eACb/C,IAAA,CAACjB,6BAA6B;QAC7BwE,QAAQ,EAAGmB,eAAiB;QAC5BpB,KAAK,EAAGQ;MAAmB,CAC3B;IAAC,CACY,CAAC,eAChB9D,IAAA,CAACpB,iBAAiB;MAAAmE,QAAA,eACjB/C,IAAA,CAACO,uBAAuB;QACvBC,QAAQ,EAAGA,QAAU;QACrBC,aAAa,EAAGA,aAAe;QAC/BC,iBAAiB,EAAGA;MAAmB,CACvC;IAAC,CACgB,CAAC,eACpBV,IAAA;MAAA,GAAUqE;IAAgB,CAAI,CAAC;EAAA,CAC9B,CAAC;AAEL;AAEA,SAASS,WAAWA,CAAE;EAAEtE,QAAQ;EAAEF,IAAI;EAAEG;AAAc,CAAC,EAAG;EACzD,MAAM;IAAEsE,SAAS;IAAEC,gBAAgB;IAAEC;EAAW,CAAC,GAAG5F,SAAS,CAC1DyB,MAAM,IAAM;IACb,MAAM;MACLoE,kBAAkB;MAClBC,YAAY;MACZC;IACD,CAAC,GAAGtE,MAAM,CAAErB,WAAY,CAAC;IAEzB,OAAO;MACNsF,SAAS,EAAEI,YAAY,CAAE7E,IAAK,CAAC;MAC/B0E,gBAAgB,EAAEI,wBAAwB,CAAE9E,IAAI,EAAE,OAAQ,CAAC;MAC3D2E,UAAU,EAAEC,kBAAkB,CAAE5E,IAAI,EAAE,OAAQ;IAC/C,CAAC;EACF,CAAC,EACD,CAAEA,IAAI,CACP,CAAC;EACD,MAAM;IAAEuB;EAAmB,CAAC,GAAGzC,WAAW,CAAED,gBAAiB,CAAC;EAC9D,MAAMgF,UAAU,GAAGlF,aAAa,CAAC,CAAC;EAElC,oBACCe,IAAA;IAAA,GAAUmE,UAAU;IAAApB,QAAA,eACnB/C,IAAA,CAAChB,kCAAkC;MAClCqG,IAAI,EAAGN,SAAS,EAAEM,IAAI,EAAEC,GAAK;MAC7BzC,KAAK,EAAGkC,SAAS,EAAEQ,KAAO;MAC1BN,UAAU,EAAGA,UAAY;MACzBO,YAAY,EAAGtH,EAAE,CAAE,uCAAwC,CAAG;MAC9DuH,QAAQ,EAAGA,CAAEC,aAAa,GAAGV,gBAAgB,KAAM;QAClD,IAAKU,aAAa,CAAC7B,UAAU,EAAG;UAC/BpD,aAAa,CAAEiF,aAAa,CAAC7B,UAAW,CAAC;QAC1C;QACA,IAAK6B,aAAa,CAACzD,WAAW,EAAG;UAChCJ,kBAAkB,CACjBrB,QAAQ,EACRhB,mCAAmC,CAClCkG,aAAa,CAACzD,WACf,CAAC,EACD,IACD,CAAC;QACF;MACD,CAAG;MACH0D,SAAS;IAAA,CACT;EAAC,CACE,CAAC;AAER;AAEA,MAAMC,WAAW,GAAKC,KAAK,IAAM;EAChC,MAAM;IAAErF;EAAS,CAAC,GAAGqF,KAAK;EAC1B,MAAMC,cAAc,GAAGzG,SAAS,CAC7ByB,MAAM,IACPA,MAAM,CAAE3B,gBAAiB,CAAC,CAACyC,SAAS,CAAEpB,QAAS,CAAC,CAACiB,MAAM,GAAG,CAAC,EAC5D,CAAEjB,QAAQ,CACX,CAAC;EACD,MAAMuF,SAAS,GAAGD,cAAc,GAAGlC,oBAAoB,GAAGkB,WAAW;EAErE,oBAAO9E,IAAA,CAAC+F,SAAS;IAAA,GAAMF;EAAK,CAAI,CAAC;AAClC,CAAC;AAED,eAAeD,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","Notice","RangeControl","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalVStack","VStack","InspectorControls","useInnerBlocksProps","BlockControls","BlockVerticalAlignmentToolbar","__experimentalBlockVariationPicker","useBlockProps","store","blockEditorStore","useDispatch","useSelect","useRegistry","createBlock","createBlocksFromInnerBlocksTemplate","blocksStore","hasExplicitPercentColumnWidths","getMappedColumnWidths","getRedistributedColumnWidths","toWidthPrecision","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_BLOCK","name","ColumnInspectorControls","clientId","setAttributes","isStackedOnMobile","count","canInsertColumnBlock","minCount","select","canInsertBlockType","canRemoveBlock","getBlockOrder","blockOrder","preventRemovalBlockIndexes","reduce","acc","blockId","index","push","length","Math","max","getBlocks","replaceInnerBlocks","updateColumns","previousColumns","newColumns","innerBlocks","hasExplicitWidths","isAddingColumn","newColumnWidth","newlyAddedColumns","widths","Array","from","map","width","slice","dropdownMenuProps","label","resetAll","children","spacing","style","gridColumn","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","min","status","isDismissible","isShownByDefault","hasValue","onDeselect","checked","ColumnsEditContainer","attributes","verticalAlignment","templateLock","registry","updateBlockAttributes","classes","blockProps","className","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","updateAlignment","newVerticalAlignment","innerBlockClientIds","batch","Placeholder","blockType","defaultVariation","variations","getBlockVariations","getBlockType","getDefaultBlockVariation","icon","src","title","instructions","onSelect","nextVariation","allowSkip","ColumnsEdit","props","hasInnerBlocks","Component"],"sources":["@wordpress/block-library/src/columns/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/column',\n};\n\nfunction ColumnInspectorControls( {\n\tclientId,\n\tsetAttributes,\n\tisStackedOnMobile,\n} ) {\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, canRemoveBlock, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = blockOrder.reduce(\n\t\t\t\t( acc, blockId, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( blockId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: blockOrder.length,\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Updates the column count, including necessary revisions to child Column\n\t * blocks to grant required or redistribute available space.\n\t *\n\t * @param {number} previousColumns Previous column count.\n\t * @param {number} newColumns New column count.\n\t */\n\tfunction updateColumns( previousColumns, newColumns ) {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t// Redistribute available width for existing inner blocks.\n\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\t\t\tconst newlyAddedColumns = newColumns - previousColumns;\n\n\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t// constraining the available working width.\n\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\tinnerBlocks,\n\t\t\t\t100 - newColumnWidth * newlyAddedColumns\n\t\t\t);\n\n\t\t\tinnerBlocks = [\n\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newlyAddedColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( isAddingColumn ) {\n\t\t\tinnerBlocks = [\n\t\t\t\t...innerBlocks,\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t0,\n\t\t\t\t-( previousColumns - newColumns )\n\t\t\t);\n\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\tconst widths = getRedistributedColumnWidths( innerBlocks, 100 );\n\n\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t}\n\t\t}\n\n\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t}\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<VStack spacing={ 4 } style={ { gridColumn: '1 / -1' } }>\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={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tupdateColumns( count, Math.max( minCount, value ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => isStackedOnMobile !== true }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnsEditContainer( { attributes, setAttributes, clientId } ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst classes = clsx( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\t/**\n\t * Update all child Column blocks with a new vertical alignment setting\n\t * based on whatever alignment is passed in. This allows change to parent\n\t * to override anything set on a individual column basis.\n\t *\n\t * @param {string} newVerticalAlignment The vertical alignment setting.\n\t */\n\tfunction updateAlignment( newVerticalAlignment ) {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Update own and child Column block vertical alignments.\n\t\t// This is a single action; the batching prevents creating multiple history records.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { verticalAlignment: newVerticalAlignment } );\n\t\t\tupdateBlockAttributes( innerBlockClientIds, {\n\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tinstructions={ __( 'Divide into columns. Select a layout:' ) }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? ColumnsEditContainer : Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n"],"mappings":"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","ignoreList":[]}