@wordpress/block-library 9.31.1-next.233ccab9b.0 → 9.32.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 (177) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/accordion/edit.js +62 -12
  3. package/build/accordion/edit.js.map +1 -1
  4. package/build/accordion/index.js +15 -7
  5. package/build/accordion/index.js.map +1 -1
  6. package/build/accordion/view.js +15 -15
  7. package/build/accordion/view.js.map +1 -1
  8. package/build/accordion-heading/edit.js +68 -0
  9. package/build/accordion-heading/edit.js.map +1 -0
  10. package/build/accordion-heading/icon.js.map +1 -0
  11. package/build/{accordion-header → accordion-heading}/index.js +9 -12
  12. package/build/accordion-heading/index.js.map +1 -0
  13. package/build/{accordion-content → accordion-heading}/init.js.map +1 -1
  14. package/build/{accordion-header → accordion-heading}/save.js +6 -8
  15. package/build/accordion-heading/save.js.map +1 -0
  16. package/build/{accordion-content → accordion-item}/edit.js +8 -2
  17. package/build/accordion-item/edit.js.map +1 -0
  18. package/build/accordion-item/icon.js.map +1 -0
  19. package/build/{accordion-content → accordion-item}/index.js +5 -5
  20. package/build/accordion-item/index.js.map +1 -0
  21. package/build/accordion-item/init.js.map +1 -0
  22. package/build/accordion-item/save.js.map +1 -0
  23. package/build/accordion-panel/index.js +3 -2
  24. package/build/accordion-panel/index.js.map +1 -1
  25. package/build/block/index.js +1 -0
  26. package/build/block/index.js.map +1 -1
  27. package/build/index.js +24 -4
  28. package/build/index.js.map +1 -1
  29. package/build/navigation-link/edit.js +3 -140
  30. package/build/navigation-link/edit.js.map +1 -1
  31. package/build/navigation-link/shared/controls.js +171 -0
  32. package/build/navigation-link/shared/controls.js.map +1 -0
  33. package/build/navigation-link/shared/index.js +13 -0
  34. package/build/navigation-link/shared/index.js.map +1 -0
  35. package/build/navigation-submenu/edit.js +5 -110
  36. package/build/navigation-submenu/edit.js.map +1 -1
  37. package/build/pattern/index.js +1 -0
  38. package/build/pattern/index.js.map +1 -1
  39. package/build/post-time-to-read/edit.js +16 -61
  40. package/build/post-time-to-read/edit.js.map +1 -1
  41. package/build/post-time-to-read/index.js +5 -7
  42. package/build/post-time-to-read/index.js.map +1 -1
  43. package/build/post-time-to-read/variations.js +41 -0
  44. package/build/post-time-to-read/variations.js.map +1 -0
  45. package/build/query-title/edit.js +1 -1
  46. package/build/query-title/edit.js.map +1 -1
  47. package/build/template-part/index.js +1 -0
  48. package/build/template-part/index.js.map +1 -1
  49. package/build/utils/get-transformed-metadata.js +7 -0
  50. package/build/utils/get-transformed-metadata.js.map +1 -1
  51. package/build-module/accordion/edit.js +66 -16
  52. package/build-module/accordion/edit.js.map +1 -1
  53. package/build-module/accordion/index.js +15 -7
  54. package/build-module/accordion/index.js.map +1 -1
  55. package/build-module/accordion/view.js +15 -15
  56. package/build-module/accordion/view.js.map +1 -1
  57. package/build-module/accordion-heading/edit.js +61 -0
  58. package/build-module/accordion-heading/edit.js.map +1 -0
  59. package/build-module/accordion-heading/icon.js.map +1 -0
  60. package/build-module/{accordion-header → accordion-heading}/index.js +9 -12
  61. package/build-module/accordion-heading/index.js.map +1 -0
  62. package/build-module/{accordion-content → accordion-heading}/init.js.map +1 -1
  63. package/build-module/{accordion-header → accordion-heading}/save.js +6 -8
  64. package/build-module/accordion-heading/save.js.map +1 -0
  65. package/build-module/{accordion-content → accordion-item}/edit.js +8 -2
  66. package/build-module/accordion-item/edit.js.map +1 -0
  67. package/build-module/accordion-item/icon.js.map +1 -0
  68. package/build-module/{accordion-content → accordion-item}/index.js +5 -5
  69. package/build-module/accordion-item/index.js.map +1 -0
  70. package/build-module/accordion-item/init.js.map +1 -0
  71. package/build-module/accordion-item/save.js.map +1 -0
  72. package/build-module/accordion-panel/index.js +3 -2
  73. package/build-module/accordion-panel/index.js.map +1 -1
  74. package/build-module/block/index.js +1 -0
  75. package/build-module/block/index.js.map +1 -1
  76. package/build-module/index.js +25 -5
  77. package/build-module/index.js.map +1 -1
  78. package/build-module/navigation-link/edit.js +4 -141
  79. package/build-module/navigation-link/edit.js.map +1 -1
  80. package/build-module/navigation-link/shared/controls.js +165 -0
  81. package/build-module/navigation-link/shared/controls.js.map +1 -0
  82. package/build-module/navigation-link/shared/index.js +9 -0
  83. package/build-module/navigation-link/shared/index.js.map +1 -0
  84. package/build-module/navigation-submenu/edit.js +6 -111
  85. package/build-module/navigation-submenu/edit.js.map +1 -1
  86. package/build-module/pattern/index.js +1 -0
  87. package/build-module/pattern/index.js.map +1 -1
  88. package/build-module/post-time-to-read/edit.js +17 -62
  89. package/build-module/post-time-to-read/edit.js.map +1 -1
  90. package/build-module/post-time-to-read/index.js +5 -7
  91. package/build-module/post-time-to-read/index.js.map +1 -1
  92. package/build-module/post-time-to-read/variations.js +33 -0
  93. package/build-module/post-time-to-read/variations.js.map +1 -0
  94. package/build-module/query-title/edit.js +1 -1
  95. package/build-module/query-title/edit.js.map +1 -1
  96. package/build-module/template-part/index.js +1 -0
  97. package/build-module/template-part/index.js.map +1 -1
  98. package/build-module/utils/get-transformed-metadata.js +7 -0
  99. package/build-module/utils/get-transformed-metadata.js.map +1 -1
  100. package/build-style/{accordion-header → accordion-heading}/style-rtl.css +8 -7
  101. package/build-style/{accordion-header → accordion-heading}/style.css +8 -7
  102. package/build-style/{accordion-content → accordion-item}/style-rtl.css +5 -5
  103. package/build-style/{accordion-content → accordion-item}/style.css +5 -5
  104. package/build-style/style-rtl.css +13 -12
  105. package/build-style/style.css +13 -12
  106. package/package.json +35 -35
  107. package/src/accordion/block.json +11 -3
  108. package/src/accordion/edit.js +70 -13
  109. package/src/accordion/index.js +4 -4
  110. package/src/accordion/index.php +1 -1
  111. package/src/accordion/view.js +15 -15
  112. package/src/{accordion-header → accordion-heading}/block.json +10 -12
  113. package/src/accordion-heading/edit.js +70 -0
  114. package/src/{accordion-header → accordion-heading}/save.js +6 -8
  115. package/src/{accordion-header → accordion-heading}/style.scss +11 -7
  116. package/src/{accordion-content → accordion-item}/block.json +5 -5
  117. package/src/{accordion-content → accordion-item}/edit.js +12 -2
  118. package/src/{accordion-content → accordion-item}/index.php +11 -11
  119. package/src/{accordion-content → accordion-item}/style.scss +3 -3
  120. package/src/accordion-panel/block.json +3 -2
  121. package/src/block/block.json +1 -0
  122. package/src/index.js +23 -4
  123. package/src/navigation-link/edit.js +3 -142
  124. package/src/navigation-link/shared/README.md +47 -0
  125. package/src/navigation-link/shared/controls.js +167 -0
  126. package/src/navigation-link/shared/index.js +8 -0
  127. package/src/navigation-link/shared/test/controls.js +210 -0
  128. package/src/navigation-submenu/edit.js +7 -125
  129. package/src/pattern/block.json +1 -0
  130. package/src/post-time-to-read/block.json +3 -7
  131. package/src/post-time-to-read/edit.js +36 -94
  132. package/src/post-time-to-read/index.js +2 -0
  133. package/src/post-time-to-read/index.php +12 -7
  134. package/src/post-time-to-read/variations.js +39 -0
  135. package/src/query-title/edit.js +2 -1
  136. package/src/query-title/index.php +3 -1
  137. package/src/style.scss +2 -2
  138. package/src/template-part/block.json +1 -0
  139. package/src/utils/get-transformed-metadata.js +8 -0
  140. package/build/accordion-content/edit.js.map +0 -1
  141. package/build/accordion-content/icon.js.map +0 -1
  142. package/build/accordion-content/index.js.map +0 -1
  143. package/build/accordion-content/save.js.map +0 -1
  144. package/build/accordion-header/edit.js +0 -84
  145. package/build/accordion-header/edit.js.map +0 -1
  146. package/build/accordion-header/icon.js.map +0 -1
  147. package/build/accordion-header/index.js.map +0 -1
  148. package/build/accordion-header/init.js.map +0 -1
  149. package/build/accordion-header/save.js.map +0 -1
  150. package/build-module/accordion-content/edit.js.map +0 -1
  151. package/build-module/accordion-content/icon.js.map +0 -1
  152. package/build-module/accordion-content/index.js.map +0 -1
  153. package/build-module/accordion-content/save.js.map +0 -1
  154. package/build-module/accordion-header/edit.js +0 -77
  155. package/build-module/accordion-header/edit.js.map +0 -1
  156. package/build-module/accordion-header/icon.js.map +0 -1
  157. package/build-module/accordion-header/index.js.map +0 -1
  158. package/build-module/accordion-header/init.js.map +0 -1
  159. package/build-module/accordion-header/save.js.map +0 -1
  160. package/src/accordion-header/edit.js +0 -87
  161. /package/build/{accordion-header → accordion-heading}/icon.js +0 -0
  162. /package/build/{accordion-content → accordion-heading}/init.js +0 -0
  163. /package/build/{accordion-content → accordion-item}/icon.js +0 -0
  164. /package/build/{accordion-header → accordion-item}/init.js +0 -0
  165. /package/build/{accordion-content → accordion-item}/save.js +0 -0
  166. /package/build-module/{accordion-header → accordion-heading}/icon.js +0 -0
  167. /package/build-module/{accordion-content → accordion-heading}/init.js +0 -0
  168. /package/build-module/{accordion-content → accordion-item}/icon.js +0 -0
  169. /package/build-module/{accordion-header → accordion-item}/init.js +0 -0
  170. /package/build-module/{accordion-content → accordion-item}/save.js +0 -0
  171. /package/src/{accordion-header → accordion-heading}/icon.js +0 -0
  172. /package/src/{accordion-content → accordion-heading}/index.js +0 -0
  173. /package/src/{accordion-content → accordion-heading}/init.js +0 -0
  174. /package/src/{accordion-content → accordion-item}/icon.js +0 -0
  175. /package/src/{accordion-header → accordion-item}/index.js +0 -0
  176. /package/src/{accordion-header → accordion-item}/init.js +0 -0
  177. /package/src/{accordion-content → accordion-item}/save.js +0 -0
@@ -37,6 +37,13 @@ function getTransformedMetadata(metadata, newBlockName, bindingsCallback) {
37
37
  if (supports.renaming !== false) {
38
38
  transformSupportedProps.push('name');
39
39
  }
40
+ // If it supports block visibility (true by default), add the `blockVisibility` property.
41
+ if (supports.blockVisibility !== false) {
42
+ transformSupportedProps.push('blockVisibility');
43
+ }
44
+ if (window?.__experimentalEnableBlockComment) {
45
+ transformSupportedProps.push('commentId');
46
+ }
40
47
 
41
48
  // Return early if no supported properties.
42
49
  if (!transformSupportedProps.length) {
@@ -1 +1 @@
1
- {"version":3,"names":["_blocks","require","getTransformedMetadata","metadata","newBlockName","bindingsCallback","supports","getBlockType","BLOCK_BINDINGS_SUPPORTED_BLOCKS","transformSupportedProps","includes","push","renaming","length","newMetadata","Object","entries","reduce","obj","prop","value","keys","undefined"],"sources":["@wordpress/block-library/src/utils/get-transformed-metadata.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Transform the metadata attribute with only the values and bindings specified by each transform.\n * Returns `undefined` if the input metadata is falsy.\n *\n * @param {Object} metadata Original metadata attribute from the block that is being transformed.\n * @param {Object} newBlockName Name of the final block after the transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object|undefined} New metadata object only with the relevant properties.\n */\nexport function getTransformedMetadata(\n\tmetadata,\n\tnewBlockName,\n\tbindingsCallback\n) {\n\tif ( ! metadata ) {\n\t\treturn;\n\t}\n\tconst { supports } = getBlockType( newBlockName );\n\t// Fixed until an opt-in mechanism is implemented.\n\tconst BLOCK_BINDINGS_SUPPORTED_BLOCKS = [\n\t\t'core/paragraph',\n\t\t'core/heading',\n\t\t'core/image',\n\t\t'core/button',\n\t];\n\t// The metadata properties that should be preserved after the transform.\n\tconst transformSupportedProps = [];\n\t// If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.\n\tif (\n\t\tBLOCK_BINDINGS_SUPPORTED_BLOCKS.includes( newBlockName ) &&\n\t\tbindingsCallback\n\t) {\n\t\ttransformSupportedProps.push( 'id', 'bindings' );\n\t}\n\t// If it support block naming (true by default), add the `name` property.\n\tif ( supports.renaming !== false ) {\n\t\ttransformSupportedProps.push( 'name' );\n\t}\n\n\t// Return early if no supported properties.\n\tif ( ! transformSupportedProps.length ) {\n\t\treturn;\n\t}\n\n\tconst newMetadata = Object.entries( metadata ).reduce(\n\t\t( obj, [ prop, value ] ) => {\n\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\tif ( ! transformSupportedProps.includes( prop ) ) {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tobj[ prop ] =\n\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\treturn obj;\n\t\t},\n\t\t{}\n\t);\n\n\t// Return undefined if object is empty.\n\treturn Object.keys( newMetadata ).length ? newMetadata : undefined;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CACrCC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EACf;EACD,IAAK,CAAEF,QAAQ,EAAG;IACjB;EACD;EACA,MAAM;IAAEG;EAAS,CAAC,GAAG,IAAAC,oBAAY,EAAEH,YAAa,CAAC;EACjD;EACA,MAAMI,+BAA+B,GAAG,CACvC,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,CACb;EACD;EACA,MAAMC,uBAAuB,GAAG,EAAE;EAClC;EACA,IACCD,+BAA+B,CAACE,QAAQ,CAAEN,YAAa,CAAC,IACxDC,gBAAgB,EACf;IACDI,uBAAuB,CAACE,IAAI,CAAE,IAAI,EAAE,UAAW,CAAC;EACjD;EACA;EACA,IAAKL,QAAQ,CAACM,QAAQ,KAAK,KAAK,EAAG;IAClCH,uBAAuB,CAACE,IAAI,CAAE,MAAO,CAAC;EACvC;;EAEA;EACA,IAAK,CAAEF,uBAAuB,CAACI,MAAM,EAAG;IACvC;EACD;EAEA,MAAMC,WAAW,GAAGC,MAAM,CAACC,OAAO,CAAEb,QAAS,CAAC,CAACc,MAAM,CACpD,CAAEC,GAAG,EAAE,CAAEC,IAAI,EAAEC,KAAK,CAAE,KAAM;IAC3B;IACA,IAAK,CAAEX,uBAAuB,CAACC,QAAQ,CAAES,IAAK,CAAC,EAAG;MACjD,OAAOD,GAAG;IACX;IACAA,GAAG,CAAEC,IAAI,CAAE,GACVA,IAAI,KAAK,UAAU,GAAGd,gBAAgB,CAAEe,KAAM,CAAC,GAAGA,KAAK;IACxD,OAAOF,GAAG;EACX,CAAC,EACD,CAAC,CACF,CAAC;;EAED;EACA,OAAOH,MAAM,CAACM,IAAI,CAAEP,WAAY,CAAC,CAACD,MAAM,GAAGC,WAAW,GAAGQ,SAAS;AACnE","ignoreList":[]}
1
+ {"version":3,"names":["_blocks","require","getTransformedMetadata","metadata","newBlockName","bindingsCallback","supports","getBlockType","BLOCK_BINDINGS_SUPPORTED_BLOCKS","transformSupportedProps","includes","push","renaming","blockVisibility","window","__experimentalEnableBlockComment","length","newMetadata","Object","entries","reduce","obj","prop","value","keys","undefined"],"sources":["@wordpress/block-library/src/utils/get-transformed-metadata.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Transform the metadata attribute with only the values and bindings specified by each transform.\n * Returns `undefined` if the input metadata is falsy.\n *\n * @param {Object} metadata Original metadata attribute from the block that is being transformed.\n * @param {Object} newBlockName Name of the final block after the transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object|undefined} New metadata object only with the relevant properties.\n */\nexport function getTransformedMetadata(\n\tmetadata,\n\tnewBlockName,\n\tbindingsCallback\n) {\n\tif ( ! metadata ) {\n\t\treturn;\n\t}\n\tconst { supports } = getBlockType( newBlockName );\n\t// Fixed until an opt-in mechanism is implemented.\n\tconst BLOCK_BINDINGS_SUPPORTED_BLOCKS = [\n\t\t'core/paragraph',\n\t\t'core/heading',\n\t\t'core/image',\n\t\t'core/button',\n\t];\n\t// The metadata properties that should be preserved after the transform.\n\tconst transformSupportedProps = [];\n\t// If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.\n\tif (\n\t\tBLOCK_BINDINGS_SUPPORTED_BLOCKS.includes( newBlockName ) &&\n\t\tbindingsCallback\n\t) {\n\t\ttransformSupportedProps.push( 'id', 'bindings' );\n\t}\n\t// If it support block naming (true by default), add the `name` property.\n\tif ( supports.renaming !== false ) {\n\t\ttransformSupportedProps.push( 'name' );\n\t}\n\t// If it supports block visibility (true by default), add the `blockVisibility` property.\n\tif ( supports.blockVisibility !== false ) {\n\t\ttransformSupportedProps.push( 'blockVisibility' );\n\t}\n\n\tif ( window?.__experimentalEnableBlockComment ) {\n\t\ttransformSupportedProps.push( 'commentId' );\n\t}\n\n\t// Return early if no supported properties.\n\tif ( ! transformSupportedProps.length ) {\n\t\treturn;\n\t}\n\n\tconst newMetadata = Object.entries( metadata ).reduce(\n\t\t( obj, [ prop, value ] ) => {\n\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\tif ( ! transformSupportedProps.includes( prop ) ) {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tobj[ prop ] =\n\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\treturn obj;\n\t\t},\n\t\t{}\n\t);\n\n\t// Return undefined if object is empty.\n\treturn Object.keys( newMetadata ).length ? newMetadata : undefined;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CACrCC,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EACf;EACD,IAAK,CAAEF,QAAQ,EAAG;IACjB;EACD;EACA,MAAM;IAAEG;EAAS,CAAC,GAAG,IAAAC,oBAAY,EAAEH,YAAa,CAAC;EACjD;EACA,MAAMI,+BAA+B,GAAG,CACvC,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,CACb;EACD;EACA,MAAMC,uBAAuB,GAAG,EAAE;EAClC;EACA,IACCD,+BAA+B,CAACE,QAAQ,CAAEN,YAAa,CAAC,IACxDC,gBAAgB,EACf;IACDI,uBAAuB,CAACE,IAAI,CAAE,IAAI,EAAE,UAAW,CAAC;EACjD;EACA;EACA,IAAKL,QAAQ,CAACM,QAAQ,KAAK,KAAK,EAAG;IAClCH,uBAAuB,CAACE,IAAI,CAAE,MAAO,CAAC;EACvC;EACA;EACA,IAAKL,QAAQ,CAACO,eAAe,KAAK,KAAK,EAAG;IACzCJ,uBAAuB,CAACE,IAAI,CAAE,iBAAkB,CAAC;EAClD;EAEA,IAAKG,MAAM,EAAEC,gCAAgC,EAAG;IAC/CN,uBAAuB,CAACE,IAAI,CAAE,WAAY,CAAC;EAC5C;;EAEA;EACA,IAAK,CAAEF,uBAAuB,CAACO,MAAM,EAAG;IACvC;EACD;EAEA,MAAMC,WAAW,GAAGC,MAAM,CAACC,OAAO,CAAEhB,QAAS,CAAC,CAACiB,MAAM,CACpD,CAAEC,GAAG,EAAE,CAAEC,IAAI,EAAEC,KAAK,CAAE,KAAM;IAC3B;IACA,IAAK,CAAEd,uBAAuB,CAACC,QAAQ,CAAEY,IAAK,CAAC,EAAG;MACjD,OAAOD,GAAG;IACX;IACAA,GAAG,CAAEC,IAAI,CAAE,GACVA,IAAI,KAAK,UAAU,GAAGjB,gBAAgB,CAAEkB,KAAM,CAAC,GAAGA,KAAK;IACxD,OAAOF,GAAG;EACX,CAAC,EACD,CAAC,CACF,CAAC;;EAED;EACA,OAAOH,MAAM,CAACM,IAAI,CAAEP,WAAY,CAAC,CAACD,MAAM,GAAGC,WAAW,GAAGQ,SAAS;AACnE","ignoreList":[]}
@@ -1,18 +1,19 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useBlockProps, useInnerBlocksProps, InspectorControls, BlockControls, store as blockEditorStore } from '@wordpress/block-editor';
4
+ import { useBlockProps, useInnerBlocksProps, InspectorControls, BlockControls, useBlockEditingMode, store as blockEditorStore, HeadingLevelDropdown } from '@wordpress/block-editor';
5
5
  import { __ } from '@wordpress/i18n';
6
- import { ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, ToolbarButton } from '@wordpress/components';
7
- import { useDispatch } from '@wordpress/data';
6
+ import { ToggleControl, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem, ToolbarButton, ToolbarGroup } from '@wordpress/components';
7
+ import { useDispatch, useSelect, useRegistry } from '@wordpress/data';
8
8
  import { createBlock } from '@wordpress/blocks';
9
9
 
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
13
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
14
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
- const ACCORDION_BLOCK_NAME = 'core/accordion-content';
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
+ const ACCORDION_BLOCK_NAME = 'core/accordion-item';
16
+ const ACCORDION_HEADING_BLOCK_NAME = 'core/accordion-heading';
16
17
  const ACCORDION_BLOCK = {
17
18
  name: ACCORDION_BLOCK_NAME
18
19
  };
@@ -20,34 +21,82 @@ export default function Edit({
20
21
  attributes: {
21
22
  autoclose,
22
23
  iconPosition,
23
- showIcon
24
+ showIcon,
25
+ headingLevel,
26
+ levelOptions
24
27
  },
25
28
  clientId,
26
29
  setAttributes,
27
30
  isSelected: isSingleSelected
28
31
  }) {
32
+ const registry = useRegistry();
33
+ const {
34
+ getBlockOrder
35
+ } = useSelect(blockEditorStore);
29
36
  const blockProps = useBlockProps();
30
37
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
31
38
  const {
39
+ updateBlockAttributes,
32
40
  insertBlock
33
41
  } = useDispatch(blockEditorStore);
42
+ const blockEditingMode = useBlockEditingMode();
43
+ const isContentOnlyMode = blockEditingMode === 'contentOnly';
34
44
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
35
45
  template: [[ACCORDION_BLOCK_NAME], [ACCORDION_BLOCK_NAME]],
36
46
  defaultBlock: ACCORDION_BLOCK,
37
47
  directInsert: true,
38
48
  templateInsertUpdatesSelection: true
39
49
  });
40
- const addAccordionContentBlock = () => {
41
- const newAccordionContent = createBlock(ACCORDION_BLOCK_NAME);
42
- insertBlock(newAccordionContent, undefined, clientId);
50
+ const addAccordionItemBlock = () => {
51
+ // When adding, set the header's level to current headingLevel
52
+ const newAccordionItem = createBlock(ACCORDION_BLOCK_NAME, {}, [createBlock(ACCORDION_HEADING_BLOCK_NAME, {
53
+ level: headingLevel
54
+ }), createBlock('core/accordion-panel', {})]);
55
+ insertBlock(newAccordionItem, undefined, clientId);
56
+ };
57
+
58
+ /**
59
+ * Update all child Accordion Header blocks with a new heading level
60
+ * based on the accordion group setting.
61
+ * @param {number} newHeadingLevel The new heading level to set
62
+ */
63
+ const updateHeadingLevel = newHeadingLevel => {
64
+ const innerBlockClientIds = getBlockOrder(clientId);
65
+
66
+ // Get all accordion-header blocks from all accordion-content blocks.
67
+ const accordionHeaderClientIds = [];
68
+ innerBlockClientIds.forEach(contentClientId => {
69
+ const headerClientIds = getBlockOrder(contentClientId);
70
+ accordionHeaderClientIds.push(...headerClientIds);
71
+ });
72
+
73
+ // Update own and child block heading levels.
74
+ registry.batch(() => {
75
+ setAttributes({
76
+ headingLevel: newHeadingLevel
77
+ });
78
+ updateBlockAttributes(accordionHeaderClientIds, {
79
+ level: newHeadingLevel
80
+ });
81
+ });
43
82
  };
44
83
  return /*#__PURE__*/_jsxs(_Fragment, {
45
- children: [isSingleSelected && /*#__PURE__*/_jsx(BlockControls, {
46
- group: "other",
47
- children: /*#__PURE__*/_jsx(ToolbarButton, {
48
- onClick: addAccordionContentBlock,
49
- children: __('Add')
50
- })
84
+ children: [isSingleSelected && !isContentOnlyMode && /*#__PURE__*/_jsxs(_Fragment, {
85
+ children: [/*#__PURE__*/_jsx(BlockControls, {
86
+ children: /*#__PURE__*/_jsx(ToolbarGroup, {
87
+ children: /*#__PURE__*/_jsx(HeadingLevelDropdown, {
88
+ value: headingLevel,
89
+ options: levelOptions,
90
+ onChange: updateHeadingLevel
91
+ })
92
+ })
93
+ }), /*#__PURE__*/_jsx(BlockControls, {
94
+ group: "other",
95
+ children: /*#__PURE__*/_jsx(ToolbarButton, {
96
+ onClick: addAccordionItemBlock,
97
+ children: __('Add')
98
+ })
99
+ })]
51
100
  }), /*#__PURE__*/_jsx(InspectorControls, {
52
101
  children: /*#__PURE__*/_jsxs(ToolsPanel, {
53
102
  label: __('Settings'),
@@ -55,7 +104,8 @@ export default function Edit({
55
104
  setAttributes({
56
105
  autoclose: false,
57
106
  showIcon: true,
58
- iconPosition: 'right'
107
+ iconPosition: 'right',
108
+ headingLevel: 3
59
109
  });
60
110
  },
61
111
  dropdownMenuProps: dropdownMenuProps,
@@ -1 +1 @@
1
- {"version":3,"names":["useBlockProps","useInnerBlocksProps","InspectorControls","BlockControls","store","blockEditorStore","__","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","ToolbarButton","useDispatch","createBlock","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ACCORDION_BLOCK_NAME","ACCORDION_BLOCK","name","Edit","attributes","autoclose","iconPosition","showIcon","clientId","setAttributes","isSelected","isSingleSelected","blockProps","dropdownMenuProps","insertBlock","innerBlocksProps","template","defaultBlock","directInsert","templateInsertUpdatesSelection","addAccordionContentBlock","newAccordionContent","undefined","children","group","onClick","label","resetAll","isShownByDefault","hasValue","onDeselect","isBlock","__nextHasNoMarginBottom","onChange","value","checked","help","__next40pxDefaultSize"],"sources":["@wordpress/block-library/src/accordion/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ACCORDION_BLOCK_NAME = 'core/accordion-content';\nconst ACCORDION_BLOCK = {\n\tname: ACCORDION_BLOCK_NAME,\n};\n\nexport default function Edit( {\n\tattributes: { autoclose, iconPosition, showIcon },\n\tclientId,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n} ) {\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: [ [ ACCORDION_BLOCK_NAME ], [ ACCORDION_BLOCK_NAME ] ],\n\t\tdefaultBlock: ACCORDION_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplateInsertUpdatesSelection: true,\n\t} );\n\n\tconst addAccordionContentBlock = () => {\n\t\tconst newAccordionContent = createBlock( ACCORDION_BLOCK_NAME );\n\t\tinsertBlock( newAccordionContent, undefined, clientId );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton onClick={ addAccordionContentBlock }>\n\t\t\t\t\t\t{ __( 'Add' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls key=\"setting\">\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoclose: false,\n\t\t\t\t\t\t\tshowIcon: true,\n\t\t\t\t\t\t\ticonPosition: 'right',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! autoclose }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { autoclose: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tautoclose: 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\tchecked={ autoclose }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Automatically close accordions when a new one is opened.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showIcon }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { showIcon: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowIcon: value,\n\t\t\t\t\t\t\t\t\ticonPosition: value\n\t\t\t\t\t\t\t\t\t\t? iconPosition\n\t\t\t\t\t\t\t\t\t\t: 'right',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tchecked={ showIcon }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Display a plus icon next to the accordion header.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showIcon && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => iconPosition !== 'right' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\t\tvalue={ iconPosition }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: 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\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Left' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"left\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Right' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"right\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useBlockProps","useInnerBlocksProps","InspectorControls","BlockControls","useBlockEditingMode","store","blockEditorStore","HeadingLevelDropdown","__","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","ToolbarButton","ToolbarGroup","useDispatch","useSelect","useRegistry","createBlock","useToolsPanelDropdownMenuProps","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ACCORDION_BLOCK_NAME","ACCORDION_HEADING_BLOCK_NAME","ACCORDION_BLOCK","name","Edit","attributes","autoclose","iconPosition","showIcon","headingLevel","levelOptions","clientId","setAttributes","isSelected","isSingleSelected","registry","getBlockOrder","blockProps","dropdownMenuProps","updateBlockAttributes","insertBlock","blockEditingMode","isContentOnlyMode","innerBlocksProps","template","defaultBlock","directInsert","templateInsertUpdatesSelection","addAccordionItemBlock","newAccordionItem","level","undefined","updateHeadingLevel","newHeadingLevel","innerBlockClientIds","accordionHeaderClientIds","forEach","contentClientId","headerClientIds","push","batch","children","value","options","onChange","group","onClick","label","resetAll","isShownByDefault","hasValue","onDeselect","isBlock","__nextHasNoMarginBottom","checked","help","__next40pxDefaultSize"],"sources":["@wordpress/block-library/src/accordion/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockEditingMode,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ACCORDION_BLOCK_NAME = 'core/accordion-item';\nconst ACCORDION_HEADING_BLOCK_NAME = 'core/accordion-heading';\nconst ACCORDION_BLOCK = {\n\tname: ACCORDION_BLOCK_NAME,\n};\n\nexport default function Edit( {\n\tattributes: {\n\t\tautoclose,\n\t\ticonPosition,\n\t\tshowIcon,\n\t\theadingLevel,\n\t\tlevelOptions,\n\t},\n\tclientId,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n} ) {\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { updateBlockAttributes, insertBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: [ [ ACCORDION_BLOCK_NAME ], [ ACCORDION_BLOCK_NAME ] ],\n\t\tdefaultBlock: ACCORDION_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplateInsertUpdatesSelection: true,\n\t} );\n\n\tconst addAccordionItemBlock = () => {\n\t\t// When adding, set the header's level to current headingLevel\n\t\tconst newAccordionItem = createBlock( ACCORDION_BLOCK_NAME, {}, [\n\t\t\tcreateBlock( ACCORDION_HEADING_BLOCK_NAME, {\n\t\t\t\tlevel: headingLevel,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/accordion-panel', {} ),\n\t\t] );\n\t\tinsertBlock( newAccordionItem, undefined, clientId );\n\t};\n\n\t/**\n\t * Update all child Accordion Header blocks with a new heading level\n\t * based on the accordion group setting.\n\t * @param {number} newHeadingLevel The new heading level to set\n\t */\n\tconst updateHeadingLevel = ( newHeadingLevel ) => {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Get all accordion-header blocks from all accordion-content blocks.\n\t\tconst accordionHeaderClientIds = [];\n\t\tinnerBlockClientIds.forEach( ( contentClientId ) => {\n\t\t\tconst headerClientIds = getBlockOrder( contentClientId );\n\t\t\taccordionHeaderClientIds.push( ...headerClientIds );\n\t\t} );\n\n\t\t// Update own and child block heading levels.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { headingLevel: newHeadingLevel } );\n\t\t\tupdateBlockAttributes( accordionHeaderClientIds, {\n\t\t\t\tlevel: newHeadingLevel,\n\t\t\t} );\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && ! isContentOnlyMode && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\t\t\t\tvalue={ headingLevel }\n\t\t\t\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\t\t\t\tonChange={ updateHeadingLevel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton onClick={ addAccordionItemBlock }>\n\t\t\t\t\t\t\t{ __( 'Add' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls key=\"setting\">\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoclose: false,\n\t\t\t\t\t\t\tshowIcon: true,\n\t\t\t\t\t\t\ticonPosition: 'right',\n\t\t\t\t\t\t\theadingLevel: 3,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! autoclose }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { autoclose: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tautoclose: 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\tchecked={ autoclose }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Automatically close accordions when a new one is opened.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showIcon }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { showIcon: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowIcon: value,\n\t\t\t\t\t\t\t\t\ticonPosition: value\n\t\t\t\t\t\t\t\t\t\t? iconPosition\n\t\t\t\t\t\t\t\t\t\t: 'right',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tchecked={ showIcon }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Display a plus icon next to the accordion header.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showIcon && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => iconPosition !== 'right' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\t\tvalue={ iconPosition }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: 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\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Left' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"left\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Right' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"right\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,7 @@ const metadata = {
14
14
  name: "core/accordion",
15
15
  title: "Accordion",
16
16
  category: "design",
17
- description: "Displays a group of accordion headers and associated expandable content.",
17
+ description: "Displays a group of accordion headings and associated expandable content.",
18
18
  example: {},
19
19
  __experimental: true,
20
20
  supports: {
@@ -77,13 +77,21 @@ const metadata = {
77
77
  autoclose: {
78
78
  type: "boolean",
79
79
  "default": false
80
+ },
81
+ headingLevel: {
82
+ type: "number",
83
+ "default": 3
84
+ },
85
+ levelOptions: {
86
+ type: "array"
80
87
  }
81
88
  },
82
89
  providesContext: {
83
90
  "core/accordion-icon-position": "iconPosition",
84
- "core/accordion-show-icon": "showIcon"
91
+ "core/accordion-show-icon": "showIcon",
92
+ "core/accordion-heading-level": "headingLevel"
85
93
  },
86
- allowedBlocks: ["core/accordion-content"],
94
+ allowedBlocks: ["core/accordion-item"],
87
95
  textdomain: "default",
88
96
  viewScriptModule: "@wordpress/block-library/accordion/view"
89
97
  };
@@ -97,17 +105,17 @@ export const settings = {
97
105
  icon,
98
106
  example: {
99
107
  innerBlocks: [{
100
- name: 'core/accordion-content',
108
+ name: 'core/accordion-item',
101
109
  innerBlocks: [{
102
- name: 'core/accordion-header',
110
+ name: 'core/accordion-heading',
103
111
  attributes: {
104
112
  title: __('Lorem ipsum dolor sit amet, consectetur.')
105
113
  }
106
114
  }]
107
115
  }, {
108
- name: 'core/accordion-content',
116
+ name: 'core/accordion-item',
109
117
  innerBlocks: [{
110
- name: 'core/accordion-header',
118
+ name: 'core/accordion-heading',
111
119
  attributes: {
112
120
  title: __('Suspendisse commodo lacus, interdum et.')
113
121
  }
@@ -1 +1 @@
1
- {"version":3,"names":["__","edit","save","metadata","$schema","apiVersion","name","title","category","description","example","__experimental","supports","html","align","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","__experimentalBorder","radius","style","width","spacing","padding","margin","blockGap","shadow","layout","interactivity","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","attributes","iconPosition","type","showIcon","autoclose","providesContext","allowedBlocks","textdomain","viewScriptModule","initBlock","icon","settings","innerBlocks","init"],"sources":["@wordpress/block-library/src/accordion/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/accordion-content',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-header',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/accordion-content',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-header',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo lacus, interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,OAAA;EAAAC,cAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,UAAA;MAAAC,eAAA;MAAAC,cAAA;MAAAC,6BAAA;QAAAF,eAAA;MAAA;IAAA;IAAAG,KAAA;MAAAJ,UAAA;MAAAK,SAAA;IAAA;IAAAC,oBAAA;MAAAF,KAAA;MAAAG,MAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAN,6BAAA;QAAAC,KAAA;QAAAG,MAAA;QAAAC,KAAA;QAAAC,KAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAC,QAAA;IAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,aAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAtB,6BAAA;QAAAe,QAAA;MAAA;IAAA;EAAA;EAAAQ,UAAA;IAAAC,YAAA;MAAAC,IAAA;MAAA;IAAA;IAAAC,QAAA;MAAAD,IAAA;MAAA;IAAA;IAAAE,SAAA;MAAAF,IAAA;MAAA;IAAA;EAAA;EAAAG,eAAA;IAAA;IAAA;EAAA;EAAAC,aAAA;EAAAC,UAAA;EAAAC,gBAAA;AAAA;AAE1B,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE7C;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAM8C,QAAQ,GAAG;EACvBD,IAAI;EACJzC,OAAO,EAAE;IACR2C,WAAW,EAAE,CACZ;MACC/C,IAAI,EAAE,wBAAwB;MAC9B+C,WAAW,EAAE,CACZ;QACC/C,IAAI,EAAE,uBAAuB;QAC7BmC,UAAU,EAAE;UACXlC,KAAK,EAAEP,EAAE,CACR,0CACD;QACD;MACD,CAAC;IAEH,CAAC,EACD;MACCM,IAAI,EAAE,wBAAwB;MAC9B+C,WAAW,EAAE,CACZ;QACC/C,IAAI,EAAE,uBAAuB;QAC7BmC,UAAU,EAAE;UACXlC,KAAK,EAAEP,EAAE,CACR,yCACD;QACD;MACD,CAAC;IAEH,CAAC;EAEH,CAAC;EACDC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAMoD,IAAI,GAAGA,CAAA,KAAMJ,SAAS,CAAE;EAAE5C,IAAI;EAAEH,QAAQ;EAAEiD;AAAS,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["__","edit","save","metadata","$schema","apiVersion","name","title","category","description","example","__experimental","supports","html","align","background","backgroundImage","backgroundSize","__experimentalDefaultControls","color","gradients","__experimentalBorder","radius","style","width","spacing","padding","margin","blockGap","shadow","layout","interactivity","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","attributes","iconPosition","type","showIcon","autoclose","headingLevel","levelOptions","providesContext","allowedBlocks","textdomain","viewScriptModule","initBlock","icon","settings","innerBlocks","init"],"sources":["@wordpress/block-library/src/accordion/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/accordion-item',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-heading',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/accordion-item',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-heading',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo lacus, interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,OAAA;EAAAC,cAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;IAAAC,UAAA;MAAAC,eAAA;MAAAC,cAAA;MAAAC,6BAAA;QAAAF,eAAA;MAAA;IAAA;IAAAG,KAAA;MAAAJ,UAAA;MAAAK,SAAA;IAAA;IAAAC,oBAAA;MAAAF,KAAA;MAAAG,MAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAN,6BAAA;QAAAC,KAAA;QAAAG,MAAA;QAAAC,KAAA;QAAAC,KAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAC,QAAA;IAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,aAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAtB,6BAAA;QAAAe,QAAA;MAAA;IAAA;EAAA;EAAAQ,UAAA;IAAAC,YAAA;MAAAC,IAAA;MAAA;IAAA;IAAAC,QAAA;MAAAD,IAAA;MAAA;IAAA;IAAAE,SAAA;MAAAF,IAAA;MAAA;IAAA;IAAAG,YAAA;MAAAH,IAAA;MAAA;IAAA;IAAAI,YAAA;MAAAJ,IAAA;IAAA;EAAA;EAAAK,eAAA;IAAA;IAAA;IAAA;EAAA;EAAAC,aAAA;EAAAC,UAAA;EAAAC,gBAAA;AAAA;AAE1B,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE/C;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMgD,QAAQ,GAAG;EACvBD,IAAI;EACJ3C,OAAO,EAAE;IACR6C,WAAW,EAAE,CACZ;MACCjD,IAAI,EAAE,qBAAqB;MAC3BiD,WAAW,EAAE,CACZ;QACCjD,IAAI,EAAE,wBAAwB;QAC9BmC,UAAU,EAAE;UACXlC,KAAK,EAAEP,EAAE,CACR,0CACD;QACD;MACD,CAAC;IAEH,CAAC,EACD;MACCM,IAAI,EAAE,qBAAqB;MAC3BiD,WAAW,EAAE,CACZ;QACCjD,IAAI,EAAE,wBAAwB;QAC9BmC,UAAU,EAAE;UACXlC,KAAK,EAAEP,EAAE,CACR,yCACD;QACD;MACD,CAAC;IAEH,CAAC;EAEH,CAAC;EACDC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAMsD,IAAI,GAAGA,CAAA,KAAMJ,SAAS,CAAE;EAAE9C,IAAI;EAAEH,QAAQ;EAAEmD;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -7,10 +7,10 @@ store('core/accordion', {
7
7
  get isOpen() {
8
8
  const {
9
9
  id,
10
- accordionContents
10
+ accordionItems
11
11
  } = getContext();
12
- const accordionContent = accordionContents.find(item => item.id === id);
13
- return accordionContent ? accordionContent.isOpen : false;
12
+ const accordionItem = accordionItems.find(item => item.id === id);
13
+ return accordionItem ? accordionItem.isOpen : false;
14
14
  }
15
15
  },
16
16
  actions: {
@@ -19,15 +19,15 @@ store('core/accordion', {
19
19
  const {
20
20
  id,
21
21
  autoclose,
22
- accordionContents
22
+ accordionItems
23
23
  } = context;
24
- const accordionContent = accordionContents.find(item => item.id === id);
24
+ const accordionItem = accordionItems.find(item => item.id === id);
25
25
  if (autoclose) {
26
- accordionContents.forEach(item => {
27
- item.isOpen = item.id === id ? !accordionContent.isOpen : false;
26
+ accordionItems.forEach(item => {
27
+ item.isOpen = item.id === id ? !accordionItem.isOpen : false;
28
28
  });
29
29
  } else {
30
- accordionContent.isOpen = !accordionContent.isOpen;
30
+ accordionItem.isOpen = !accordionItem.isOpen;
31
31
  }
32
32
  },
33
33
  handleKeyDown: withSyncEvent(event => {
@@ -38,25 +38,25 @@ store('core/accordion', {
38
38
  const context = getContext();
39
39
  const {
40
40
  id,
41
- accordionContents
41
+ accordionItems
42
42
  } = context;
43
- const currentIndex = accordionContents.findIndex(item => item.id === id);
43
+ const currentIndex = accordionItems.findIndex(item => item.id === id);
44
44
  let nextIndex;
45
45
  switch (event.key) {
46
46
  case 'ArrowUp':
47
47
  nextIndex = Math.max(0, currentIndex - 1);
48
48
  break;
49
49
  case 'ArrowDown':
50
- nextIndex = Math.min(currentIndex + 1, accordionContents.length - 1);
50
+ nextIndex = Math.min(currentIndex + 1, accordionItems.length - 1);
51
51
  break;
52
52
  case 'Home':
53
53
  nextIndex = 0;
54
54
  break;
55
55
  case 'End':
56
- nextIndex = accordionContents.length - 1;
56
+ nextIndex = accordionItems.length - 1;
57
57
  break;
58
58
  }
59
- const nextId = accordionContents[nextIndex].id;
59
+ const nextId = accordionItems[nextIndex].id;
60
60
  const nextButton = document.getElementById(nextId);
61
61
  if (nextButton) {
62
62
  nextButton.focus();
@@ -64,13 +64,13 @@ store('core/accordion', {
64
64
  })
65
65
  },
66
66
  callbacks: {
67
- initAccordionContents: () => {
67
+ initAccordionItems: () => {
68
68
  const context = getContext();
69
69
  const {
70
70
  id,
71
71
  openByDefault
72
72
  } = context;
73
- context.accordionContents.push({
73
+ context.accordionItems.push({
74
74
  id,
75
75
  isOpen: openByDefault
76
76
  });
@@ -1 +1 @@
1
- {"version":3,"names":["store","getContext","withSyncEvent","state","isOpen","id","accordionContents","accordionContent","find","item","actions","toggle","context","autoclose","forEach","handleKeyDown","event","key","preventDefault","currentIndex","findIndex","nextIndex","Math","max","min","length","nextId","nextButton","document","getElementById","focus","callbacks","initAccordionContents","openByDefault","push"],"sources":["@wordpress/block-library/src/accordion/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, getContext, withSyncEvent } from '@wordpress/interactivity';\n\nstore( 'core/accordion', {\n\tstate: {\n\t\tget isOpen() {\n\t\t\tconst { id, accordionContents } = getContext();\n\t\t\tconst accordionContent = accordionContents.find(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\t\t\treturn accordionContent ? accordionContent.isOpen : false;\n\t\t},\n\t},\n\tactions: {\n\t\ttoggle: () => {\n\t\t\tconst context = getContext();\n\t\t\tconst { id, autoclose, accordionContents } = context;\n\t\t\tconst accordionContent = accordionContents.find(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\n\t\t\tif ( autoclose ) {\n\t\t\t\taccordionContents.forEach( ( item ) => {\n\t\t\t\t\titem.isOpen =\n\t\t\t\t\t\titem.id === id ? ! accordionContent.isOpen : false;\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\taccordionContent.isOpen = ! accordionContent.isOpen;\n\t\t\t}\n\t\t},\n\t\thandleKeyDown: withSyncEvent( ( event ) => {\n\t\t\tif (\n\t\t\t\tevent.key !== 'ArrowUp' &&\n\t\t\t\tevent.key !== 'ArrowDown' &&\n\t\t\t\tevent.key !== 'Home' &&\n\t\t\t\tevent.key !== 'End'\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tconst context = getContext();\n\t\t\tconst { id, accordionContents } = context;\n\t\t\tconst currentIndex = accordionContents.findIndex(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\n\t\t\tlet nextIndex;\n\n\t\t\tswitch ( event.key ) {\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tnextIndex = Math.max( 0, currentIndex - 1 );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tnextIndex = Math.min(\n\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\taccordionContents.length - 1\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tnextIndex = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tnextIndex = accordionContents.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nextId = accordionContents[ nextIndex ].id;\n\t\t\tconst nextButton = document.getElementById( nextId );\n\t\t\tif ( nextButton ) {\n\t\t\t\tnextButton.focus();\n\t\t\t}\n\t\t} ),\n\t},\n\tcallbacks: {\n\t\tinitAccordionContents: () => {\n\t\t\tconst context = getContext();\n\t\t\tconst { id, openByDefault } = context;\n\t\t\tcontext.accordionContents.push( {\n\t\t\t\tid,\n\t\t\t\tisOpen: openByDefault,\n\t\t\t} );\n\t\t},\n\t},\n} );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["store","getContext","withSyncEvent","state","isOpen","id","accordionItems","accordionItem","find","item","actions","toggle","context","autoclose","forEach","handleKeyDown","event","key","preventDefault","currentIndex","findIndex","nextIndex","Math","max","min","length","nextId","nextButton","document","getElementById","focus","callbacks","initAccordionItems","openByDefault","push"],"sources":["@wordpress/block-library/src/accordion/view.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { store, getContext, withSyncEvent } from '@wordpress/interactivity';\n\nstore( 'core/accordion', {\n\tstate: {\n\t\tget isOpen() {\n\t\t\tconst { id, accordionItems } = getContext();\n\t\t\tconst accordionItem = accordionItems.find(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\t\t\treturn accordionItem ? accordionItem.isOpen : false;\n\t\t},\n\t},\n\tactions: {\n\t\ttoggle: () => {\n\t\t\tconst context = getContext();\n\t\t\tconst { id, autoclose, accordionItems } = context;\n\t\t\tconst accordionItem = accordionItems.find(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\n\t\t\tif ( autoclose ) {\n\t\t\t\taccordionItems.forEach( ( item ) => {\n\t\t\t\t\titem.isOpen =\n\t\t\t\t\t\titem.id === id ? ! accordionItem.isOpen : false;\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\taccordionItem.isOpen = ! accordionItem.isOpen;\n\t\t\t}\n\t\t},\n\t\thandleKeyDown: withSyncEvent( ( event ) => {\n\t\t\tif (\n\t\t\t\tevent.key !== 'ArrowUp' &&\n\t\t\t\tevent.key !== 'ArrowDown' &&\n\t\t\t\tevent.key !== 'Home' &&\n\t\t\t\tevent.key !== 'End'\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tconst context = getContext();\n\t\t\tconst { id, accordionItems } = context;\n\t\t\tconst currentIndex = accordionItems.findIndex(\n\t\t\t\t( item ) => item.id === id\n\t\t\t);\n\n\t\t\tlet nextIndex;\n\n\t\t\tswitch ( event.key ) {\n\t\t\t\tcase 'ArrowUp':\n\t\t\t\t\tnextIndex = Math.max( 0, currentIndex - 1 );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\t\tnextIndex = Math.min(\n\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\taccordionItems.length - 1\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Home':\n\t\t\t\t\tnextIndex = 0;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'End':\n\t\t\t\t\tnextIndex = accordionItems.length - 1;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst nextId = accordionItems[ nextIndex ].id;\n\t\t\tconst nextButton = document.getElementById( nextId );\n\t\t\tif ( nextButton ) {\n\t\t\t\tnextButton.focus();\n\t\t\t}\n\t\t} ),\n\t},\n\tcallbacks: {\n\t\tinitAccordionItems: () => {\n\t\t\tconst context = getContext();\n\t\t\tconst { id, openByDefault } = context;\n\t\t\tcontext.accordionItems.push( {\n\t\t\t\tid,\n\t\t\t\tisOpen: openByDefault,\n\t\t\t} );\n\t\t},\n\t},\n} );\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { useEffect } from '@wordpress/element';
6
+ import { useBlockProps, __experimentalGetSpacingClassesAndStyles as useSpacingProps, RichText } from '@wordpress/block-editor';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export default function Edit({
9
+ attributes,
10
+ setAttributes,
11
+ context
12
+ }) {
13
+ const {
14
+ title
15
+ } = attributes;
16
+ const {
17
+ 'core/accordion-icon-position': iconPosition,
18
+ 'core/accordion-show-icon': showIcon,
19
+ 'core/accordion-heading-level': headingLevel
20
+ } = context;
21
+ const TagName = 'h' + headingLevel;
22
+
23
+ // Set icon attributes.
24
+ useEffect(() => {
25
+ if (iconPosition !== undefined && showIcon !== undefined) {
26
+ setAttributes({
27
+ iconPosition,
28
+ showIcon
29
+ });
30
+ }
31
+ }, [iconPosition, showIcon, setAttributes]);
32
+ const blockProps = useBlockProps();
33
+ const spacingProps = useSpacingProps(attributes);
34
+ return /*#__PURE__*/_jsx(TagName, {
35
+ ...blockProps,
36
+ children: /*#__PURE__*/_jsxs("button", {
37
+ className: "wp-block-accordion-heading__toggle",
38
+ style: spacingProps.style,
39
+ children: [showIcon && iconPosition === 'left' && /*#__PURE__*/_jsx("span", {
40
+ className: "wp-block-accordion-heading__toggle-icon",
41
+ "aria-hidden": "true",
42
+ children: "+"
43
+ }), /*#__PURE__*/_jsx(RichText, {
44
+ withoutInteractiveFormatting: true,
45
+ disableLineBreaks: true,
46
+ tagName: "span",
47
+ value: title,
48
+ onChange: newTitle => setAttributes({
49
+ title: newTitle
50
+ }),
51
+ placeholder: __('Accordion title'),
52
+ className: "wp-block-accordion-heading__toggle-title"
53
+ }), showIcon && iconPosition === 'right' && /*#__PURE__*/_jsx("span", {
54
+ className: "wp-block-accordion-heading__toggle-icon",
55
+ "aria-hidden": "true",
56
+ children: "+"
57
+ })]
58
+ })
59
+ });
60
+ }
61
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","useEffect","useBlockProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","RichText","jsx","_jsx","jsxs","_jsxs","Edit","attributes","setAttributes","context","title","iconPosition","showIcon","headingLevel","TagName","undefined","blockProps","spacingProps","children","className","style","withoutInteractiveFormatting","disableLineBreaks","tagName","value","onChange","newTitle","placeholder"],"sources":["@wordpress/block-library/src/accordion-heading/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\tRichText,\n} from '@wordpress/block-editor';\n\nexport default function Edit( { attributes, setAttributes, context } ) {\n\tconst { title } = attributes;\n\tconst {\n\t\t'core/accordion-icon-position': iconPosition,\n\t\t'core/accordion-show-icon': showIcon,\n\t\t'core/accordion-heading-level': headingLevel,\n\t} = context;\n\tconst TagName = 'h' + headingLevel;\n\n\t// Set icon attributes.\n\tuseEffect( () => {\n\t\tif ( iconPosition !== undefined && showIcon !== undefined ) {\n\t\t\tsetAttributes( {\n\t\t\t\ticonPosition,\n\t\t\t\tshowIcon,\n\t\t\t} );\n\t\t}\n\t}, [ iconPosition, showIcon, setAttributes ] );\n\n\tconst blockProps = useBlockProps();\n\tconst spacingProps = useSpacingProps( attributes );\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<button\n\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\tstyle={ spacingProps.style }\n\t\t\t>\n\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tdisableLineBreaks\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ ( newTitle ) =>\n\t\t\t\t\t\tsetAttributes( { title: newTitle } )\n\t\t\t\t\t}\n\t\t\t\t\tplaceholder={ __( 'Accordion title' ) }\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t/>\n\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</TagName>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SACCC,aAAa,EACbC,wCAAwC,IAAIC,eAAe,EAC3DC,QAAQ,QACF,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjC,eAAe,SAASC,IAAIA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAQ,CAAC,EAAG;EACtE,MAAM;IAAEC;EAAM,CAAC,GAAGH,UAAU;EAC5B,MAAM;IACL,8BAA8B,EAAEI,YAAY;IAC5C,0BAA0B,EAAEC,QAAQ;IACpC,8BAA8B,EAAEC;EACjC,CAAC,GAAGJ,OAAO;EACX,MAAMK,OAAO,GAAG,GAAG,GAAGD,YAAY;;EAElC;EACAhB,SAAS,CAAE,MAAM;IAChB,IAAKc,YAAY,KAAKI,SAAS,IAAIH,QAAQ,KAAKG,SAAS,EAAG;MAC3DP,aAAa,CAAE;QACdG,YAAY;QACZC;MACD,CAAE,CAAC;IACJ;EACD,CAAC,EAAE,CAAED,YAAY,EAAEC,QAAQ,EAAEJ,aAAa,CAAG,CAAC;EAE9C,MAAMQ,UAAU,GAAGlB,aAAa,CAAC,CAAC;EAClC,MAAMmB,YAAY,GAAGjB,eAAe,CAAEO,UAAW,CAAC;EAElD,oBACCJ,IAAA,CAACW,OAAO;IAAA,GAAME,UAAU;IAAAE,QAAA,eACvBb,KAAA;MACCc,SAAS,EAAC,oCAAoC;MAC9CC,KAAK,EAAGH,YAAY,CAACG,KAAO;MAAAF,QAAA,GAE1BN,QAAQ,IAAID,YAAY,KAAK,MAAM,iBACpCR,IAAA;QACCgB,SAAS,EAAC,yCAAyC;QACnD,eAAY,MAAM;QAAAD,QAAA,EAClB;MAED,CAAM,CACN,eACDf,IAAA,CAACF,QAAQ;QACRoB,4BAA4B;QAC5BC,iBAAiB;QACjBC,OAAO,EAAC,MAAM;QACdC,KAAK,EAAGd,KAAO;QACfe,QAAQ,EAAKC,QAAQ,IACpBlB,aAAa,CAAE;UAAEE,KAAK,EAAEgB;QAAS,CAAE,CACnC;QACDC,WAAW,EAAG/B,EAAE,CAAE,iBAAkB,CAAG;QACvCuB,SAAS,EAAC;MAA0C,CACpD,CAAC,EACAP,QAAQ,IAAID,YAAY,KAAK,OAAO,iBACrCR,IAAA;QACCgB,SAAS,EAAC,yCAAyC;QACnD,eAAY,MAAM;QAAAD,QAAA,EAClB;MAED,CAAM,CACN;IAAA,CACM;EAAC,CACD,CAAC;AAEZ","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SVG","Path","jsx","_jsx","jsxs","_jsxs","xmlns","viewBox","children","fillRule","clipRule","d","fill"],"sources":["@wordpress/block-library/src/accordion-heading/icon.js"],"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\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 12.75L9.5 12.75L9.5 11.25L19.5 11.25L19.5 12.75Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path d=\"M4.5 9.5L8.5 12L4.5 14.5L4.5 9.5Z\" fill=\"currentColor\" />\n\t</SVG>\n);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAG,EAAEC,IAAI,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,4BACCA,KAAA,CAACL,GAAG;EAACM,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC,WAAW;EAAAC,QAAA,gBAC1DL,IAAA,CAACF,IAAI;IACJQ,QAAQ,EAAC,SAAS;IAClBC,QAAQ,EAAC,SAAS;IAClBC,CAAC,EAAC,wDAAwD;IAC1DC,IAAI,EAAC;EAAc,CACnB,CAAC,eACFT,IAAA,CAACF,IAAI;IAACU,CAAC,EAAC,mCAAmC;IAACC,IAAI,EAAC;EAAc,CAAE,CAAC;AAAA,CAC9D,CAAC","ignoreList":[]}
@@ -6,13 +6,13 @@ import save from './save';
6
6
  const metadata = {
7
7
  $schema: "https://schemas.wp.org/trunk/block.json",
8
8
  apiVersion: 3,
9
- name: "core/accordion-header",
10
- title: "Accordion Header",
9
+ name: "core/accordion-heading",
10
+ title: "Accordion Heading",
11
11
  category: "design",
12
- description: "Displays an accordion header.",
12
+ description: "Displays an accordion heading.",
13
13
  __experimental: true,
14
- parent: ["core/accordion-content"],
15
- usesContext: ["core/accordion-icon-position", "core/accordion-show-icon"],
14
+ parent: ["core/accordion-item"],
15
+ usesContext: ["core/accordion-icon-position", "core/accordion-show-icon", "core/accordion-heading-level"],
16
16
  supports: {
17
17
  anchor: true,
18
18
  color: {
@@ -53,7 +53,8 @@ const metadata = {
53
53
  fontFamily: true
54
54
  }
55
55
  },
56
- shadow: true
56
+ shadow: true,
57
+ blockVisibility: false
57
58
  },
58
59
  attributes: {
59
60
  openByDefault: {
@@ -63,15 +64,11 @@ const metadata = {
63
64
  title: {
64
65
  type: "rich-text",
65
66
  source: "rich-text",
66
- selector: ".wp-block-accordion-header__toggle-title",
67
+ selector: ".wp-block-accordion-heading__toggle-title",
67
68
  role: "content"
68
69
  },
69
70
  level: {
70
- type: "number",
71
- "default": 3
72
- },
73
- levelOptions: {
74
- type: "array"
71
+ type: "number"
75
72
  },
76
73
  iconPosition: {
77
74
  type: "string",
@@ -0,0 +1 @@
1
+ {"version":3,"names":["edit","save","metadata","$schema","apiVersion","name","title","category","description","__experimental","parent","usesContext","supports","anchor","color","background","gradients","align","interactivity","spacing","padding","__experimentalDefaultControls","__experimentalSkipSerialization","__experimentalBorder","radius","style","width","typography","fontSize","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","fontFamily","shadow","blockVisibility","attributes","openByDefault","type","source","selector","role","level","iconPosition","showIcon","textdomain","initBlock","icon","settings","init"],"sources":["@wordpress/block-library/src/accordion-heading/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\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"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,cAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,MAAA;IAAAC,KAAA;MAAAC,UAAA;MAAAC,SAAA;IAAA;IAAAC,KAAA;IAAAC,aAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,6BAAA;QAAAD,OAAA;MAAA;MAAAE,+BAAA;IAAA;IAAAC,oBAAA;MAAAT,KAAA;MAAAU,MAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAL,6BAAA;QAAAP,KAAA;QAAAU,MAAA;QAAAC,KAAA;QAAAC,KAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAb,6BAAA;QAAAO,QAAA;QAAAO,UAAA;MAAA;IAAA;IAAAC,MAAA;IAAAC,eAAA;EAAA;EAAAC,UAAA;IAAAC,aAAA;MAAAC,IAAA;MAAA;IAAA;IAAAlC,KAAA;MAAAkC,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAJ,IAAA;IAAA;IAAAK,YAAA;MAAAL,IAAA;MAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;IAAA;EAAA;EAAAO,UAAA;AAAA;AAE1B,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE5C;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAM6C,QAAQ,GAAG;EACvBD,IAAI;EACJjD,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAMkD,IAAI,GAAGA,CAAA,KAAMH,SAAS,CAAE;EAAE3C,IAAI;EAAEH,QAAQ;EAAEgD;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["init"],"sources":["@wordpress/block-library/src/accordion-content/init.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { init } from './';\n\nexport default init();\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,IAAI;AAEzB,eAAeA,IAAI,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["init"],"sources":["@wordpress/block-library/src/accordion-heading/init.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { init } from './';\n\nexport default init();\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,IAAI;AAEzB,eAAeA,IAAI,CAAC,CAAC","ignoreList":[]}
@@ -12,26 +12,24 @@ export default function save({
12
12
  iconPosition,
13
13
  showIcon
14
14
  } = attributes;
15
- const TagName = 'h' + level;
15
+ const TagName = 'h' + (level || 3);
16
16
  const blockProps = useBlockProps.save();
17
17
  const spacingProps = getSpacingClassesAndStyles(attributes);
18
18
  return /*#__PURE__*/_jsx(TagName, {
19
19
  ...blockProps,
20
20
  children: /*#__PURE__*/_jsxs("button", {
21
- className: "wp-block-accordion-header__toggle",
22
- style: {
23
- ...spacingProps.style
24
- },
21
+ className: "wp-block-accordion-heading__toggle",
22
+ style: spacingProps.style,
25
23
  children: [showIcon && iconPosition === 'left' && /*#__PURE__*/_jsx("span", {
26
- className: "wp-block-accordion-header__toggle-icon",
24
+ className: "wp-block-accordion-heading__toggle-icon",
27
25
  "aria-hidden": "true",
28
26
  children: "+"
29
27
  }), /*#__PURE__*/_jsx(RichText.Content, {
30
- className: "wp-block-accordion-header__toggle-title",
28
+ className: "wp-block-accordion-heading__toggle-title",
31
29
  tagName: "span",
32
30
  value: title
33
31
  }), showIcon && iconPosition === 'right' && /*#__PURE__*/_jsx("span", {
34
- className: "wp-block-accordion-header__toggle-icon",
32
+ className: "wp-block-accordion-heading__toggle-icon",
35
33
  "aria-hidden": "true",
36
34
  children: "+"
37
35
  })]
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useBlockProps","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","RichText","jsx","_jsx","jsxs","_jsxs","save","attributes","level","title","iconPosition","showIcon","TagName","blockProps","spacingProps","children","className","style","Content","tagName","value"],"sources":["@wordpress/block-library/src/accordion-heading/save.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\tRichText,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { level, title, iconPosition, showIcon } = attributes;\n\tconst TagName = 'h' + ( level || 3 );\n\n\tconst blockProps = useBlockProps.save();\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<button\n\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\tstyle={ spacingProps.style }\n\t\t\t>\n\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tvalue={ title }\n\t\t\t\t/>\n\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</TagName>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,aAAa,EACbC,wCAAwC,IAAIC,0BAA0B,EACtEC,QAAQ,QACF,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,YAAY;IAAEC;EAAS,CAAC,GAAGJ,UAAU;EAC3D,MAAMK,OAAO,GAAG,GAAG,IAAKJ,KAAK,IAAI,CAAC,CAAE;EAEpC,MAAMK,UAAU,GAAGf,aAAa,CAACQ,IAAI,CAAC,CAAC;EACvC,MAAMQ,YAAY,GAAGd,0BAA0B,CAAEO,UAAW,CAAC;EAE7D,oBACCJ,IAAA,CAACS,OAAO;IAAA,GAAMC,UAAU;IAAAE,QAAA,eACvBV,KAAA;MACCW,SAAS,EAAC,oCAAoC;MAC9CC,KAAK,EAAGH,YAAY,CAACG,KAAO;MAAAF,QAAA,GAE1BJ,QAAQ,IAAID,YAAY,KAAK,MAAM,iBACpCP,IAAA;QACCa,SAAS,EAAC,yCAAyC;QACnD,eAAY,MAAM;QAAAD,QAAA,EAClB;MAED,CAAM,CACN,eACDZ,IAAA,CAACF,QAAQ,CAACiB,OAAO;QAChBF,SAAS,EAAC,0CAA0C;QACpDG,OAAO,EAAC,MAAM;QACdC,KAAK,EAAGX;MAAO,CACf,CAAC,EACAE,QAAQ,IAAID,YAAY,KAAK,OAAO,iBACrCP,IAAA;QACCa,SAAS,EAAC,yCAAyC;QACnD,eAAY,MAAM;QAAAD,QAAA,EAClB;MAED,CAAM,CACN;IAAA,CACM;EAAC,CACD,CAAC;AAEZ","ignoreList":[]}
@@ -19,7 +19,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
19
19
  export default function Edit({
20
20
  attributes,
21
21
  clientId,
22
- setAttributes
22
+ setAttributes,
23
+ context
23
24
  }) {
24
25
  const {
25
26
  openByDefault
@@ -57,8 +58,13 @@ export default function Edit({
57
58
  'is-open': openByDefault || isSelected
58
59
  })
59
60
  });
61
+
62
+ // Get heading level from context.
63
+ const headingLevel = context && context['core/accordion-heading-level'];
60
64
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
61
- template: [['core/accordion-header', {}], ['core/accordion-panel', {
65
+ template: [['core/accordion-heading', headingLevel ? {
66
+ level: headingLevel
67
+ } : {}], ['core/accordion-panel', {
62
68
  openByDefault
63
69
  }]],
64
70
  templateLock: 'all',