@wordpress/block-library 9.38.0 → 9.39.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 (470) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/block.json +2 -1
  3. package/build/breadcrumbs/edit.cjs +15 -5
  4. package/build/breadcrumbs/edit.cjs.map +2 -2
  5. package/build/breadcrumbs/index.cjs +1 -0
  6. package/build/breadcrumbs/index.cjs.map +2 -2
  7. package/build/button/index.cjs +3 -0
  8. package/build/button/index.cjs.map +2 -2
  9. package/build/comment-date/block.json +1 -0
  10. package/build/comment-edit-link/block.json +1 -3
  11. package/build/comment-edit-link/deprecated.cjs +91 -0
  12. package/build/comment-edit-link/deprecated.cjs.map +7 -0
  13. package/build/comment-edit-link/edit.cjs +6 -18
  14. package/build/comment-edit-link/edit.cjs.map +3 -3
  15. package/build/comment-edit-link/index.cjs +2 -0
  16. package/build/comment-edit-link/index.cjs.map +3 -3
  17. package/build/comment-reply-link/block.json +1 -5
  18. package/build/comment-reply-link/deprecated.cjs +84 -0
  19. package/build/comment-reply-link/deprecated.cjs.map +7 -0
  20. package/build/comment-reply-link/edit.cjs +10 -23
  21. package/build/comment-reply-link/edit.cjs.map +3 -3
  22. package/build/comment-reply-link/index.cjs +2 -0
  23. package/build/comment-reply-link/index.cjs.map +3 -3
  24. package/build/comments-title/block.json +1 -3
  25. package/build/comments-title/deprecated.cjs +148 -24
  26. package/build/comments-title/deprecated.cjs.map +3 -3
  27. package/build/comments-title/edit.cjs +17 -31
  28. package/build/comments-title/edit.cjs.map +3 -3
  29. package/build/cover/edit/block-controls.cjs +10 -2
  30. package/build/cover/edit/block-controls.cjs.map +2 -2
  31. package/build/cover/edit/embed-video-url-input.cjs +6 -2
  32. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  33. package/build/cover/edit/inspector-controls.cjs +1 -1
  34. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  35. package/build/details/index.cjs +3 -0
  36. package/build/details/index.cjs.map +2 -2
  37. package/build/embed/util.cjs +9 -0
  38. package/build/embed/util.cjs.map +2 -2
  39. package/build/freeform/block.json +2 -1
  40. package/build/heading/index.cjs +3 -0
  41. package/build/heading/index.cjs.map +2 -2
  42. package/build/html/block.json +2 -1
  43. package/build/image/image.cjs +43 -9
  44. package/build/image/image.cjs.map +2 -2
  45. package/build/image/index.cjs +1 -1
  46. package/build/image/index.cjs.map +2 -2
  47. package/build/index.cjs +6 -0
  48. package/build/index.cjs.map +2 -2
  49. package/build/list-item/index.cjs +12 -1
  50. package/build/list-item/index.cjs.map +2 -2
  51. package/build/missing/block.json +2 -1
  52. package/build/more/block.json +2 -1
  53. package/build/more/index.cjs +1 -1
  54. package/build/more/index.cjs.map +2 -2
  55. package/build/navigation/block.json +5 -4
  56. package/build/navigation/deprecated.cjs +133 -5
  57. package/build/navigation/deprecated.cjs.map +2 -2
  58. package/build/navigation/edit/deleted-overlay-warning.cjs +70 -0
  59. package/build/navigation/edit/deleted-overlay-warning.cjs.map +7 -0
  60. package/build/navigation/edit/index.cjs +143 -65
  61. package/build/navigation/edit/index.cjs.map +3 -3
  62. package/build/navigation/edit/overlay-panel.cjs +10 -1
  63. package/build/navigation/edit/overlay-panel.cjs.map +3 -3
  64. package/build/navigation/edit/overlay-preview.cjs +120 -0
  65. package/build/navigation/edit/overlay-preview.cjs.map +7 -0
  66. package/build/navigation/edit/overlay-template-part-selector.cjs +59 -24
  67. package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
  68. package/build/navigation/edit/responsive-wrapper.cjs +12 -1
  69. package/build/navigation/edit/responsive-wrapper.cjs.map +3 -3
  70. package/build/navigation/edit/use-create-overlay.cjs +19 -2
  71. package/build/navigation/edit/use-create-overlay.cjs.map +3 -3
  72. package/build/navigation/utils/get-submenu-visibility.cjs +37 -0
  73. package/build/navigation/utils/get-submenu-visibility.cjs.map +7 -0
  74. package/build/navigation-link/edit.cjs +2 -40
  75. package/build/navigation-link/edit.cjs.map +2 -2
  76. package/build/navigation-link/shared/index.cjs +6 -0
  77. package/build/navigation-link/shared/index.cjs.map +2 -2
  78. package/build/navigation-link/shared/select-label-text.cjs +40 -0
  79. package/build/navigation-link/shared/select-label-text.cjs.map +7 -0
  80. package/build/navigation-link/shared/use-is-dragging-within.cjs +59 -0
  81. package/build/navigation-link/shared/use-is-dragging-within.cjs.map +7 -0
  82. package/build/navigation-submenu/block.json +1 -1
  83. package/build/navigation-submenu/edit.cjs +8 -47
  84. package/build/navigation-submenu/edit.cjs.map +2 -2
  85. package/build/navigation-submenu/index.cjs +2 -2
  86. package/build/navigation-submenu/index.cjs.map +2 -2
  87. package/build/nextpage/block.json +2 -1
  88. package/build/paragraph/block.json +1 -0
  89. package/build/paragraph/index.cjs +1 -1
  90. package/build/paragraph/index.cjs.map +2 -2
  91. package/build/post-excerpt/edit.cjs +1 -1
  92. package/build/post-excerpt/edit.cjs.map +2 -2
  93. package/build/shortcode/block.json +2 -1
  94. package/build/tab/add-tab-toolbar-control.cjs +31 -9
  95. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  96. package/build/tab/block.json +18 -4
  97. package/build/tab/controls.cjs +4 -8
  98. package/build/tab/controls.cjs.map +3 -3
  99. package/build/tab/edit.cjs +46 -118
  100. package/build/tab/edit.cjs.map +3 -3
  101. package/build/tab/remove-tab-toolbar-control.cjs +91 -0
  102. package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
  103. package/build/tab/save.cjs +2 -2
  104. package/build/tab/save.cjs.map +2 -2
  105. package/build/tab-panels/block.json +70 -0
  106. package/build/tab-panels/edit.cjs +63 -0
  107. package/build/tab-panels/edit.cjs.map +7 -0
  108. package/build/tab-panels/icon.cjs +29 -0
  109. package/build/tab-panels/icon.cjs.map +7 -0
  110. package/build/tab-panels/index.cjs +58 -0
  111. package/build/tab-panels/index.cjs.map +7 -0
  112. package/build/tab-panels/save.cjs +33 -0
  113. package/build/tab-panels/save.cjs.map +7 -0
  114. package/build/tabs/block.json +61 -90
  115. package/build/tabs/controls.cjs +19 -221
  116. package/build/tabs/controls.cjs.map +3 -3
  117. package/build/tabs/deprecated.cjs +179 -0
  118. package/build/tabs/deprecated.cjs.map +7 -0
  119. package/build/tabs/edit.cjs +84 -62
  120. package/build/tabs/edit.cjs.map +3 -3
  121. package/build/tabs/index.cjs +3 -1
  122. package/build/tabs/index.cjs.map +3 -3
  123. package/build/tabs/save.cjs +6 -9
  124. package/build/tabs/save.cjs.map +2 -2
  125. package/build/tabs-menu/block.json +77 -0
  126. package/build/tabs-menu/edit.cjs +204 -0
  127. package/build/tabs-menu/edit.cjs.map +7 -0
  128. package/build/tabs-menu/icon.cjs +29 -0
  129. package/build/tabs-menu/icon.cjs.map +7 -0
  130. package/build/tabs-menu/index.cjs +58 -0
  131. package/build/tabs-menu/index.cjs.map +7 -0
  132. package/build/tabs-menu/save.cjs +35 -0
  133. package/build/tabs-menu/save.cjs.map +7 -0
  134. package/build/tabs-menu-item/block.json +98 -0
  135. package/build/tabs-menu-item/controls.cjs +247 -0
  136. package/build/tabs-menu-item/controls.cjs.map +7 -0
  137. package/build/tabs-menu-item/edit.cjs +272 -0
  138. package/build/tabs-menu-item/edit.cjs.map +7 -0
  139. package/build/tabs-menu-item/icon.cjs +29 -0
  140. package/build/tabs-menu-item/icon.cjs.map +7 -0
  141. package/build/tabs-menu-item/index.cjs +58 -0
  142. package/build/tabs-menu-item/index.cjs.map +7 -0
  143. package/build/tabs-menu-item/save.cjs +50 -0
  144. package/build/tabs-menu-item/save.cjs.map +7 -0
  145. package/build/template-part/edit/index.cjs +2 -2
  146. package/build/template-part/edit/index.cjs.map +2 -2
  147. package/build/utils/caption.cjs +4 -6
  148. package/build/utils/caption.cjs.map +3 -3
  149. package/build/verse/block.json +1 -3
  150. package/build/verse/deprecated.cjs +74 -5
  151. package/build/verse/deprecated.cjs.map +3 -3
  152. package/build/verse/edit.cjs +33 -48
  153. package/build/verse/edit.cjs.map +3 -3
  154. package/build/verse/save.cjs +2 -16
  155. package/build/verse/save.cjs.map +3 -3
  156. package/build/video/edit.cjs +4 -2
  157. package/build/video/edit.cjs.map +2 -2
  158. package/build-module/block/block.json +2 -1
  159. package/build-module/breadcrumbs/edit.mjs +15 -5
  160. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  161. package/build-module/breadcrumbs/index.mjs +1 -0
  162. package/build-module/breadcrumbs/index.mjs.map +2 -2
  163. package/build-module/button/index.mjs +3 -0
  164. package/build-module/button/index.mjs.map +2 -2
  165. package/build-module/comment-date/block.json +1 -0
  166. package/build-module/comment-edit-link/block.json +1 -3
  167. package/build-module/comment-edit-link/deprecated.mjs +60 -0
  168. package/build-module/comment-edit-link/deprecated.mjs.map +7 -0
  169. package/build-module/comment-edit-link/edit.mjs +7 -24
  170. package/build-module/comment-edit-link/edit.mjs.map +2 -2
  171. package/build-module/comment-edit-link/index.mjs +2 -0
  172. package/build-module/comment-edit-link/index.mjs.map +2 -2
  173. package/build-module/comment-reply-link/block.json +1 -5
  174. package/build-module/comment-reply-link/deprecated.mjs +53 -0
  175. package/build-module/comment-reply-link/deprecated.mjs.map +7 -0
  176. package/build-module/comment-reply-link/edit.mjs +12 -29
  177. package/build-module/comment-reply-link/edit.mjs.map +2 -2
  178. package/build-module/comment-reply-link/index.mjs +2 -0
  179. package/build-module/comment-reply-link/index.mjs.map +2 -2
  180. package/build-module/comments-title/block.json +1 -3
  181. package/build-module/comments-title/deprecated.mjs +148 -24
  182. package/build-module/comments-title/deprecated.mjs.map +2 -2
  183. package/build-module/comments-title/edit.mjs +17 -32
  184. package/build-module/comments-title/edit.mjs.map +2 -2
  185. package/build-module/cover/edit/block-controls.mjs +11 -3
  186. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  187. package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
  188. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  189. package/build-module/cover/edit/inspector-controls.mjs +1 -1
  190. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  191. package/build-module/details/index.mjs +3 -0
  192. package/build-module/details/index.mjs.map +2 -2
  193. package/build-module/embed/util.mjs +8 -0
  194. package/build-module/embed/util.mjs.map +2 -2
  195. package/build-module/freeform/block.json +2 -1
  196. package/build-module/heading/index.mjs +3 -0
  197. package/build-module/heading/index.mjs.map +2 -2
  198. package/build-module/html/block.json +2 -1
  199. package/build-module/image/image.mjs +43 -9
  200. package/build-module/image/image.mjs.map +2 -2
  201. package/build-module/image/index.mjs +1 -1
  202. package/build-module/image/index.mjs.map +2 -2
  203. package/build-module/index.mjs +6 -0
  204. package/build-module/index.mjs.map +2 -2
  205. package/build-module/list-item/index.mjs +12 -1
  206. package/build-module/list-item/index.mjs.map +2 -2
  207. package/build-module/missing/block.json +2 -1
  208. package/build-module/more/block.json +2 -1
  209. package/build-module/more/index.mjs +1 -1
  210. package/build-module/more/index.mjs.map +2 -2
  211. package/build-module/navigation/block.json +5 -4
  212. package/build-module/navigation/deprecated.mjs +133 -5
  213. package/build-module/navigation/deprecated.mjs.map +2 -2
  214. package/build-module/navigation/edit/deleted-overlay-warning.mjs +49 -0
  215. package/build-module/navigation/edit/deleted-overlay-warning.mjs.map +7 -0
  216. package/build-module/navigation/edit/index.mjs +145 -65
  217. package/build-module/navigation/edit/index.mjs.map +2 -2
  218. package/build-module/navigation/edit/overlay-panel.mjs +10 -1
  219. package/build-module/navigation/edit/overlay-panel.mjs.map +2 -2
  220. package/build-module/navigation/edit/overlay-preview.mjs +99 -0
  221. package/build-module/navigation/edit/overlay-preview.mjs.map +7 -0
  222. package/build-module/navigation/edit/overlay-template-part-selector.mjs +61 -26
  223. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  224. package/build-module/navigation/edit/responsive-wrapper.mjs +12 -1
  225. package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
  226. package/build-module/navigation/edit/use-create-overlay.mjs +21 -4
  227. package/build-module/navigation/edit/use-create-overlay.mjs.map +2 -2
  228. package/build-module/navigation/utils/get-submenu-visibility.mjs +12 -0
  229. package/build-module/navigation/utils/get-submenu-visibility.mjs.map +7 -0
  230. package/build-module/navigation-link/edit.mjs +4 -40
  231. package/build-module/navigation-link/edit.mjs.map +2 -2
  232. package/build-module/navigation-link/shared/index.mjs +4 -0
  233. package/build-module/navigation-link/shared/index.mjs.map +2 -2
  234. package/build-module/navigation-link/shared/select-label-text.mjs +15 -0
  235. package/build-module/navigation-link/shared/select-label-text.mjs.map +7 -0
  236. package/build-module/navigation-link/shared/use-is-dragging-within.mjs +34 -0
  237. package/build-module/navigation-link/shared/use-is-dragging-within.mjs.map +7 -0
  238. package/build-module/navigation-submenu/block.json +1 -1
  239. package/build-module/navigation-submenu/edit.mjs +10 -47
  240. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  241. package/build-module/navigation-submenu/index.mjs +2 -2
  242. package/build-module/navigation-submenu/index.mjs.map +2 -2
  243. package/build-module/nextpage/block.json +2 -1
  244. package/build-module/paragraph/block.json +1 -0
  245. package/build-module/paragraph/index.mjs +1 -1
  246. package/build-module/paragraph/index.mjs.map +2 -2
  247. package/build-module/post-excerpt/edit.mjs +1 -1
  248. package/build-module/post-excerpt/edit.mjs.map +2 -2
  249. package/build-module/shortcode/block.json +2 -1
  250. package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
  251. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  252. package/build-module/tab/block.json +18 -4
  253. package/build-module/tab/controls.mjs +4 -8
  254. package/build-module/tab/controls.mjs.map +2 -2
  255. package/build-module/tab/edit.mjs +48 -128
  256. package/build-module/tab/edit.mjs.map +2 -2
  257. package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
  258. package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
  259. package/build-module/tab/save.mjs +2 -2
  260. package/build-module/tab/save.mjs.map +2 -2
  261. package/build-module/tab-panels/block.json +70 -0
  262. package/build-module/tab-panels/edit.mjs +36 -0
  263. package/build-module/tab-panels/edit.mjs.map +7 -0
  264. package/build-module/tab-panels/icon.mjs +8 -0
  265. package/build-module/tab-panels/icon.mjs.map +7 -0
  266. package/build-module/tab-panels/index.mjs +20 -0
  267. package/build-module/tab-panels/index.mjs.map +7 -0
  268. package/build-module/tab-panels/save.mjs +12 -0
  269. package/build-module/tab-panels/save.mjs.map +7 -0
  270. package/build-module/tabs/block.json +61 -90
  271. package/build-module/tabs/controls.mjs +21 -228
  272. package/build-module/tabs/controls.mjs.map +2 -2
  273. package/build-module/tabs/deprecated.mjs +158 -0
  274. package/build-module/tabs/deprecated.mjs.map +7 -0
  275. package/build-module/tabs/edit.mjs +87 -64
  276. package/build-module/tabs/edit.mjs.map +2 -2
  277. package/build-module/tabs/index.mjs +3 -1
  278. package/build-module/tabs/index.mjs.map +2 -2
  279. package/build-module/tabs/save.mjs +7 -10
  280. package/build-module/tabs/save.mjs.map +2 -2
  281. package/build-module/tabs-menu/block.json +77 -0
  282. package/build-module/tabs-menu/edit.mjs +186 -0
  283. package/build-module/tabs-menu/edit.mjs.map +7 -0
  284. package/build-module/tabs-menu/icon.mjs +8 -0
  285. package/build-module/tabs-menu/icon.mjs.map +7 -0
  286. package/build-module/tabs-menu/index.mjs +20 -0
  287. package/build-module/tabs-menu/index.mjs.map +7 -0
  288. package/build-module/tabs-menu/save.mjs +14 -0
  289. package/build-module/tabs-menu/save.mjs.map +7 -0
  290. package/build-module/tabs-menu-item/block.json +98 -0
  291. package/build-module/tabs-menu-item/controls.mjs +227 -0
  292. package/build-module/tabs-menu-item/controls.mjs.map +7 -0
  293. package/build-module/tabs-menu-item/edit.mjs +253 -0
  294. package/build-module/tabs-menu-item/edit.mjs.map +7 -0
  295. package/build-module/tabs-menu-item/icon.mjs +8 -0
  296. package/build-module/tabs-menu-item/icon.mjs.map +7 -0
  297. package/build-module/tabs-menu-item/index.mjs +20 -0
  298. package/build-module/tabs-menu-item/index.mjs.map +7 -0
  299. package/build-module/tabs-menu-item/save.mjs +29 -0
  300. package/build-module/tabs-menu-item/save.mjs.map +7 -0
  301. package/build-module/template-part/edit/index.mjs +2 -2
  302. package/build-module/template-part/edit/index.mjs.map +2 -2
  303. package/build-module/utils/caption.mjs +1 -3
  304. package/build-module/utils/caption.mjs.map +2 -2
  305. package/build-module/verse/block.json +1 -3
  306. package/build-module/verse/deprecated.mjs +74 -5
  307. package/build-module/verse/deprecated.mjs.map +2 -2
  308. package/build-module/verse/edit.mjs +35 -55
  309. package/build-module/verse/edit.mjs.map +2 -2
  310. package/build-module/verse/save.mjs +2 -6
  311. package/build-module/verse/save.mjs.map +2 -2
  312. package/build-module/video/edit.mjs +4 -2
  313. package/build-module/video/edit.mjs.map +2 -2
  314. package/build-style/editor-rtl.css +64 -21
  315. package/build-style/editor.css +64 -21
  316. package/build-style/gallery/style-rtl.css +1 -1
  317. package/build-style/gallery/style.css +1 -1
  318. package/build-style/media-text/style-rtl.css +2 -0
  319. package/build-style/media-text/style.css +2 -0
  320. package/build-style/navigation/editor-rtl.css +48 -0
  321. package/build-style/navigation/editor.css +48 -0
  322. package/build-style/navigation/style-rtl.css +64 -18
  323. package/build-style/navigation/style.css +64 -18
  324. package/build-style/style-rtl.css +109 -171
  325. package/build-style/style.css +109 -171
  326. package/build-style/tab/style-rtl.css +7 -1
  327. package/build-style/tab/style.css +7 -1
  328. package/build-style/tab-panels/style-rtl.css +4 -0
  329. package/build-style/tab-panels/style.css +4 -0
  330. package/build-style/tabs/style-rtl.css +1 -167
  331. package/build-style/tabs/style.css +1 -167
  332. package/build-style/tabs-menu/editor-rtl.css +4 -0
  333. package/build-style/tabs-menu/editor.css +4 -0
  334. package/build-style/tabs-menu/style-rtl.css +8 -0
  335. package/build-style/tabs-menu/style.css +8 -0
  336. package/build-style/tabs-menu-item/editor-rtl.css +16 -0
  337. package/build-style/tabs-menu-item/editor.css +16 -0
  338. package/build-style/tabs-menu-item/style-rtl.css +34 -0
  339. package/build-style/tabs-menu-item/style.css +34 -0
  340. package/build-style/verse/style-rtl.css +1 -0
  341. package/build-style/verse/style.css +1 -0
  342. package/package.json +37 -37
  343. package/src/block/block.json +2 -1
  344. package/src/breadcrumbs/edit.js +10 -2
  345. package/src/breadcrumbs/index.js +1 -0
  346. package/src/button/index.js +4 -0
  347. package/src/categories/index.php +5 -1
  348. package/src/comment-date/block.json +1 -0
  349. package/src/comment-edit-link/block.json +1 -3
  350. package/src/comment-edit-link/deprecated.js +63 -0
  351. package/src/comment-edit-link/edit.js +7 -31
  352. package/src/comment-edit-link/index.js +2 -0
  353. package/src/comment-reply-link/block.json +1 -5
  354. package/src/comment-reply-link/deprecated.js +56 -0
  355. package/src/comment-reply-link/edit.js +6 -35
  356. package/src/comment-reply-link/index.js +2 -0
  357. package/src/comments-title/block.json +1 -3
  358. package/src/comments-title/deprecated.js +153 -23
  359. package/src/comments-title/edit.js +9 -25
  360. package/src/cover/edit/block-controls.js +14 -3
  361. package/src/cover/edit/embed-video-url-input.js +6 -2
  362. package/src/cover/edit/inspector-controls.js +1 -3
  363. package/src/details/index.js +4 -0
  364. package/src/editor.scss +2 -1
  365. package/src/embed/test/index.js +49 -0
  366. package/src/embed/util.js +21 -0
  367. package/src/freeform/block.json +2 -1
  368. package/src/gallery/style.scss +1 -1
  369. package/src/heading/index.js +4 -0
  370. package/src/html/block.json +2 -1
  371. package/src/image/image.js +63 -11
  372. package/src/image/index.js +4 -1
  373. package/src/index.js +6 -0
  374. package/src/list-item/index.js +16 -0
  375. package/src/media-text/style.scss +2 -0
  376. package/src/missing/block.json +2 -1
  377. package/src/more/block.json +2 -1
  378. package/src/more/index.js +4 -1
  379. package/src/navigation/block.json +5 -4
  380. package/src/navigation/deprecated.js +144 -5
  381. package/src/navigation/edit/deleted-overlay-warning.js +56 -0
  382. package/src/navigation/edit/index.js +181 -70
  383. package/src/navigation/edit/overlay-panel.js +10 -0
  384. package/src/navigation/edit/overlay-preview.js +133 -0
  385. package/src/navigation/edit/overlay-template-part-selector.js +76 -26
  386. package/src/navigation/edit/responsive-wrapper.js +14 -1
  387. package/src/navigation/edit/test/overlay-template-part-selector.js +24 -16
  388. package/src/navigation/edit/test/responsive-wrapper.js +179 -0
  389. package/src/navigation/edit/test/use-create-overlay.js +129 -2
  390. package/src/navigation/edit/use-create-overlay.js +26 -4
  391. package/src/navigation/editor.scss +51 -0
  392. package/src/navigation/index.php +59 -11
  393. package/src/navigation/style.scss +140 -76
  394. package/src/navigation/utils/get-submenu-visibility.js +27 -0
  395. package/src/navigation/utils/test/get-submenu-visibility.js +47 -0
  396. package/src/navigation-link/edit.js +3 -67
  397. package/src/navigation-link/shared/index.js +2 -0
  398. package/src/navigation-link/shared/select-label-text.js +16 -0
  399. package/src/navigation-link/shared/use-is-dragging-within.js +55 -0
  400. package/src/navigation-submenu/block.json +1 -1
  401. package/src/navigation-submenu/edit.js +10 -73
  402. package/src/navigation-submenu/index.js +6 -3
  403. package/src/navigation-submenu/index.php +36 -5
  404. package/src/nextpage/block.json +2 -1
  405. package/src/paragraph/block.json +1 -0
  406. package/src/paragraph/index.js +4 -1
  407. package/src/post-excerpt/edit.js +1 -1
  408. package/src/post-excerpt/index.php +39 -16
  409. package/src/shortcode/block.json +2 -1
  410. package/src/style.scss +3 -0
  411. package/src/tab/add-tab-toolbar-control.js +36 -11
  412. package/src/tab/block.json +18 -4
  413. package/src/tab/controls.js +4 -5
  414. package/src/tab/edit.js +75 -150
  415. package/src/tab/index.php +5 -63
  416. package/src/tab/remove-tab-toolbar-control.js +103 -0
  417. package/src/tab/save.js +1 -3
  418. package/src/tab/style.scss +8 -1
  419. package/src/tab-panels/block.json +70 -0
  420. package/src/tab-panels/edit.js +44 -0
  421. package/src/tab-panels/icon.js +10 -0
  422. package/src/tab-panels/index.js +21 -0
  423. package/src/tab-panels/save.js +11 -0
  424. package/src/tab-panels/style.scss +4 -0
  425. package/src/tabs/block.json +61 -90
  426. package/src/tabs/controls.js +7 -221
  427. package/src/tabs/deprecated.js +214 -0
  428. package/src/tabs/edit.js +108 -68
  429. package/src/tabs/index.js +2 -0
  430. package/src/tabs/index.php +86 -191
  431. package/src/tabs/save.js +6 -13
  432. package/src/tabs/style.scss +1 -187
  433. package/src/tabs-menu/block.json +77 -0
  434. package/src/tabs-menu/edit.js +251 -0
  435. package/src/tabs-menu/editor.scss +6 -0
  436. package/src/tabs-menu/icon.js +10 -0
  437. package/src/tabs-menu/index.js +21 -0
  438. package/src/tabs-menu/index.php +74 -0
  439. package/src/tabs-menu/save.js +18 -0
  440. package/src/tabs-menu/style.scss +8 -0
  441. package/src/tabs-menu-item/block.json +98 -0
  442. package/src/tabs-menu-item/controls.js +262 -0
  443. package/src/tabs-menu-item/edit.js +322 -0
  444. package/src/tabs-menu-item/editor.scss +20 -0
  445. package/src/tabs-menu-item/icon.js +10 -0
  446. package/src/tabs-menu-item/index.js +21 -0
  447. package/src/tabs-menu-item/index.php +82 -0
  448. package/src/tabs-menu-item/save.js +44 -0
  449. package/src/tabs-menu-item/style.scss +42 -0
  450. package/src/template-part/edit/index.js +2 -4
  451. package/src/utils/caption.js +1 -7
  452. package/src/verse/block.json +1 -3
  453. package/src/verse/deprecated.js +83 -4
  454. package/src/verse/edit.js +37 -56
  455. package/src/verse/save.js +2 -11
  456. package/src/verse/style.scss +1 -0
  457. package/src/video/edit.js +4 -2
  458. package/build/tab/tabs-list.cjs +0 -132
  459. package/build/tab/tabs-list.cjs.map +0 -7
  460. package/build/tabs/style-engine.cjs +0 -119
  461. package/build/tabs/style-engine.cjs.map +0 -7
  462. package/build-module/tab/tabs-list.mjs +0 -101
  463. package/build-module/tab/tabs-list.mjs.map +0 -7
  464. package/build-module/tabs/style-engine.mjs +0 -101
  465. package/build-module/tabs/style-engine.mjs.map +0 -7
  466. package/build-style/tabs/editor-rtl.css +0 -26
  467. package/build-style/tabs/editor.css +0 -26
  468. package/src/tab/tabs-list.js +0 -122
  469. package/src/tabs/editor.scss +0 -30
  470. package/src/tabs/style-engine.js +0 -164
@@ -1,243 +1,36 @@
1
1
  // packages/block-library/src/tabs/controls.js
2
2
  import { __ } from "@wordpress/i18n";
3
- import { ToggleControl, PanelBody, TextControl } from "@wordpress/components";
4
- import { useMemo } from "@wordpress/element";
5
- import {
6
- ContrastChecker,
7
- InspectorControls,
8
- __experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,
9
- __experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients
10
- } from "@wordpress/block-editor";
3
+ import { PanelBody, TextControl } from "@wordpress/components";
4
+ import { InspectorControls } from "@wordpress/block-editor";
11
5
  import AddTabToolbarControl from "../tab/add-tab-toolbar-control.mjs";
6
+ import RemoveTabToolbarControl from "../tab/remove-tab-toolbar-control.mjs";
12
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- function ContrastCheckerMatrix({ attributes }) {
8
+ function Controls({ attributes, setAttributes, clientId }) {
14
9
  const {
15
- className,
16
- fontSize,
17
- tabActiveColor,
18
- customTabActiveColor,
19
- tabActiveTextColor,
20
- customTabActiveTextColor,
21
- tabInactiveColor,
22
- customTabInactiveColor,
23
- tabTextColor,
24
- customTabTextColor,
25
- tabHoverColor,
26
- customTabHoverColor,
27
- tabHoverTextColor,
28
- customTabHoverTextColor
29
- } = attributes;
30
- const activeBackground = useMemo(() => {
31
- if (className?.includes("is-style-links")) {
32
- return "#fff";
33
- }
34
- if (tabActiveColor?.color) {
35
- return tabActiveColor.color;
36
- }
37
- return customTabActiveColor;
38
- }, [tabActiveColor, customTabActiveColor, className]);
39
- const activeText = useMemo(() => {
40
- if (tabActiveTextColor?.color) {
41
- return tabActiveTextColor.color;
42
- }
43
- return customTabActiveTextColor;
44
- }, [tabActiveTextColor, customTabActiveTextColor]);
45
- const inactiveBackground = useMemo(() => {
46
- if (className?.includes("is-style-links")) {
47
- return "#fff";
48
- }
49
- if (tabInactiveColor?.color) {
50
- return tabInactiveColor.color;
51
- }
52
- return customTabInactiveColor;
53
- }, [tabInactiveColor, customTabInactiveColor, className]);
54
- const inactiveText = useMemo(() => {
55
- if (tabTextColor?.color) {
56
- return tabTextColor.color;
57
- }
58
- return customTabTextColor;
59
- }, [tabTextColor, customTabTextColor]);
60
- const hoverBackground = useMemo(() => {
61
- if (tabHoverColor?.color) {
62
- return tabHoverColor.color;
63
- }
64
- return customTabHoverColor;
65
- }, [tabHoverColor, customTabHoverColor]);
66
- const hoverText = useMemo(() => {
67
- if (tabHoverTextColor?.color) {
68
- return tabHoverTextColor.color;
69
- }
70
- return customTabHoverTextColor;
71
- }, [tabHoverTextColor, customTabHoverTextColor]);
72
- return /* @__PURE__ */ jsxs(Fragment, { children: [
73
- /* @__PURE__ */ jsx(
74
- ContrastChecker,
75
- {
76
- backgroundColor: activeBackground,
77
- fontSize,
78
- textColor: activeText
79
- }
80
- ),
81
- /* @__PURE__ */ jsx(
82
- ContrastChecker,
83
- {
84
- backgroundColor: inactiveBackground,
85
- fontSize,
86
- textColor: inactiveText
87
- }
88
- ),
89
- /* @__PURE__ */ jsx(
90
- ContrastChecker,
91
- {
92
- backgroundColor: hoverBackground,
93
- fontSize,
94
- textColor: hoverText
95
- }
96
- )
97
- ] });
98
- }
99
- function Controls({
100
- attributes,
101
- setAttributes,
102
- clientId,
103
- tabInactiveColor,
104
- setTabInactiveColor,
105
- tabHoverColor,
106
- setTabHoverColor,
107
- tabActiveColor,
108
- setTabActiveColor,
109
- tabTextColor,
110
- setTabTextColor,
111
- tabActiveTextColor,
112
- setTabActiveTextColor,
113
- tabHoverTextColor,
114
- setTabHoverTextColor
115
- }) {
116
- const {
117
- customTabInactiveColor,
118
- customTabActiveColor,
119
- customTabHoverColor,
120
- customTabTextColor,
121
- customTabActiveTextColor,
122
- customTabHoverTextColor,
123
- orientation,
124
10
  metadata = {
125
11
  name: ""
126
12
  }
127
13
  } = attributes;
128
- const colorSettings = useMultipleOriginColorsAndGradients();
129
14
  return /* @__PURE__ */ jsxs(Fragment, { children: [
130
- /* @__PURE__ */ jsx(
131
- AddTabToolbarControl,
15
+ /* @__PURE__ */ jsx(AddTabToolbarControl, { tabsClientId: clientId }),
16
+ /* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId: clientId }),
17
+ /* @__PURE__ */ jsx(InspectorControls, { children: /* @__PURE__ */ jsx(PanelBody, { title: __("Settings"), children: /* @__PURE__ */ jsx(
18
+ TextControl,
132
19
  {
133
- tabsClientId: clientId,
134
- attributes
20
+ label: __("Tabs Title"),
21
+ help: __(
22
+ "The tabs title is used by screen readers to describe the purpose and content of the tabs."
23
+ ),
24
+ value: metadata.name,
25
+ placeholder: __("Tab Contents"),
26
+ onChange: (value) => {
27
+ setAttributes({
28
+ metadata: { ...metadata, name: value }
29
+ });
30
+ },
31
+ __next40pxDefaultSize: true
135
32
  }
136
- ),
137
- /* @__PURE__ */ jsx(InspectorControls, { children: /* @__PURE__ */ jsxs(PanelBody, { title: __("Tabs Settings"), children: [
138
- /* @__PURE__ */ jsx(
139
- ToggleControl,
140
- {
141
- label: __("Vertical Tabs"),
142
- checked: "vertical" === orientation,
143
- onChange: () => setAttributes({
144
- orientation: "vertical" === orientation ? "horizontal" : "vertical"
145
- })
146
- }
147
- ),
148
- /* @__PURE__ */ jsx(
149
- TextControl,
150
- {
151
- label: __("Tabs Title"),
152
- help: __(
153
- "The tabs title is used by screen readers to describe the purpose and content of the tabs."
154
- ),
155
- value: metadata.name,
156
- placeholder: __("Tab Contents"),
157
- onChange: (value) => {
158
- setAttributes({
159
- metadata: { ...metadata, name: value }
160
- });
161
- },
162
- __next40pxDefaultSize: true
163
- }
164
- )
165
- ] }) }),
166
- /* @__PURE__ */ jsxs(InspectorControls, { group: "color", children: [
167
- /* @__PURE__ */ jsx(
168
- ColorGradientSettingsDropdown,
169
- {
170
- settings: [
171
- {
172
- label: __("Tab Active Background"),
173
- colorValue: tabActiveColor?.color ?? customTabActiveColor,
174
- onColorChange: (value) => {
175
- setTabActiveColor(value);
176
- setAttributes({
177
- customTabActiveColor: value
178
- });
179
- }
180
- },
181
- {
182
- label: __("Tab Active Text"),
183
- colorValue: tabActiveTextColor?.color ?? customTabActiveTextColor,
184
- onColorChange: (value) => {
185
- setTabActiveTextColor(value);
186
- setAttributes({
187
- customTabActiveTextColor: value
188
- });
189
- }
190
- },
191
- {
192
- label: __("Tab Inactive Background"),
193
- colorValue: tabInactiveColor?.color ?? customTabInactiveColor,
194
- onColorChange: (value) => {
195
- setTabInactiveColor(value);
196
- setAttributes({
197
- customTabInactiveColor: value
198
- });
199
- }
200
- },
201
- {
202
- label: __("Tab Inactive Text"),
203
- colorValue: tabTextColor?.color ?? customTabTextColor,
204
- onColorChange: (value) => {
205
- setTabTextColor(value);
206
- setAttributes({
207
- customTabTextColor: value
208
- });
209
- }
210
- },
211
- {
212
- label: __("Tab Hover Background"),
213
- colorValue: tabHoverColor?.color ?? customTabHoverColor,
214
- onColorChange: (value) => {
215
- setTabHoverColor(value);
216
- setAttributes({
217
- customTabHoverColor: value
218
- });
219
- }
220
- },
221
- {
222
- label: __("Tab Hover Text"),
223
- colorValue: tabHoverTextColor?.color ?? customTabHoverTextColor,
224
- onColorChange: (value) => {
225
- setTabHoverTextColor(value);
226
- setAttributes({
227
- customTabHoverTextColor: value
228
- });
229
- }
230
- }
231
- ],
232
- panelId: clientId,
233
- disableCustomColors: false,
234
- __experimentalIsRenderedInSidebar: true,
235
- __next40pxDefaultSize: true,
236
- ...colorSettings
237
- }
238
- ),
239
- /* @__PURE__ */ jsx(ContrastCheckerMatrix, { attributes })
240
- ] })
33
+ ) }) })
241
34
  ] });
242
35
  }
243
36
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/controls.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToggleControl, PanelBody, TextControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tContrastChecker,\n\tInspectorControls,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\n\nfunction ContrastCheckerMatrix( { attributes } ) {\n\tconst {\n\t\tclassName,\n\t\tfontSize,\n\t\ttabActiveColor,\n\t\tcustomTabActiveColor,\n\t\ttabActiveTextColor,\n\t\tcustomTabActiveTextColor,\n\t\ttabInactiveColor,\n\t\tcustomTabInactiveColor,\n\t\ttabTextColor,\n\t\tcustomTabTextColor,\n\t\ttabHoverColor,\n\t\tcustomTabHoverColor,\n\t\ttabHoverTextColor,\n\t\tcustomTabHoverTextColor,\n\t} = attributes;\n\n\tconst activeBackground = useMemo( () => {\n\t\tif ( className?.includes( 'is-style-links' ) ) {\n\t\t\treturn '#fff';\n\t\t}\n\t\tif ( tabActiveColor?.color ) {\n\t\t\treturn tabActiveColor.color;\n\t\t}\n\t\treturn customTabActiveColor;\n\t}, [ tabActiveColor, customTabActiveColor, className ] );\n\n\tconst activeText = useMemo( () => {\n\t\tif ( tabActiveTextColor?.color ) {\n\t\t\treturn tabActiveTextColor.color;\n\t\t}\n\t\treturn customTabActiveTextColor;\n\t}, [ tabActiveTextColor, customTabActiveTextColor ] );\n\n\tconst inactiveBackground = useMemo( () => {\n\t\tif ( className?.includes( 'is-style-links' ) ) {\n\t\t\treturn '#fff';\n\t\t}\n\t\tif ( tabInactiveColor?.color ) {\n\t\t\treturn tabInactiveColor.color;\n\t\t}\n\t\treturn customTabInactiveColor;\n\t}, [ tabInactiveColor, customTabInactiveColor, className ] );\n\n\tconst inactiveText = useMemo( () => {\n\t\tif ( tabTextColor?.color ) {\n\t\t\treturn tabTextColor.color;\n\t\t}\n\t\treturn customTabTextColor;\n\t}, [ tabTextColor, customTabTextColor ] );\n\n\tconst hoverBackground = useMemo( () => {\n\t\tif ( tabHoverColor?.color ) {\n\t\t\treturn tabHoverColor.color;\n\t\t}\n\t\treturn customTabHoverColor;\n\t}, [ tabHoverColor, customTabHoverColor ] );\n\n\tconst hoverText = useMemo( () => {\n\t\tif ( tabHoverTextColor?.color ) {\n\t\t\treturn tabHoverTextColor.color;\n\t\t}\n\t\treturn customTabHoverTextColor;\n\t}, [ tabHoverTextColor, customTabHoverTextColor ] );\n\n\treturn (\n\t\t<>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ activeBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ activeText }\n\t\t\t/>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ inactiveBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ inactiveText }\n\t\t\t/>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ hoverBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ hoverText }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Controls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\ttabInactiveColor,\n\tsetTabInactiveColor,\n\ttabHoverColor,\n\tsetTabHoverColor,\n\ttabActiveColor,\n\tsetTabActiveColor,\n\ttabTextColor,\n\tsetTabTextColor,\n\ttabActiveTextColor,\n\tsetTabActiveTextColor,\n\ttabHoverTextColor,\n\tsetTabHoverTextColor,\n} ) {\n\tconst {\n\t\tcustomTabInactiveColor,\n\t\tcustomTabActiveColor,\n\t\tcustomTabHoverColor,\n\t\tcustomTabTextColor,\n\t\tcustomTabActiveTextColor,\n\t\tcustomTabHoverTextColor,\n\t\torientation,\n\t\tmetadata = {\n\t\t\tname: '',\n\t\t},\n\t} = attributes;\n\t/**\n\t * Get the color settings for the block.\n\t */\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl\n\t\t\t\ttabsClientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Tabs Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Vertical Tabs' ) }\n\t\t\t\t\t\tchecked={ 'vertical' === orientation }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torientation:\n\t\t\t\t\t\t\t\t\t'vertical' === orientation\n\t\t\t\t\t\t\t\t\t\t? 'horizontal'\n\t\t\t\t\t\t\t\t\t\t: 'vertical',\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<TextControl\n\t\t\t\t\t\tlabel={ __( 'Tabs Title' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The tabs title is used by screen readers to describe the purpose and content of the tabs.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ metadata.name }\n\t\t\t\t\t\tplaceholder={ __( 'Tab Contents' ) }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmetadata: { ...metadata, name: value },\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Active Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabActiveColor?.color ?? customTabActiveColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabActiveColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabActiveColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Active Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabActiveTextColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabActiveTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabActiveTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabActiveTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Inactive Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabInactiveColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabInactiveColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabInactiveColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabInactiveColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Inactive Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabTextColor?.color ?? customTabTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Hover Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabHoverColor?.color ?? customTabHoverColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabHoverColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabHoverColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Hover Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabHoverTextColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabHoverTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabHoverTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabHoverTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\tdisableCustomColors={ false }\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t{ ...colorSettings }\n\t\t\t\t/>\n\t\t\t\t<ContrastCheckerMatrix attributes={ attributes } />\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, TextControl } from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nexport default function Controls( { attributes, setAttributes, clientId } ) {\n\tconst {\n\t\tmetadata = {\n\t\t\tname: '',\n\t\t},\n\t} = attributes;\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ clientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ clientId } />\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Tabs Title' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The tabs title is used by screen readers to describe the purpose and content of the tabs.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ metadata.name }\n\t\t\t\t\t\tplaceholder={ __( 'Tab Contents' ) }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmetadata: { ...metadata, name: value },\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,WAAW,mBAAmB;AACvC,SAAS,yBAAyB;AAKlC,OAAO,0BAA0B;AACjC,OAAO,6BAA6B;AAUlC,mBACC,KADD;AARa,SAAR,SAA2B,EAAE,YAAY,eAAe,SAAS,GAAI;AAC3E,QAAM;AAAA,IACL,WAAW;AAAA,MACV,MAAM;AAAA,IACP;AAAA,EACD,IAAI;AAEJ,SACC,iCACC;AAAA,wBAAC,wBAAqB,cAAe,UAAW;AAAA,IAChD,oBAAC,2BAAwB,cAAe,UAAW;AAAA,IACnD,oBAAC,qBACA,8BAAC,aAAU,OAAQ,GAAI,UAAW,GACjC;AAAA,MAAC;AAAA;AAAA,QACA,OAAQ,GAAI,YAAa;AAAA,QACzB,MAAO;AAAA,UACN;AAAA,QACD;AAAA,QACA,OAAQ,SAAS;AAAA,QACjB,aAAc,GAAI,cAAe;AAAA,QACjC,UAAW,CAAE,UAAW;AACvB,wBAAe;AAAA,YACd,UAAU,EAAE,GAAG,UAAU,MAAM,MAAM;AAAA,UACtC,CAAE;AAAA,QACH;AAAA,QACA,uBAAqB;AAAA;AAAA,IACtB,GACD,GACD;AAAA,KACD;AAEF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,158 @@
1
+ // packages/block-library/src/tabs/deprecated.js
2
+ import { useBlockProps, useInnerBlocksProps } from "@wordpress/block-editor";
3
+ import { createBlock } from "@wordpress/blocks";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ var v1Attributes = {
6
+ tabsId: {
7
+ type: "string",
8
+ default: ""
9
+ },
10
+ orientation: {
11
+ type: "string",
12
+ default: "horizontal",
13
+ enum: ["horizontal", "vertical"]
14
+ },
15
+ activeTabIndex: {
16
+ type: "number",
17
+ default: 0
18
+ },
19
+ tabInactiveColor: {
20
+ type: "string"
21
+ },
22
+ customTabInactiveColor: {
23
+ type: "string"
24
+ },
25
+ tabHoverColor: {
26
+ type: "string"
27
+ },
28
+ customTabHoverColor: {
29
+ type: "string"
30
+ },
31
+ tabActiveColor: {
32
+ type: "string"
33
+ },
34
+ customTabActiveColor: {
35
+ type: "string"
36
+ },
37
+ tabTextColor: {
38
+ type: "string"
39
+ },
40
+ customTabTextColor: {
41
+ type: "string"
42
+ },
43
+ tabActiveTextColor: {
44
+ type: "string"
45
+ },
46
+ customTabActiveTextColor: {
47
+ type: "string"
48
+ },
49
+ tabHoverTextColor: {
50
+ type: "string"
51
+ },
52
+ customTabHoverTextColor: {
53
+ type: "string"
54
+ }
55
+ };
56
+ function v1Save({ attributes }) {
57
+ const blockProps = useBlockProps.save();
58
+ const innerBlocksProps = useInnerBlocksProps.save({});
59
+ const title = attributes?.metadata?.name || "Tab Contents";
60
+ return /* @__PURE__ */ jsxs("div", { ...blockProps, children: [
61
+ /* @__PURE__ */ jsx("h3", { className: "tabs__title", children: title }),
62
+ /* @__PURE__ */ jsx("ul", { className: "tabs__list" }),
63
+ innerBlocksProps.children
64
+ ] });
65
+ }
66
+ function v1Migrate(attributes, innerBlocks) {
67
+ const tabsMenuAttributes = {
68
+ // Map inactive colors to core background/text supports
69
+ backgroundColor: attributes.tabInactiveColor,
70
+ textColor: attributes.tabTextColor,
71
+ // Map custom inactive colors
72
+ style: {
73
+ color: {
74
+ background: attributes.customTabInactiveColor,
75
+ text: attributes.customTabTextColor
76
+ }
77
+ },
78
+ // Active colors
79
+ activeBackgroundColor: attributes.tabActiveColor,
80
+ customActiveBackgroundColor: attributes.customTabActiveColor,
81
+ activeTextColor: attributes.tabActiveTextColor,
82
+ customActiveTextColor: attributes.customTabActiveTextColor,
83
+ // Hover colors
84
+ hoverBackgroundColor: attributes.tabHoverColor,
85
+ customHoverBackgroundColor: attributes.customTabHoverColor,
86
+ hoverTextColor: attributes.tabHoverTextColor,
87
+ customHoverTextColor: attributes.customTabHoverTextColor
88
+ };
89
+ if (tabsMenuAttributes.style?.color) {
90
+ if (!tabsMenuAttributes.style.color.background) {
91
+ delete tabsMenuAttributes.style.color.background;
92
+ }
93
+ if (!tabsMenuAttributes.style.color.text) {
94
+ delete tabsMenuAttributes.style.color.text;
95
+ }
96
+ if (Object.keys(tabsMenuAttributes.style.color).length === 0) {
97
+ delete tabsMenuAttributes.style.color;
98
+ }
99
+ if (Object.keys(tabsMenuAttributes.style).length === 0) {
100
+ delete tabsMenuAttributes.style;
101
+ }
102
+ }
103
+ Object.keys(tabsMenuAttributes).forEach((key) => {
104
+ if (tabsMenuAttributes[key] === void 0) {
105
+ delete tabsMenuAttributes[key];
106
+ }
107
+ });
108
+ const tabsMenuBlock = createBlock("core/tabs-menu", tabsMenuAttributes);
109
+ const tabPanelsBlock = createBlock("core/tab-panels", {}, innerBlocks);
110
+ const newAttributes = {
111
+ tabsId: attributes.tabsId,
112
+ orientation: attributes.orientation,
113
+ activeTabIndex: attributes.activeTabIndex,
114
+ metadata: attributes.metadata
115
+ };
116
+ return [newAttributes, [tabsMenuBlock, tabPanelsBlock]];
117
+ }
118
+ function v1IsEligible(attributes, innerBlocks) {
119
+ return innerBlocks.some((block) => block.name === "core/tab");
120
+ }
121
+ var deprecated = [
122
+ {
123
+ attributes: v1Attributes,
124
+ supports: {
125
+ align: true,
126
+ color: {
127
+ text: false,
128
+ background: false
129
+ },
130
+ html: false,
131
+ interactivity: true,
132
+ spacing: {
133
+ blockGap: ["horizontal", "vertical"],
134
+ margin: true,
135
+ padding: false
136
+ },
137
+ typography: {
138
+ fontSize: true,
139
+ __experimentalFontFamily: true
140
+ },
141
+ __experimentalBorder: {
142
+ radius: true,
143
+ __experimentalSkipSerialization: true,
144
+ __experimentalDefaultControls: {
145
+ radius: true
146
+ }
147
+ }
148
+ },
149
+ isEligible: v1IsEligible,
150
+ migrate: v1Migrate,
151
+ save: v1Save
152
+ }
153
+ ];
154
+ var deprecated_default = deprecated;
155
+ export {
156
+ deprecated_default as default
157
+ };
158
+ //# sourceMappingURL=deprecated.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tabs/deprecated.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * The old attributes before restructuring.\n * Maintain during experimental phase to allow for migration.\n *\n * TODO: Should be removed after the experimental phase before release into main block library.\n */\nconst v1Attributes = {\n\ttabsId: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\torientation: {\n\t\ttype: 'string',\n\t\tdefault: 'horizontal',\n\t\tenum: [ 'horizontal', 'vertical' ],\n\t},\n\tactiveTabIndex: {\n\t\ttype: 'number',\n\t\tdefault: 0,\n\t},\n\ttabInactiveColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabInactiveColor: {\n\t\ttype: 'string',\n\t},\n\ttabHoverColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabHoverColor: {\n\t\ttype: 'string',\n\t},\n\ttabActiveColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabActiveColor: {\n\t\ttype: 'string',\n\t},\n\ttabTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabTextColor: {\n\t\ttype: 'string',\n\t},\n\ttabActiveTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabActiveTextColor: {\n\t\ttype: 'string',\n\t},\n\ttabHoverTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabHoverTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\n/**\n * The old save function before restructuring.\n * This renders the tab blocks directly as children with a tabs list placeholder.\n *\n * @param {Object} root0 Component props.\n * @param {Object} root0.attributes Block attributes.\n */\nfunction v1Save( { attributes } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( {} );\n\tconst title = attributes?.metadata?.name || 'Tab Contents';\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<h3 className=\"tabs__title\">{ title }</h3>\n\t\t\t<ul className=\"tabs__list\"></ul>\n\t\t\t{ innerBlocksProps.children }\n\t\t</div>\n\t);\n}\n\n/**\n * Migration function to convert old tabs structure to new structure.\n *\n * Old structure:\n * - core/tabs (with color attributes and tab innerblocks)\n * - core/tab\n * - core/tab\n *\n * New structure:\n * - core/tabs (orientation only)\n * - core/tabs-menu (with color attributes)\n * - core/tab-panels\n * - core/tab\n * - core/tab\n *\n * @param {Object} attributes Block attributes.\n * @param {Array} innerBlocks Inner blocks array.\n */\nfunction v1Migrate( attributes, innerBlocks ) {\n\t// Extract color attributes for tabs-menu\n\tconst tabsMenuAttributes = {\n\t\t// Map inactive colors to core background/text supports\n\t\tbackgroundColor: attributes.tabInactiveColor,\n\t\ttextColor: attributes.tabTextColor,\n\t\t// Map custom inactive colors\n\t\tstyle: {\n\t\t\tcolor: {\n\t\t\t\tbackground: attributes.customTabInactiveColor,\n\t\t\t\ttext: attributes.customTabTextColor,\n\t\t\t},\n\t\t},\n\t\t// Active colors\n\t\tactiveBackgroundColor: attributes.tabActiveColor,\n\t\tcustomActiveBackgroundColor: attributes.customTabActiveColor,\n\t\tactiveTextColor: attributes.tabActiveTextColor,\n\t\tcustomActiveTextColor: attributes.customTabActiveTextColor,\n\t\t// Hover colors\n\t\thoverBackgroundColor: attributes.tabHoverColor,\n\t\tcustomHoverBackgroundColor: attributes.customTabHoverColor,\n\t\thoverTextColor: attributes.tabHoverTextColor,\n\t\tcustomHoverTextColor: attributes.customTabHoverTextColor,\n\t};\n\n\t// Clean up undefined values from style object\n\tif ( tabsMenuAttributes.style?.color ) {\n\t\tif ( ! tabsMenuAttributes.style.color.background ) {\n\t\t\tdelete tabsMenuAttributes.style.color.background;\n\t\t}\n\t\tif ( ! tabsMenuAttributes.style.color.text ) {\n\t\t\tdelete tabsMenuAttributes.style.color.text;\n\t\t}\n\t\tif ( Object.keys( tabsMenuAttributes.style.color ).length === 0 ) {\n\t\t\tdelete tabsMenuAttributes.style.color;\n\t\t}\n\t\tif ( Object.keys( tabsMenuAttributes.style ).length === 0 ) {\n\t\t\tdelete tabsMenuAttributes.style;\n\t\t}\n\t}\n\n\t// Clean up undefined top-level attributes\n\tObject.keys( tabsMenuAttributes ).forEach( ( key ) => {\n\t\tif ( tabsMenuAttributes[ key ] === undefined ) {\n\t\t\tdelete tabsMenuAttributes[ key ];\n\t\t}\n\t} );\n\n\t// Create tabs-menu block\n\tconst tabsMenuBlock = createBlock( 'core/tabs-menu', tabsMenuAttributes );\n\n\t// Create tab-panels block with existing tab innerblocks\n\tconst tabPanelsBlock = createBlock( 'core/tab-panels', {}, innerBlocks );\n\n\t// Return new attributes (stripped of color attrs) and new innerblocks structure\n\tconst newAttributes = {\n\t\ttabsId: attributes.tabsId,\n\t\torientation: attributes.orientation,\n\t\tactiveTabIndex: attributes.activeTabIndex,\n\t\tmetadata: attributes.metadata,\n\t};\n\n\treturn [ newAttributes, [ tabsMenuBlock, tabPanelsBlock ] ];\n}\n\n/**\n * Check if block is using old structure (tab blocks directly as children).\n *\n * @param {Object} attributes Block attributes.\n * @param {Array} innerBlocks Inner blocks array.\n */\nfunction v1IsEligible( attributes, innerBlocks ) {\n\t// If there are any direct tab children (not wrapped in tab-panels), this is old structure\n\treturn innerBlocks.some( ( block ) => block.name === 'core/tab' );\n}\n\nconst deprecated = [\n\t{\n\t\tattributes: v1Attributes,\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\tcolor: {\n\t\t\t\ttext: false,\n\t\t\t\tbackground: false,\n\t\t\t},\n\t\t\thtml: false,\n\t\t\tinteractivity: true,\n\t\t\tspacing: {\n\t\t\t\tblockGap: [ 'horizontal', 'vertical' ],\n\t\t\t\tmargin: true,\n\t\t\t\tpadding: false,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t\t__experimentalFontFamily: true,\n\t\t\t},\n\t\t\t__experimentalBorder: {\n\t\t\t\tradius: true,\n\t\t\t\t__experimentalSkipSerialization: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tradius: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tisEligible: v1IsEligible,\n\t\tmigrate: v1Migrate,\n\t\tsave: v1Save,\n\t},\n];\n\nexport default deprecated;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,89 +1,112 @@
1
1
  // packages/block-library/src/tabs/edit.js
2
- import clsx from "clsx";
2
+ import { __ } from "@wordpress/i18n";
3
3
  import {
4
4
  useBlockProps,
5
5
  useInnerBlocksProps,
6
- withColors
6
+ BlockContextProvider,
7
+ store as blockEditorStore
7
8
  } from "@wordpress/block-editor";
8
- import StyleEngine from "./style-engine.mjs";
9
+ import { useSelect } from "@wordpress/data";
10
+ import { useMemo, useEffect } from "@wordpress/element";
9
11
  import Controls from "./controls.mjs";
10
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
- var TABS_TEMPLATE = [["core/tab", {}]];
12
- var DEFAULT_BLOCK = {
13
- name: "core/tab",
14
- attributesToCopy: ["className", "fontFamily", "fontSize"]
15
- };
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ var TABS_TEMPLATE = [
14
+ [
15
+ "core/tabs-menu",
16
+ {
17
+ lock: {
18
+ remove: true
19
+ }
20
+ }
21
+ ],
22
+ [
23
+ "core/tab-panels",
24
+ {
25
+ lock: {
26
+ remove: true
27
+ }
28
+ },
29
+ [
30
+ [
31
+ "core/tab",
32
+ {
33
+ anchor: "tab-1",
34
+ label: "Tab 1"
35
+ },
36
+ [
37
+ [
38
+ "core/paragraph",
39
+ {
40
+ placeholder: __("Type / to add a block to tab")
41
+ }
42
+ ]
43
+ ]
44
+ ]
45
+ ]
46
+ ]
47
+ ];
16
48
  function Edit({
17
49
  clientId,
18
50
  attributes,
19
51
  setAttributes,
20
- tabInactiveColor,
21
- setTabInactiveColor,
22
- tabHoverColor,
23
- setTabHoverColor,
24
- tabActiveColor,
25
- setTabActiveColor,
26
- tabTextColor,
27
- setTabTextColor,
28
- tabActiveTextColor,
29
- setTabActiveTextColor,
30
- tabHoverTextColor,
31
- setTabHoverTextColor
52
+ __unstableLayoutClassNames: layoutClassNames
32
53
  }) {
33
- const { style, orientation } = attributes;
34
- const blockProps = useBlockProps({
35
- className: clsx(
36
- "vertical" === orientation ? "is-vertical" : "is-horizontal"
37
- ),
38
- style: {
39
- ...style
54
+ const { anchor, activeTabIndex, editorActiveTabIndex } = attributes;
55
+ useEffect(() => {
56
+ if (editorActiveTabIndex === void 0) {
57
+ setAttributes({ editorActiveTabIndex: activeTabIndex });
40
58
  }
59
+ }, []);
60
+ const tabsList = useSelect(
61
+ (select) => {
62
+ const { getBlocks } = select(blockEditorStore);
63
+ const innerBlocks = getBlocks(clientId);
64
+ const tabPanels = innerBlocks.find(
65
+ (block) => block.name === "core/tab-panels"
66
+ );
67
+ if (!tabPanels) {
68
+ return [];
69
+ }
70
+ return tabPanels.innerBlocks.filter((block) => block.name === "core/tab").map((tab, index) => ({
71
+ id: tab.attributes.anchor || `tab-${index}`,
72
+ label: tab.attributes.label || "",
73
+ clientId: tab.clientId,
74
+ index
75
+ }));
76
+ },
77
+ [clientId]
78
+ );
79
+ const contextValue = useMemo(
80
+ () => ({
81
+ "core/tabs-list": tabsList,
82
+ "core/tabs-id": anchor,
83
+ "core/tabs-activeTabIndex": activeTabIndex,
84
+ "core/tabs-editorActiveTabIndex": editorActiveTabIndex
85
+ }),
86
+ [tabsList, anchor, activeTabIndex, editorActiveTabIndex]
87
+ );
88
+ const blockProps = useBlockProps({
89
+ className: layoutClassNames
41
90
  });
42
91
  const innerBlockProps = useInnerBlocksProps(blockProps, {
43
- defaultBlock: DEFAULT_BLOCK,
44
- directInsert: true,
45
- __experimentalCaptureToolbars: true,
46
- clientId,
47
- orientation,
48
92
  template: TABS_TEMPLATE,
49
- renderAppender: false
50
- // Appender is rendered by individual tab blocks.
93
+ templateLock: false,
94
+ renderAppender: false,
95
+ __experimentalCaptureToolbars: true
51
96
  });
52
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { ...innerBlockProps, children: [
53
- innerBlockProps.children,
54
- /* @__PURE__ */ jsx(StyleEngine, { attributes, clientId }),
97
+ return /* @__PURE__ */ jsx(BlockContextProvider, { value: contextValue, children: /* @__PURE__ */ jsxs("div", { ...innerBlockProps, children: [
55
98
  /* @__PURE__ */ jsx(
56
99
  Controls,
57
100
  {
58
- ...{
59
- clientId,
60
- attributes,
61
- setAttributes,
62
- tabInactiveColor,
63
- setTabInactiveColor,
64
- tabHoverColor,
65
- setTabHoverColor,
66
- tabActiveColor,
67
- setTabActiveColor,
68
- tabTextColor,
69
- setTabTextColor,
70
- tabActiveTextColor,
71
- setTabActiveTextColor,
72
- tabHoverTextColor,
73
- setTabHoverTextColor
74
- }
101
+ clientId,
102
+ attributes,
103
+ setAttributes
75
104
  }
76
- )
105
+ ),
106
+ innerBlockProps.children
77
107
  ] }) });
78
108
  }
79
- var edit_default = withColors(
80
- "tabInactiveColor",
81
- "tabHoverColor",
82
- "tabActiveColor",
83
- "tabTextColor",
84
- "tabActiveTextColor",
85
- "tabHoverTextColor"
86
- )(Edit);
109
+ var edit_default = Edit;
87
110
  export {
88
111
  edit_default as default
89
112
  };