@wordpress/block-library 9.38.1-next.v.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 (273) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/index.cjs +3 -0
  3. package/build/button/index.cjs.map +2 -2
  4. package/build/comments-title/block.json +1 -3
  5. package/build/comments-title/deprecated.cjs +148 -24
  6. package/build/comments-title/deprecated.cjs.map +3 -3
  7. package/build/comments-title/edit.cjs +17 -31
  8. package/build/comments-title/edit.cjs.map +3 -3
  9. package/build/cover/edit/block-controls.cjs +10 -2
  10. package/build/cover/edit/block-controls.cjs.map +2 -2
  11. package/build/cover/edit/embed-video-url-input.cjs +6 -2
  12. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  13. package/build/details/index.cjs +3 -0
  14. package/build/details/index.cjs.map +2 -2
  15. package/build/heading/index.cjs +3 -0
  16. package/build/heading/index.cjs.map +2 -2
  17. package/build/image/index.cjs +1 -1
  18. package/build/image/index.cjs.map +2 -2
  19. package/build/index.cjs +6 -0
  20. package/build/index.cjs.map +2 -2
  21. package/build/list-item/index.cjs +3 -0
  22. package/build/list-item/index.cjs.map +2 -2
  23. package/build/more/index.cjs +1 -1
  24. package/build/more/index.cjs.map +2 -2
  25. package/build/navigation/edit/index.cjs +23 -2
  26. package/build/navigation/edit/index.cjs.map +2 -2
  27. package/build/navigation-submenu/index.cjs +2 -2
  28. package/build/navigation-submenu/index.cjs.map +2 -2
  29. package/build/paragraph/index.cjs +1 -1
  30. package/build/paragraph/index.cjs.map +2 -2
  31. package/build/post-excerpt/edit.cjs +1 -1
  32. package/build/post-excerpt/edit.cjs.map +2 -2
  33. package/build/tab/add-tab-toolbar-control.cjs +31 -9
  34. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  35. package/build/tab/block.json +18 -4
  36. package/build/tab/controls.cjs +4 -8
  37. package/build/tab/controls.cjs.map +3 -3
  38. package/build/tab/edit.cjs +46 -118
  39. package/build/tab/edit.cjs.map +3 -3
  40. package/build/tab/remove-tab-toolbar-control.cjs +91 -0
  41. package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
  42. package/build/tab/save.cjs +2 -2
  43. package/build/tab/save.cjs.map +2 -2
  44. package/build/tab-panels/block.json +70 -0
  45. package/build/tab-panels/edit.cjs +63 -0
  46. package/build/tab-panels/edit.cjs.map +7 -0
  47. package/build/tab-panels/icon.cjs +29 -0
  48. package/build/tab-panels/icon.cjs.map +7 -0
  49. package/build/tab-panels/index.cjs +58 -0
  50. package/build/tab-panels/index.cjs.map +7 -0
  51. package/build/tab-panels/save.cjs +33 -0
  52. package/build/tab-panels/save.cjs.map +7 -0
  53. package/build/tabs/block.json +61 -90
  54. package/build/tabs/controls.cjs +19 -221
  55. package/build/tabs/controls.cjs.map +3 -3
  56. package/build/tabs/deprecated.cjs +179 -0
  57. package/build/tabs/deprecated.cjs.map +7 -0
  58. package/build/tabs/edit.cjs +84 -62
  59. package/build/tabs/edit.cjs.map +3 -3
  60. package/build/tabs/index.cjs +3 -1
  61. package/build/tabs/index.cjs.map +3 -3
  62. package/build/tabs/save.cjs +6 -9
  63. package/build/tabs/save.cjs.map +2 -2
  64. package/build/tabs-menu/block.json +77 -0
  65. package/build/tabs-menu/edit.cjs +204 -0
  66. package/build/tabs-menu/edit.cjs.map +7 -0
  67. package/build/tabs-menu/icon.cjs +29 -0
  68. package/build/tabs-menu/icon.cjs.map +7 -0
  69. package/build/tabs-menu/index.cjs +58 -0
  70. package/build/tabs-menu/index.cjs.map +7 -0
  71. package/build/tabs-menu/save.cjs +35 -0
  72. package/build/tabs-menu/save.cjs.map +7 -0
  73. package/build/tabs-menu-item/block.json +98 -0
  74. package/build/tabs-menu-item/controls.cjs +247 -0
  75. package/build/tabs-menu-item/controls.cjs.map +7 -0
  76. package/build/tabs-menu-item/edit.cjs +272 -0
  77. package/build/tabs-menu-item/edit.cjs.map +7 -0
  78. package/build/tabs-menu-item/icon.cjs +29 -0
  79. package/build/tabs-menu-item/icon.cjs.map +7 -0
  80. package/build/tabs-menu-item/index.cjs +58 -0
  81. package/build/tabs-menu-item/index.cjs.map +7 -0
  82. package/build/tabs-menu-item/save.cjs +50 -0
  83. package/build/tabs-menu-item/save.cjs.map +7 -0
  84. package/build/template-part/edit/index.cjs +1 -1
  85. package/build/template-part/edit/index.cjs.map +2 -2
  86. package/build/utils/caption.cjs +4 -6
  87. package/build/utils/caption.cjs.map +3 -3
  88. package/build/video/edit.cjs +4 -2
  89. package/build/video/edit.cjs.map +2 -2
  90. package/build-module/button/index.mjs +3 -0
  91. package/build-module/button/index.mjs.map +2 -2
  92. package/build-module/comments-title/block.json +1 -3
  93. package/build-module/comments-title/deprecated.mjs +148 -24
  94. package/build-module/comments-title/deprecated.mjs.map +2 -2
  95. package/build-module/comments-title/edit.mjs +17 -32
  96. package/build-module/comments-title/edit.mjs.map +2 -2
  97. package/build-module/cover/edit/block-controls.mjs +11 -3
  98. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  99. package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
  100. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  101. package/build-module/details/index.mjs +3 -0
  102. package/build-module/details/index.mjs.map +2 -2
  103. package/build-module/heading/index.mjs +3 -0
  104. package/build-module/heading/index.mjs.map +2 -2
  105. package/build-module/image/index.mjs +1 -1
  106. package/build-module/image/index.mjs.map +2 -2
  107. package/build-module/index.mjs +6 -0
  108. package/build-module/index.mjs.map +2 -2
  109. package/build-module/list-item/index.mjs +3 -0
  110. package/build-module/list-item/index.mjs.map +2 -2
  111. package/build-module/more/index.mjs +1 -1
  112. package/build-module/more/index.mjs.map +2 -2
  113. package/build-module/navigation/edit/index.mjs +23 -2
  114. package/build-module/navigation/edit/index.mjs.map +2 -2
  115. package/build-module/navigation-submenu/index.mjs +2 -2
  116. package/build-module/navigation-submenu/index.mjs.map +2 -2
  117. package/build-module/paragraph/index.mjs +1 -1
  118. package/build-module/paragraph/index.mjs.map +2 -2
  119. package/build-module/post-excerpt/edit.mjs +1 -1
  120. package/build-module/post-excerpt/edit.mjs.map +2 -2
  121. package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
  122. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  123. package/build-module/tab/block.json +18 -4
  124. package/build-module/tab/controls.mjs +4 -8
  125. package/build-module/tab/controls.mjs.map +2 -2
  126. package/build-module/tab/edit.mjs +48 -128
  127. package/build-module/tab/edit.mjs.map +2 -2
  128. package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
  129. package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
  130. package/build-module/tab/save.mjs +2 -2
  131. package/build-module/tab/save.mjs.map +2 -2
  132. package/build-module/tab-panels/block.json +70 -0
  133. package/build-module/tab-panels/edit.mjs +36 -0
  134. package/build-module/tab-panels/edit.mjs.map +7 -0
  135. package/build-module/tab-panels/icon.mjs +8 -0
  136. package/build-module/tab-panels/icon.mjs.map +7 -0
  137. package/build-module/tab-panels/index.mjs +20 -0
  138. package/build-module/tab-panels/index.mjs.map +7 -0
  139. package/build-module/tab-panels/save.mjs +12 -0
  140. package/build-module/tab-panels/save.mjs.map +7 -0
  141. package/build-module/tabs/block.json +61 -90
  142. package/build-module/tabs/controls.mjs +21 -228
  143. package/build-module/tabs/controls.mjs.map +2 -2
  144. package/build-module/tabs/deprecated.mjs +158 -0
  145. package/build-module/tabs/deprecated.mjs.map +7 -0
  146. package/build-module/tabs/edit.mjs +87 -64
  147. package/build-module/tabs/edit.mjs.map +2 -2
  148. package/build-module/tabs/index.mjs +3 -1
  149. package/build-module/tabs/index.mjs.map +2 -2
  150. package/build-module/tabs/save.mjs +7 -10
  151. package/build-module/tabs/save.mjs.map +2 -2
  152. package/build-module/tabs-menu/block.json +77 -0
  153. package/build-module/tabs-menu/edit.mjs +186 -0
  154. package/build-module/tabs-menu/edit.mjs.map +7 -0
  155. package/build-module/tabs-menu/icon.mjs +8 -0
  156. package/build-module/tabs-menu/icon.mjs.map +7 -0
  157. package/build-module/tabs-menu/index.mjs +20 -0
  158. package/build-module/tabs-menu/index.mjs.map +7 -0
  159. package/build-module/tabs-menu/save.mjs +14 -0
  160. package/build-module/tabs-menu/save.mjs.map +7 -0
  161. package/build-module/tabs-menu-item/block.json +98 -0
  162. package/build-module/tabs-menu-item/controls.mjs +227 -0
  163. package/build-module/tabs-menu-item/controls.mjs.map +7 -0
  164. package/build-module/tabs-menu-item/edit.mjs +253 -0
  165. package/build-module/tabs-menu-item/edit.mjs.map +7 -0
  166. package/build-module/tabs-menu-item/icon.mjs +8 -0
  167. package/build-module/tabs-menu-item/icon.mjs.map +7 -0
  168. package/build-module/tabs-menu-item/index.mjs +20 -0
  169. package/build-module/tabs-menu-item/index.mjs.map +7 -0
  170. package/build-module/tabs-menu-item/save.mjs +29 -0
  171. package/build-module/tabs-menu-item/save.mjs.map +7 -0
  172. package/build-module/template-part/edit/index.mjs +1 -1
  173. package/build-module/template-part/edit/index.mjs.map +2 -2
  174. package/build-module/utils/caption.mjs +1 -3
  175. package/build-module/utils/caption.mjs.map +2 -2
  176. package/build-module/video/edit.mjs +4 -2
  177. package/build-module/video/edit.mjs.map +2 -2
  178. package/build-style/editor-rtl.css +16 -21
  179. package/build-style/editor.css +16 -21
  180. package/build-style/gallery/style-rtl.css +1 -1
  181. package/build-style/gallery/style.css +1 -1
  182. package/build-style/style-rtl.css +42 -153
  183. package/build-style/style.css +42 -153
  184. package/build-style/tab/style-rtl.css +7 -1
  185. package/build-style/tab/style.css +7 -1
  186. package/build-style/tab-panels/style-rtl.css +4 -0
  187. package/build-style/tab-panels/style.css +4 -0
  188. package/build-style/tabs/style-rtl.css +1 -167
  189. package/build-style/tabs/style.css +1 -167
  190. package/build-style/tabs-menu/editor-rtl.css +4 -0
  191. package/build-style/tabs-menu/editor.css +4 -0
  192. package/build-style/tabs-menu/style-rtl.css +8 -0
  193. package/build-style/tabs-menu/style.css +8 -0
  194. package/build-style/tabs-menu-item/editor-rtl.css +16 -0
  195. package/build-style/tabs-menu-item/editor.css +16 -0
  196. package/build-style/tabs-menu-item/style-rtl.css +34 -0
  197. package/build-style/tabs-menu-item/style.css +34 -0
  198. package/package.json +37 -37
  199. package/src/button/index.js +4 -0
  200. package/src/comments-title/block.json +1 -3
  201. package/src/comments-title/deprecated.js +153 -23
  202. package/src/comments-title/edit.js +9 -25
  203. package/src/cover/edit/block-controls.js +14 -3
  204. package/src/cover/edit/embed-video-url-input.js +6 -2
  205. package/src/details/index.js +4 -0
  206. package/src/editor.scss +2 -1
  207. package/src/gallery/style.scss +1 -1
  208. package/src/heading/index.js +4 -0
  209. package/src/image/index.js +4 -1
  210. package/src/index.js +6 -0
  211. package/src/list-item/index.js +4 -0
  212. package/src/more/index.js +4 -1
  213. package/src/navigation/edit/index.js +28 -4
  214. package/src/navigation-submenu/index.js +6 -3
  215. package/src/paragraph/index.js +4 -1
  216. package/src/post-excerpt/edit.js +1 -1
  217. package/src/post-excerpt/index.php +39 -16
  218. package/src/style.scss +3 -0
  219. package/src/tab/add-tab-toolbar-control.js +36 -11
  220. package/src/tab/block.json +18 -4
  221. package/src/tab/controls.js +4 -5
  222. package/src/tab/edit.js +75 -150
  223. package/src/tab/index.php +5 -63
  224. package/src/tab/remove-tab-toolbar-control.js +103 -0
  225. package/src/tab/save.js +1 -3
  226. package/src/tab/style.scss +8 -1
  227. package/src/tab-panels/block.json +70 -0
  228. package/src/tab-panels/edit.js +44 -0
  229. package/src/tab-panels/icon.js +10 -0
  230. package/src/tab-panels/index.js +21 -0
  231. package/src/tab-panels/save.js +11 -0
  232. package/src/tab-panels/style.scss +4 -0
  233. package/src/tabs/block.json +61 -90
  234. package/src/tabs/controls.js +7 -221
  235. package/src/tabs/deprecated.js +214 -0
  236. package/src/tabs/edit.js +108 -68
  237. package/src/tabs/index.js +2 -0
  238. package/src/tabs/index.php +86 -191
  239. package/src/tabs/save.js +6 -13
  240. package/src/tabs/style.scss +1 -187
  241. package/src/tabs-menu/block.json +77 -0
  242. package/src/tabs-menu/edit.js +251 -0
  243. package/src/tabs-menu/editor.scss +6 -0
  244. package/src/tabs-menu/icon.js +10 -0
  245. package/src/tabs-menu/index.js +21 -0
  246. package/src/tabs-menu/index.php +74 -0
  247. package/src/tabs-menu/save.js +18 -0
  248. package/src/tabs-menu/style.scss +8 -0
  249. package/src/tabs-menu-item/block.json +98 -0
  250. package/src/tabs-menu-item/controls.js +262 -0
  251. package/src/tabs-menu-item/edit.js +322 -0
  252. package/src/tabs-menu-item/editor.scss +20 -0
  253. package/src/tabs-menu-item/icon.js +10 -0
  254. package/src/tabs-menu-item/index.js +21 -0
  255. package/src/tabs-menu-item/index.php +82 -0
  256. package/src/tabs-menu-item/save.js +44 -0
  257. package/src/tabs-menu-item/style.scss +42 -0
  258. package/src/template-part/edit/index.js +1 -3
  259. package/src/utils/caption.js +1 -7
  260. package/src/video/edit.js +4 -2
  261. package/build/tab/tabs-list.cjs +0 -132
  262. package/build/tab/tabs-list.cjs.map +0 -7
  263. package/build/tabs/style-engine.cjs +0 -119
  264. package/build/tabs/style-engine.cjs.map +0 -7
  265. package/build-module/tab/tabs-list.mjs +0 -101
  266. package/build-module/tab/tabs-list.mjs.map +0 -7
  267. package/build-module/tabs/style-engine.mjs +0 -101
  268. package/build-module/tabs/style-engine.mjs.map +0 -7
  269. package/build-style/tabs/editor-rtl.css +0 -26
  270. package/build-style/tabs/editor.css +0 -26
  271. package/src/tab/tabs-list.js +0 -122
  272. package/src/tabs/editor.scss +0 -30
  273. package/src/tabs/style-engine.js +0 -164
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab/remove-tab-toolbar-control.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * \"Remove Tab\" button in the block toolbar for the tab block.\n * Removes the currently active tab from the tab-panels block.\n *\n * @param {Object} props\n * @param {string} props.tabsClientId The client ID of the parent tabs block.\n * @return {JSX.Element} The toolbar control element.\n */\nexport default function RemoveTabToolbarControl( { tabsClientId } ) {\n\tconst {\n\t\tremoveBlock,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\t// Find the tab-panels block, active tab, and tab count within the tabs block\n\tconst { activeTabClientId, tabCount, editorActiveTabIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! tabsClientId ) {\n\t\t\t\treturn {\n\t\t\t\t\tactiveTabClientId: null,\n\t\t\t\t\ttabCount: 0,\n\t\t\t\t\teditorActiveTabIndex: 0,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst { getBlocks, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst tabsAttributes = getBlockAttributes( tabsClientId );\n\t\t\tconst activeIndex =\n\t\t\t\ttabsAttributes?.editorActiveTabIndex ??\n\t\t\t\ttabsAttributes?.activeTabIndex ??\n\t\t\t\t0;\n\t\t\tconst innerBlocks = getBlocks( tabsClientId );\n\t\t\tconst tabPanels = innerBlocks.find(\n\t\t\t\t( block ) => block.name === 'core/tab-panels'\n\t\t\t);\n\t\t\tconst tabs = tabPanels?.innerBlocks || [];\n\t\t\tconst activeTab = tabs[ activeIndex ];\n\t\t\treturn {\n\t\t\t\tactiveTabClientId: activeTab?.clientId || null,\n\t\t\t\ttabCount: tabs.length,\n\t\t\t\teditorActiveTabIndex: activeIndex,\n\t\t\t};\n\t\t},\n\t\t[ tabsClientId ]\n\t);\n\n\tconst removeTab = () => {\n\t\tif ( ! activeTabClientId || tabCount <= 1 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate new active index after removal\n\t\tconst newActiveIndex =\n\t\t\teditorActiveTabIndex >= tabCount - 1\n\t\t\t\t? tabCount - 2 // If removing last tab, select the previous one\n\t\t\t\t: editorActiveTabIndex; // Otherwise keep the same index (next tab shifts into position)\n\n\t\t// Update the active tab index before removing\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\teditorActiveTabIndex: newActiveIndex,\n\t\t} );\n\n\t\t// Remove the tab\n\t\tremoveBlock( activeTabClientId, false );\n\n\t\t// Select the tabs block after removal\n\t\tif ( tabsClientId ) {\n\t\t\tselectBlock( tabsClientId );\n\t\t}\n\t};\n\n\t// Don't show the button if there's only one tab or no active tab\n\tconst isDisabled = tabCount <= 1 || ! activeTabClientId;\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tlabel={ __( 'Remove the current tab' ) }\n\t\t\t\t\tonClick={ removeTab }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttext={ __( 'Remove Tab' ) }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n"],
5
+ "mappings": ";AAGA;AAAA,EACC;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,cAAc,qBAAqB;AAC5C,SAAS,UAAU;AACnB,SAAS,aAAa,iBAAiB;AAkFnC;AAxEW,SAAR,wBAA0C,EAAE,aAAa,GAAI;AACnE,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI,YAAa,gBAAiB;AAGlC,QAAM,EAAE,mBAAmB,UAAU,qBAAqB,IAAI;AAAA,IAC7D,CAAE,WAAY;AACb,UAAK,CAAE,cAAe;AACrB,eAAO;AAAA,UACN,mBAAmB;AAAA,UACnB,UAAU;AAAA,UACV,sBAAsB;AAAA,QACvB;AAAA,MACD;AACA,YAAM,EAAE,WAAW,mBAAmB,IACrC,OAAQ,gBAAiB;AAC1B,YAAM,iBAAiB,mBAAoB,YAAa;AACxD,YAAM,cACL,gBAAgB,wBAChB,gBAAgB,kBAChB;AACD,YAAM,cAAc,UAAW,YAAa;AAC5C,YAAM,YAAY,YAAY;AAAA,QAC7B,CAAE,UAAW,MAAM,SAAS;AAAA,MAC7B;AACA,YAAM,OAAO,WAAW,eAAe,CAAC;AACxC,YAAM,YAAY,KAAM,WAAY;AACpC,aAAO;AAAA,QACN,mBAAmB,WAAW,YAAY;AAAA,QAC1C,UAAU,KAAK;AAAA,QACf,sBAAsB;AAAA,MACvB;AAAA,IACD;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAEA,QAAM,YAAY,MAAM;AACvB,QAAK,CAAE,qBAAqB,YAAY,GAAI;AAC3C;AAAA,IACD;AAGA,UAAM,iBACL,wBAAwB,WAAW,IAChC,WAAW,IACX;AAGJ,4CAAwC;AACxC,0BAAuB,cAAc;AAAA,MACpC,sBAAsB;AAAA,IACvB,CAAE;AAGF,gBAAa,mBAAmB,KAAM;AAGtC,QAAK,cAAe;AACnB,kBAAa,YAAa;AAAA,IAC3B;AAAA,EACD;AAGA,QAAM,aAAa,YAAY,KAAK,CAAE;AAEtC,SACC,oBAAC,iBAAc,OAAM,SACpB,8BAAC,gBACA;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,OAAQ,GAAI,wBAAyB;AAAA,MACrC,SAAU;AAAA,MACV,aAAW;AAAA,MACX,MAAO,GAAI,YAAa;AAAA,MACxB,UAAW;AAAA;AAAA,EACZ,GACD,GACD;AAEF;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  // packages/block-library/src/tab/save.js
2
2
  import { useBlockProps, useInnerBlocksProps } from "@wordpress/block-editor";
3
3
  import { jsx } from "react/jsx-runtime";
4
- function Save({ attributes }) {
4
+ function save({ attributes }) {
5
5
  const { anchor } = attributes;
6
6
  const tabPanelId = anchor;
7
7
  const blockProps = useBlockProps.save();
@@ -9,6 +9,6 @@ function Save({ attributes }) {
9
9
  return /* @__PURE__ */ jsx("section", { ...innerBlocksProps, id: tabPanelId });
10
10
  }
11
11
  export {
12
- Save as default
12
+ save as default
13
13
  };
14
14
  //# sourceMappingURL=save.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab/save.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function Save( { attributes } ) {\n\tconst { anchor } = attributes;\n\n\tconst tabPanelId = anchor;\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst blockProps = useBlockProps.save();\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <section { ...innerBlocksProps } id={ tabPanelId } />;\n}\n"],
5
- "mappings": ";AAGA,SAAS,eAAe,2BAA2B;AAY3C;AAVO,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,OAAO,IAAI;AAEnB,QAAM,aAAa;AAGnB,QAAM,aAAa,cAAc,KAAK;AAEtC,QAAM,mBAAmB,oBAAoB,KAAM,UAAW;AAE9D,SAAO,oBAAC,aAAU,GAAG,kBAAmB,IAAK,YAAa;AAC3D;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { anchor } = attributes;\n\n\tconst tabPanelId = anchor;\n\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <section { ...innerBlocksProps } id={ tabPanelId } />;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,eAAe,2BAA2B;AAU3C;AARO,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,OAAO,IAAI;AAEnB,QAAM,aAAa;AAEnB,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,mBAAmB,oBAAoB,KAAM,UAAW;AAE9D,SAAO,oBAAC,aAAU,GAAG,kBAAmB,IAAK,YAAa;AAC3D;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,70 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "__experimental": true,
4
+ "apiVersion": 3,
5
+ "name": "core/tab-panels",
6
+ "title": "Tab Panels",
7
+ "description": "Container for tab panel content in a tabbed interface.",
8
+ "version": "1.0.0",
9
+ "category": "design",
10
+ "textdomain": "default",
11
+ "parent": [
12
+ "core/tabs"
13
+ ],
14
+ "allowedBlocks": [
15
+ "core/tab"
16
+ ],
17
+ "attributes": {},
18
+ "supports": {
19
+ "anchor": false,
20
+ "html": false,
21
+ "reusable": false,
22
+ "lock": false,
23
+ "dimensions": {
24
+ "aspectRatio": false,
25
+ "height": false,
26
+ "minHeight": false,
27
+ "width": false
28
+ },
29
+ "color": {
30
+ "background": true,
31
+ "text": true,
32
+ "heading": true,
33
+ "link": true,
34
+ "__experimentalDefaultControls": {
35
+ "background": true,
36
+ "text": true
37
+ }
38
+ },
39
+ "spacing": {
40
+ "blockGap": false,
41
+ "padding": true,
42
+ "margin": true
43
+ },
44
+ "typography": {
45
+ "fontSize": true,
46
+ "__experimentalFontFamily": true
47
+ },
48
+ "layout": {
49
+ "default": {
50
+ "type": "flex",
51
+ "flexWrap": "nowrap",
52
+ "justifyContent": "stretch",
53
+ "orientation": "vertical"
54
+ },
55
+ "allowSwitching": false,
56
+ "allowVerticalAlignment": false,
57
+ "allowOrientation": false,
58
+ "allowJustification": true,
59
+ "allowSizingOnChildren": false
60
+ },
61
+ "__experimentalBorder": {
62
+ "radius": true,
63
+ "color": true,
64
+ "width": true,
65
+ "style": true
66
+ }
67
+ },
68
+ "editorScript": "file:./index.js",
69
+ "style": "file:./style-index.css"
70
+ }
@@ -0,0 +1,36 @@
1
+ // packages/block-library/src/tab-panels/edit.js
2
+ import {
3
+ useBlockProps,
4
+ useInnerBlocksProps,
5
+ store as blockEditorStore
6
+ } from "@wordpress/block-editor";
7
+ import { useSelect } from "@wordpress/data";
8
+ import AddTabToolbarControl from "../tab/add-tab-toolbar-control.mjs";
9
+ import RemoveTabToolbarControl from "../tab/remove-tab-toolbar-control.mjs";
10
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
+ var TAB_PANELS_TEMPLATE = [["core/tab", {}]];
12
+ function Edit({ clientId }) {
13
+ const blockProps = useBlockProps();
14
+ const innerBlocksProps = useInnerBlocksProps(blockProps, {
15
+ template: TAB_PANELS_TEMPLATE,
16
+ templateLock: false,
17
+ renderAppender: false
18
+ // Appender handled by individual tab blocks
19
+ });
20
+ const tabsClientId = useSelect(
21
+ (select) => {
22
+ const { getBlockRootClientId } = select(blockEditorStore);
23
+ return getBlockRootClientId(clientId);
24
+ },
25
+ [clientId]
26
+ );
27
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
28
+ /* @__PURE__ */ jsx(AddTabToolbarControl, { tabsClientId }),
29
+ /* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId }),
30
+ /* @__PURE__ */ jsx("div", { ...innerBlocksProps })
31
+ ] });
32
+ }
33
+ export {
34
+ Edit as default
35
+ };
36
+ //# sourceMappingURL=edit.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-panels/edit.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nconst TAB_PANELS_TEMPLATE = [ [ 'core/tab', {} ] ];\n\nexport default function Edit( { clientId } ) {\n\tconst blockProps = useBlockProps();\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TAB_PANELS_TEMPLATE,\n\t\ttemplateLock: false,\n\t\trenderAppender: false, // Appender handled by individual tab blocks\n\t} );\n\n\t// Get the parent tabs block clientId\n\tconst tabsClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA,SAAS;AAAA,OACH;AACP,SAAS,iBAAiB;AAK1B,OAAO,0BAA0B;AACjC,OAAO,6BAA6B;AAuBlC,mBACC,KADD;AArBF,IAAM,sBAAsB,CAAE,CAAE,YAAY,CAAC,CAAE,CAAE;AAElC,SAAR,KAAuB,EAAE,SAAS,GAAI;AAC5C,QAAM,aAAa,cAAc;AAEjC,QAAM,mBAAmB,oBAAqB,YAAY;AAAA,IACzD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,gBAAgB;AAAA;AAAA,EACjB,CAAE;AAGF,QAAM,eAAe;AAAA,IACpB,CAAE,WAAY;AACb,YAAM,EAAE,qBAAqB,IAAI,OAAQ,gBAAiB;AAC1D,aAAO,qBAAsB,QAAS;AAAA,IACvC;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,iCACC;AAAA,wBAAC,wBAAqB,cAA8B;AAAA,IACpD,oBAAC,2BAAwB,cAA8B;AAAA,IACvD,oBAAC,SAAM,GAAG,kBAAmB;AAAA,KAC9B;AAEF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ // packages/block-library/src/tab-panels/icon.js
2
+ import { SVG, Path } from "@wordpress/primitives";
3
+ import { jsx } from "react/jsx-runtime";
4
+ var icon_default = /* @__PURE__ */ jsx(SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx(Path, { d: "M4 4H20V20H4V4ZM5.5 5.5V18.5H18.5V5.5H5.5Z" }) });
5
+ export {
6
+ icon_default as default
7
+ };
8
+ //# sourceMappingURL=icon.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-panels/icon.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 4H20V20H4V4ZM5.5 5.5V18.5H18.5V5.5H5.5Z\" />\n\t</SVG>\n);\n"],
5
+ "mappings": ";AAGA,SAAS,KAAK,YAAY;AAIxB;AAFF,IAAO,eACN,oBAAC,OAAI,OAAM,8BAA6B,SAAQ,aAC/C,8BAAC,QAAK,GAAE,8CAA6C,GACtD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ // packages/block-library/src/tab-panels/index.js
2
+ import initBlock from "../utils/init-block.mjs";
3
+ import edit from "./edit.mjs";
4
+ import save from "./save.mjs";
5
+ import icon from "./icon.mjs";
6
+ import metadata from "./block.json";
7
+ var { name } = metadata;
8
+ var settings = {
9
+ icon,
10
+ edit,
11
+ save
12
+ };
13
+ var init = () => initBlock({ name, metadata, settings });
14
+ export {
15
+ init,
16
+ metadata,
17
+ name,
18
+ settings
19
+ };
20
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-panels/index.js"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport icon from './icon';\n\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
+ "mappings": ";AAGA,OAAO,eAAe;AACtB,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,OAAO,UAAU;AAEjB,OAAO,cAAc;AAErB,IAAM,EAAE,KAAK,IAAI;AAIV,IAAM,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACD;AAEO,IAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ // packages/block-library/src/tab-panels/save.js
2
+ import { useBlockProps, useInnerBlocksProps } from "@wordpress/block-editor";
3
+ import { jsx } from "react/jsx-runtime";
4
+ function save() {
5
+ const blockProps = useBlockProps.save();
6
+ const innerBlocksProps = useInnerBlocksProps.save(blockProps);
7
+ return /* @__PURE__ */ jsx("div", { ...innerBlocksProps });
8
+ }
9
+ export {
10
+ save as default
11
+ };
12
+ //# sourceMappingURL=save.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-panels/save.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"],
5
+ "mappings": ";AAGA,SAAS,eAAe,2BAA2B;AAM3C;AAJO,SAAR,OAAwB;AAC9B,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,mBAAmB,oBAAoB,KAAM,UAAW;AAE9D,SAAO,oBAAC,SAAM,GAAG,kBAAmB;AACrC;",
6
+ "names": []
7
+ }
@@ -8,97 +8,53 @@
8
8
  "version": "1.0.0",
9
9
  "category": "design",
10
10
  "textdomain": "default",
11
- "allowedBlocks": [ "core/tab" ],
11
+ "allowedBlocks": [
12
+ "core/tabs-menu",
13
+ "core/tab-panels"
14
+ ],
12
15
  "attributes": {
13
- "tabsId": {
14
- "type": "string",
15
- "default": ""
16
- },
17
- "orientation": {
18
- "type": "string",
19
- "default": "horizontal",
20
- "enum": [ "horizontal", "vertical" ]
21
- },
22
16
  "activeTabIndex": {
23
17
  "type": "number",
24
18
  "default": 0
25
19
  },
26
- "tabInactiveColor": {
27
- "type": "string"
28
- },
29
- "customTabInactiveColor": {
30
- "type": "string"
31
- },
32
- "tabHoverColor": {
33
- "type": "string"
34
- },
35
- "customTabHoverColor": {
36
- "type": "string"
37
- },
38
- "tabActiveColor": {
39
- "type": "string"
40
- },
41
- "customTabActiveColor": {
42
- "type": "string"
43
- },
44
- "tabTextColor": {
45
- "type": "string"
46
- },
47
- "customTabTextColor": {
48
- "type": "string"
49
- },
50
- "tabActiveTextColor": {
51
- "type": "string"
52
- },
53
- "customTabActiveTextColor": {
54
- "type": "string"
55
- },
56
- "tabHoverTextColor": {
57
- "type": "string"
58
- },
59
- "customTabHoverTextColor": {
60
- "type": "string"
20
+ "editorActiveTabIndex": {
21
+ "type": "number",
22
+ "role": "local"
61
23
  }
62
24
  },
63
- "styles": [
64
- {
65
- "name": "tab",
66
- "label": "Tabs",
67
- "isDefault": true
68
- },
69
- {
70
- "name": "links",
71
- "label": "Links"
72
- },
73
- {
74
- "name": "button",
75
- "label": "Button"
76
- }
77
- ],
78
25
  "supports": {
79
26
  "align": true,
27
+ "anchor": true,
80
28
  "color": {
81
29
  "text": false,
82
30
  "background": false
83
31
  },
32
+ "layout": {
33
+ "default": {
34
+ "type": "flex",
35
+ "flexWrap": "nowrap",
36
+ "justifyContent": "stretch",
37
+ "verticalAlignment": "stretch",
38
+ "orientation": "vertical"
39
+ },
40
+ "allowSwitching": false,
41
+ "allowVerticalAlignment": true,
42
+ "allowJustification": true,
43
+ "allowOrientation": true,
44
+ "allowSizingOnChildren": true
45
+ },
84
46
  "html": false,
85
47
  "interactivity": true,
86
48
  "spacing": {
87
- "blockGap": [ "horizontal", "vertical" ],
49
+ "blockGap": true,
88
50
  "margin": true,
89
- "padding": false
51
+ "padding": true
90
52
  },
91
53
  "typography": {
92
54
  "fontSize": true,
93
55
  "__experimentalFontFamily": true
94
56
  },
95
- "__experimentalBorder": {
96
- "radius": true,
97
- "__experimentalSkipSerialization": true,
98
- "__experimentalDefaultControls": {
99
- "radius": true
100
- }
101
- }
57
+ "renaming": true
102
58
  },
103
59
  "example": {
104
60
  "attributes": {
@@ -106,42 +62,57 @@
106
62
  },
107
63
  "innerBlocks": [
108
64
  {
109
- "name": "core/tab",
110
- "attributes": {
111
- "label": "Tab 1"
112
- },
65
+ "name": "core/tabs-menu",
66
+ "attributes": {},
67
+ "innerBlocks": [
68
+ {
69
+ "name": "core/tabs-menu-item",
70
+ "attributes": {}
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "name": "core/tab-panels",
76
+ "attributes": {},
113
77
  "innerBlocks": [
114
78
  {
115
- "name": "core/paragraph",
79
+ "name": "core/tab",
116
80
  "attributes": {
117
- "content": "Pariatur commodo sint mollit. Veniam Lorem labore voluptate fugiat. Ad nulla est labore cillum cillum qui nostrud do incididunt eiusmod. Aliqua aliqua sunt consequat consequat in duis deserunt."
81
+ "label": "Tab 1"
82
+ },
83
+ "innerBlocks": [
84
+ {
85
+ "name": "core/paragraph",
86
+ "attributes": {
87
+ "content": "Pariatur commodo sint mollit. Veniam Lorem labore voluptate fugiat. Ad nulla est labore cillum cillum qui nostrud do incididunt eiusmod."
88
+ }
89
+ }
90
+ ]
91
+ },
92
+ {
93
+ "name": "core/tab",
94
+ "attributes": {
95
+ "label": "Tab 2"
118
96
  }
119
97
  },
120
98
  {
121
- "name": "core/paragraph",
99
+ "name": "core/tab",
122
100
  "attributes": {
123
- "content": "Adipisicing ullamco nisi in eu laborum adipisicing aliquip aliqua. Fugiat labore officia consequat nisi veniam velit commodo cillum enim duis quis ad."
101
+ "label": "Tab 3"
124
102
  }
125
103
  }
126
104
  ]
127
- },
128
- {
129
- "name": "core/tab",
130
- "attributes": {
131
- "label": "Tab 2"
132
- }
133
- },
134
- {
135
- "name": "core/tab",
136
- "attributes": {
137
- "label": "Tab 3"
138
- }
139
105
  }
140
106
  ]
141
107
  },
142
108
  "providesContext": {
143
- "core/tabs-id": "tabsId"
109
+ "core/tabs-activeTabIndex": "activeTabIndex",
110
+ "core/tabs-editorActiveTabIndex": "editorActiveTabIndex"
144
111
  },
112
+ "usesContext": [
113
+ "core/tabs-list",
114
+ "core/tabs-id"
115
+ ],
145
116
  "editorScript": "file:./index.js",
146
117
  "editorStyle": "file:./index.css",
147
118
  "style": "file:./style-index.css",