@wordpress/block-library 9.24.0 → 9.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/avatar/edit.js +84 -39
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/avatar/user-control.js +32 -17
  5. package/build/avatar/user-control.js.map +1 -1
  6. package/build/button/edit.js +29 -17
  7. package/build/button/edit.js.map +1 -1
  8. package/build/columns/edit.js +18 -22
  9. package/build/columns/edit.js.map +1 -1
  10. package/build/comment-author-name/edit.js +41 -12
  11. package/build/comment-author-name/edit.js.map +1 -1
  12. package/build/comment-date/edit.js +41 -12
  13. package/build/comment-date/edit.js.map +1 -1
  14. package/build/comment-edit-link/edit.js +27 -7
  15. package/build/comment-edit-link/edit.js.map +1 -1
  16. package/build/comments/edit/comments-inspector-controls.js +1 -3
  17. package/build/comments/edit/comments-inspector-controls.js.map +1 -1
  18. package/build/comments-pagination/edit.js +23 -9
  19. package/build/comments-pagination/edit.js.map +1 -1
  20. package/build/comments-title/edit.js +41 -12
  21. package/build/comments-title/edit.js.map +1 -1
  22. package/build/details/edit.js +27 -3
  23. package/build/details/edit.js.map +1 -1
  24. package/build/embed/edit.js +2 -4
  25. package/build/embed/edit.js.map +1 -1
  26. package/build/embed/embed-controls.js +41 -22
  27. package/build/embed/embed-controls.js.map +1 -1
  28. package/build/embed/variations.js +0 -10
  29. package/build/embed/variations.js.map +1 -1
  30. package/build/file/inspector.js +73 -30
  31. package/build/file/inspector.js.map +1 -1
  32. package/build/form/edit.js +67 -38
  33. package/build/form/edit.js.map +1 -1
  34. package/build/form/index.js +3 -3
  35. package/build/form/index.js.map +1 -1
  36. package/build/form-input/edit.js +47 -18
  37. package/build/form-input/edit.js.map +1 -1
  38. package/build/form-input/index.js +2 -1
  39. package/build/form-input/index.js.map +1 -1
  40. package/build/form-submission-notification/index.js +2 -1
  41. package/build/form-submission-notification/index.js.map +1 -1
  42. package/build/form-submit-button/index.js +2 -1
  43. package/build/form-submit-button/index.js.map +1 -1
  44. package/build/image/image.js +1 -0
  45. package/build/image/image.js.map +1 -1
  46. package/build/image/view.js +0 -3
  47. package/build/image/view.js.map +1 -1
  48. package/build/latest-posts/edit.js +154 -82
  49. package/build/latest-posts/edit.js.map +1 -1
  50. package/build/list/ordered-list-settings.js +131 -52
  51. package/build/list/ordered-list-settings.js.map +1 -1
  52. package/build/navigation/edit/index.js +93 -51
  53. package/build/navigation/edit/index.js.map +1 -1
  54. package/build/navigation/edit/overlay-menu-preview.js +43 -27
  55. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  56. package/build/navigation-link/edit.js +11 -0
  57. package/build/navigation-link/edit.js.map +1 -1
  58. package/build/navigation-link/index.js +3 -0
  59. package/build/navigation-link/index.js.map +1 -1
  60. package/build/navigation-link/transforms.js +2 -0
  61. package/build/navigation-link/transforms.js.map +1 -1
  62. package/build/navigation-link/update-attributes.js +1 -0
  63. package/build/navigation-link/update-attributes.js.map +1 -1
  64. package/build/navigation-submenu/index.js +3 -0
  65. package/build/navigation-submenu/index.js.map +1 -1
  66. package/build/post-author/edit.js +75 -18
  67. package/build/post-author/edit.js.map +1 -1
  68. package/build/post-comments-count/index.js +3 -1
  69. package/build/post-comments-count/index.js.map +1 -1
  70. package/build/post-comments-count/transforms.js +26 -0
  71. package/build/post-comments-count/transforms.js.map +1 -0
  72. package/build/post-comments-link/index.js +3 -1
  73. package/build/post-comments-link/index.js.map +1 -1
  74. package/build/post-comments-link/transforms.js +26 -0
  75. package/build/post-comments-link/transforms.js.map +1 -0
  76. package/build/post-navigation-link/edit.js +72 -33
  77. package/build/post-navigation-link/edit.js.map +1 -1
  78. package/build/post-title/edit.js +56 -18
  79. package/build/post-title/edit.js.map +1 -1
  80. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  81. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  82. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  83. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  84. package/build/rss/edit.js +120 -46
  85. package/build/rss/edit.js.map +1 -1
  86. package/build/separator/edit.js +52 -20
  87. package/build/separator/edit.js.map +1 -1
  88. package/build/shortcode/index.js +2 -1
  89. package/build/shortcode/index.js.map +1 -1
  90. package/build/site-logo/edit.js +53 -19
  91. package/build/site-logo/edit.js.map +1 -1
  92. package/build/social-link/edit.js +21 -5
  93. package/build/social-link/edit.js.map +1 -1
  94. package/build/social-link/edit.native.js +13 -5
  95. package/build/social-link/edit.native.js.map +1 -1
  96. package/build/social-link/social-list.js +17 -25
  97. package/build/social-link/social-list.js.map +1 -1
  98. package/build/social-link/variations.js +53 -48
  99. package/build/social-link/variations.js.map +1 -1
  100. package/build/social-links/edit.js +38 -45
  101. package/build/social-links/edit.js.map +1 -1
  102. package/build/video/tracks-editor.js +63 -21
  103. package/build/video/tracks-editor.js.map +1 -1
  104. package/build-module/avatar/edit.js +83 -38
  105. package/build-module/avatar/edit.js.map +1 -1
  106. package/build-module/avatar/user-control.js +33 -18
  107. package/build-module/avatar/user-control.js.map +1 -1
  108. package/build-module/button/edit.js +30 -18
  109. package/build-module/button/edit.js.map +1 -1
  110. package/build-module/columns/edit.js +18 -22
  111. package/build-module/columns/edit.js.map +1 -1
  112. package/build-module/comment-author-name/edit.js +42 -13
  113. package/build-module/comment-author-name/edit.js.map +1 -1
  114. package/build-module/comment-date/edit.js +42 -13
  115. package/build-module/comment-date/edit.js.map +1 -1
  116. package/build-module/comment-edit-link/edit.js +28 -8
  117. package/build-module/comment-edit-link/edit.js.map +1 -1
  118. package/build-module/comments/edit/comments-inspector-controls.js +1 -3
  119. package/build-module/comments/edit/comments-inspector-controls.js.map +1 -1
  120. package/build-module/comments-pagination/edit.js +24 -10
  121. package/build-module/comments-pagination/edit.js.map +1 -1
  122. package/build-module/comments-title/edit.js +42 -13
  123. package/build-module/comments-title/edit.js.map +1 -1
  124. package/build-module/details/edit.js +29 -5
  125. package/build-module/details/edit.js.map +1 -1
  126. package/build-module/embed/edit.js +2 -4
  127. package/build-module/embed/edit.js.map +1 -1
  128. package/build-module/embed/embed-controls.js +42 -23
  129. package/build-module/embed/embed-controls.js.map +1 -1
  130. package/build-module/embed/variations.js +0 -10
  131. package/build-module/embed/variations.js.map +1 -1
  132. package/build-module/file/inspector.js +74 -31
  133. package/build-module/file/inspector.js.map +1 -1
  134. package/build-module/form/edit.js +68 -39
  135. package/build-module/form/edit.js.map +1 -1
  136. package/build-module/form/index.js +3 -3
  137. package/build-module/form/index.js.map +1 -1
  138. package/build-module/form-input/edit.js +48 -19
  139. package/build-module/form-input/edit.js.map +1 -1
  140. package/build-module/form-input/index.js +2 -1
  141. package/build-module/form-input/index.js.map +1 -1
  142. package/build-module/form-submission-notification/index.js +2 -1
  143. package/build-module/form-submission-notification/index.js.map +1 -1
  144. package/build-module/form-submit-button/index.js +2 -1
  145. package/build-module/form-submit-button/index.js.map +1 -1
  146. package/build-module/image/image.js +1 -0
  147. package/build-module/image/image.js.map +1 -1
  148. package/build-module/image/view.js +0 -3
  149. package/build-module/image/view.js.map +1 -1
  150. package/build-module/latest-posts/edit.js +155 -83
  151. package/build-module/latest-posts/edit.js.map +1 -1
  152. package/build-module/list/ordered-list-settings.js +132 -53
  153. package/build-module/list/ordered-list-settings.js.map +1 -1
  154. package/build-module/navigation/edit/index.js +94 -52
  155. package/build-module/navigation/edit/index.js.map +1 -1
  156. package/build-module/navigation/edit/overlay-menu-preview.js +44 -28
  157. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  158. package/build-module/navigation-link/edit.js +11 -0
  159. package/build-module/navigation-link/edit.js.map +1 -1
  160. package/build-module/navigation-link/index.js +3 -0
  161. package/build-module/navigation-link/index.js.map +1 -1
  162. package/build-module/navigation-link/transforms.js +2 -0
  163. package/build-module/navigation-link/transforms.js.map +1 -1
  164. package/build-module/navigation-link/update-attributes.js +1 -0
  165. package/build-module/navigation-link/update-attributes.js.map +1 -1
  166. package/build-module/navigation-submenu/index.js +3 -0
  167. package/build-module/navigation-submenu/index.js.map +1 -1
  168. package/build-module/post-author/edit.js +76 -19
  169. package/build-module/post-author/edit.js.map +1 -1
  170. package/build-module/post-comments-count/index.js +3 -1
  171. package/build-module/post-comments-count/index.js.map +1 -1
  172. package/build-module/post-comments-count/transforms.js +19 -0
  173. package/build-module/post-comments-count/transforms.js.map +1 -0
  174. package/build-module/post-comments-link/index.js +3 -1
  175. package/build-module/post-comments-link/index.js.map +1 -1
  176. package/build-module/post-comments-link/transforms.js +19 -0
  177. package/build-module/post-comments-link/transforms.js.map +1 -0
  178. package/build-module/post-navigation-link/edit.js +73 -34
  179. package/build-module/post-navigation-link/edit.js.map +1 -1
  180. package/build-module/post-title/edit.js +57 -19
  181. package/build-module/post-title/edit.js.map +1 -1
  182. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  183. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  184. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -6
  185. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  186. package/build-module/rss/edit.js +121 -47
  187. package/build-module/rss/edit.js.map +1 -1
  188. package/build-module/separator/edit.js +54 -22
  189. package/build-module/separator/edit.js.map +1 -1
  190. package/build-module/shortcode/index.js +2 -1
  191. package/build-module/shortcode/index.js.map +1 -1
  192. package/build-module/site-logo/edit.js +54 -20
  193. package/build-module/site-logo/edit.js.map +1 -1
  194. package/build-module/social-link/edit.js +24 -8
  195. package/build-module/social-link/edit.js.map +1 -1
  196. package/build-module/social-link/edit.native.js +15 -6
  197. package/build-module/social-link/edit.native.js.map +1 -1
  198. package/build-module/social-link/social-list.js +16 -21
  199. package/build-module/social-link/social-list.js.map +1 -1
  200. package/build-module/social-link/variations.js +53 -48
  201. package/build-module/social-link/variations.js.map +1 -1
  202. package/build-module/social-links/edit.js +40 -47
  203. package/build-module/social-links/edit.js.map +1 -1
  204. package/build-module/video/tracks-editor.js +65 -23
  205. package/build-module/video/tracks-editor.js.map +1 -1
  206. package/build-style/calendar/style-rtl.css +7 -7
  207. package/build-style/calendar/style.css +7 -7
  208. package/build-style/comments-pagination/editor-rtl.css +0 -12
  209. package/build-style/comments-pagination/editor.css +0 -14
  210. package/build-style/comments-pagination/style-rtl.css +0 -7
  211. package/build-style/comments-pagination/style.css +0 -9
  212. package/build-style/editor-rtl.css +9 -21
  213. package/build-style/editor.css +9 -23
  214. package/build-style/gallery/style-rtl.css +1 -0
  215. package/build-style/gallery/style.css +1 -0
  216. package/build-style/navigation/editor-rtl.css +8 -3
  217. package/build-style/navigation/editor.css +8 -3
  218. package/build-style/navigation/style-rtl.css +4 -0
  219. package/build-style/navigation/style.css +4 -0
  220. package/build-style/pullquote/editor-rtl.css +1 -1
  221. package/build-style/pullquote/editor.css +1 -1
  222. package/build-style/pullquote/style-rtl.css +2 -3
  223. package/build-style/pullquote/style.css +2 -3
  224. package/build-style/pullquote/theme-rtl.css +2 -2
  225. package/build-style/pullquote/theme.css +2 -2
  226. package/build-style/style-rtl.css +14 -17
  227. package/build-style/style.css +14 -19
  228. package/build-style/theme-rtl.css +2 -2
  229. package/build-style/theme.css +2 -2
  230. package/package.json +35 -35
  231. package/src/avatar/edit.js +99 -51
  232. package/src/avatar/user-control.js +34 -29
  233. package/src/button/edit.js +44 -29
  234. package/src/calendar/style.scss +10 -10
  235. package/src/columns/edit.js +20 -31
  236. package/src/comment-author-name/edit.js +54 -13
  237. package/src/comment-date/edit.js +50 -15
  238. package/src/comment-edit-link/edit.js +39 -11
  239. package/src/comments/edit/comments-inspector-controls.js +0 -2
  240. package/src/comments-pagination/edit.js +29 -9
  241. package/src/comments-pagination/editor.scss +0 -15
  242. package/src/comments-pagination/style.scss +0 -8
  243. package/src/comments-title/edit.js +53 -15
  244. package/src/details/edit.js +36 -4
  245. package/src/editor.scss +0 -1
  246. package/src/embed/edit.js +3 -5
  247. package/src/embed/embed-controls.js +55 -33
  248. package/src/embed/variations.js +0 -8
  249. package/src/file/inspector.js +99 -45
  250. package/src/form/block.json +1 -2
  251. package/src/form/edit.js +91 -47
  252. package/src/form/index.js +1 -0
  253. package/src/form-input/edit.js +56 -18
  254. package/src/form-input/index.js +1 -0
  255. package/src/form-submission-notification/index.js +1 -0
  256. package/src/form-submit-button/index.js +1 -0
  257. package/src/gallery/style.scss +1 -0
  258. package/src/image/image.js +1 -0
  259. package/src/image/index.php +4 -1
  260. package/src/image/view.js +0 -3
  261. package/src/latest-posts/edit.js +206 -98
  262. package/src/list/ordered-list-settings.js +172 -62
  263. package/src/navigation/edit/index.js +127 -64
  264. package/src/navigation/edit/overlay-menu-preview.js +43 -26
  265. package/src/navigation/editor.scss +8 -4
  266. package/src/navigation/style.scss +8 -0
  267. package/src/navigation-link/block.json +3 -0
  268. package/src/navigation-link/edit.js +14 -1
  269. package/src/navigation-link/index.php +4 -0
  270. package/src/navigation-link/transforms.js +2 -1
  271. package/src/navigation-link/update-attributes.js +1 -0
  272. package/src/navigation-submenu/block.json +3 -0
  273. package/src/navigation-submenu/index.php +4 -0
  274. package/src/post-author/edit.js +91 -27
  275. package/src/post-comments-count/index.js +2 -0
  276. package/src/post-comments-count/transforms.js +20 -0
  277. package/src/post-comments-link/index.js +2 -0
  278. package/src/post-comments-link/transforms.js +20 -0
  279. package/src/post-navigation-link/edit.js +96 -51
  280. package/src/post-title/edit.js +76 -24
  281. package/src/pullquote/editor.scss +1 -1
  282. package/src/pullquote/style.scss +2 -3
  283. package/src/pullquote/theme.scss +2 -2
  284. package/src/query/edit/enhanced-pagination-modal.js +1 -5
  285. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -13
  286. package/src/rss/edit.js +141 -55
  287. package/src/separator/edit.js +66 -21
  288. package/src/shortcode/block.json +2 -1
  289. package/src/site-logo/edit.js +69 -26
  290. package/src/site-title/index.php +1 -1
  291. package/src/social-link/edit.js +18 -7
  292. package/src/social-link/edit.native.js +10 -4
  293. package/src/social-link/index.php +62 -49
  294. package/src/social-link/social-list.js +15 -20
  295. package/src/social-link/variations.js +53 -48
  296. package/src/social-links/edit.js +38 -60
  297. package/src/video/tracks-editor.js +75 -22
  298. package/build-style/post-author/editor-rtl.css +0 -140
  299. package/build-style/post-author/editor.css +0 -140
  300. package/src/post-author/editor.scss +0 -7
@@ -11,7 +11,6 @@ var _element = require("@wordpress/element");
11
11
  var _blockEditor = require("@wordpress/block-editor");
12
12
  var _components = require("@wordpress/components");
13
13
  var _i18n = require("@wordpress/i18n");
14
- var _icons = require("@wordpress/icons");
15
14
  var _data = require("@wordpress/data");
16
15
  var _hooks = require("../utils/hooks");
17
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -28,16 +27,19 @@ var _jsxRuntime = require("react/jsx-runtime");
28
27
  */
29
28
 
30
29
  const sizeOptions = [{
31
- name: (0, _i18n.__)('Small'),
30
+ label: (0, _i18n.__)('Default'),
31
+ value: ''
32
+ }, {
33
+ label: (0, _i18n.__)('Small'),
32
34
  value: 'has-small-icon-size'
33
35
  }, {
34
- name: (0, _i18n.__)('Normal'),
36
+ label: (0, _i18n.__)('Normal'),
35
37
  value: 'has-normal-icon-size'
36
38
  }, {
37
- name: (0, _i18n.__)('Large'),
39
+ label: (0, _i18n.__)('Large'),
38
40
  value: 'has-large-icon-size'
39
41
  }, {
40
- name: (0, _i18n.__)('Huge'),
42
+ label: (0, _i18n.__)('Huge'),
41
43
  value: 'has-huge-icon-size'
42
44
  }];
43
45
  function SocialLinksEdit(props) {
@@ -115,9 +117,6 @@ function SocialLinksEdit(props) {
115
117
  __experimentalAppenderTagName: 'li',
116
118
  renderAppender: !hasSocialIcons || hasAnySelected ? _blockEditor.InnerBlocks.ButtonBlockAppender : undefined
117
119
  });
118
- const POPOVER_PROPS = {
119
- position: 'bottom right'
120
- };
121
120
  const colorSettings = [{
122
121
  // Use custom attribute as fallback to prevent loss of named color selection when
123
122
  // switching themes to a new theme that does not have a matching named color.
@@ -158,56 +157,35 @@ function SocialLinksEdit(props) {
158
157
  }
159
158
  const colorGradientSettings = (0, _blockEditor.__experimentalUseMultipleOriginColorsAndGradients)();
160
159
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
161
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
162
- group: "other",
163
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarDropdownMenu, {
164
- label: (0, _i18n.__)('Size'),
165
- text: (0, _i18n.__)('Size'),
166
- icon: null,
167
- popoverProps: POPOVER_PROPS,
168
- children: ({
169
- onClose
170
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
171
- children: sizeOptions.map(entry => {
172
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
173
- icon: (size === entry.value || !size && entry.value === 'has-normal-icon-size') && _icons.check,
174
- isSelected: size === entry.value,
175
- onClick: () => {
176
- setAttributes({
177
- size: entry.value
178
- });
179
- },
180
- onClose: onClose,
181
- role: "menuitemradio",
182
- children: entry.name
183
- }, entry.value);
184
- })
185
- })
186
- })
187
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
160
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
188
161
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalToolsPanel, {
189
162
  label: (0, _i18n.__)('Settings'),
190
163
  resetAll: () => {
191
164
  setAttributes({
192
165
  openInNewTab: false,
193
- showLabels: false
166
+ showLabels: false,
167
+ size: undefined
194
168
  });
195
169
  },
196
170
  dropdownMenuProps: dropdownMenuProps,
197
171
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
198
172
  isShownByDefault: true,
199
- label: (0, _i18n.__)('Open links in new tab'),
200
- hasValue: () => !!openInNewTab,
173
+ hasValue: () => !!size,
174
+ label: (0, _i18n.__)('Icon size'),
201
175
  onDeselect: () => setAttributes({
202
- openInNewTab: false
176
+ size: undefined
203
177
  }),
204
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
178
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
179
+ __next40pxDefaultSize: true,
205
180
  __nextHasNoMarginBottom: true,
206
- label: (0, _i18n.__)('Open links in new tab'),
207
- checked: openInNewTab,
208
- onChange: () => setAttributes({
209
- openInNewTab: !openInNewTab
210
- })
181
+ label: (0, _i18n.__)('Icon Size'),
182
+ onChange: newSize => {
183
+ setAttributes({
184
+ size: newSize === '' ? undefined : newSize
185
+ });
186
+ },
187
+ value: size !== null && size !== void 0 ? size : '',
188
+ options: sizeOptions
211
189
  })
212
190
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
213
191
  isShownByDefault: true,
@@ -224,6 +202,21 @@ function SocialLinksEdit(props) {
224
202
  showLabels: !showLabels
225
203
  })
226
204
  })
205
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
206
+ isShownByDefault: true,
207
+ label: (0, _i18n.__)('Open links in new tab'),
208
+ hasValue: () => !!openInNewTab,
209
+ onDeselect: () => setAttributes({
210
+ openInNewTab: false
211
+ }),
212
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
213
+ __nextHasNoMarginBottom: true,
214
+ label: (0, _i18n.__)('Open links in new tab'),
215
+ checked: openInNewTab,
216
+ onChange: () => setAttributes({
217
+ openInNewTab: !openInNewTab
218
+ })
219
+ })
227
220
  })]
228
221
  })
229
222
  }), colorGradientSettings.hasColorsOrGradients && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.InspectorControls, {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_blockEditor","_components","_i18n","_icons","_data","_hooks","_jsxRuntime","sizeOptions","name","__","value","SocialLinksEdit","props","_attributes$layout$or","clientId","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","iconColorValue","openInNewTab","showLabels","size","hasSocialIcons","hasSelectedChild","useSelect","select","getBlockCount","hasSelectedInnerBlock","blockEditorStore","hasAnySelected","logosOnly","className","includes","dropdownMenuProps","useToolsPanelDropdownMenuProps","useEffect","restore","prev","customIconBackgroundColor","undefined","clsx","color","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","templateLock","orientation","layout","__experimentalAppenderTagName","renderAppender","InnerBlocks","ButtonBlockAppender","POPOVER_PROPS","position","colorSettings","onChange","colorValue","label","resetAllFilter","push","colorGradientSettings","useMultipleOriginColorsAndGradients","jsxs","Fragment","children","jsx","BlockControls","group","ToolbarDropdownMenu","text","icon","popoverProps","onClose","MenuGroup","map","entry","MenuItem","check","onClick","role","InspectorControls","__experimentalToolsPanel","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","ToggleControl","__nextHasNoMarginBottom","checked","hasColorsOrGradients","__experimentalColorGradientSettingsDropdown","__experimentalIsRenderedInSidebar","settings","onColorChange","enableAlpha","clearable","panelId","ContrastChecker","textColor","backgroundColor","isLargeText","iconColorAttributes","_default","exports","default","withColors"],"sources":["@wordpress/block-library/src/social-links/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\tInnerBlocks,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst { hasSocialIcons, hasSelectedChild } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\thasSocialIcons: getBlockCount( clientId ) > 0,\n\t\t\t\thasSelectedChild: hasSelectedInnerBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasAnySelected = isSelected || hasSelectedChild;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tlet restore;\n\t\t\tsetAttributes( ( prev ) => {\n\t\t\t\trestore = {\n\t\t\t\t\ticonBackgroundColor: prev.iconBackgroundColor,\n\t\t\t\t\ticonBackgroundColorValue: prev.iconBackgroundColorValue,\n\t\t\t\t\tcustomIconBackgroundColor: prev.customIconBackgroundColor,\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn () => setAttributes( { ...restore } );\n\t\t}\n\t}, [ logosOnly, setAttributes ] );\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = clsx( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t\trenderAppender:\n\t\t\t! hasSocialIcons || hasAnySelected\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: undefined,\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\n\t};\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconColor( undefined );\n\t\t\t\tsetAttributes( { iconColorValue: undefined } );\n\t\t\t},\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconBackgroundColor( undefined );\n\t\t\t\tsetAttributes( { iconBackgroundColorValue: undefined } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\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\tsize: entry.value,\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\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\topenInNewTab: false,\n\t\t\t\t\t\t\tshowLabels: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\thasValue={ () => !! openInNewTab }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\topenInNewTab: ! openInNewTab,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\thasValue={ () => !! showLabels }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t{ colorSettings.map(\n\t\t\t\t\t\t( { onChange, label, value, resetAllFilter } ) => (\n\t\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t\tkey={ `social-links-color-${ label }` }\n\t\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcolorValue: value,\n\t\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\t\tonColorChange: onChange,\n\t\t\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\t\t\tresetAllFilter,\n\t\t\t\t\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t\t\t\t\t\tclearable: true,\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\tpanelId={ clientId }\n\t\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_blockEditor","_components","_i18n","_data","_hooks","_jsxRuntime","sizeOptions","label","__","value","SocialLinksEdit","props","_attributes$layout$or","clientId","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","iconColorValue","openInNewTab","showLabels","size","hasSocialIcons","hasSelectedChild","useSelect","select","getBlockCount","hasSelectedInnerBlock","blockEditorStore","hasAnySelected","logosOnly","className","includes","dropdownMenuProps","useToolsPanelDropdownMenuProps","useEffect","restore","prev","customIconBackgroundColor","undefined","clsx","color","blockProps","useBlockProps","innerBlocksProps","useInnerBlocksProps","templateLock","orientation","layout","__experimentalAppenderTagName","renderAppender","InnerBlocks","ButtonBlockAppender","colorSettings","onChange","colorValue","resetAllFilter","push","colorGradientSettings","useMultipleOriginColorsAndGradients","jsxs","Fragment","children","jsx","InspectorControls","__experimentalToolsPanel","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","SelectControl","__next40pxDefaultSize","__nextHasNoMarginBottom","newSize","options","ToggleControl","checked","hasColorsOrGradients","group","map","__experimentalColorGradientSettingsDropdown","__experimentalIsRenderedInSidebar","settings","onColorChange","enableAlpha","clearable","panelId","ContrastChecker","textColor","backgroundColor","isLargeText","iconColorAttributes","_default","exports","default","withColors"],"sources":["@wordpress/block-library/src/social-links/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\tInnerBlocks,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst sizeOptions = [\n\t{ label: __( 'Default' ), value: '' },\n\t{ label: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ label: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ label: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ label: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst { hasSocialIcons, hasSelectedChild } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\thasSocialIcons: getBlockCount( clientId ) > 0,\n\t\t\t\thasSelectedChild: hasSelectedInnerBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasAnySelected = isSelected || hasSelectedChild;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tlet restore;\n\t\t\tsetAttributes( ( prev ) => {\n\t\t\t\trestore = {\n\t\t\t\t\ticonBackgroundColor: prev.iconBackgroundColor,\n\t\t\t\t\ticonBackgroundColorValue: prev.iconBackgroundColorValue,\n\t\t\t\t\tcustomIconBackgroundColor: prev.customIconBackgroundColor,\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn () => setAttributes( { ...restore } );\n\t\t}\n\t}, [ logosOnly, setAttributes ] );\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = clsx( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t\trenderAppender:\n\t\t\t! hasSocialIcons || hasAnySelected\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: undefined,\n\t} );\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconColor( undefined );\n\t\t\t\tsetAttributes( { iconColorValue: undefined } );\n\t\t\t},\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconBackgroundColor( undefined );\n\t\t\t\tsetAttributes( { iconBackgroundColorValue: undefined } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\topenInNewTab: false,\n\t\t\t\t\t\t\tshowLabels: false,\n\t\t\t\t\t\t\tsize: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! size }\n\t\t\t\t\t\tlabel={ __( 'Icon size' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { size: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Icon Size' ) }\n\t\t\t\t\t\t\tonChange={ ( newSize ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tsize: newSize === '' ? undefined : newSize,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ size ?? '' }\n\t\t\t\t\t\t\toptions={ sizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\thasValue={ () => !! showLabels }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\thasValue={ () => !! openInNewTab }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\topenInNewTab: ! openInNewTab,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t{ colorSettings.map(\n\t\t\t\t\t\t( { onChange, label, value, resetAllFilter } ) => (\n\t\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t\tkey={ `social-links-color-${ label }` }\n\t\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcolorValue: value,\n\t\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\t\tonColorChange: onChange,\n\t\t\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\t\t\tresetAllFilter,\n\t\t\t\t\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t\t\t\t\t\tclearable: true,\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\tpanelId={ clientId }\n\t\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"],"mappings":"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","ignoreList":[]}
@@ -7,15 +7,24 @@ exports.default = TracksEditor;
7
7
  var _i18n = require("@wordpress/i18n");
8
8
  var _components = require("@wordpress/components");
9
9
  var _blockEditor = require("@wordpress/block-editor");
10
+ var _notices = require("@wordpress/notices");
10
11
  var _icons = require("@wordpress/icons");
11
12
  var _data = require("@wordpress/data");
12
13
  var _element = require("@wordpress/element");
13
14
  var _url = require("@wordpress/url");
15
+ var _lockUnlock = require("../lock-unlock");
14
16
  var _jsxRuntime = require("react/jsx-runtime");
15
17
  /**
16
18
  * WordPress dependencies
17
19
  */
18
20
 
21
+ /**
22
+ * Internal dependencies
23
+ */
24
+
25
+ const {
26
+ Badge
27
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
19
28
  const ALLOWED_TYPES = ['text/vtt'];
20
29
  const DEFAULT_KIND = 'subtitles';
21
30
  const KIND_OPTIONS = [{
@@ -43,15 +52,20 @@ function TrackList({
43
52
  className: "block-library-video-tracks-editor__track-list-track",
44
53
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
45
54
  children: track.label
46
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
47
- __next40pxDefaultSize: true,
48
- variant: "tertiary",
49
- onClick: () => onEditPress(index),
50
- "aria-label": (0, _i18n.sprintf)(/* translators: %s: Label of the video text track e.g: "French subtitles". */
51
- (0, _i18n._x)('Edit %s', 'text tracks'), track.label),
52
- children: (0, _i18n.__)('Edit')
55
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
56
+ justify: "flex-end",
57
+ children: [track.default && /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
58
+ children: (0, _i18n.__)('Default')
59
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
60
+ __next40pxDefaultSize: true,
61
+ variant: "tertiary",
62
+ onClick: () => onEditPress(index),
63
+ "aria-label": (0, _i18n.sprintf)(/* translators: %s: Label of the video text track e.g: "French subtitles". */
64
+ (0, _i18n._x)('Edit %s', 'text tracks'), track.label),
65
+ children: (0, _i18n.__)('Edit')
66
+ })]
53
67
  })]
54
- }, index);
68
+ }, track.src);
55
69
  });
56
70
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuGroup, {
57
71
  label: (0, _i18n.__)('Text tracks'),
@@ -63,13 +77,15 @@ function SingleTrackEditor({
63
77
  track,
64
78
  onChange,
65
79
  onClose,
66
- onRemove
80
+ onRemove,
81
+ allowSettingDefault
67
82
  }) {
68
83
  const {
69
84
  src = '',
70
85
  label = '',
71
86
  srcLang = '',
72
- kind = DEFAULT_KIND
87
+ kind = DEFAULT_KIND,
88
+ default: isDefaultTrack = false
73
89
  } = track;
74
90
  const fileName = src.startsWith('blob:') ? '' : (0, _url.getFilename)(src) || '';
75
91
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
@@ -107,7 +123,7 @@ function SingleTrackEditor({
107
123
  help: (0, _i18n.__)('Language tag (en, fr, etc.)')
108
124
  })]
109
125
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
110
- spacing: "8",
126
+ spacing: "4",
111
127
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
112
128
  __next40pxDefaultSize: true,
113
129
  __nextHasNoMarginBottom: true,
@@ -121,6 +137,18 @@ function SingleTrackEditor({
121
137
  kind: newKind
122
138
  });
123
139
  }
140
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
141
+ __next40pxDefaultSize: true,
142
+ __nextHasNoMarginBottom: true,
143
+ label: (0, _i18n.__)('Set as default track'),
144
+ checked: isDefaultTrack,
145
+ disabled: !allowSettingDefault,
146
+ onChange: defaultTrack => {
147
+ onChange({
148
+ ...track,
149
+ default: defaultTrack
150
+ });
151
+ }
124
152
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
125
153
  className: "block-library-video-tracks-editor__single-track-editor-buttons-container",
126
154
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
@@ -165,11 +193,32 @@ function TracksEditor({
165
193
  tracks = [],
166
194
  onChange
167
195
  }) {
196
+ const {
197
+ createNotice
198
+ } = (0, _data.useDispatch)(_notices.store);
168
199
  const mediaUpload = (0, _data.useSelect)(select => {
169
200
  return select(_blockEditor.store).getSettings().mediaUpload;
170
201
  }, []);
171
202
  const [trackBeingEdited, setTrackBeingEdited] = (0, _element.useState)(null);
172
203
  const dropdownPopoverRef = (0, _element.useRef)();
204
+ const handleTrackSelect = ({
205
+ title,
206
+ url
207
+ }) => {
208
+ if (tracks.some(track => track.src === url)) {
209
+ createNotice('error', (0, _i18n.__)('This track already exists.'), {
210
+ isDismissible: true,
211
+ type: 'snackbar'
212
+ });
213
+ return;
214
+ }
215
+ const trackIndex = tracks.length;
216
+ onChange([...tracks, {
217
+ label: title || '',
218
+ src: url
219
+ }]);
220
+ setTrackBeingEdited(trackIndex);
221
+ };
173
222
  (0, _element.useEffect)(() => {
174
223
  dropdownPopoverRef.current?.focus();
175
224
  }, [trackBeingEdited]);
@@ -216,7 +265,8 @@ function TracksEditor({
216
265
  onRemove: () => {
217
266
  onChange(tracks.filter((_track, index) => index !== trackBeingEdited));
218
267
  setTrackBeingEdited(null);
219
- }
268
+ },
269
+ allowSettingDefault: !tracks.some(track => track.default) || tracks[trackBeingEdited].default
220
270
  });
221
271
  }
222
272
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -237,15 +287,7 @@ function TracksEditor({
237
287
  className: "block-library-video-tracks-editor__add-tracks-container",
238
288
  label: (0, _i18n.__)('Add tracks'),
239
289
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
240
- onSelect: ({
241
- url
242
- }) => {
243
- const trackIndex = tracks.length;
244
- onChange([...tracks, {
245
- src: url
246
- }]);
247
- setTrackBeingEdited(trackIndex);
248
- },
290
+ onSelect: handleTrackSelect,
249
291
  allowedTypes: ALLOWED_TYPES,
250
292
  render: ({
251
293
  open
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blockEditor","_icons","_data","_element","_url","_jsxRuntime","ALLOWED_TYPES","DEFAULT_KIND","KIND_OPTIONS","label","__","value","TrackList","tracks","onEditPress","content","map","track","index","jsxs","__experimentalHStack","className","children","jsx","Button","__next40pxDefaultSize","variant","onClick","sprintf","_x","MenuGroup","SingleTrackEditor","onChange","onClose","onRemove","src","srcLang","kind","fileName","startsWith","getFilename","__experimentalVStack","spacing","__experimentalGrid","columns","gap","TextControl","__nextHasNoMarginBottom","newLabel","help","newSrcLang","SelectControl","options","newKind","isDestructive","changes","hasChanges","undefined","TracksEditor","mediaUpload","useSelect","select","blockEditorStore","getSettings","trackBeingEdited","setTrackBeingEdited","useState","dropdownPopoverRef","useRef","useEffect","current","focus","Dropdown","contentClassName","focusOnMount","popoverProps","ref","renderToggle","isOpen","onToggle","handleOnToggle","ToolbarGroup","ToolbarButton","renderContent","newTrack","newTracks","filter","_track","Fragment","length","NavigableMenu","MediaUpload","onSelect","url","trackIndex","allowedTypes","render","open","MenuItem","icon","media","MediaUploadCheck","FormFileUpload","event","files","target","filesList","onFileChange","accept","openFileDialog","upload"],"sources":["@wordpress/block-library/src/video/tracks-editor.js"],"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\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\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\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\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ index }\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<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\taria-label={ sprintf(\n\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_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\ttrack.label\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</Button>\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( { track, onChange, onClose, onRemove } ) {\n\tconst { src = '', label = '', srcLang = '', kind = DEFAULT_KIND } = track;\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\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\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\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\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=\"8\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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\tonChange( {\n\t\t\t\t\t\t\t...track,\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<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\tconst changes = {};\n\t\t\t\t\t\t\tlet hasChanges = false;\n\t\t\t\t\t\t\tif ( label === '' ) {\n\t\t\t\t\t\t\t\tchanges.label = __( 'English' );\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( srcLang === '' ) {\n\t\t\t\t\t\t\t\tchanges.srcLang = 'en';\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( track.kind === undefined ) {\n\t\t\t\t\t\t\t\tchanges.kind = DEFAULT_KIND;\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( hasChanges ) {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\t\t...changes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\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\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/>\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<MediaUpload\n\t\t\t\t\t\t\t\t\tonSelect={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\tonChange( [ ...tracks, { src: url } ] );\n\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited( trackIndex );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\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</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst files = event.target.files;\n\t\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\t\t\t\t\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\t\t\t\t\t\t\tonFileChange: ( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ url },\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\tconst newTracks = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks,\n\t\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\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! newTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\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) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[ trackIndex ] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks[ trackIndex ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc: url,\n\t\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\tonChange( newTracks );\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\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},\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\taccept=\".vtt,text/vtt\"\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={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\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>\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_blockEditor","_notices","_icons","_data","_element","_url","_lockUnlock","_jsxRuntime","Badge","unlock","componentsPrivateApis","ALLOWED_TYPES","DEFAULT_KIND","KIND_OPTIONS","label","__","value","TrackList","tracks","onEditPress","content","map","track","index","jsxs","__experimentalHStack","className","children","jsx","justify","default","Button","__next40pxDefaultSize","variant","onClick","sprintf","_x","src","MenuGroup","SingleTrackEditor","onChange","onClose","onRemove","allowSettingDefault","srcLang","kind","isDefaultTrack","fileName","startsWith","getFilename","__experimentalVStack","spacing","__experimentalGrid","columns","gap","TextControl","__nextHasNoMarginBottom","newLabel","help","newSrcLang","SelectControl","options","newKind","ToggleControl","checked","disabled","defaultTrack","isDestructive","changes","hasChanges","undefined","TracksEditor","createNotice","useDispatch","noticesStore","mediaUpload","useSelect","select","blockEditorStore","getSettings","trackBeingEdited","setTrackBeingEdited","useState","dropdownPopoverRef","useRef","handleTrackSelect","title","url","some","isDismissible","type","trackIndex","length","useEffect","current","focus","Dropdown","contentClassName","focusOnMount","popoverProps","ref","renderToggle","isOpen","onToggle","handleOnToggle","ToolbarGroup","ToolbarButton","renderContent","newTrack","newTracks","filter","_track","Fragment","NavigableMenu","MediaUpload","onSelect","allowedTypes","render","open","MenuItem","icon","media","MediaUploadCheck","FormFileUpload","event","files","target","filesList","onFileChange","accept","openFileDialog","upload"],"sources":["@wordpress/block-library/src/video/tracks-editor.js"],"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 { store as noticesStore } from '@wordpress/notices';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect, useDispatch } 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 } = 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\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.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 && <Badge>{ __( 'Default' ) }</Badge> }\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 {\n\t\tsrc = '',\n\t\tlabel = '',\n\t\tsrcLang = '',\n\t\tkind = DEFAULT_KIND,\n\t\tdefault: isDefaultTrack = false,\n\t} = track;\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\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\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\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...track,\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\t__nextHasNoMarginBottom\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\tonChange( {\n\t\t\t\t\t\t\t...track,\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\t__nextHasNoMarginBottom\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\tonChange( {\n\t\t\t\t\t\t\t...track,\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\tconst changes = {};\n\t\t\t\t\t\t\tlet hasChanges = false;\n\t\t\t\t\t\t\tif ( label === '' ) {\n\t\t\t\t\t\t\t\tchanges.label = __( 'English' );\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( srcLang === '' ) {\n\t\t\t\t\t\t\t\tchanges.srcLang = 'en';\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( track.kind === undefined ) {\n\t\t\t\t\t\t\t\tchanges.kind = DEFAULT_KIND;\n\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( hasChanges ) {\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\t\t...changes,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\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 { createNotice } = useDispatch( noticesStore );\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 = ( { title, url } ) => {\n\t\tif ( tracks.some( ( track ) => track.src === url ) ) {\n\t\t\tcreateNotice( 'error', __( 'This track already exists.' ), {\n\t\t\t\tisDismissible: true,\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tconst trackIndex = tracks.length;\n\t\tonChange( [ ...tracks, { label: title || '', src: url } ] );\n\t\tsetTrackBeingEdited( trackIndex );\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<MediaUpload\n\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\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</MenuItem>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst files = event.target.files;\n\t\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\t\t\t\t\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\t\t\t\t\t\t\tonFileChange: ( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ url },\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\tconst newTracks = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks,\n\t\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\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! newTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\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) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\t\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[ trackIndex ] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks[ trackIndex ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc: url,\n\t\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\tonChange( newTracks );\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\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},\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\taccept=\".vtt,text/vtt\"\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={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\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>\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"],"mappings":"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","ignoreList":[]}
@@ -7,14 +7,15 @@ import clsx from 'clsx';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { InspectorControls, useBlockProps, __experimentalUseBorderProps as useBorderProps } from '@wordpress/block-editor';
10
- import { PanelBody, RangeControl, ResizableBox, ToggleControl } from '@wordpress/components';
10
+ import { RangeControl, ResizableBox, ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
11
11
  import { __, isRTL } from '@wordpress/i18n';
12
12
  import { addQueryArgs, removeQueryArgs } from '@wordpress/url';
13
13
 
14
14
  /**
15
15
  * Internal dependencies
16
16
  */
17
- import { useUserAvatar, useCommentAvatar } from './hooks';
17
+ import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
18
+ import { useCommentAvatar, useUserAvatar } from './hooks';
18
19
  import UserControl from './user-control';
19
20
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
21
  const AvatarInspectorControls = ({
@@ -22,44 +23,88 @@ const AvatarInspectorControls = ({
22
23
  avatar,
23
24
  attributes,
24
25
  selectUser
25
- }) => /*#__PURE__*/_jsx(InspectorControls, {
26
- children: /*#__PURE__*/_jsxs(PanelBody, {
27
- title: __('Settings'),
28
- children: [/*#__PURE__*/_jsx(RangeControl, {
29
- __nextHasNoMarginBottom: true,
30
- __next40pxDefaultSize: true,
31
- label: __('Image size'),
32
- onChange: newSize => setAttributes({
33
- size: newSize
34
- }),
35
- min: avatar.minSize,
36
- max: avatar.maxSize,
37
- initialPosition: attributes?.size,
38
- value: attributes?.size
39
- }), /*#__PURE__*/_jsx(ToggleControl, {
40
- __nextHasNoMarginBottom: true,
41
- label: __('Link to user profile'),
42
- onChange: () => setAttributes({
43
- isLink: !attributes.isLink
44
- }),
45
- checked: attributes.isLink
46
- }), attributes.isLink && /*#__PURE__*/_jsx(ToggleControl, {
47
- __nextHasNoMarginBottom: true,
48
- label: __('Open in new tab'),
49
- onChange: value => setAttributes({
50
- linkTarget: value ? '_blank' : '_self'
51
- }),
52
- checked: attributes.linkTarget === '_blank'
53
- }), selectUser && /*#__PURE__*/_jsx(UserControl, {
54
- value: attributes?.userId,
55
- onChange: value => {
26
+ }) => {
27
+ const dropdownMenuProps = useToolsPanelDropdownMenuProps();
28
+ return /*#__PURE__*/_jsx(InspectorControls, {
29
+ children: /*#__PURE__*/_jsxs(ToolsPanel, {
30
+ label: __('Settings'),
31
+ resetAll: () => {
56
32
  setAttributes({
57
- userId: value
33
+ size: 96,
34
+ isLink: false,
35
+ linkTarget: '_self',
36
+ userId: undefined
58
37
  });
59
- }
60
- })]
61
- })
62
- });
38
+ },
39
+ dropdownMenuProps: dropdownMenuProps,
40
+ children: [/*#__PURE__*/_jsx(ToolsPanelItem, {
41
+ label: __('Image size'),
42
+ isShownByDefault: true,
43
+ hasValue: () => attributes?.size !== 96,
44
+ onDeselect: () => setAttributes({
45
+ size: 96
46
+ }),
47
+ children: /*#__PURE__*/_jsx(RangeControl, {
48
+ __nextHasNoMarginBottom: true,
49
+ __next40pxDefaultSize: true,
50
+ label: __('Image size'),
51
+ onChange: newSize => setAttributes({
52
+ size: newSize
53
+ }),
54
+ min: avatar.minSize,
55
+ max: avatar.maxSize,
56
+ initialPosition: attributes?.size,
57
+ value: attributes?.size
58
+ })
59
+ }), /*#__PURE__*/_jsx(ToolsPanelItem, {
60
+ label: __('Link to user profile'),
61
+ isShownByDefault: true,
62
+ hasValue: () => attributes?.isLink,
63
+ onDeselect: () => setAttributes({
64
+ isLink: false
65
+ }),
66
+ children: /*#__PURE__*/_jsx(ToggleControl, {
67
+ __nextHasNoMarginBottom: true,
68
+ label: __('Link to user profile'),
69
+ onChange: () => setAttributes({
70
+ isLink: !attributes.isLink
71
+ }),
72
+ checked: attributes.isLink
73
+ })
74
+ }), attributes.isLink && /*#__PURE__*/_jsx(ToolsPanelItem, {
75
+ label: __('Open in new tab'),
76
+ isShownByDefault: true,
77
+ hasValue: () => attributes?.linkTarget !== '_self',
78
+ onDeselect: () => setAttributes({
79
+ linkTarget: '_self'
80
+ }),
81
+ children: /*#__PURE__*/_jsx(ToggleControl, {
82
+ __nextHasNoMarginBottom: true,
83
+ label: __('Open in new tab'),
84
+ onChange: value => setAttributes({
85
+ linkTarget: value ? '_blank' : '_self'
86
+ }),
87
+ checked: attributes.linkTarget === '_blank'
88
+ })
89
+ }), selectUser && /*#__PURE__*/_jsx(ToolsPanelItem, {
90
+ label: __('User'),
91
+ isShownByDefault: true,
92
+ hasValue: () => !!attributes?.userId,
93
+ onDeselect: () => setAttributes({
94
+ userId: undefined
95
+ }),
96
+ children: /*#__PURE__*/_jsx(UserControl, {
97
+ value: attributes?.userId,
98
+ onChange: value => {
99
+ setAttributes({
100
+ userId: value
101
+ });
102
+ }
103
+ })
104
+ })]
105
+ })
106
+ });
107
+ };
63
108
  const ResizableAvatar = ({
64
109
  setAttributes,
65
110
  attributes,