@wordpress/block-library 8.14.0 → 8.16.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 (365) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/avatar/edit.js +1 -0
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/avatar/index.js +3 -0
  5. package/build/avatar/index.js.map +1 -1
  6. package/build/block/edit.js +2 -30
  7. package/build/block/edit.js.map +1 -1
  8. package/build/block/index.js +2 -1
  9. package/build/block/index.js.map +1 -1
  10. package/build/buttons/edit.js +2 -2
  11. package/build/buttons/edit.js.map +1 -1
  12. package/build/column/edit.native.js +1 -4
  13. package/build/column/edit.native.js.map +1 -1
  14. package/build/columns/edit.js +1 -0
  15. package/build/columns/edit.js.map +1 -1
  16. package/build/comment-author-avatar/edit.js +1 -0
  17. package/build/comment-author-avatar/edit.js.map +1 -1
  18. package/build/cover/deprecated.js +4 -2
  19. package/build/cover/deprecated.js.map +1 -1
  20. package/build/cover/index.js +2 -1
  21. package/build/cover/index.js.map +1 -1
  22. package/build/embed/embed-placeholder.native.js +37 -13
  23. package/build/embed/embed-placeholder.native.js.map +1 -1
  24. package/build/file/index.js +1 -2
  25. package/build/file/index.js.map +1 -1
  26. package/build/file/inspector.js +1 -0
  27. package/build/file/inspector.js.map +1 -1
  28. package/build/file/view-interactivity.js +23 -0
  29. package/build/file/view-interactivity.js.map +1 -0
  30. package/build/file/view.js +1 -15
  31. package/build/file/view.js.map +1 -1
  32. package/build/footnotes/edit.js +31 -1
  33. package/build/footnotes/edit.js.map +1 -1
  34. package/build/footnotes/format.js +119 -23
  35. package/build/footnotes/format.js.map +1 -1
  36. package/build/footnotes/index.js +45 -4
  37. package/build/footnotes/index.js.map +1 -1
  38. package/build/gallery/edit.js +8 -6
  39. package/build/gallery/edit.js.map +1 -1
  40. package/build/image/deprecated.js +106 -2
  41. package/build/image/deprecated.js.map +1 -1
  42. package/build/image/image.js +2 -2
  43. package/build/image/image.js.map +1 -1
  44. package/build/image/index.js +2 -1
  45. package/build/image/index.js.map +1 -1
  46. package/build/index.js +3 -1
  47. package/build/index.js.map +1 -1
  48. package/build/latest-comments/edit.js +1 -0
  49. package/build/latest-comments/edit.js.map +1 -1
  50. package/build/latest-posts/edit.js +2 -0
  51. package/build/latest-posts/edit.js.map +1 -1
  52. package/build/list/edit.js +4 -4
  53. package/build/list/edit.js.map +1 -1
  54. package/build/list-item/hooks/use-merge.js +10 -1
  55. package/build/list-item/hooks/use-merge.js.map +1 -1
  56. package/build/media-text/media-container.native.js +2 -1
  57. package/build/media-text/media-container.native.js.map +1 -1
  58. package/build/missing/edit.native.js +7 -5
  59. package/build/missing/edit.native.js.map +1 -1
  60. package/build/navigation/constants.js +10 -4
  61. package/build/navigation/constants.js.map +1 -1
  62. package/build/navigation/edit/index.js +16 -2
  63. package/build/navigation/edit/index.js.map +1 -1
  64. package/build/navigation/edit/inner-blocks.js +2 -2
  65. package/build/navigation/edit/inner-blocks.js.map +1 -1
  66. package/build/navigation/edit/menu-inspector-controls.js +1 -1
  67. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  68. package/build/navigation/edit/navigation-menu-selector.js +4 -4
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
  71. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  72. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
  73. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  74. package/build/navigation/index.js +2 -3
  75. package/build/navigation/index.js.map +1 -1
  76. package/build/navigation/use-navigation-menu.js +33 -45
  77. package/build/navigation/use-navigation-menu.js.map +1 -1
  78. package/build/navigation/view-interactivity.js +185 -0
  79. package/build/navigation/view-interactivity.js.map +1 -0
  80. package/build/navigation/view-modal.js +125 -0
  81. package/build/navigation/view-modal.js.map +1 -0
  82. package/build/navigation/view.js +71 -163
  83. package/build/navigation/view.js.map +1 -1
  84. package/build/navigation-link/edit.js +12 -7
  85. package/build/navigation-link/edit.js.map +1 -1
  86. package/build/navigation-submenu/edit.js +2 -2
  87. package/build/navigation-submenu/edit.js.map +1 -1
  88. package/build/pattern/edit.js +28 -4
  89. package/build/pattern/edit.js.map +1 -1
  90. package/build/preformatted/index.js +4 -0
  91. package/build/preformatted/index.js.map +1 -1
  92. package/build/query-pagination/edit.js +1 -1
  93. package/build/query-pagination/edit.js.map +1 -1
  94. package/build/query-title/edit.js +43 -1
  95. package/build/query-title/edit.js.map +1 -1
  96. package/build/quote/transforms.js +8 -0
  97. package/build/quote/transforms.js.map +1 -1
  98. package/build/rss/edit.js +3 -0
  99. package/build/rss/edit.js.map +1 -1
  100. package/build/search/edit.js +4 -3
  101. package/build/search/edit.js.map +1 -1
  102. package/build/search/index.js +1 -0
  103. package/build/search/index.js.map +1 -1
  104. package/build/search/view.js +166 -62
  105. package/build/search/view.js.map +1 -1
  106. package/build/site-logo/edit.js +1 -0
  107. package/build/site-logo/edit.js.map +1 -1
  108. package/build/social-link/icons/index.js +13 -0
  109. package/build/social-link/icons/index.js.map +1 -1
  110. package/build/social-link/icons/threads.js +25 -0
  111. package/build/social-link/icons/threads.js.map +1 -0
  112. package/build/social-link/variations.js +7 -0
  113. package/build/social-link/variations.js.map +1 -1
  114. package/build/tag-cloud/edit.js +1 -0
  115. package/build/tag-cloud/edit.js.map +1 -1
  116. package/build/template-part/edit/import-controls.js +1 -1
  117. package/build/template-part/edit/import-controls.js.map +1 -1
  118. package/build/template-part/edit/index.js +1 -1
  119. package/build/template-part/edit/index.js.map +1 -1
  120. package/build/text-columns/edit.js +1 -0
  121. package/build/text-columns/edit.js.map +1 -1
  122. package/build-module/avatar/edit.js +1 -0
  123. package/build-module/avatar/edit.js.map +1 -1
  124. package/build-module/avatar/index.js +3 -0
  125. package/build-module/avatar/index.js.map +1 -1
  126. package/build-module/block/edit.js +4 -29
  127. package/build-module/block/edit.js.map +1 -1
  128. package/build-module/block/index.js +2 -1
  129. package/build-module/block/index.js.map +1 -1
  130. package/build-module/buttons/edit.js +2 -2
  131. package/build-module/buttons/edit.js.map +1 -1
  132. package/build-module/column/edit.native.js +1 -4
  133. package/build-module/column/edit.native.js.map +1 -1
  134. package/build-module/columns/edit.js +1 -0
  135. package/build-module/columns/edit.js.map +1 -1
  136. package/build-module/comment-author-avatar/edit.js +1 -0
  137. package/build-module/comment-author-avatar/edit.js.map +1 -1
  138. package/build-module/cover/deprecated.js +4 -2
  139. package/build-module/cover/deprecated.js.map +1 -1
  140. package/build-module/cover/index.js +2 -1
  141. package/build-module/cover/index.js.map +1 -1
  142. package/build-module/embed/embed-placeholder.native.js +37 -14
  143. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  144. package/build-module/file/index.js +1 -2
  145. package/build-module/file/index.js.map +1 -1
  146. package/build-module/file/inspector.js +1 -0
  147. package/build-module/file/inspector.js.map +1 -1
  148. package/build-module/file/view-interactivity.js +19 -0
  149. package/build-module/file/view-interactivity.js.map +1 -0
  150. package/build-module/file/view.js +2 -15
  151. package/build-module/file/view.js.map +1 -1
  152. package/build-module/footnotes/edit.js +29 -2
  153. package/build-module/footnotes/edit.js.map +1 -1
  154. package/build-module/footnotes/format.js +120 -25
  155. package/build-module/footnotes/format.js.map +1 -1
  156. package/build-module/footnotes/index.js +45 -4
  157. package/build-module/footnotes/index.js.map +1 -1
  158. package/build-module/gallery/edit.js +8 -6
  159. package/build-module/gallery/edit.js.map +1 -1
  160. package/build-module/image/deprecated.js +107 -3
  161. package/build-module/image/deprecated.js.map +1 -1
  162. package/build-module/image/image.js +2 -2
  163. package/build-module/image/image.js.map +1 -1
  164. package/build-module/image/index.js +2 -1
  165. package/build-module/image/index.js.map +1 -1
  166. package/build-module/index.js +3 -1
  167. package/build-module/index.js.map +1 -1
  168. package/build-module/latest-comments/edit.js +1 -0
  169. package/build-module/latest-comments/edit.js.map +1 -1
  170. package/build-module/latest-posts/edit.js +2 -0
  171. package/build-module/latest-posts/edit.js.map +1 -1
  172. package/build-module/list/edit.js +4 -4
  173. package/build-module/list/edit.js.map +1 -1
  174. package/build-module/list-item/hooks/use-merge.js +10 -1
  175. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  176. package/build-module/media-text/media-container.native.js +2 -1
  177. package/build-module/media-text/media-container.native.js.map +1 -1
  178. package/build-module/missing/edit.native.js +8 -6
  179. package/build-module/missing/edit.native.js.map +1 -1
  180. package/build-module/navigation/constants.js +8 -3
  181. package/build-module/navigation/constants.js.map +1 -1
  182. package/build-module/navigation/edit/index.js +17 -3
  183. package/build-module/navigation/edit/index.js.map +1 -1
  184. package/build-module/navigation/edit/inner-blocks.js +2 -2
  185. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  186. package/build-module/navigation/edit/menu-inspector-controls.js +1 -1
  187. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  188. package/build-module/navigation/edit/navigation-menu-selector.js +4 -4
  189. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  190. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
  191. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  192. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
  193. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  194. package/build-module/navigation/index.js +2 -3
  195. package/build-module/navigation/index.js.map +1 -1
  196. package/build-module/navigation/use-navigation-menu.js +35 -47
  197. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  198. package/build-module/navigation/view-interactivity.js +182 -0
  199. package/build-module/navigation/view-interactivity.js.map +1 -0
  200. package/build-module/navigation/view-modal.js +120 -0
  201. package/build-module/navigation/view-modal.js.map +1 -0
  202. package/build-module/navigation/view.js +72 -163
  203. package/build-module/navigation/view.js.map +1 -1
  204. package/build-module/navigation-link/edit.js +12 -7
  205. package/build-module/navigation-link/edit.js.map +1 -1
  206. package/build-module/navigation-submenu/edit.js +2 -2
  207. package/build-module/navigation-submenu/edit.js.map +1 -1
  208. package/build-module/pattern/edit.js +27 -4
  209. package/build-module/pattern/edit.js.map +1 -1
  210. package/build-module/preformatted/index.js +4 -0
  211. package/build-module/preformatted/index.js.map +1 -1
  212. package/build-module/query-pagination/edit.js +1 -1
  213. package/build-module/query-pagination/edit.js.map +1 -1
  214. package/build-module/query-title/edit.js +44 -3
  215. package/build-module/query-title/edit.js.map +1 -1
  216. package/build-module/quote/transforms.js +8 -0
  217. package/build-module/quote/transforms.js.map +1 -1
  218. package/build-module/rss/edit.js +3 -0
  219. package/build-module/rss/edit.js.map +1 -1
  220. package/build-module/search/edit.js +4 -3
  221. package/build-module/search/edit.js.map +1 -1
  222. package/build-module/search/index.js +1 -0
  223. package/build-module/search/index.js.map +1 -1
  224. package/build-module/search/view.js +166 -62
  225. package/build-module/search/view.js.map +1 -1
  226. package/build-module/site-logo/edit.js +1 -0
  227. package/build-module/site-logo/edit.js.map +1 -1
  228. package/build-module/social-link/icons/index.js +1 -0
  229. package/build-module/social-link/icons/index.js.map +1 -1
  230. package/build-module/social-link/icons/threads.js +15 -0
  231. package/build-module/social-link/icons/threads.js.map +1 -0
  232. package/build-module/social-link/variations.js +8 -1
  233. package/build-module/social-link/variations.js.map +1 -1
  234. package/build-module/tag-cloud/edit.js +1 -0
  235. package/build-module/tag-cloud/edit.js.map +1 -1
  236. package/build-module/template-part/edit/import-controls.js +2 -2
  237. package/build-module/template-part/edit/import-controls.js.map +1 -1
  238. package/build-module/template-part/edit/index.js +1 -1
  239. package/build-module/template-part/edit/index.js.map +1 -1
  240. package/build-module/text-columns/edit.js +1 -0
  241. package/build-module/text-columns/edit.js.map +1 -1
  242. package/build-style/details/style-rtl.css +4 -2
  243. package/build-style/details/style.css +4 -2
  244. package/build-style/footnotes/style-rtl.css +4 -3
  245. package/build-style/footnotes/style.css +4 -3
  246. package/build-style/navigation/style-rtl.css +14 -2
  247. package/build-style/navigation/style.css +14 -2
  248. package/build-style/preformatted/style-rtl.css +2 -1
  249. package/build-style/preformatted/style.css +2 -1
  250. package/build-style/query-pagination/style-rtl.css +4 -2
  251. package/build-style/query-pagination/style.css +4 -2
  252. package/build-style/social-links/style-rtl.css +7 -0
  253. package/build-style/social-links/style.css +7 -0
  254. package/build-style/style-rtl.css +36 -10
  255. package/build-style/style.css +36 -10
  256. package/build-style/video/style-rtl.css +1 -0
  257. package/build-style/video/style.css +1 -0
  258. package/package.json +33 -32
  259. package/src/audio/test/__snapshots__/edit.native.js.snap +118 -33
  260. package/src/avatar/block.json +3 -0
  261. package/src/avatar/edit.js +1 -0
  262. package/src/block/block.json +2 -1
  263. package/src/block/edit.js +1 -39
  264. package/src/block/editor.native.scss +2 -2
  265. package/src/buttons/edit.js +2 -2
  266. package/src/buttons/test/edit.native.js +4 -0
  267. package/src/column/edit.native.js +4 -10
  268. package/src/column/editor.native.scss +0 -4
  269. package/src/columns/edit.js +1 -0
  270. package/src/columns/test/edit.native.js +5 -0
  271. package/src/comment-author-avatar/edit.js +1 -0
  272. package/src/comment-template/index.php +7 -2
  273. package/src/cover/block.json +2 -1
  274. package/src/cover/deprecated.js +2 -0
  275. package/src/cover/test/edit.native.js +8 -0
  276. package/src/embed/embed-placeholder.native.js +80 -47
  277. package/src/embed/styles.native.scss +54 -18
  278. package/src/embed/test/index.native.js +13 -5
  279. package/src/file/block.json +1 -2
  280. package/src/file/index.php +20 -2
  281. package/src/file/inspector.js +1 -0
  282. package/src/file/test/__snapshots__/edit.native.js.snap +119 -33
  283. package/src/file/view-interactivity.js +18 -0
  284. package/src/file/view.js +5 -14
  285. package/src/footnotes/block.json +44 -2
  286. package/src/footnotes/edit.js +33 -2
  287. package/src/footnotes/format.js +90 -25
  288. package/src/footnotes/index.js +0 -1
  289. package/src/footnotes/index.php +207 -0
  290. package/src/footnotes/style.scss +6 -3
  291. package/src/gallery/edit.js +42 -38
  292. package/src/gallery/test/index.native.js +31 -18
  293. package/src/heading/test/index.native.js +4 -0
  294. package/src/home-link/index.php +15 -2
  295. package/src/image/block.json +2 -1
  296. package/src/image/deprecated.js +109 -3
  297. package/src/image/image.js +2 -2
  298. package/src/image/index.php +45 -8
  299. package/src/image/test/edit.native.js +1 -2
  300. package/src/index.js +5 -1
  301. package/src/latest-comments/edit.js +1 -0
  302. package/src/latest-posts/edit.js +2 -0
  303. package/src/list/edit.js +6 -4
  304. package/src/list/test/edit.native.js +134 -33
  305. package/src/list-item/hooks/use-merge.js +12 -5
  306. package/src/media-text/media-container.native.js +1 -0
  307. package/src/missing/edit.native.js +12 -10
  308. package/src/missing/style.native.scss +19 -12
  309. package/src/missing/test/__snapshots__/edit.native.js.snap +42 -13
  310. package/src/navigation/block.json +2 -3
  311. package/src/navigation/constants.js +12 -6
  312. package/src/navigation/edit/index.js +29 -1
  313. package/src/navigation/edit/inner-blocks.js +2 -2
  314. package/src/navigation/edit/menu-inspector-controls.js +1 -1
  315. package/src/navigation/edit/navigation-menu-selector.js +8 -4
  316. package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
  317. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
  318. package/src/navigation/index.php +50 -18
  319. package/src/navigation/style.scss +27 -8
  320. package/src/navigation/use-navigation-menu.js +39 -63
  321. package/src/navigation/view-interactivity.js +196 -0
  322. package/src/navigation/view-modal.js +127 -0
  323. package/src/navigation/view.js +96 -185
  324. package/src/navigation-link/edit.js +61 -47
  325. package/src/navigation-submenu/edit.js +2 -2
  326. package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
  327. package/src/paragraph/test/edit.native.js +81 -35
  328. package/src/pattern/edit.js +21 -0
  329. package/src/pattern/index.php +13 -1
  330. package/src/post-template/index.php +6 -2
  331. package/src/post-title/index.php +8 -3
  332. package/src/preformatted/block.json +4 -0
  333. package/src/preformatted/style.scss +4 -1
  334. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
  335. package/src/pullquote/test/edit.native.js +12 -4
  336. package/src/query-pagination/edit.js +17 -14
  337. package/src/query-title/edit.js +48 -6
  338. package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
  339. package/src/quote/test/edit.native.js +12 -4
  340. package/src/quote/test/transforms.native.js +5 -1
  341. package/src/quote/transforms.js +13 -0
  342. package/src/rss/edit.js +3 -0
  343. package/src/search/block.json +1 -0
  344. package/src/search/edit.js +4 -3
  345. package/src/search/index.php +26 -4
  346. package/src/search/test/__snapshots__/edit.native.js.snap +70 -0
  347. package/src/search/view.js +171 -67
  348. package/src/site-logo/edit.js +1 -0
  349. package/src/social-link/icons/index.js +1 -0
  350. package/src/social-link/icons/threads.js +10 -0
  351. package/src/social-link/index.php +4 -0
  352. package/src/social-link/socials-with-bg.scss +5 -0
  353. package/src/social-link/socials-without-bg.scss +4 -0
  354. package/src/social-link/variations.js +7 -0
  355. package/src/tag-cloud/edit.js +1 -0
  356. package/src/template-part/edit/import-controls.js +2 -2
  357. package/src/template-part/edit/index.js +1 -1
  358. package/src/template-part/index.php +7 -16
  359. package/src/text-columns/edit.js +1 -0
  360. package/src/video/style.scss +1 -0
  361. package/build/gallery/shared-icon.native.js +0 -38
  362. package/build/gallery/shared-icon.native.js.map +0 -1
  363. package/build-module/gallery/shared-icon.native.js +0 -24
  364. package/build-module/gallery/shared-icon.native.js.map +0 -1
  365. package/src/gallery/shared-icon.native.js +0 -23
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","unitControlInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","buttonRef","units","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","event","target","value","renderButton","buttonClasses","buttonStyles","handleButtonClick","search","html","controls","toggleLabel","buttonWithIcon","MIN_WIDTH","MIN_WIDTH_UNIT","newWidth","filteredWidth","parseInt","newUnit","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","labelClassnames","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\tif ( ! insertedInNavigationBlock ) return;\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}, [ insertedInNavigationBlock ] );\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\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\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["DEFAULT_INNER_PADDING","BUTTON_BEHAVIOR_EXPAND","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","buttonBehavior","isSearchFieldHidden","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","blockEditorStore","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","fluidTypographySettings","layout","typographyProps","typography","fluid","wideSize","unitControlInstanceId","UnitControl","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","buttonRef","units","availableUnits","defaultValues","PC_WIDTH_DEFAULT","px","PX_WIDTH_DEFAULT","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","buttonOutside","onClick","buttonInside","noButton","buttonOnly","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","textDecoration","event","target","value","renderButton","buttonClasses","buttonStyles","handleButtonClick","search","html","controls","toggleLabel","buttonWithIcon","MIN_WIDTH","MIN_WIDTH_UNIT","newWidth","filteredWidth","parseInt","newUnit","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","labelClassnames","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nconst BUTTON_BEHAVIOR_EXPAND = 'expand-searchfield';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tbuttonBehavior,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( insertedInNavigationBlock ) {\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}\n\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst fluidTypographySettings = useSetting( 'typography.fluid' );\n\tconst layout = useSetting( 'layout' );\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\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior\n\t\t\t\t? 'wp-block-search__button-behavior-expand'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton && BUTTON_BEHAVIOR_EXPAND === buttonBehavior ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__unstableInputWidth={ '80px' }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = classnames(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
@@ -116,6 +116,7 @@ const metadata = {
116
116
  },
117
117
  html: false
118
118
  },
119
+ viewScript: "file:./view.min.js",
119
120
  editorStyle: "wp-block-search-editor",
120
121
  style: "wp-block-search"
121
122
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["name","metadata","settings","icon","example","attributes","buttonText","label","viewportWidth","variations","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAE,cAAI,QAAJ,CAAd;AAA8BC,MAAAA,KAAK,EAAE,cAAI,QAAJ;AAArC,KADJ;AAERC,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBC,EAAAA,UAAU,EAAVA,mBANuB;AAOvBC,EAAAA,IAAI,EAAJA;AAPuB,CAAjB;;;AAUA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEX,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["name","metadata","settings","icon","example","attributes","buttonText","label","viewportWidth","variations","edit","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AAEA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,aADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,UAAU,EAAE,cAAI,QAAJ,CAAd;AAA8BC,MAAAA,KAAK,EAAE,cAAI,QAAJ;AAArC,KADJ;AAERC,IAAAA,aAAa,EAAE;AAFP,GAFc;AAMvBC,EAAAA,UAAU,EAAVA,mBANuB;AAOvBC,EAAAA,IAAI,EAAJA;AAPuB,CAAjB;;;AAUA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEX,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -1,67 +1,171 @@
1
1
  "use strict";
2
2
 
3
- window.addEventListener('DOMContentLoaded', () => {
4
- const hiddenClass = 'wp-block-search__searchfield-hidden';
5
- Array.from(document.getElementsByClassName('wp-block-search__button-behavior-expand')).forEach(block => {
6
- const searchField = block.querySelector('.wp-block-search__input');
7
- const searchButton = block.querySelector('.wp-block-search__button');
8
- const searchLabel = block.querySelector('.wp-block-search__label');
9
- const ariaLabel = searchButton.getAttribute('aria-label');
10
- const id = searchField.getAttribute('id');
11
-
12
- const toggleSearchField = showSearchField => {
13
- if (showSearchField) {
14
- searchField.removeAttribute('aria-hidden');
15
- searchField.removeAttribute('tabindex');
16
- searchButton.removeAttribute('aria-expanded');
17
- searchButton.removeAttribute('aria-controls');
18
- searchButton.setAttribute('type', 'submit');
19
- searchButton.setAttribute('aria-label', 'Submit Search');
20
- return block.classList.remove(hiddenClass);
21
- }
22
-
23
- searchButton.removeAttribute('type');
24
- searchField.setAttribute('aria-hidden', 'true');
25
- searchField.setAttribute('tabindex', '-1');
26
- searchButton.setAttribute('aria-expanded', 'false');
27
- searchButton.setAttribute('aria-controls', id);
28
- searchButton.setAttribute('aria-label', ariaLabel);
29
- return block.classList.add(hiddenClass);
30
- };
31
-
32
- const hideSearchField = e => {
33
- if (!e.target.closest('.wp-block-search')) {
34
- return toggleSearchField(false);
35
- }
36
-
37
- if (e.key === 'Escape') {
38
- searchButton.focus();
39
- return toggleSearchField(false);
40
- }
41
- };
42
-
43
- const handleButtonClick = e => {
44
- if (block.classList.contains(hiddenClass)) {
45
- e.preventDefault();
46
- searchField.focus();
47
- toggleSearchField(true);
48
- }
49
- };
50
-
51
- searchButton.removeAttribute('type');
52
- searchField.addEventListener('keydown', e => {
53
- hideSearchField(e);
54
- });
55
- searchButton.addEventListener('click', handleButtonClick);
56
- searchButton.addEventListener('keydown', e => {
57
- hideSearchField(e);
58
- });
59
-
60
- if (searchLabel) {
61
- searchLabel.addEventListener('click', handleButtonClick);
62
- }
63
-
64
- document.body.addEventListener('click', hideSearchField);
3
+ /*eslint-env browser*/
4
+
5
+ /** @type {?HTMLFormElement} */
6
+ let expandedSearchBlock = null;
7
+ const hiddenClass = 'wp-block-search__searchfield-hidden';
8
+ /**
9
+ * Toggles aria-label with data-toggled-aria-label.
10
+ *
11
+ * @param {HTMLElement} element
12
+ */
13
+
14
+ function toggleAriaLabel(element) {
15
+ if (!('toggledAriaLabel' in element.dataset)) {
16
+ throw new Error('Element lacks toggledAriaLabel in dataset.');
17
+ }
18
+
19
+ const ariaLabel = element.dataset.toggledAriaLabel;
20
+ element.dataset.toggledAriaLabel = element.ariaLabel;
21
+ element.ariaLabel = ariaLabel;
22
+ }
23
+ /**
24
+ * Gets search input.
25
+ *
26
+ * @param {HTMLFormElement} block Search block.
27
+ * @return {HTMLInputElement} Search input.
28
+ */
29
+
30
+
31
+ function getSearchInput(block) {
32
+ return block.querySelector('.wp-block-search__input');
33
+ }
34
+ /**
35
+ * Gets search button.
36
+ *
37
+ * @param {HTMLFormElement} block Search block.
38
+ * @return {HTMLButtonElement} Search button.
39
+ */
40
+
41
+
42
+ function getSearchButton(block) {
43
+ return block.querySelector('.wp-block-search__button');
44
+ }
45
+ /**
46
+ * Handles keydown event to collapse an expanded Search block (when pressing Escape key).
47
+ *
48
+ * @param {KeyboardEvent} event
49
+ */
50
+
51
+
52
+ function handleKeydownEvent(event) {
53
+ if (!expandedSearchBlock) {
54
+ // In case the event listener wasn't removed in time.
55
+ return;
56
+ }
57
+
58
+ if (event.key === 'Escape') {
59
+ const block = expandedSearchBlock; // This is nullified by collapseExpandedSearchBlock().
60
+
61
+ collapseExpandedSearchBlock();
62
+ getSearchButton(block).focus();
63
+ }
64
+ }
65
+ /**
66
+ * Handles keyup event to collapse an expanded Search block (e.g. when tabbing out of expanded Search block).
67
+ *
68
+ * @param {KeyboardEvent} event
69
+ */
70
+
71
+
72
+ function handleKeyupEvent(event) {
73
+ if (!expandedSearchBlock) {
74
+ // In case the event listener wasn't removed in time.
75
+ return;
76
+ }
77
+
78
+ if (event.target.closest('.wp-block-search') !== expandedSearchBlock) {
79
+ collapseExpandedSearchBlock();
80
+ }
81
+ }
82
+ /**
83
+ * Expands search block.
84
+ *
85
+ * Inverse of what is done in collapseExpandedSearchBlock().
86
+ *
87
+ * @param {HTMLFormElement} block Search block.
88
+ */
89
+
90
+
91
+ function expandSearchBlock(block) {
92
+ // Make sure only one is open at a time.
93
+ if (expandedSearchBlock) {
94
+ collapseExpandedSearchBlock();
95
+ }
96
+
97
+ const searchField = getSearchInput(block);
98
+ const searchButton = getSearchButton(block);
99
+ searchButton.type = 'submit';
100
+ searchField.ariaHidden = 'false';
101
+ searchField.tabIndex = 0;
102
+ searchButton.ariaExpanded = 'true';
103
+ searchButton.removeAttribute('aria-controls'); // Note: Seemingly not reflected with searchButton.ariaControls.
104
+
105
+ toggleAriaLabel(searchButton);
106
+ block.classList.remove(hiddenClass);
107
+ searchField.focus(); // Note that Chrome seems to do this automatically.
108
+ // The following two must be inverse of what is done in collapseExpandedSearchBlock().
109
+
110
+ document.addEventListener('keydown', handleKeydownEvent, {
111
+ passive: true
112
+ });
113
+ document.addEventListener('keyup', handleKeyupEvent, {
114
+ passive: true
115
+ });
116
+ expandedSearchBlock = block;
117
+ }
118
+ /**
119
+ * Collapses the expanded search block.
120
+ *
121
+ * Inverse of what is done in expandSearchBlock().
122
+ */
123
+
124
+
125
+ function collapseExpandedSearchBlock() {
126
+ if (!expandedSearchBlock) {
127
+ throw new Error('Expected expandedSearchBlock to be defined.');
128
+ }
129
+
130
+ const block = expandedSearchBlock;
131
+ const searchField = getSearchInput(block);
132
+ const searchButton = getSearchButton(block);
133
+ searchButton.type = 'button';
134
+ searchField.ariaHidden = 'true';
135
+ searchField.tabIndex = -1;
136
+ searchButton.ariaExpanded = 'false';
137
+ searchButton.setAttribute('aria-controls', searchField.id); // Note: Seemingly not reflected with searchButton.ariaControls.
138
+
139
+ toggleAriaLabel(searchButton);
140
+ block.classList.add(hiddenClass); // The following two must be inverse of what is done in expandSearchBlock().
141
+
142
+ document.removeEventListener('keydown', handleKeydownEvent, {
143
+ passive: true
65
144
  });
145
+ document.removeEventListener('keyup', handleKeyupEvent, {
146
+ passive: true
147
+ });
148
+ expandedSearchBlock = null;
149
+ } // Listen for click events anywhere on the document so this script can be loaded asynchronously in the head.
150
+
151
+
152
+ document.addEventListener('click', event => {
153
+ // Get the ancestor expandable Search block of the clicked element.
154
+ const block = event.target.closest('.wp-block-search__button-behavior-expand');
155
+ /*
156
+ * If there is already an expanded search block and either the current click was not for a Search block or it was
157
+ * for another block, then collapse the currently-expanded block.
158
+ */
159
+
160
+ if (expandedSearchBlock && block !== expandedSearchBlock) {
161
+ collapseExpandedSearchBlock();
162
+ } // If the click was on or inside a collapsed Search block, expand it.
163
+
164
+
165
+ if (block instanceof HTMLFormElement && block.classList.contains(hiddenClass)) {
166
+ expandSearchBlock(block);
167
+ }
168
+ }, {
169
+ passive: true
66
170
  });
67
171
  //# sourceMappingURL=view.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/search/view.js"],"names":["window","addEventListener","hiddenClass","Array","from","document","getElementsByClassName","forEach","block","searchField","querySelector","searchButton","searchLabel","ariaLabel","getAttribute","id","toggleSearchField","showSearchField","removeAttribute","setAttribute","classList","remove","add","hideSearchField","e","target","closest","key","focus","handleButtonClick","contains","preventDefault","body"],"mappings":"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","sourcesContent":["window.addEventListener( 'DOMContentLoaded', () => {\n\tconst hiddenClass = 'wp-block-search__searchfield-hidden';\n\n\tArray.from(\n\t\tdocument.getElementsByClassName(\n\t\t\t'wp-block-search__button-behavior-expand'\n\t\t)\n\t).forEach( ( block ) => {\n\t\tconst searchField = block.querySelector( '.wp-block-search__input' );\n\t\tconst searchButton = block.querySelector( '.wp-block-search__button' );\n\t\tconst searchLabel = block.querySelector( '.wp-block-search__label' );\n\t\tconst ariaLabel = searchButton.getAttribute( 'aria-label' );\n\t\tconst id = searchField.getAttribute( 'id' );\n\n\t\tconst toggleSearchField = ( showSearchField ) => {\n\t\t\tif ( showSearchField ) {\n\t\t\t\tsearchField.removeAttribute( 'aria-hidden' );\n\t\t\t\tsearchField.removeAttribute( 'tabindex' );\n\t\t\t\tsearchButton.removeAttribute( 'aria-expanded' );\n\t\t\t\tsearchButton.removeAttribute( 'aria-controls' );\n\t\t\t\tsearchButton.setAttribute( 'type', 'submit' );\n\t\t\t\tsearchButton.setAttribute( 'aria-label', 'Submit Search' );\n\n\t\t\t\treturn block.classList.remove( hiddenClass );\n\t\t\t}\n\n\t\t\tsearchButton.removeAttribute( 'type' );\n\t\t\tsearchField.setAttribute( 'aria-hidden', 'true' );\n\t\t\tsearchField.setAttribute( 'tabindex', '-1' );\n\t\t\tsearchButton.setAttribute( 'aria-expanded', 'false' );\n\t\t\tsearchButton.setAttribute( 'aria-controls', id );\n\t\t\tsearchButton.setAttribute( 'aria-label', ariaLabel );\n\t\t\treturn block.classList.add( hiddenClass );\n\t\t};\n\n\t\tconst hideSearchField = ( e ) => {\n\t\t\tif ( ! e.target.closest( '.wp-block-search' ) ) {\n\t\t\t\treturn toggleSearchField( false );\n\t\t\t}\n\n\t\t\tif ( e.key === 'Escape' ) {\n\t\t\t\tsearchButton.focus();\n\t\t\t\treturn toggleSearchField( false );\n\t\t\t}\n\t\t};\n\n\t\tconst handleButtonClick = ( e ) => {\n\t\t\tif ( block.classList.contains( hiddenClass ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tsearchField.focus();\n\t\t\t\ttoggleSearchField( true );\n\t\t\t}\n\t\t};\n\n\t\tsearchButton.removeAttribute( 'type' );\n\t\tsearchField.addEventListener( 'keydown', ( e ) => {\n\t\t\thideSearchField( e );\n\t\t} );\n\t\tsearchButton.addEventListener( 'click', handleButtonClick );\n\t\tsearchButton.addEventListener( 'keydown', ( e ) => {\n\t\t\thideSearchField( e );\n\t\t} );\n\t\tif ( searchLabel ) {\n\t\t\tsearchLabel.addEventListener( 'click', handleButtonClick );\n\t\t}\n\t\tdocument.body.addEventListener( 'click', hideSearchField );\n\t} );\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/search/view.js"],"names":["expandedSearchBlock","hiddenClass","toggleAriaLabel","element","dataset","Error","ariaLabel","toggledAriaLabel","getSearchInput","block","querySelector","getSearchButton","handleKeydownEvent","event","key","collapseExpandedSearchBlock","focus","handleKeyupEvent","target","closest","expandSearchBlock","searchField","searchButton","type","ariaHidden","tabIndex","ariaExpanded","removeAttribute","classList","remove","document","addEventListener","passive","setAttribute","id","add","removeEventListener","HTMLFormElement","contains"],"mappings":"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","sourcesContent":["/*eslint-env browser*/\n\n/** @type {?HTMLFormElement} */\nlet expandedSearchBlock = null;\n\nconst hiddenClass = 'wp-block-search__searchfield-hidden';\n\n/**\n * Toggles aria-label with data-toggled-aria-label.\n *\n * @param {HTMLElement} element\n */\nfunction toggleAriaLabel( element ) {\n\tif ( ! ( 'toggledAriaLabel' in element.dataset ) ) {\n\t\tthrow new Error( 'Element lacks toggledAriaLabel in dataset.' );\n\t}\n\n\tconst ariaLabel = element.dataset.toggledAriaLabel;\n\telement.dataset.toggledAriaLabel = element.ariaLabel;\n\telement.ariaLabel = ariaLabel;\n}\n\n/**\n * Gets search input.\n *\n * @param {HTMLFormElement} block Search block.\n * @return {HTMLInputElement} Search input.\n */\nfunction getSearchInput( block ) {\n\treturn block.querySelector( '.wp-block-search__input' );\n}\n\n/**\n * Gets search button.\n *\n * @param {HTMLFormElement} block Search block.\n * @return {HTMLButtonElement} Search button.\n */\nfunction getSearchButton( block ) {\n\treturn block.querySelector( '.wp-block-search__button' );\n}\n\n/**\n * Handles keydown event to collapse an expanded Search block (when pressing Escape key).\n *\n * @param {KeyboardEvent} event\n */\nfunction handleKeydownEvent( event ) {\n\tif ( ! expandedSearchBlock ) {\n\t\t// In case the event listener wasn't removed in time.\n\t\treturn;\n\t}\n\n\tif ( event.key === 'Escape' ) {\n\t\tconst block = expandedSearchBlock; // This is nullified by collapseExpandedSearchBlock().\n\t\tcollapseExpandedSearchBlock();\n\t\tgetSearchButton( block ).focus();\n\t}\n}\n\n/**\n * Handles keyup event to collapse an expanded Search block (e.g. when tabbing out of expanded Search block).\n *\n * @param {KeyboardEvent} event\n */\nfunction handleKeyupEvent( event ) {\n\tif ( ! expandedSearchBlock ) {\n\t\t// In case the event listener wasn't removed in time.\n\t\treturn;\n\t}\n\n\tif ( event.target.closest( '.wp-block-search' ) !== expandedSearchBlock ) {\n\t\tcollapseExpandedSearchBlock();\n\t}\n}\n\n/**\n * Expands search block.\n *\n * Inverse of what is done in collapseExpandedSearchBlock().\n *\n * @param {HTMLFormElement} block Search block.\n */\nfunction expandSearchBlock( block ) {\n\t// Make sure only one is open at a time.\n\tif ( expandedSearchBlock ) {\n\t\tcollapseExpandedSearchBlock();\n\t}\n\n\tconst searchField = getSearchInput( block );\n\tconst searchButton = getSearchButton( block );\n\n\tsearchButton.type = 'submit';\n\tsearchField.ariaHidden = 'false';\n\tsearchField.tabIndex = 0;\n\tsearchButton.ariaExpanded = 'true';\n\tsearchButton.removeAttribute( 'aria-controls' ); // Note: Seemingly not reflected with searchButton.ariaControls.\n\ttoggleAriaLabel( searchButton );\n\tblock.classList.remove( hiddenClass );\n\n\tsearchField.focus(); // Note that Chrome seems to do this automatically.\n\n\t// The following two must be inverse of what is done in collapseExpandedSearchBlock().\n\tdocument.addEventListener( 'keydown', handleKeydownEvent, {\n\t\tpassive: true,\n\t} );\n\tdocument.addEventListener( 'keyup', handleKeyupEvent, {\n\t\tpassive: true,\n\t} );\n\n\texpandedSearchBlock = block;\n}\n\n/**\n * Collapses the expanded search block.\n *\n * Inverse of what is done in expandSearchBlock().\n */\nfunction collapseExpandedSearchBlock() {\n\tif ( ! expandedSearchBlock ) {\n\t\tthrow new Error( 'Expected expandedSearchBlock to be defined.' );\n\t}\n\tconst block = expandedSearchBlock;\n\tconst searchField = getSearchInput( block );\n\tconst searchButton = getSearchButton( block );\n\n\tsearchButton.type = 'button';\n\tsearchField.ariaHidden = 'true';\n\tsearchField.tabIndex = -1;\n\tsearchButton.ariaExpanded = 'false';\n\tsearchButton.setAttribute( 'aria-controls', searchField.id ); // Note: Seemingly not reflected with searchButton.ariaControls.\n\ttoggleAriaLabel( searchButton );\n\tblock.classList.add( hiddenClass );\n\n\t// The following two must be inverse of what is done in expandSearchBlock().\n\tdocument.removeEventListener( 'keydown', handleKeydownEvent, {\n\t\tpassive: true,\n\t} );\n\tdocument.removeEventListener( 'keyup', handleKeyupEvent, {\n\t\tpassive: true,\n\t} );\n\n\texpandedSearchBlock = null;\n}\n\n// Listen for click events anywhere on the document so this script can be loaded asynchronously in the head.\ndocument.addEventListener(\n\t'click',\n\t( event ) => {\n\t\t// Get the ancestor expandable Search block of the clicked element.\n\t\tconst block = event.target.closest(\n\t\t\t'.wp-block-search__button-behavior-expand'\n\t\t);\n\n\t\t/*\n\t\t * If there is already an expanded search block and either the current click was not for a Search block or it was\n\t\t * for another block, then collapse the currently-expanded block.\n\t\t */\n\t\tif ( expandedSearchBlock && block !== expandedSearchBlock ) {\n\t\t\tcollapseExpandedSearchBlock();\n\t\t}\n\n\t\t// If the click was on or inside a collapsed Search block, expand it.\n\t\tif (\n\t\t\tblock instanceof HTMLFormElement &&\n\t\t\tblock.classList.contains( hiddenClass )\n\t\t) {\n\t\t\texpandSearchBlock( block );\n\t\t}\n\t},\n\t{ passive: true }\n);\n"]}
@@ -269,6 +269,7 @@ const SiteLogo = ({
269
269
  title: (0, _i18n.__)('Settings')
270
270
  }, (0, _element.createElement)(_components.RangeControl, {
271
271
  __nextHasNoMarginBottom: true,
272
+ __next40pxDefaultSize: true,
272
273
  label: (0, _i18n.__)('Image width'),
273
274
  onChange: newWidth => setAttributes({
274
275
  width: newWidth