@wordpress/block-library 10.0.1-next.v.202606191442.0 → 10.0.1

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 (249) hide show
  1. package/CHANGELOG.md +2 -1
  2. package/build/audio/edit.cjs +8 -1
  3. package/build/audio/edit.cjs.map +2 -2
  4. package/build/breadcrumbs/edit.cjs +0 -1
  5. package/build/breadcrumbs/edit.cjs.map +2 -2
  6. package/build/button/edit.cjs +0 -1
  7. package/build/button/edit.cjs.map +2 -2
  8. package/build/cover/edit/embed-video-url-input.cjs +0 -1
  9. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  10. package/build/details/edit.cjs +0 -1
  11. package/build/details/edit.cjs.map +2 -2
  12. package/build/form/edit.cjs +0 -2
  13. package/build/form/edit.cjs.map +2 -2
  14. package/build/form-input/edit.cjs +0 -2
  15. package/build/form-input/edit.cjs.map +2 -2
  16. package/build/freeform/edit.cjs +5 -14
  17. package/build/freeform/edit.cjs.map +3 -3
  18. package/build/freeform/migration-notice.cjs.map +2 -2
  19. package/build/home-link/edit.cjs +0 -1
  20. package/build/home-link/edit.cjs.map +2 -2
  21. package/build/html/modal.cjs +6 -3
  22. package/build/html/modal.cjs.map +2 -2
  23. package/build/icon/edit.cjs +2 -4
  24. package/build/icon/edit.cjs.map +2 -2
  25. package/build/image/image.cjs +0 -2
  26. package/build/image/image.cjs.map +2 -2
  27. package/build/image/use-open-image-media-editor-modal.cjs +5 -25
  28. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  29. package/build/list/ordered-list-settings.cjs +0 -1
  30. package/build/list/ordered-list-settings.cjs.map +2 -2
  31. package/build/navigation/edit/index.cjs +9 -9
  32. package/build/navigation/edit/index.cjs.map +2 -2
  33. package/build/navigation/edit/navigation-menu-name-control.cjs +0 -1
  34. package/build/navigation/edit/navigation-menu-name-control.cjs.map +2 -2
  35. package/build/navigation-link/block.json +1 -1
  36. package/build/navigation-link/link-ui/page-creator.cjs +0 -1
  37. package/build/navigation-link/link-ui/page-creator.cjs.map +2 -2
  38. package/build/navigation-link/shared/controls.cjs +0 -2
  39. package/build/navigation-link/shared/controls.cjs.map +2 -2
  40. package/build/playlist-track/edit.cjs +0 -3
  41. package/build/playlist-track/edit.cjs.map +2 -2
  42. package/build/post-comment/edit.cjs +0 -1
  43. package/build/post-comment/edit.cjs.map +2 -2
  44. package/build/post-featured-image/edit.cjs +0 -1
  45. package/build/post-featured-image/edit.cjs.map +2 -2
  46. package/build/post-terms/edit.cjs +0 -1
  47. package/build/post-terms/edit.cjs.map +2 -2
  48. package/build/post-title/edit.cjs +0 -1
  49. package/build/post-title/edit.cjs.map +2 -2
  50. package/build/query/edit/enhanced-pagination-modal.cjs +10 -1
  51. package/build/query/edit/enhanced-pagination-modal.cjs.map +3 -3
  52. package/build/query/edit/inspector-controls/index.cjs +0 -1
  53. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  54. package/build/rss/edit.cjs +0 -1
  55. package/build/rss/edit.cjs.map +2 -2
  56. package/build/search/block.json +4 -0
  57. package/build/search/edit.cjs +242 -204
  58. package/build/search/edit.cjs.map +2 -2
  59. package/build/site-logo/edit.cjs +2 -1
  60. package/build/site-logo/edit.cjs.map +2 -2
  61. package/build/social-link/edit.cjs +0 -3
  62. package/build/social-link/edit.cjs.map +2 -2
  63. package/build/tab-list/block.json +2 -2
  64. package/build/tab-list/edit.cjs +14 -8
  65. package/build/tab-list/edit.cjs.map +2 -2
  66. package/build/tab-list/init.cjs +28 -0
  67. package/build/tab-list/init.cjs.map +7 -0
  68. package/build/tab-panel/edit.cjs +0 -9
  69. package/build/tab-panel/edit.cjs.map +2 -2
  70. package/build/tab-panel/save.cjs +2 -1
  71. package/build/tab-panel/save.cjs.map +2 -2
  72. package/build/tab-panels/block.json +0 -1
  73. package/build/tab-panels/init.cjs +28 -0
  74. package/build/tab-panels/init.cjs.map +7 -0
  75. package/build/table/edit.cjs +0 -2
  76. package/build/table/edit.cjs.map +2 -2
  77. package/build/tabs/view.cjs +20 -94
  78. package/build/tabs/view.cjs.map +2 -2
  79. package/build/template-part/edit/advanced-controls.cjs +0 -1
  80. package/build/template-part/edit/advanced-controls.cjs.map +2 -2
  81. package/build/template-part/edit/title-modal.cjs +1 -2
  82. package/build/template-part/edit/title-modal.cjs.map +2 -2
  83. package/build/video/edit.cjs +3 -2
  84. package/build/video/edit.cjs.map +2 -2
  85. package/build/video/tracks-editor.cjs +0 -2
  86. package/build/video/tracks-editor.cjs.map +2 -2
  87. package/build-module/audio/edit.mjs +8 -2
  88. package/build-module/audio/edit.mjs.map +2 -2
  89. package/build-module/breadcrumbs/edit.mjs +0 -1
  90. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  91. package/build-module/button/edit.mjs +0 -1
  92. package/build-module/button/edit.mjs.map +2 -2
  93. package/build-module/cover/edit/embed-video-url-input.mjs +0 -1
  94. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  95. package/build-module/details/edit.mjs +0 -1
  96. package/build-module/details/edit.mjs.map +2 -2
  97. package/build-module/form/edit.mjs +0 -2
  98. package/build-module/form/edit.mjs.map +2 -2
  99. package/build-module/form-input/edit.mjs +0 -2
  100. package/build-module/form-input/edit.mjs.map +2 -2
  101. package/build-module/freeform/edit.mjs +5 -14
  102. package/build-module/freeform/edit.mjs.map +2 -2
  103. package/build-module/freeform/migration-notice.mjs.map +2 -2
  104. package/build-module/home-link/edit.mjs +0 -1
  105. package/build-module/home-link/edit.mjs.map +2 -2
  106. package/build-module/html/modal.mjs +6 -3
  107. package/build-module/html/modal.mjs.map +2 -2
  108. package/build-module/icon/edit.mjs +2 -4
  109. package/build-module/icon/edit.mjs.map +2 -2
  110. package/build-module/image/image.mjs +0 -2
  111. package/build-module/image/image.mjs.map +2 -2
  112. package/build-module/image/use-open-image-media-editor-modal.mjs +5 -25
  113. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  114. package/build-module/list/ordered-list-settings.mjs +0 -1
  115. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  116. package/build-module/navigation/edit/index.mjs +9 -9
  117. package/build-module/navigation/edit/index.mjs.map +2 -2
  118. package/build-module/navigation/edit/navigation-menu-name-control.mjs +0 -1
  119. package/build-module/navigation/edit/navigation-menu-name-control.mjs.map +2 -2
  120. package/build-module/navigation-link/block.json +1 -1
  121. package/build-module/navigation-link/link-ui/page-creator.mjs +0 -1
  122. package/build-module/navigation-link/link-ui/page-creator.mjs.map +2 -2
  123. package/build-module/navigation-link/shared/controls.mjs +0 -2
  124. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  125. package/build-module/playlist-track/edit.mjs +0 -3
  126. package/build-module/playlist-track/edit.mjs.map +2 -2
  127. package/build-module/post-comment/edit.mjs +0 -1
  128. package/build-module/post-comment/edit.mjs.map +2 -2
  129. package/build-module/post-featured-image/edit.mjs +0 -1
  130. package/build-module/post-featured-image/edit.mjs.map +2 -2
  131. package/build-module/post-terms/edit.mjs +0 -1
  132. package/build-module/post-terms/edit.mjs.map +2 -2
  133. package/build-module/post-title/edit.mjs +0 -1
  134. package/build-module/post-title/edit.mjs.map +2 -2
  135. package/build-module/query/edit/enhanced-pagination-modal.mjs +10 -1
  136. package/build-module/query/edit/enhanced-pagination-modal.mjs.map +2 -2
  137. package/build-module/query/edit/inspector-controls/index.mjs +0 -1
  138. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  139. package/build-module/rss/edit.mjs +0 -1
  140. package/build-module/rss/edit.mjs.map +2 -2
  141. package/build-module/search/block.json +4 -0
  142. package/build-module/search/edit.mjs +242 -204
  143. package/build-module/search/edit.mjs.map +2 -2
  144. package/build-module/site-logo/edit.mjs +2 -1
  145. package/build-module/site-logo/edit.mjs.map +2 -2
  146. package/build-module/social-link/edit.mjs +0 -3
  147. package/build-module/social-link/edit.mjs.map +2 -2
  148. package/build-module/tab-list/block.json +2 -2
  149. package/build-module/tab-list/edit.mjs +15 -9
  150. package/build-module/tab-list/edit.mjs.map +2 -2
  151. package/build-module/tab-list/init.mjs +7 -0
  152. package/build-module/tab-list/init.mjs.map +7 -0
  153. package/build-module/tab-panel/edit.mjs +1 -10
  154. package/build-module/tab-panel/edit.mjs.map +2 -2
  155. package/build-module/tab-panel/save.mjs +2 -1
  156. package/build-module/tab-panel/save.mjs.map +2 -2
  157. package/build-module/tab-panels/block.json +0 -1
  158. package/build-module/tab-panels/init.mjs +7 -0
  159. package/build-module/tab-panels/init.mjs.map +7 -0
  160. package/build-module/table/edit.mjs +0 -2
  161. package/build-module/table/edit.mjs.map +2 -2
  162. package/build-module/tabs/view.mjs +20 -94
  163. package/build-module/tabs/view.mjs.map +2 -2
  164. package/build-module/template-part/edit/advanced-controls.mjs +0 -1
  165. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  166. package/build-module/template-part/edit/title-modal.mjs +1 -2
  167. package/build-module/template-part/edit/title-modal.mjs.map +2 -2
  168. package/build-module/video/edit.mjs +3 -3
  169. package/build-module/video/edit.mjs.map +2 -2
  170. package/build-module/video/tracks-editor.mjs +0 -2
  171. package/build-module/video/tracks-editor.mjs.map +2 -2
  172. package/build-style/editor-rtl.css +0 -15
  173. package/build-style/editor.css +0 -15
  174. package/build-style/style-rtl.css +1 -1
  175. package/build-style/style.css +1 -1
  176. package/build-style/tab-list/style-rtl.css +1 -1
  177. package/build-style/tab-list/style.css +1 -1
  178. package/package.json +40 -40
  179. package/src/audio/edit.js +5 -9
  180. package/src/breadcrumbs/edit.js +0 -1
  181. package/src/button/edit.js +0 -1
  182. package/src/cover/edit/embed-video-url-input.js +0 -1
  183. package/src/cover/test/edit.js +51 -2
  184. package/src/details/edit.js +0 -1
  185. package/src/editor.scss +0 -1
  186. package/src/form/edit.js +0 -2
  187. package/src/form-input/edit.js +0 -2
  188. package/src/freeform/edit.js +6 -29
  189. package/src/freeform/migration-notice.js +2 -4
  190. package/src/home-link/edit.js +0 -1
  191. package/src/html/modal.js +3 -0
  192. package/src/icon/edit.js +0 -2
  193. package/src/image/image.js +0 -2
  194. package/src/image/test/use-open-image-media-editor-modal.js +20 -26
  195. package/src/image/use-open-image-media-editor-modal.js +24 -42
  196. package/src/list/ordered-list-settings.js +0 -1
  197. package/src/navigation/edit/index.js +9 -13
  198. package/src/navigation/edit/navigation-menu-name-control.js +0 -1
  199. package/src/navigation-link/README.md +1 -1
  200. package/src/navigation-link/block.json +1 -1
  201. package/src/navigation-link/link-ui/page-creator.js +0 -1
  202. package/src/navigation-link/shared/controls.js +0 -2
  203. package/src/navigation-link/test/__snapshots__/hooks.js.snap +5 -0
  204. package/src/playlist-track/edit.js +0 -3
  205. package/src/post-comment/edit.js +0 -1
  206. package/src/post-featured-image/edit.js +0 -1
  207. package/src/post-terms/edit.js +0 -1
  208. package/src/post-title/edit.js +0 -1
  209. package/src/query/edit/enhanced-pagination-modal.js +11 -1
  210. package/src/query/edit/inspector-controls/index.js +0 -1
  211. package/src/rss/edit.js +0 -1
  212. package/src/search/README.md +1 -0
  213. package/src/search/block.json +4 -0
  214. package/src/search/edit.js +106 -55
  215. package/src/search/index.php +25 -1
  216. package/src/site-logo/edit.js +3 -1
  217. package/src/social-link/edit.js +0 -3
  218. package/src/tab-list/README.md +1 -1
  219. package/src/tab-list/block.json +2 -2
  220. package/src/tab-list/edit.js +14 -8
  221. package/src/tab-list/index.php +4 -6
  222. package/src/tab-list/init.js +6 -0
  223. package/src/tab-list/style.scss +1 -2
  224. package/src/tab-panel/edit.js +1 -14
  225. package/src/tab-panel/index.php +2 -25
  226. package/src/tab-panel/save.js +1 -0
  227. package/src/tab-panels/block.json +0 -1
  228. package/src/tab-panels/init.js +6 -0
  229. package/src/table/edit.js +0 -2
  230. package/src/tabs/index.php +12 -19
  231. package/src/tabs/view.js +20 -100
  232. package/src/template-part/edit/advanced-controls.js +0 -1
  233. package/src/template-part/edit/title-modal.js +0 -1
  234. package/src/utils/test/style-state.js +26 -26
  235. package/src/video/edit.js +9 -16
  236. package/src/video/tracks-editor.js +0 -2
  237. package/build/freeform/convert-to-blocks-button.cjs +0 -40
  238. package/build/freeform/convert-to-blocks-button.cjs.map +0 -7
  239. package/build/list-item/utils.cjs +0 -57
  240. package/build/list-item/utils.cjs.map +0 -7
  241. package/build-module/freeform/convert-to-blocks-button.mjs +0 -19
  242. package/build-module/freeform/convert-to-blocks-button.mjs.map +0 -7
  243. package/build-module/list-item/utils.mjs +0 -32
  244. package/build-module/list-item/utils.mjs.map +0 -7
  245. package/build-style/tab-list/editor-rtl.css +0 -14
  246. package/build-style/tab-list/editor.css +0 -14
  247. package/src/freeform/convert-to-blocks-button.js +0 -18
  248. package/src/list-item/utils.js +0 -34
  249. package/src/tab-list/editor.scss +0 -17
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/video/tracks-editor.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <WCBadge>{ __( 'Default' ) }</WCBadge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\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\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge: WCBadge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <WCBadge>{ __( 'Default' ) }</WCBadge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\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\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -2365,21 +2365,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2365
2365
  width: 112px;
2366
2366
  }
2367
2367
 
2368
- .wp-block-tab-list {
2369
- display: flex;
2370
- flex-wrap: nowrap;
2371
- gap: 0.5em;
2372
- }
2373
- .wp-block-tab-list button.is-active::before {
2374
- content: "";
2375
- position: absolute;
2376
- border-bottom: 2px solid currentColor;
2377
- pointer-events: none;
2378
- right: 0;
2379
- width: 100%;
2380
- bottom: 0;
2381
- }
2382
-
2383
2368
  .block-editor-template-part__selection-modal {
2384
2369
  z-index: 1000001;
2385
2370
  }
@@ -2369,21 +2369,6 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
2369
2369
  width: 112px;
2370
2370
  }
2371
2371
 
2372
- .wp-block-tab-list {
2373
- display: flex;
2374
- flex-wrap: nowrap;
2375
- gap: 0.5em;
2376
- }
2377
- .wp-block-tab-list button.is-active::before {
2378
- content: "";
2379
- position: absolute;
2380
- border-bottom: 2px solid currentColor;
2381
- pointer-events: none;
2382
- left: 0;
2383
- width: 100%;
2384
- bottom: 0;
2385
- }
2386
-
2387
2372
  .block-editor-template-part__selection-modal {
2388
2373
  z-index: 1000001;
2389
2374
  }
@@ -4797,7 +4797,7 @@ ul.wp-block-rss.is-grid li {
4797
4797
  text-transform: inherit;
4798
4798
  text-align: inherit;
4799
4799
  }
4800
- :where(.wp-block-tab-list button)[aria-selected=true]::before, :where(.wp-block-tab-list button).is-active::before {
4800
+ :where(.wp-block-tab-list button)[aria-selected=true]::before {
4801
4801
  content: "";
4802
4802
  position: absolute;
4803
4803
  border-bottom: 2px solid currentColor;
@@ -4830,7 +4830,7 @@ ul.wp-block-rss.is-grid li {
4830
4830
  text-transform: inherit;
4831
4831
  text-align: inherit;
4832
4832
  }
4833
- :where(.wp-block-tab-list button)[aria-selected=true]::before, :where(.wp-block-tab-list button).is-active::before {
4833
+ :where(.wp-block-tab-list button)[aria-selected=true]::before {
4834
4834
  content: "";
4835
4835
  position: absolute;
4836
4836
  border-bottom: 2px solid currentColor;
@@ -24,7 +24,7 @@
24
24
  text-transform: inherit;
25
25
  text-align: inherit;
26
26
  }
27
- :where(.wp-block-tab-list button)[aria-selected=true]::before, :where(.wp-block-tab-list button).is-active::before {
27
+ :where(.wp-block-tab-list button)[aria-selected=true]::before {
28
28
  content: "";
29
29
  position: absolute;
30
30
  border-bottom: 2px solid currentColor;
@@ -24,7 +24,7 @@
24
24
  text-transform: inherit;
25
25
  text-align: inherit;
26
26
  }
27
- :where(.wp-block-tab-list button)[aria-selected=true]::before, :where(.wp-block-tab-list button).is-active::before {
27
+ :where(.wp-block-tab-list button)[aria-selected=true]::before {
28
28
  content: "";
29
29
  position: absolute;
30
30
  border-bottom: 2px solid currentColor;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "10.0.1-next.v.202606191442.0+17fe7db8a",
3
+ "version": "10.0.1",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -92,44 +92,44 @@
92
92
  ],
93
93
  "dependencies": {
94
94
  "@arraypress/waveform-player": "^1.2.1",
95
- "@wordpress/a11y": "^4.48.2-next.v.202606191442.0+17fe7db8a",
96
- "@wordpress/api-fetch": "^7.48.2-next.v.202606191442.0+17fe7db8a",
97
- "@wordpress/autop": "^4.48.2-next.v.202606191442.0+17fe7db8a",
98
- "@wordpress/base-styles": "^10.0.2-next.v.202606191442.0+17fe7db8a",
99
- "@wordpress/blob": "^4.48.2-next.v.202606191442.0+17fe7db8a",
100
- "@wordpress/block-editor": "^15.22.1-next.v.202606191442.0+17fe7db8a",
101
- "@wordpress/blocks": "^15.21.3-next.v.202606191442.0+17fe7db8a",
102
- "@wordpress/components": "^35.1.1-next.v.202606191442.0+17fe7db8a",
103
- "@wordpress/compose": "^8.1.2-next.v.202606191442.0+17fe7db8a",
104
- "@wordpress/core-data": "^7.48.2-next.v.202606191442.0+17fe7db8a",
105
- "@wordpress/data": "^10.48.2-next.v.202606191442.0+17fe7db8a",
106
- "@wordpress/date": "^5.48.2-next.v.202606191442.0+17fe7db8a",
107
- "@wordpress/deprecated": "^4.48.2-next.v.202606191442.0+17fe7db8a",
108
- "@wordpress/dom": "^4.48.2-next.v.202606191442.0+17fe7db8a",
109
- "@wordpress/element": "^8.0.2-next.v.202606191442.0+17fe7db8a",
110
- "@wordpress/escape-html": "^3.48.2-next.v.202606191442.0+17fe7db8a",
111
- "@wordpress/hooks": "^4.48.2-next.v.202606191442.0+17fe7db8a",
112
- "@wordpress/html-entities": "^4.48.2-next.v.202606191442.0+17fe7db8a",
113
- "@wordpress/i18n": "^6.21.2-next.v.202606191442.0+17fe7db8a",
114
- "@wordpress/icons": "^14.0.2-next.v.202606191442.0+17fe7db8a",
115
- "@wordpress/interactivity": "^6.48.2-next.v.202606191442.0+17fe7db8a",
116
- "@wordpress/interactivity-router": "^2.48.2-next.v.202606191442.0+17fe7db8a",
117
- "@wordpress/keyboard-shortcuts": "^5.48.2-next.v.202606191442.0+17fe7db8a",
118
- "@wordpress/keycodes": "^4.48.2-next.v.202606191442.0+17fe7db8a",
119
- "@wordpress/latex-to-mathml": "^1.16.2-next.v.202606191442.0+17fe7db8a",
120
- "@wordpress/notices": "^5.48.2-next.v.202606191442.0+17fe7db8a",
121
- "@wordpress/patterns": "^2.48.2-next.v.202606191442.0+17fe7db8a",
122
- "@wordpress/primitives": "^4.48.2-next.v.202606191442.0+17fe7db8a",
123
- "@wordpress/private-apis": "^1.48.2-next.v.202606191442.0+17fe7db8a",
124
- "@wordpress/reusable-blocks": "^5.48.2-next.v.202606191442.0+17fe7db8a",
125
- "@wordpress/rich-text": "^7.48.2-next.v.202606191442.0+17fe7db8a",
126
- "@wordpress/server-side-render": "^6.24.2-next.v.202606191442.0+17fe7db8a",
127
- "@wordpress/shortcode": "^4.48.2-next.v.202606191442.0+17fe7db8a",
128
- "@wordpress/ui": "^0.16.1-next.v.202606191442.0+17fe7db8a",
129
- "@wordpress/upload-media": "^0.34.1-next.v.202606191442.0+17fe7db8a",
130
- "@wordpress/url": "^4.48.2-next.v.202606191442.0+17fe7db8a",
131
- "@wordpress/viewport": "^6.48.2-next.v.202606191442.0+17fe7db8a",
132
- "@wordpress/wordcount": "^4.48.2-next.v.202606191442.0+17fe7db8a",
95
+ "@wordpress/a11y": "^4.49.0",
96
+ "@wordpress/api-fetch": "^7.49.0",
97
+ "@wordpress/autop": "^4.49.0",
98
+ "@wordpress/base-styles": "^10.1.0",
99
+ "@wordpress/blob": "^4.49.0",
100
+ "@wordpress/block-editor": "^15.22.1",
101
+ "@wordpress/blocks": "^15.22.0",
102
+ "@wordpress/components": "^36.0.1",
103
+ "@wordpress/compose": "^8.2.0",
104
+ "@wordpress/core-data": "^7.49.1",
105
+ "@wordpress/data": "^10.49.0",
106
+ "@wordpress/date": "^5.49.0",
107
+ "@wordpress/deprecated": "^4.49.0",
108
+ "@wordpress/dom": "^4.49.0",
109
+ "@wordpress/element": "^8.1.0",
110
+ "@wordpress/escape-html": "^3.49.0",
111
+ "@wordpress/hooks": "^4.49.0",
112
+ "@wordpress/html-entities": "^4.49.0",
113
+ "@wordpress/i18n": "^6.22.0",
114
+ "@wordpress/icons": "^15.0.0",
115
+ "@wordpress/interactivity": "^6.49.0",
116
+ "@wordpress/interactivity-router": "^2.49.0",
117
+ "@wordpress/keyboard-shortcuts": "^5.49.0",
118
+ "@wordpress/keycodes": "^4.49.0",
119
+ "@wordpress/latex-to-mathml": "^1.17.0",
120
+ "@wordpress/notices": "^5.49.1",
121
+ "@wordpress/patterns": "^2.49.1",
122
+ "@wordpress/primitives": "^4.49.0",
123
+ "@wordpress/private-apis": "^1.49.0",
124
+ "@wordpress/reusable-blocks": "^5.49.1",
125
+ "@wordpress/rich-text": "^7.49.0",
126
+ "@wordpress/server-side-render": "^6.25.1",
127
+ "@wordpress/shortcode": "^4.49.0",
128
+ "@wordpress/ui": "^0.16.1",
129
+ "@wordpress/upload-media": "^0.34.1",
130
+ "@wordpress/url": "^4.49.0",
131
+ "@wordpress/viewport": "^6.49.0",
132
+ "@wordpress/wordcount": "^4.49.0",
133
133
  "change-case": "^4.1.2",
134
134
  "clsx": "^2.1.1",
135
135
  "colord": "^2.9.3",
@@ -160,5 +160,5 @@
160
160
  "publishConfig": {
161
161
  "access": "public"
162
162
  },
163
- "gitHead": "1b6a19222df5a88f161880b5789efb3171d8f425"
163
+ "gitHead": "9a75283890dda96ae1d37197b5070fae8c9cf66f"
164
164
  }
package/src/audio/edit.js CHANGED
@@ -8,7 +8,6 @@ import clsx from 'clsx';
8
8
  */
9
9
  import { isBlobURL } from '@wordpress/blob';
10
10
  import {
11
- Disabled,
12
11
  SelectControl,
13
12
  Spinner,
14
13
  ToggleControl,
@@ -250,14 +249,11 @@ function AudioEdit( {
250
249
  </ToolsPanel>
251
250
  </InspectorControls>
252
251
  <figure { ...blockProps }>
253
- { /*
254
- Disable the audio tag if the block is not selected
255
- so the user clicking on it won't play the
256
- file or change the position slider when the controls are enabled.
257
- */ }
258
- <Disabled isDisabled={ ! isSingleSelected }>
259
- <audio controls="controls" src={ src ?? temporaryURL } />
260
- </Disabled>
252
+ <audio
253
+ controls="controls"
254
+ inert={ ! isSingleSelected ? 'true' : undefined }
255
+ src={ src ?? temporaryURL }
256
+ />
261
257
  { !! temporaryURL && <Spinner /> }
262
258
  <Caption
263
259
  attributes={ attributes }
@@ -264,7 +264,6 @@ export default function BreadcrumbEdit( {
264
264
  }
265
265
  >
266
266
  <TextControl
267
- __next40pxDefaultSize
268
267
  autoComplete="off"
269
268
  label={ __( 'Separator' ) }
270
269
  value={ separator }
@@ -449,7 +449,6 @@ function ButtonEdit( props ) {
449
449
  />
450
450
  { isLinkTag && (
451
451
  <TextControl
452
- __next40pxDefaultSize
453
452
  label={ __( 'Link relation' ) }
454
453
  help={ createInterpolateElement(
455
454
  __(
@@ -58,7 +58,6 @@ export default function EmbedVideoUrlInput( {
58
58
  ) }
59
59
  <TextControl
60
60
  type="url"
61
- __next40pxDefaultSize
62
61
  label={ __( 'Video URL' ) }
63
62
  value={ url }
64
63
  onChange={ ( value ) => {
@@ -39,6 +39,50 @@ const disabledColorSettings = {
39
39
  disableCustomGradients: true,
40
40
  };
41
41
 
42
+ /**
43
+ * Runs `callback` with `requestAnimationFrame` callbacks flushed on a microtask
44
+ * ahead of any pending `setTimeout( 0 )` timers, then restores the original.
45
+ *
46
+ * In a browser, Ariakit normalizes the matrix's roving tabindex in a
47
+ * `requestAnimationFrame` before `useFocusOnMount`'s `setTimeout( 0 )` focuses
48
+ * the active (center) cell, so opening the dropdown leaves the content position
49
+ * untouched. JSDOM implements `requestAnimationFrame` as a ~16ms timer, which
50
+ * inverts the ordering and would otherwise focus and select the first DOM cell.
51
+ *
52
+ * @param {() => ( Promise< unknown > | unknown )} callback
53
+ * @return {Promise< unknown >} Resolves with the callback's return value.
54
+ */
55
+ async function withAnimationFramesBeforeTimers( callback ) {
56
+ const originalRequestAnimationFrame = global.requestAnimationFrame;
57
+
58
+ let flushing = false;
59
+ global.requestAnimationFrame = ( frameCallback ) => {
60
+ // Frames scheduled while flushing fall back to the real implementation
61
+ // so self-rescheduling loops (e.g. Popover's Floating UI `autoUpdate`)
62
+ // don't spin forever on the microtask queue.
63
+ if ( flushing ) {
64
+ return originalRequestAnimationFrame( frameCallback );
65
+ }
66
+
67
+ queueMicrotask( () => {
68
+ flushing = true;
69
+ try {
70
+ frameCallback( performance.now() );
71
+ } finally {
72
+ flushing = false;
73
+ }
74
+ } );
75
+
76
+ return 0;
77
+ };
78
+
79
+ try {
80
+ return await callback();
81
+ } finally {
82
+ global.requestAnimationFrame = originalRequestAnimationFrame;
83
+ }
84
+ }
85
+
42
86
  async function setup( attributes, useCoreBlocks, customSettings ) {
43
87
  const testBlock = { name: 'core/cover', attributes };
44
88
  const settings = customSettings || defaultSettings;
@@ -149,8 +193,13 @@ describe( 'Cover block', () => {
149
193
  await setup();
150
194
  await createAndSelectBlock();
151
195
 
152
- await userEvent.click(
153
- screen.getByLabelText( 'Change content position' )
196
+ // Open the matrix dropdown with browser-like frame ordering so
197
+ // focus-on-mount lands on the active cell instead of dirtying the
198
+ // content position.
199
+ await withAnimationFramesBeforeTimers( () =>
200
+ userEvent.click(
201
+ screen.getByLabelText( 'Change content position' )
202
+ )
154
203
  );
155
204
 
156
205
  expect( screen.getByLabelText( 'Block: Cover' ) ).not.toHaveClass(
@@ -105,7 +105,6 @@ function DetailsEdit( { attributes, setAttributes, clientId } ) {
105
105
  </InspectorControls>
106
106
  <InspectorControls group="advanced">
107
107
  <TextControl
108
- __next40pxDefaultSize
109
108
  label={ __( 'Name attribute' ) }
110
109
  value={ name || '' }
111
110
  onChange={ ( newName ) =>
package/src/editor.scss CHANGED
@@ -49,7 +49,6 @@
49
49
  @use "./social-links/editor.scss" as *;
50
50
  @use "./spacer/editor.scss" as *;
51
51
  @use "./table/editor.scss" as *;
52
- @use "./tab-list/editor.scss" as *;
53
52
  @use "./template-part/editor.scss" as *;
54
53
  @use "./term-template/editor.scss" as *;
55
54
  @use "./text-columns/editor.scss" as *;
package/src/form/edit.js CHANGED
@@ -150,7 +150,6 @@ const Edit = ( { attributes, setAttributes, clientId } ) => {
150
150
  isShownByDefault
151
151
  >
152
152
  <TextControl
153
- __next40pxDefaultSize
154
153
  autoComplete="off"
155
154
  label={ __( 'Email for form submissions' ) }
156
155
  value={ email || '' }
@@ -189,7 +188,6 @@ const Edit = ( { attributes, setAttributes, clientId } ) => {
189
188
  ) }
190
189
  />
191
190
  <TextControl
192
- __next40pxDefaultSize
193
191
  autoComplete="off"
194
192
  label={ __( 'Form action' ) }
195
193
  value={ action }
@@ -102,7 +102,6 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
102
102
  ) }
103
103
  <InspectorControls group="advanced">
104
104
  <TextControl
105
- __next40pxDefaultSize
106
105
  autoComplete="off"
107
106
  label={ __( 'Name' ) }
108
107
  value={ name }
@@ -117,7 +116,6 @@ function InputFieldBlock( { attributes, setAttributes, className } ) {
117
116
  />
118
117
  { 'hidden' === type && (
119
118
  <TextControl
120
- __next40pxDefaultSize
121
119
  autoComplete="off"
122
120
  label={ __( 'Value' ) }
123
121
  value={ value }
@@ -21,7 +21,6 @@ import { classic } from '@wordpress/icons';
21
21
  /**
22
22
  * Internal dependencies
23
23
  */
24
- import ConvertToBlocksButton from './convert-to-blocks-button';
25
24
  import MigrationNotice from './migration-notice';
26
25
  import ModalEdit from './modal';
27
26
 
@@ -41,22 +40,8 @@ export default function FreeformEdit( {
41
40
  );
42
41
  const { removeBlock } = useDispatch( blockEditorStore );
43
42
 
44
- // Gated by an experiment so authors can opt into a stronger nudge to
45
- // migrate Classic block content ahead of its planned deprecation.
46
- const isDeprecationMode = window.__experimentalClassicBlockDeprecation;
47
-
48
43
  return (
49
44
  <>
50
- { canRemove && ! isDeprecationMode && (
51
- <BlockControls>
52
- <ToolbarGroup>
53
- <ConvertToBlocksButton
54
- content={ content }
55
- onReplace={ onReplace }
56
- />
57
- </ToolbarGroup>
58
- </BlockControls>
59
- ) }
60
45
  <BlockControls>
61
46
  <ToolbarGroup>
62
47
  <ToolbarButton
@@ -68,7 +53,7 @@ export default function FreeformEdit( {
68
53
  </ToolbarGroup>
69
54
  </BlockControls>
70
55
  <div { ...useBlockProps() }>
71
- { isDeprecationMode && canRemove && content && (
56
+ { canRemove && content && (
72
57
  <MigrationNotice
73
58
  content={ content }
74
59
  onReplace={ onReplace }
@@ -80,15 +65,11 @@ export default function FreeformEdit( {
80
65
  <Placeholder
81
66
  icon={ <BlockIcon icon={ classic } /> }
82
67
  label={ __( 'Classic' ) }
83
- instructions={
84
- isDeprecationMode
85
- ? __(
86
- 'The Classic block is being phased out. It’s recommended to use other blocks for the best editing experience.'
87
- )
88
- : __( 'Use the classic editor to add content.' )
89
- }
68
+ instructions={ __(
69
+ 'The Classic block is being phased out. It’s recommended to use other blocks for the best editing experience.'
70
+ ) }
90
71
  >
91
- { isDeprecationMode && canRemove && (
72
+ { canRemove && (
92
73
  <Button
93
74
  __next40pxDefaultSize
94
75
  variant="primary"
@@ -99,11 +80,7 @@ export default function FreeformEdit( {
99
80
  ) }
100
81
  <Button
101
82
  __next40pxDefaultSize
102
- variant={
103
- isDeprecationMode && canRemove
104
- ? 'secondary'
105
- : 'primary'
106
- }
83
+ variant={ canRemove ? 'secondary' : 'primary' }
107
84
  onClick={ () => setOpen( true ) }
108
85
  >
109
86
  { __( 'Edit contents' ) }
@@ -7,13 +7,11 @@ import { createBlock, rawHandler } from '@wordpress/blocks';
7
7
  import { __ } from '@wordpress/i18n';
8
8
 
9
9
  /**
10
- * Block-level deprecation warning rendered when the
11
- * `gutenberg-classic-block-deprecation` experiment is enabled.
12
- *
10
+ * Block-level deprecation warning for the Classic block.
13
11
  * Uses the same `Warning` primitive as `core/missing` so the experience is
14
12
  * visually consistent with how the editor already surfaces deprecated blocks,
15
13
  * and offers two migration actions - a primary "Convert to blocks", and a
16
- * secondary "Convert to Custom HTML".
14
+ * secondary "Convert to HTML".
17
15
  *
18
16
  * @param {Object} props
19
17
  * @param {string} props.content Raw HTML content of the Classic block.
@@ -108,7 +108,6 @@ export default function HomeEdit( { attributes, setAttributes, context } ) {
108
108
  isShownByDefault
109
109
  >
110
110
  <TextControl
111
- __next40pxDefaultSize
112
111
  label={ __( 'Text' ) }
113
112
  value={ label ? stripHTML( label ) : '' }
114
113
  onChange={ ( labelValue ) => {
package/src/html/modal.js CHANGED
@@ -148,6 +148,7 @@ export default function HTMLEditModal( {
148
148
  placeholder={ __( 'Write HTML…' ) }
149
149
  aria-label={ __( 'HTML' ) }
150
150
  className="block-library-html__modal-editor"
151
+ async
151
152
  />
152
153
  </Tabs.TabPanel>
153
154
  { canUserUseUnfilteredHTML && (
@@ -162,6 +163,7 @@ export default function HTMLEditModal( {
162
163
  placeholder={ __( 'Write CSS…' ) }
163
164
  aria-label={ __( 'CSS' ) }
164
165
  className="block-library-html__modal-editor"
166
+ async
165
167
  />
166
168
  </Tabs.TabPanel>
167
169
  ) }
@@ -179,6 +181,7 @@ export default function HTMLEditModal( {
179
181
  ) }
180
182
  aria-label={ __( 'JavaScript' ) }
181
183
  className="block-library-html__modal-editor"
184
+ async
182
185
  />
183
186
  </Tabs.TabPanel>
184
187
  ) }
package/src/icon/edit.js CHANGED
@@ -169,7 +169,6 @@ export function Edit( { attributes, setAttributes } ) {
169
169
  help={ __(
170
170
  'Briefly describe the icon to help screen reader users. Leave blank for decorative icons.'
171
171
  ) }
172
- __next40pxDefaultSize
173
172
  />
174
173
  ) }
175
174
  </DropdownMenu>
@@ -207,7 +206,6 @@ export function Edit( { attributes, setAttributes } ) {
207
206
  onChange={ ( value ) =>
208
207
  setAttributes( { ariaLabel: value } )
209
208
  }
210
- __next40pxDefaultSize
211
209
  />
212
210
  </ToolsPanelItem>
213
211
  </ToolsPanel>
@@ -236,7 +236,6 @@ function ContentOnlyControls( {
236
236
  >
237
237
  <div className="wp-block-image__toolbar_content_textarea__container">
238
238
  <TextControl
239
- __next40pxDefaultSize
240
239
  className="wp-block-image__toolbar_content_textarea"
241
240
  label={ __( 'Title attribute' ) }
242
241
  value={ attributes.title || '' }
@@ -1143,7 +1142,6 @@ export default function Image( {
1143
1142
  ) }
1144
1143
  <InspectorControls group="advanced">
1145
1144
  <TextControl
1146
- __next40pxDefaultSize
1147
1145
  label={ __( 'Title attribute' ) }
1148
1146
  value={ title || '' }
1149
1147
  onChange={ onSetTitle }