@wordpress/block-library 9.33.1-next.b8c8708f3.0 → 9.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +1 -1
  3. package/build/breadcrumbs/block.json +8 -2
  4. package/build/breadcrumbs/edit.js +113 -12
  5. package/build/breadcrumbs/edit.js.map +2 -2
  6. package/build/buttons/transforms.js +7 -7
  7. package/build/buttons/transforms.js.map +2 -2
  8. package/build/code/transforms.js +19 -15
  9. package/build/code/transforms.js.map +2 -2
  10. package/build/heading/index.js +1 -3
  11. package/build/heading/index.js.map +3 -3
  12. package/build/heading/transforms.js +22 -20
  13. package/build/heading/transforms.js.map +2 -2
  14. package/build/index.js +5 -1
  15. package/build/index.js.map +2 -2
  16. package/build/math/block.json +21 -0
  17. package/build/math/edit.js +132 -0
  18. package/build/math/edit.js.map +7 -0
  19. package/build/math/index.js +63 -0
  20. package/build/math/index.js.map +7 -0
  21. package/build/math/init.js +35 -0
  22. package/build/math/init.js.map +7 -0
  23. package/build/math/save.js +40 -0
  24. package/build/math/save.js.map +7 -0
  25. package/build/navigation/edit/menu-inspector-controls.js +3 -3
  26. package/build/navigation/edit/menu-inspector-controls.js.map +2 -2
  27. package/build/navigation-link/edit.js +6 -3
  28. package/build/navigation-link/edit.js.map +2 -2
  29. package/build/navigation-link/link-ui/index.js +1 -1
  30. package/build/navigation-link/link-ui/index.js.map +2 -2
  31. package/build/navigation-link/shared/controls.js +4 -1
  32. package/build/navigation-link/shared/controls.js.map +3 -3
  33. package/build/navigation-link/shared/index.js +2 -0
  34. package/build/navigation-link/shared/index.js.map +2 -2
  35. package/build/navigation-link/shared/update-attributes.js +3 -1
  36. package/build/navigation-link/shared/update-attributes.js.map +2 -2
  37. package/build/navigation-link/shared/use-entity-binding.js +46 -13
  38. package/build/navigation-link/shared/use-entity-binding.js.map +2 -2
  39. package/build/navigation-submenu/edit.js +6 -3
  40. package/build/navigation-submenu/edit.js.map +2 -2
  41. package/build/page-list/use-convert-to-navigation-links.js +6 -1
  42. package/build/page-list/use-convert-to-navigation-links.js.map +2 -2
  43. package/build/paragraph/index.js +1 -3
  44. package/build/paragraph/index.js.map +3 -3
  45. package/build/post-date/deprecated.js +98 -2
  46. package/build/post-date/deprecated.js.map +2 -2
  47. package/build/post-date/edit.js +1 -1
  48. package/build/post-date/edit.js.map +1 -1
  49. package/build/post-date/variations.js +4 -4
  50. package/build/post-date/variations.js.map +2 -2
  51. package/build/term-template/edit.js +4 -1
  52. package/build/term-template/edit.js.map +2 -2
  53. package/build/utils/get-transformed-attributes.js +82 -0
  54. package/build/utils/get-transformed-attributes.js.map +7 -0
  55. package/build-module/breadcrumbs/block.json +8 -2
  56. package/build-module/breadcrumbs/edit.js +117 -14
  57. package/build-module/breadcrumbs/edit.js.map +2 -2
  58. package/build-module/buttons/transforms.js +7 -7
  59. package/build-module/buttons/transforms.js.map +2 -2
  60. package/build-module/code/transforms.js +19 -15
  61. package/build-module/code/transforms.js.map +2 -2
  62. package/build-module/heading/index.js +1 -3
  63. package/build-module/heading/index.js.map +2 -2
  64. package/build-module/heading/transforms.js +22 -20
  65. package/build-module/heading/transforms.js.map +2 -2
  66. package/build-module/index.js +5 -1
  67. package/build-module/index.js.map +2 -2
  68. package/build-module/math/block.json +21 -0
  69. package/build-module/math/edit.js +110 -0
  70. package/build-module/math/edit.js.map +7 -0
  71. package/build-module/math/index.js +26 -0
  72. package/build-module/math/index.js.map +7 -0
  73. package/build-module/math/init.js +8 -0
  74. package/build-module/math/init.js.map +7 -0
  75. package/build-module/math/save.js +20 -0
  76. package/build-module/math/save.js.map +7 -0
  77. package/build-module/navigation/edit/menu-inspector-controls.js +3 -3
  78. package/build-module/navigation/edit/menu-inspector-controls.js.map +2 -2
  79. package/build-module/navigation-link/edit.js +6 -3
  80. package/build-module/navigation-link/edit.js.map +2 -2
  81. package/build-module/navigation-link/link-ui/index.js +1 -1
  82. package/build-module/navigation-link/link-ui/index.js.map +2 -2
  83. package/build-module/navigation-link/shared/controls.js +4 -1
  84. package/build-module/navigation-link/shared/controls.js.map +2 -2
  85. package/build-module/navigation-link/shared/index.js +5 -1
  86. package/build-module/navigation-link/shared/index.js.map +2 -2
  87. package/build-module/navigation-link/shared/update-attributes.js +3 -1
  88. package/build-module/navigation-link/shared/update-attributes.js.map +2 -2
  89. package/build-module/navigation-link/shared/use-entity-binding.js +45 -13
  90. package/build-module/navigation-link/shared/use-entity-binding.js.map +2 -2
  91. package/build-module/navigation-submenu/edit.js +6 -3
  92. package/build-module/navigation-submenu/edit.js.map +2 -2
  93. package/build-module/page-list/use-convert-to-navigation-links.js +6 -1
  94. package/build-module/page-list/use-convert-to-navigation-links.js.map +2 -2
  95. package/build-module/paragraph/index.js +1 -3
  96. package/build-module/paragraph/index.js.map +2 -2
  97. package/build-module/post-date/deprecated.js +98 -2
  98. package/build-module/post-date/deprecated.js.map +2 -2
  99. package/build-module/post-date/edit.js +1 -1
  100. package/build-module/post-date/edit.js.map +1 -1
  101. package/build-module/post-date/variations.js +4 -4
  102. package/build-module/post-date/variations.js.map +2 -2
  103. package/build-module/term-template/edit.js +4 -1
  104. package/build-module/term-template/edit.js.map +2 -2
  105. package/build-module/utils/get-transformed-attributes.js +58 -0
  106. package/build-module/utils/get-transformed-attributes.js.map +7 -0
  107. package/package.json +61 -36
  108. package/src/breadcrumbs/block.json +8 -2
  109. package/src/breadcrumbs/edit.js +163 -18
  110. package/src/breadcrumbs/index.php +118 -16
  111. package/src/buttons/transforms.js +6 -6
  112. package/src/code/transforms.js +16 -14
  113. package/src/heading/index.js +0 -2
  114. package/src/heading/transforms.js +25 -24
  115. package/src/index.js +6 -1
  116. package/src/math/block.json +21 -0
  117. package/src/math/edit.js +123 -0
  118. package/src/math/index.js +31 -0
  119. package/src/math/init.js +4 -0
  120. package/src/math/save.js +20 -0
  121. package/src/navigation/edit/menu-inspector-controls.js +8 -7
  122. package/src/navigation-link/edit.js +6 -3
  123. package/src/navigation-link/index.php +4 -18
  124. package/src/navigation-link/link-ui/index.js +4 -2
  125. package/src/navigation-link/shared/controls.js +12 -3
  126. package/src/navigation-link/shared/index.js +4 -1
  127. package/src/navigation-link/shared/test/update-attributes.test.js +8 -0
  128. package/src/navigation-link/shared/test/use-entity-binding.js +132 -17
  129. package/src/navigation-link/shared/update-attributes.js +1 -0
  130. package/src/navigation-link/shared/use-entity-binding.js +74 -19
  131. package/src/navigation-submenu/edit.js +6 -3
  132. package/src/navigation-submenu/index.php +3 -17
  133. package/src/page-list/test/{convert-to-links-modal.js → convert-to-navigation-links.js} +67 -0
  134. package/src/page-list/use-convert-to-navigation-links.js +11 -1
  135. package/src/paragraph/index.js +0 -2
  136. package/src/post-date/deprecated.js +100 -2
  137. package/src/post-date/edit.js +1 -1
  138. package/src/post-date/index.php +3 -3
  139. package/src/post-date/variations.js +5 -4
  140. package/src/term-template/edit.js +4 -1
  141. package/src/term-template/index.php +4 -6
  142. package/src/utils/get-transformed-attributes.js +98 -0
  143. package/tsconfig.json +1 -0
  144. package/build/heading/variations.js +0 -48
  145. package/build/heading/variations.js.map +0 -7
  146. package/build/paragraph/variations.js +0 -48
  147. package/build/paragraph/variations.js.map +0 -7
  148. package/build/utils/get-transformed-metadata.js +0 -59
  149. package/build/utils/get-transformed-metadata.js.map +0 -7
  150. package/build-module/heading/variations.js +0 -28
  151. package/build-module/heading/variations.js.map +0 -7
  152. package/build-module/paragraph/variations.js +0 -28
  153. package/build-module/paragraph/variations.js.map +0 -7
  154. package/build-module/utils/get-transformed-metadata.js +0 -35
  155. package/build-module/utils/get-transformed-metadata.js.map +0 -7
  156. package/src/heading/variations.js +0 -29
  157. package/src/paragraph/variations.js +0 -29
  158. package/src/utils/get-transformed-metadata.js +0 -60
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/heading/transforms.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { getTransformedMetadata } from '../utils/get-transformed-metadata';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map(\n\t\t\t\t\t( { content, anchor, align: textAlign, metadata } ) =>\n\t\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} )\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes(\n\t\t\t\t\t'core/heading',\n\t\t\t\t\tnode.outerHTML\n\t\t\t\t);\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.align = textAlign;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/heading', attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform: () => createBlock( 'core/heading', { level } ),\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, textAlign: align, metadata } ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\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},\n\t],\n};\n\nexport default transforms;\n"],
5
- "mappings": "AAGA,SAAS,aAAa,0BAA0B;AAKhD,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AAEvC,MAAM,aAAa;AAAA,EAClB,MAAM;AAAA,IACL;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAE,gBAAiB;AAAA,MAC3B,WAAW,CAAE,eACZ,WAAW;AAAA,QACV,CAAE,EAAE,SAAS,QAAQ,OAAO,WAAW,SAAS,MAC/C,YAAa,gBAAgB;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU;AAAA,YACT;AAAA,YACA;AAAA,YACA,CAAE,EAAE,SAAS,eAAe,OAAS;AAAA,cACpC,SAAS;AAAA,YACV;AAAA,UACD;AAAA,QACD,CAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ,CAAE,EAAE,uBAAuB,QAAQ,MAAO;AACjD,cAAM,SAAS;AAAA,UACd,UAAU;AAAA,UACV,YAAY,UAAU,CAAC,IAAI,CAAE,SAAS,IAAK;AAAA,QAC5C;AACA,eAAO;AAAA,UACN,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACL;AAAA,MACD;AAAA,MACA,UAAW,MAAO;AACjB,cAAM,aAAa;AAAA,UAClB;AAAA,UACA,KAAK;AAAA,QACN;AACA,cAAM,EAAE,UAAU,IAAI,KAAK,SAAS,CAAC;AAErC,mBAAW,QAAQ,4BAA6B,KAAK,QAAS;AAE9D,YACC,cAAc,UACd,cAAc,YACd,cAAc,SACb;AACD,qBAAW,QAAQ;AAAA,QACpB;AAEA,eAAO,YAAa,gBAAgB,UAAW;AAAA,MAChD;AAAA,IACD;AAAA,IACA,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,EAAE,IAAK,CAAE,WAAa;AAAA,MAC3C,MAAM;AAAA,MACN,QAAQ,MAAO,QAAQ,CAAE,EAAE,KAAM,GAAI;AAAA,MACrC,UAAW,SAAU;AACpB,eAAO,YAAa,gBAAgB;AAAA,UACnC;AAAA,UACA;AAAA,QACD,CAAE;AAAA,MACH;AAAA,IACD,EAAI;AAAA,IACJ,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,EAAE,IAAK,CAAE,WAAa;AAAA,MAC3C,MAAM;AAAA,MACN,QAAQ,IAAI,OAAQ,UAAW,KAAM,GAAI;AAAA,MACzC,WAAW,MAAM,YAAa,gBAAgB,EAAE,MAAM,CAAE;AAAA,IACzD,EAAI;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACH;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAE,gBAAiB;AAAA,MAC3B,WAAW,CAAE,eACZ,WAAW;AAAA,QAAK,CAAE,EAAE,SAAS,WAAW,OAAO,SAAS,MACvD,YAAa,kBAAkB;AAAA,UAC9B;AAAA,UACA;AAAA,UACA,UAAU;AAAA,YACT;AAAA,YACA;AAAA,YACA,CAAE,EAAE,SAAS,eAAe,OAAS;AAAA,cACpC,SAAS;AAAA,YACV;AAAA,UACD;AAAA,QACD,CAAE;AAAA,MACH;AAAA,IACF;AAAA,EACD;AACD;AAEA,IAAO,qBAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { getTransformedAttributes } from '../utils/get-transformed-attributes';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( _attributes ) => {\n\t\t\t\t\tconst { content, anchor, align: textAlign } = _attributes;\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t...getTransformedAttributes(\n\t\t\t\t\t\t\t_attributes,\n\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes(\n\t\t\t\t\t'core/heading',\n\t\t\t\t\tnode.outerHTML\n\t\t\t\t);\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.align = textAlign;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/heading', attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform: () => createBlock( 'core/heading', { level } ),\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( _attributes ) => {\n\t\t\t\t\tconst { content, textAlign: align } = _attributes;\n\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\t...getTransformedAttributes(\n\t\t\t\t\t\t\t_attributes,\n\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\talign,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],
5
+ "mappings": "AAGA,SAAS,aAAa,0BAA0B;AAKhD,SAAS,mCAAmC;AAC5C,SAAS,gCAAgC;AAEzC,MAAM,aAAa;AAAA,EAClB,MAAM;AAAA,IACL;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAE,gBAAiB;AAAA,MAC3B,WAAW,CAAE,eACZ,WAAW,IAAK,CAAE,gBAAiB;AAClC,cAAM,EAAE,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC9C,eAAO,YAAa,gBAAgB;AAAA,UACnC,GAAG;AAAA,YACF;AAAA,YACA;AAAA,YACA,CAAE,EAAE,SAAS,eAAe,OAAS;AAAA,cACpC,SAAS;AAAA,YACV;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD,CAAE;AAAA,MACH,CAAE;AAAA,IACJ;AAAA,IACA;AAAA,MACC,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ,CAAE,EAAE,uBAAuB,QAAQ,MAAO;AACjD,cAAM,SAAS;AAAA,UACd,UAAU;AAAA,UACV,YAAY,UAAU,CAAC,IAAI,CAAE,SAAS,IAAK;AAAA,QAC5C;AACA,eAAO;AAAA,UACN,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,UACJ,IAAI;AAAA,QACL;AAAA,MACD;AAAA,MACA,UAAW,MAAO;AACjB,cAAM,aAAa;AAAA,UAClB;AAAA,UACA,KAAK;AAAA,QACN;AACA,cAAM,EAAE,UAAU,IAAI,KAAK,SAAS,CAAC;AAErC,mBAAW,QAAQ,4BAA6B,KAAK,QAAS;AAE9D,YACC,cAAc,UACd,cAAc,YACd,cAAc,SACb;AACD,qBAAW,QAAQ;AAAA,QACpB;AAEA,eAAO,YAAa,gBAAgB,UAAW;AAAA,MAChD;AAAA,IACD;AAAA,IACA,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,EAAE,IAAK,CAAE,WAAa;AAAA,MAC3C,MAAM;AAAA,MACN,QAAQ,MAAO,QAAQ,CAAE,EAAE,KAAM,GAAI;AAAA,MACrC,UAAW,SAAU;AACpB,eAAO,YAAa,gBAAgB;AAAA,UACnC;AAAA,UACA;AAAA,QACD,CAAE;AAAA,MACH;AAAA,IACD,EAAI;AAAA,IACJ,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,EAAE,IAAK,CAAE,WAAa;AAAA,MAC3C,MAAM;AAAA,MACN,QAAQ,IAAI,OAAQ,UAAW,KAAM,GAAI;AAAA,MACzC,WAAW,MAAM,YAAa,gBAAgB,EAAE,MAAM,CAAE;AAAA,IACzD,EAAI;AAAA,EACL;AAAA,EACA,IAAI;AAAA,IACH;AAAA,MACC,MAAM;AAAA,MACN,cAAc;AAAA,MACd,QAAQ,CAAE,gBAAiB;AAAA,MAC3B,WAAW,CAAE,eACZ,WAAW,IAAK,CAAE,gBAAiB;AAClC,cAAM,EAAE,SAAS,WAAW,MAAM,IAAI;AACtC,eAAO,YAAa,kBAAkB;AAAA,UACrC,GAAG;AAAA,YACF;AAAA,YACA;AAAA,YACA,CAAE,EAAE,SAAS,eAAe,OAAS;AAAA,cACpC,SAAS;AAAA,YACV;AAAA,UACD;AAAA,UACA;AAAA,UACA;AAAA,QACD,CAAE;AAAA,MACH,CAAE;AAAA,IACJ;AAAA,EACD;AACD;AAEA,IAAO,qBAAQ;",
6
6
  "names": []
7
7
  }
@@ -57,6 +57,7 @@ import * as image from "./image";
57
57
  import * as latestComments from "./latest-comments";
58
58
  import * as latestPosts from "./latest-posts";
59
59
  import * as list from "./list";
60
+ import * as math from "./math";
60
61
  import * as listItem from "./list-item";
61
62
  import * as logInOut from "./loginout";
62
63
  import * as mediaText from "./media-text";
@@ -142,7 +143,6 @@ const getAllBlocks = () => {
142
143
  accordionPanel,
143
144
  archives,
144
145
  audio,
145
- breadcrumbs,
146
146
  button,
147
147
  buttons,
148
148
  calendar,
@@ -157,6 +157,7 @@ const getAllBlocks = () => {
157
157
  file,
158
158
  group,
159
159
  html,
160
+ math,
160
161
  latestComments,
161
162
  latestPosts,
162
163
  mediaText,
@@ -237,6 +238,9 @@ const getAllBlocks = () => {
237
238
  queryTitle,
238
239
  postAuthorBiography
239
240
  ];
241
+ if (window?.__experimentalEnableBlockExperiments) {
242
+ blocks.push(breadcrumbs);
243
+ }
240
244
  if (window?.__experimentalEnableFormBlocks) {
241
245
  blocks.push(form);
242
246
  blocks.push(formInput);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n\tregisterBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n// When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks\n// are transformed by packages/block-library/src/index.js as follows:\n// import * as experimentalBlock from './experimental-block'\n// becomes\n// const experimentalBlock = null;\n// This enables webpack to eliminate the experimental blocks code from the\n// production build to make the final bundle smaller.\n//\n// See https://github.com/WordPress/gutenberg/pull/40655 for more context.\nimport * as accordion from './accordion';\nimport * as accordionItem from './accordion-item';\nimport * as accordionHeading from './accordion-heading';\nimport * as accordionPanel from './accordion-panel';\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as breadcrumbs from './breadcrumbs';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as queryTotal from './query-total';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termCount from './term-count';\nimport * as termDescription from './term-description';\nimport * as termName from './term-name';\nimport * as termsQuery from './terms-query';\nimport * as termTemplate from './term-template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as footnotes from './footnotes';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\nimport { unlock } from './lock-unlock';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () => {\n\tconst blocks = [\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts \u2014 like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\taccordion,\n\t\taccordionItem,\n\t\taccordionHeading,\n\t\taccordionPanel,\n\t\tarchives,\n\t\taudio,\n\t\tbreadcrumbs,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tdetails,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t\tfootnotes,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\tqueryTotal,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\tlogInOut,\n\t\ttermCount,\n\t\ttermDescription,\n\t\ttermName,\n\t\ttermsQuery,\n\t\ttermTemplate,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t];\n\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\t// When in a WordPress context, conditionally\n\t// add the classic block and TinyMCE editor\n\t// under any of the following conditions:\n\t// - the current post contains a classic block\n\t// - the experiment to disable TinyMCE isn't active.\n\t// - a query argument specifies that TinyMCE should be loaded\n\tif (\n\t\twindow?.wp?.oldEditor &&\n\t\t( window?.wp?.needsClassicBlock ||\n\t\t\t! window?.__experimentalDisableTinymce ||\n\t\t\t!! new URLSearchParams( window?.location?.search ).get(\n\t\t\t\t'requiresTinymce'\n\t\t\t) )\n\t) {\n\t\tblocks.push( classic );\n\t}\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\t// Auto-register PHP-only blocks with ServerSideRender\n\tif ( window.__unstableAutoRegisterBlocks ) {\n\t\twindow.__unstableAutoRegisterBlocks.forEach( ( blockName ) => {\n\t\t\tconst bootstrappedBlockType = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBootstrappedBlockType( blockName );\n\t\t\tconst bootstrappedApiVersion = bootstrappedBlockType.apiVersion;\n\n\t\t\tregisterBlockType( blockName, {\n\t\t\t\ttitle: blockName,\n\t\t\t\t...( bootstrappedApiVersion < 3 && { apiVersion: 3 } ),\n\t\t\t\tedit: function Edit( { attributes } ) {\n\t\t\t\t\tconst blockProps = useBlockProps();\n\t\t\t\t\tconst { content, status, error } = useServerSideRender( {\n\t\t\t\t\t\tblock: blockName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( status === 'loading' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>{ __( 'Loading\u2026' ) }</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( status === 'error' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: error message describing the problem */\n\t\t\t\t\t\t\t\t\t__( 'Error loading block: %s' ),\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: content || '',\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\tsave: () => null,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tsetDefaultBlockName( paragraph.name );\n\tif (\n\t\twindow.wp &&\n\t\twindow.wp.oldEditor &&\n\t\tblocks.some( ( { name } ) => name === classic.name )\n\t) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\t\tgetAllBlocks()\n\t\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t\t)\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( { init } ) => init() );\n\t\t }\n\t\t: undefined;\n\nexport { privateApis } from './private-apis';\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n\tregisterBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n// When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks\n// are transformed by packages/block-library/src/index.js as follows:\n// import * as experimentalBlock from './experimental-block'\n// becomes\n// const experimentalBlock = null;\n// This enables webpack to eliminate the experimental blocks code from the\n// production build to make the final bundle smaller.\n//\n// See https://github.com/WordPress/gutenberg/pull/40655 for more context.\nimport * as accordion from './accordion';\nimport * as accordionItem from './accordion-item';\nimport * as accordionHeading from './accordion-heading';\nimport * as accordionPanel from './accordion-panel';\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as breadcrumbs from './breadcrumbs';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as math from './math';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as queryTotal from './query-total';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termCount from './term-count';\nimport * as termDescription from './term-description';\nimport * as termName from './term-name';\nimport * as termsQuery from './terms-query';\nimport * as termTemplate from './term-template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as footnotes from './footnotes';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\nimport { unlock } from './lock-unlock';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () => {\n\tconst blocks = [\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts \u2014 like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\taccordion,\n\t\taccordionItem,\n\t\taccordionHeading,\n\t\taccordionPanel,\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tdetails,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tmath,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t\tfootnotes,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\tqueryTotal,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\tlogInOut,\n\t\ttermCount,\n\t\ttermDescription,\n\t\ttermName,\n\t\ttermsQuery,\n\t\ttermTemplate,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t];\n\n\tif ( window?.__experimentalEnableBlockExperiments ) {\n\t\tblocks.push( breadcrumbs );\n\t}\n\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\t// When in a WordPress context, conditionally\n\t// add the classic block and TinyMCE editor\n\t// under any of the following conditions:\n\t// - the current post contains a classic block\n\t// - the experiment to disable TinyMCE isn't active.\n\t// - a query argument specifies that TinyMCE should be loaded\n\tif (\n\t\twindow?.wp?.oldEditor &&\n\t\t( window?.wp?.needsClassicBlock ||\n\t\t\t! window?.__experimentalDisableTinymce ||\n\t\t\t!! new URLSearchParams( window?.location?.search ).get(\n\t\t\t\t'requiresTinymce'\n\t\t\t) )\n\t) {\n\t\tblocks.push( classic );\n\t}\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\t// Auto-register PHP-only blocks with ServerSideRender\n\tif ( window.__unstableAutoRegisterBlocks ) {\n\t\twindow.__unstableAutoRegisterBlocks.forEach( ( blockName ) => {\n\t\t\tconst bootstrappedBlockType = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBootstrappedBlockType( blockName );\n\t\t\tconst bootstrappedApiVersion = bootstrappedBlockType.apiVersion;\n\n\t\t\tregisterBlockType( blockName, {\n\t\t\t\ttitle: blockName,\n\t\t\t\t...( bootstrappedApiVersion < 3 && { apiVersion: 3 } ),\n\t\t\t\tedit: function Edit( { attributes } ) {\n\t\t\t\t\tconst blockProps = useBlockProps();\n\t\t\t\t\tconst { content, status, error } = useServerSideRender( {\n\t\t\t\t\t\tblock: blockName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( status === 'loading' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>{ __( 'Loading\u2026' ) }</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( status === 'error' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: error message describing the problem */\n\t\t\t\t\t\t\t\t\t__( 'Error loading block: %s' ),\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: content || '',\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\tsave: () => null,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tsetDefaultBlockName( paragraph.name );\n\tif (\n\t\twindow.wp &&\n\t\twindow.wp.oldEditor &&\n\t\tblocks.some( ( { name } ) => name === classic.name )\n\t) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\t\tgetAllBlocks()\n\t\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t\t)\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( { init } ) => init() );\n\t\t }\n\t\t: undefined;\n\nexport { privateApis } from './private-apis';\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "apiVersion": 3,
4
+ "name": "core/math",
5
+ "title": "Math",
6
+ "category": "text",
7
+ "description": "Display mathematical notation using LaTeX.",
8
+ "keywords": [ "equation", "formula", "latex", "mathematics" ],
9
+ "textdomain": "default",
10
+ "attributes": {
11
+ "latex": {
12
+ "type": "string",
13
+ "role": "content"
14
+ },
15
+ "mathML": {
16
+ "type": "string",
17
+ "source": "html",
18
+ "selector": "math"
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,110 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { __ } from "@wordpress/i18n";
3
+ import {
4
+ useBlockProps,
5
+ store as blockEditorStore
6
+ } from "@wordpress/block-editor";
7
+ import {
8
+ TextareaControl,
9
+ Popover,
10
+ __experimentalVStack as VStack,
11
+ privateApis as componentsPrivateApis
12
+ } from "@wordpress/components";
13
+ import { useState, useEffect, useRef } from "@wordpress/element";
14
+ import { useDispatch } from "@wordpress/data";
15
+ import { unlock } from "../lock-unlock";
16
+ const { Badge } = unlock(componentsPrivateApis);
17
+ function MathEdit({ attributes, setAttributes, isSelected }) {
18
+ const { latex } = attributes;
19
+ const [blockRef, setBlockRef] = useState();
20
+ const [error, setError] = useState(null);
21
+ const [latexToMathML, setLatexToMathML] = useState();
22
+ const initialLatex = useRef(attributes.latex);
23
+ const { __unstableMarkNextChangeAsNotPersistent } = useDispatch(blockEditorStore);
24
+ useEffect(() => {
25
+ import("@wordpress/latex-to-mathml").then((module) => {
26
+ setLatexToMathML(() => module.default);
27
+ if (initialLatex.current) {
28
+ __unstableMarkNextChangeAsNotPersistent();
29
+ setAttributes({
30
+ mathML: module.default(initialLatex.current, {
31
+ displayMode: true
32
+ })
33
+ });
34
+ }
35
+ });
36
+ }, [
37
+ initialLatex,
38
+ setAttributes,
39
+ __unstableMarkNextChangeAsNotPersistent
40
+ ]);
41
+ const blockProps = useBlockProps({
42
+ ref: setBlockRef,
43
+ position: "relative"
44
+ });
45
+ return /* @__PURE__ */ jsxs("div", { ...blockProps, children: [
46
+ attributes.mathML ? /* @__PURE__ */ jsx(
47
+ "math",
48
+ {
49
+ display: "block",
50
+ dangerouslySetInnerHTML: { __html: attributes.mathML }
51
+ }
52
+ ) : "\u200B",
53
+ isSelected && /* @__PURE__ */ jsx(
54
+ Popover,
55
+ {
56
+ placement: "bottom-start",
57
+ offset: 8,
58
+ anchor: blockRef,
59
+ focusOnMount: "firstContentElement",
60
+ children: /* @__PURE__ */ jsx("div", { style: { padding: "4px", minWidth: "300px" }, children: /* @__PURE__ */ jsxs(VStack, { spacing: 1, children: [
61
+ /* @__PURE__ */ jsx(
62
+ TextareaControl,
63
+ {
64
+ __nextHasNoMarginBottom: true,
65
+ __next40pxDefaultSize: true,
66
+ label: __("LaTeX math syntax"),
67
+ hideLabelFromVision: true,
68
+ value: latex,
69
+ onChange: (newLatex) => {
70
+ if (!latexToMathML) {
71
+ setAttributes({ latex: newLatex });
72
+ return;
73
+ }
74
+ let mathML = "";
75
+ try {
76
+ mathML = latexToMathML(newLatex, {
77
+ displayMode: true
78
+ });
79
+ setError(null);
80
+ } catch (err) {
81
+ setError(err.message);
82
+ }
83
+ setAttributes({
84
+ mathML,
85
+ latex: newLatex
86
+ });
87
+ },
88
+ placeholder: __("e.g., x^2, \\frac{a}{b}")
89
+ }
90
+ ),
91
+ error && /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ /* @__PURE__ */ jsx(
93
+ Badge,
94
+ {
95
+ intent: "error",
96
+ className: "wp-block-math__error",
97
+ children: error
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsx("style", { children: ".wp-block-math__error .components-badge__content{white-space:normal}" })
101
+ ] })
102
+ ] }) })
103
+ }
104
+ )
105
+ ] });
106
+ }
107
+ export {
108
+ MathEdit as default
109
+ };
110
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/math/edit.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tTextareaControl,\n\tPopover,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nexport default function MathEdit( { attributes, setAttributes, isSelected } ) {\n\tconst { latex } = attributes;\n\tconst [ blockRef, setBlockRef ] = useState();\n\tconst [ error, setError ] = useState( null );\n\tconst [ latexToMathML, setLatexToMathML ] = useState();\n\tconst initialLatex = useRef( attributes.latex );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\timport( '@wordpress/latex-to-mathml' ).then( ( module ) => {\n\t\t\tsetLatexToMathML( () => module.default );\n\t\t\tif ( initialLatex.current ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tmathML: module.default( initialLatex.current, {\n\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tinitialLatex,\n\t\tsetAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: setBlockRef,\n\t\tposition: 'relative',\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ attributes.mathML ? (\n\t\t\t\t<math\n\t\t\t\t\t// We can't spread block props on the math element because\n\t\t\t\t\t// it only supports a limited amount of global attributes.\n\t\t\t\t\t// For example, draggable will have no effect.\n\t\t\t\t\tdisplay=\"block\"\n\t\t\t\t\tdangerouslySetInnerHTML={ { __html: attributes.mathML } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t'\\u200B'\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\toffset={ 8 }\n\t\t\t\t\tanchor={ blockRef }\n\t\t\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\t\t>\n\t\t\t\t\t<div style={ { padding: '4px', minWidth: '300px' } }>\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<TextareaControl\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\tlabel={ __( 'LaTeX math syntax' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\tvalue={ latex }\n\t\t\t\t\t\t\t\tonChange={ ( newLatex ) => {\n\t\t\t\t\t\t\t\t\tif ( ! latexToMathML ) {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { latex: newLatex } );\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlet mathML = '';\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tmathML = latexToMathML( newLatex, {\n\t\t\t\t\t\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tsetError( null );\n\t\t\t\t\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\t\t\t\t\tsetError( err.message );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tmathML,\n\t\t\t\t\t\t\t\t\t\tlatex: newLatex,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'e.g., x^2, \\\\frac{a}{b}' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ error && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\tintent=\"error\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-math__error\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ error }\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t<style children=\".wp-block-math__error .components-badge__content{white-space:normal}\" />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": "AA2DI,SA+CI,UA/CJ,KA+CI,YA/CJ;AAxDJ,SAAS,UAAU;AACnB;AAAA,EACC;AAAA,EACA,SAAS;AAAA,OACH;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA,wBAAwB;AAAA,EACxB,eAAe;AAAA,OACT;AACP,SAAS,UAAU,WAAW,cAAc;AAC5C,SAAS,mBAAmB;AAK5B,SAAS,cAAc;AAEvB,MAAM,EAAE,MAAM,IAAI,OAAQ,qBAAsB;AAEjC,SAAR,SAA2B,EAAE,YAAY,eAAe,WAAW,GAAI;AAC7E,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,CAAE,UAAU,WAAY,IAAI,SAAS;AAC3C,QAAM,CAAE,OAAO,QAAS,IAAI,SAAU,IAAK;AAC3C,QAAM,CAAE,eAAe,gBAAiB,IAAI,SAAS;AACrD,QAAM,eAAe,OAAQ,WAAW,KAAM;AAC9C,QAAM,EAAE,wCAAwC,IAC/C,YAAa,gBAAiB;AAE/B,YAAW,MAAM;AAChB,WAAQ,4BAA6B,EAAE,KAAM,CAAE,WAAY;AAC1D,uBAAkB,MAAM,OAAO,OAAQ;AACvC,UAAK,aAAa,SAAU;AAC3B,gDAAwC;AACxC,sBAAe;AAAA,UACd,QAAQ,OAAO,QAAS,aAAa,SAAS;AAAA,YAC7C,aAAa;AAAA,UACd,CAAE;AAAA,QACH,CAAE;AAAA,MACH;AAAA,IACD,CAAE;AAAA,EACH,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,QAAM,aAAa,cAAe;AAAA,IACjC,KAAK;AAAA,IACL,UAAU;AAAA,EACX,CAAE;AAEF,SACC,qBAAC,SAAM,GAAG,YACP;AAAA,eAAW,SACZ;AAAA,MAAC;AAAA;AAAA,QAIA,SAAQ;AAAA,QACR,yBAA0B,EAAE,QAAQ,WAAW,OAAO;AAAA;AAAA,IACvD,IAEA;AAAA,IAEC,cACD;AAAA,MAAC;AAAA;AAAA,QACA,WAAU;AAAA,QACV,QAAS;AAAA,QACT,QAAS;AAAA,QACT,cAAa;AAAA,QAEb,8BAAC,SAAI,OAAQ,EAAE,SAAS,OAAO,UAAU,QAAQ,GAChD,+BAAC,UAAO,SAAU,GACjB;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,yBAAuB;AAAA,cACvB,uBAAqB;AAAA,cACrB,OAAQ,GAAI,mBAAoB;AAAA,cAChC,qBAAmB;AAAA,cACnB,OAAQ;AAAA,cACR,UAAW,CAAE,aAAc;AAC1B,oBAAK,CAAE,eAAgB;AACtB,gCAAe,EAAE,OAAO,SAAS,CAAE;AACnC;AAAA,gBACD;AACA,oBAAI,SAAS;AACb,oBAAI;AACH,2BAAS,cAAe,UAAU;AAAA,oBACjC,aAAa;AAAA,kBACd,CAAE;AACF,2BAAU,IAAK;AAAA,gBAChB,SAAU,KAAM;AACf,2BAAU,IAAI,OAAQ;AAAA,gBACvB;AACA,8BAAe;AAAA,kBACd;AAAA,kBACA,OAAO;AAAA,gBACR,CAAE;AAAA,cACH;AAAA,cACA,aAAc,GAAI,yBAA0B;AAAA;AAAA,UAC7C;AAAA,UACE,SACD,iCACC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACA,QAAO;AAAA,gBACP,WAAU;AAAA,gBAER;AAAA;AAAA,YACH;AAAA,YACA,oBAAC,WAAM,UAAS,wEAAuE;AAAA,aACxF;AAAA,WAEF,GACD;AAAA;AAAA,IACD;AAAA,KAEF;AAEF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ import { math as icon } from "@wordpress/icons";
2
+ import initBlock from "../utils/init-block";
3
+ import edit from "./edit";
4
+ import metadata from "./block.json";
5
+ import save from "./save";
6
+ const { name } = metadata;
7
+ const settings = {
8
+ icon,
9
+ example: {
10
+ attributes: {
11
+ latex: "x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}",
12
+ mathML: '<semantics><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo lspace="0em" rspace="0em">\u2212</mo><mi>b</mi><mo>\xB1</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>\u2212</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}</annotation></semantics>'
13
+ },
14
+ viewportWidth: 300
15
+ },
16
+ edit,
17
+ save
18
+ };
19
+ const init = () => initBlock({ name, metadata, settings });
20
+ export {
21
+ init,
22
+ metadata,
23
+ name,
24
+ settings
25
+ };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/math/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { math as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tlatex: 'x = \\\\frac{-b \\\\pm \\\\sqrt{b^2-4ac}}{2a}',\n\t\t\tmathML: '<semantics><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo lspace=\"0em\" rspace=\"0em\">\u2212</mo><mi>b</mi><mo>\u00B1</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>\u2212</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">x = \\\\frac{-b \\\\pm \\\\sqrt{b^2-4ac}}{2a}</annotation></semantics>',\n\t\t},\n\t\tviewportWidth: 300,\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
+ "mappings": "AAGA,SAAS,QAAQ,YAAY;AAK7B,OAAO,eAAe;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,OAAO,UAAU;AAEjB,MAAM,EAAE,KAAK,IAAI;AAIV,MAAM,WAAW;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,IACT;AAAA,IACA,eAAe;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AACD;AAEO,MAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import { init, metadata, name, settings } from "./index";
2
+ export {
3
+ init,
4
+ metadata,
5
+ name,
6
+ settings
7
+ };
8
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/math/init.js"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nexport { init, metadata, name, settings } from './index';\n"],
5
+ "mappings": "AAGA,SAAS,MAAM,UAAU,MAAM,gBAAgB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useBlockProps } from "@wordpress/block-editor";
3
+ function save({ attributes }) {
4
+ const { latex, mathML } = attributes;
5
+ if (!latex) {
6
+ return null;
7
+ }
8
+ return /* @__PURE__ */ jsx(
9
+ "math",
10
+ {
11
+ ...useBlockProps.save(),
12
+ display: "block",
13
+ dangerouslySetInnerHTML: { __html: mathML }
14
+ }
15
+ );
16
+ }
17
+ export {
18
+ save as default
19
+ };
20
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/math/save.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { latex, mathML } = attributes;\n\n\tif ( ! latex ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<math\n\t\t\t{ ...useBlockProps.save() }\n\t\t\tdisplay=\"block\"\n\t\t\tdangerouslySetInnerHTML={ { __html: mathML } }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "AAaE;AAVF,SAAS,qBAAqB;AAEf,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,OAAO,OAAO,IAAI;AAE1B,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACE,GAAG,cAAc,KAAK;AAAA,MACxB,SAAQ;AAAA,MACR,yBAA0B,EAAE,QAAQ,OAAO;AAAA;AAAA,EAC5C;AAEF;",
6
+ "names": []
7
+ }
@@ -75,15 +75,15 @@ function AdditionalBlockContent({ block, insertedBlock, setInsertedBlock }) {
75
75
  cleanupInsertedBlock();
76
76
  },
77
77
  onChange: (updatedValue) => {
78
- const { isEntityLink } = updateAttributes(
78
+ const { isEntityLink, attributes: updatedAttributes } = updateAttributes(
79
79
  updatedValue,
80
80
  setInsertedBlockAttributes(insertedBlock?.clientId),
81
81
  insertedBlock?.attributes
82
82
  );
83
83
  if (isEntityLink) {
84
- createBinding();
84
+ createBinding(updatedAttributes);
85
85
  } else {
86
- clearBinding();
86
+ clearBinding(updatedAttributes);
87
87
  }
88
88
  setInsertedBlock(null);
89
89
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/navigation/edit/menu-inspector-controls.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../lock-unlock';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\nimport LeafMoreMenu from './leaf-more-menu';\nimport {\n\tLinkUI,\n\tupdateAttributes,\n\tuseEntityBinding,\n} from '../../navigation-link/shared';\n\nconst actionLabel =\n\t/* translators: %s: The name of a menu. */ __( \"Switch to '%s'\" );\nconst BLOCKS_WITH_LINK_UI_SUPPORT = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\nfunction AdditionalBlockContent( { block, insertedBlock, setInsertedBlock } ) {\n\tconst { updateBlockAttributes, removeBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(\n\t\tinsertedBlock?.name\n\t);\n\tconst blockWasJustInserted = insertedBlock?.clientId === block.clientId;\n\tconst showLinkControls = supportsLinkControls && blockWasJustInserted;\n\n\t// Get binding utilities for the inserted block\n\tconst { createBinding, clearBinding } = useEntityBinding( {\n\t\tclientId: insertedBlock?.clientId,\n\t\tattributes: insertedBlock?.attributes || {},\n\t} );\n\n\tif ( ! showLinkControls ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Cleanup function for auto-inserted Navigation Link blocks.\n\t *\n\t * Removes the block if it has no URL and clears the inserted block state.\n\t * This ensures consistent cleanup behavior across different contexts.\n\t */\n\tconst cleanupInsertedBlock = () => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// Follows the exact same pattern as Navigation Link block's onClose handler\n\t\t// If there is no URL then remove the auto-inserted block to avoid empty blocks\n\t\tif ( ! insertedBlock?.attributes?.url && insertedBlock?.clientId ) {\n\t\t\t// Remove the block entirely to avoid poor UX\n\t\t\t// This matches the Navigation Link block's behavior\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( null );\n\t};\n\n\tconst setInsertedBlockAttributes =\n\t\t( _insertedBlockClientId ) => ( _updatedAttributes ) => {\n\t\t\tif ( ! _insertedBlockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( _insertedBlockClientId, _updatedAttributes );\n\t\t};\n\n\t// Wrapper function to clean up original block when a new block is selected\n\tconst handleSetInsertedBlock = ( newBlock ) => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// If we have an existing inserted block and a new block is being set,\n\t\t// remove the original block to avoid duplicates\n\t\tif ( insertedBlock?.clientId && newBlock ) {\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( newBlock );\n\t};\n\n\treturn (\n\t\t<LinkUI\n\t\t\tclientId={ insertedBlock?.clientId }\n\t\t\tlink={ insertedBlock?.attributes }\n\t\t\tonBlockInsert={ handleSetInsertedBlock }\n\t\t\tonClose={ () => {\n\t\t\t\t// Use cleanup function\n\t\t\t\tcleanupInsertedBlock();\n\t\t\t} }\n\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t// updateAttributes determines the final state and returns metadata\n\t\t\t\tconst { isEntityLink } = updateAttributes(\n\t\t\t\t\tupdatedValue,\n\t\t\t\t\tsetInsertedBlockAttributes( insertedBlock?.clientId ),\n\t\t\t\t\tinsertedBlock?.attributes\n\t\t\t\t);\n\n\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\tcreateBinding();\n\t\t\t\t} else {\n\t\t\t\t\tclearBinding();\n\t\t\t\t}\n\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst hasChildren = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! select( blockEditorStore ).getBlockCount( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<DeletedNavigationWarning onCreateNew={ onCreateNew } isNotice />\n\t\t);\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for Navigation Menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__menu-inspector-controls\">\n\t\t\t{ ! hasChildren && (\n\t\t\t\t<p className=\"wp-block-navigation__menu-inspector-controls__empty-message\">\n\t\t\t\t\t{ __( 'This Navigation Menu is empty.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t<PrivateListView\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tisExpanded\n\t\t\t\tdescription={ description }\n\t\t\t\tshowAppender\n\t\t\t\tblockSettingsMenu={ LeafMoreMenu }\n\t\t\t\tadditionalBlockContent={ AdditionalBlockContent }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t\tblockEditingMode,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody title={ null }>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\t\tisManageMenusButtonDisabled\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</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../lock-unlock';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\nimport LeafMoreMenu from './leaf-more-menu';\nimport {\n\tLinkUI,\n\tupdateAttributes,\n\tuseEntityBinding,\n} from '../../navigation-link/shared';\n\nconst actionLabel =\n\t/* translators: %s: The name of a menu. */ __( \"Switch to '%s'\" );\nconst BLOCKS_WITH_LINK_UI_SUPPORT = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\nfunction AdditionalBlockContent( { block, insertedBlock, setInsertedBlock } ) {\n\tconst { updateBlockAttributes, removeBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(\n\t\tinsertedBlock?.name\n\t);\n\tconst blockWasJustInserted = insertedBlock?.clientId === block.clientId;\n\tconst showLinkControls = supportsLinkControls && blockWasJustInserted;\n\n\t// Get binding utilities for the inserted block\n\tconst { createBinding, clearBinding } = useEntityBinding( {\n\t\tclientId: insertedBlock?.clientId,\n\t\tattributes: insertedBlock?.attributes || {},\n\t} );\n\n\tif ( ! showLinkControls ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Cleanup function for auto-inserted Navigation Link blocks.\n\t *\n\t * Removes the block if it has no URL and clears the inserted block state.\n\t * This ensures consistent cleanup behavior across different contexts.\n\t */\n\tconst cleanupInsertedBlock = () => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// Follows the exact same pattern as Navigation Link block's onClose handler\n\t\t// If there is no URL then remove the auto-inserted block to avoid empty blocks\n\t\tif ( ! insertedBlock?.attributes?.url && insertedBlock?.clientId ) {\n\t\t\t// Remove the block entirely to avoid poor UX\n\t\t\t// This matches the Navigation Link block's behavior\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( null );\n\t};\n\n\tconst setInsertedBlockAttributes =\n\t\t( _insertedBlockClientId ) => ( _updatedAttributes ) => {\n\t\t\tif ( ! _insertedBlockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( _insertedBlockClientId, _updatedAttributes );\n\t\t};\n\n\t// Wrapper function to clean up original block when a new block is selected\n\tconst handleSetInsertedBlock = ( newBlock ) => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// If we have an existing inserted block and a new block is being set,\n\t\t// remove the original block to avoid duplicates\n\t\tif ( insertedBlock?.clientId && newBlock ) {\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( newBlock );\n\t};\n\n\treturn (\n\t\t<LinkUI\n\t\t\tclientId={ insertedBlock?.clientId }\n\t\t\tlink={ insertedBlock?.attributes }\n\t\t\tonBlockInsert={ handleSetInsertedBlock }\n\t\t\tonClose={ () => {\n\t\t\t\t// Use cleanup function\n\t\t\t\tcleanupInsertedBlock();\n\t\t\t} }\n\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t// updateAttributes determines the final state and returns metadata\n\t\t\t\tconst { isEntityLink, attributes: updatedAttributes } =\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\tsetInsertedBlockAttributes( insertedBlock?.clientId ),\n\t\t\t\t\t\tinsertedBlock?.attributes\n\t\t\t\t\t);\n\n\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\tcreateBinding( updatedAttributes );\n\t\t\t\t} else {\n\t\t\t\t\tclearBinding( updatedAttributes );\n\t\t\t\t}\n\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst hasChildren = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! select( blockEditorStore ).getBlockCount( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<DeletedNavigationWarning onCreateNew={ onCreateNew } isNotice />\n\t\t);\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for Navigation Menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__menu-inspector-controls\">\n\t\t\t{ ! hasChildren && (\n\t\t\t\t<p className=\"wp-block-navigation__menu-inspector-controls__empty-message\">\n\t\t\t\t\t{ __( 'This Navigation Menu is empty.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t<PrivateListView\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tisExpanded\n\t\t\t\tdescription={ description }\n\t\t\t\tshowAppender\n\t\t\t\tblockSettingsMenu={ LeafMoreMenu }\n\t\t\t\tadditionalBlockContent={ AdditionalBlockContent }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t\tblockEditingMode,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody title={ null }>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\t\tisManageMenusButtonDisabled\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</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"],
5
+ "mappings": "AAuGE,cAqEA,YArEA;AApGF;AAAA,EACC,eAAe;AAAA,EACf;AAAA,EACA,SAAS;AAAA,OACH;AACP;AAAA,EACC;AAAA,EACA,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB;AAAA,OACM;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,IAAI,eAAe;AAK5B,OAAO,4BAA4B;AACnC,SAAS,cAAc;AACvB,OAAO,8BAA8B;AACrC,OAAO,uBAAuB;AAC9B,OAAO,kBAAkB;AACzB;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,MAAM;AAAA;AAAA,EACsC,GAAI,gBAAiB;AAAA;AACjE,MAAM,8BAA8B;AAAA,EACnC;AAAA,EACA;AACD;AACA,MAAM,EAAE,gBAAgB,IAAI,OAAQ,sBAAuB;AAE3D,SAAS,uBAAwB,EAAE,OAAO,eAAe,iBAAiB,GAAI;AAC7E,QAAM,EAAE,uBAAuB,YAAY,IAC1C,YAAa,gBAAiB;AAE/B,QAAM,uBAAuB,6BAA6B;AAAA,IACzD,eAAe;AAAA,EAChB;AACA,QAAM,uBAAuB,eAAe,aAAa,MAAM;AAC/D,QAAM,mBAAmB,wBAAwB;AAGjD,QAAM,EAAE,eAAe,aAAa,IAAI,iBAAkB;AAAA,IACzD,UAAU,eAAe;AAAA,IACzB,YAAY,eAAe,cAAc,CAAC;AAAA,EAC3C,CAAE;AAEF,MAAK,CAAE,kBAAmB;AACzB,WAAO;AAAA,EACR;AAQA,QAAM,uBAAuB,MAAM;AAGlC,UAAM,wBAAwB;AAI9B,QAAK,CAAE,eAAe,YAAY,OAAO,eAAe,UAAW;AAGlE,kBAAa,cAAc,UAAU,qBAAsB;AAAA,IAC5D;AACA,qBAAkB,IAAK;AAAA,EACxB;AAEA,QAAM,6BACL,CAAE,2BAA4B,CAAE,uBAAwB;AACvD,QAAK,CAAE,wBAAyB;AAC/B;AAAA,IACD;AACA,0BAAuB,wBAAwB,kBAAmB;AAAA,EACnE;AAGD,QAAM,yBAAyB,CAAE,aAAc;AAG9C,UAAM,wBAAwB;AAI9B,QAAK,eAAe,YAAY,UAAW;AAC1C,kBAAa,cAAc,UAAU,qBAAsB;AAAA,IAC5D;AACA,qBAAkB,QAAS;AAAA,EAC5B;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,eAAe;AAAA,MAC1B,MAAO,eAAe;AAAA,MACtB,eAAgB;AAAA,MAChB,SAAU,MAAM;AAEf,6BAAqB;AAAA,MACtB;AAAA,MACA,UAAW,CAAE,iBAAkB;AAE9B,cAAM,EAAE,cAAc,YAAY,kBAAkB,IACnD;AAAA,UACC;AAAA,UACA,2BAA4B,eAAe,QAAS;AAAA,UACpD,eAAe;AAAA,QAChB;AAKD,YAAK,cAAe;AACnB,wBAAe,iBAAkB;AAAA,QAClC,OAAO;AACN,uBAAc,iBAAkB;AAAA,QACjC;AAEA,yBAAkB,IAAK;AAAA,MACxB;AAAA;AAAA,EACD;AAEF;AAEA,MAAM,cAAc,CAAE;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAO;AACN,QAAM,cAAc;AAAA,IACnB,CAAE,WAAY;AACb,aAAO,CAAC,CAAE,OAAQ,gBAAiB,EAAE,cAAe,QAAS;AAAA,IAC9D;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,EAAE,eAAe,IAAI,kBAAmB,aAAc;AAE5D,MAAK,iBAAiB,yBAA0B;AAC/C,WACC,oBAAC,4BAAyB,aAA4B,UAAQ,MAAC;AAAA,EAEjE;AAEA,MAAK,WAAY;AAChB,WAAO,oBAAC,WAAQ;AAAA,EACjB;AAEA,QAAM,cAAc,iBACjB;AAAA;AAAA,IAEA,GAAI,mCAAoC;AAAA,IACxC,gBAAgB,SAAS,GAAI,eAAgB;AAAA,EAC7C,IACA;AAAA,IACA;AAAA,EACA;AAEH,SACC,qBAAC,SAAI,WAAU,gDACZ;AAAA,KAAE,eACH,oBAAC,OAAE,WAAU,+DACV,aAAI,gCAAiC,GACxC;AAAA,IAED;AAAA,MAAC;AAAA;AAAA,QACA,cAAe;AAAA,QACf,YAAU;AAAA,QACV;AAAA,QACA,cAAY;AAAA,QACZ,mBAAoB;AAAA,QACpB,wBAAyB;AAAA;AAAA,IAC1B;AAAA,KACD;AAEF;AAEA,MAAM,wBAAwB,CAAE,UAAW;AAC1C,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,SACC,oBAAC,qBAAkB,OAAM,QACxB,+BAAC,aAAU,OAAQ,MAClB;AAAA,yBAAC,UAAO,WAAU,iDACjB;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,WAAU;AAAA,UACV,OAAQ;AAAA,UAEN,aAAI,MAAO;AAAA;AAAA,MACd;AAAA,MACE,qBAAqB,aACtB;AAAA,QAAC;AAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UAGA;AAAA,UAGA;AAAA,UACA;AAAA;AAAA,MAGD;AAAA,OAEF;AAAA,IACA,oBAAC,eAAc,GAAG,OAAQ;AAAA,KAC3B,GACD;AAEF;AAEA,IAAO,kCAAQ;",
6
6
  "names": []
7
7
  }
@@ -383,15 +383,18 @@ function NavigationLinkEdit({
383
383
  anchor: popoverAnchor,
384
384
  onRemove: removeLink,
385
385
  onChange: (updatedValue) => {
386
- const { isEntityLink } = updateAttributes(
386
+ const {
387
+ isEntityLink,
388
+ attributes: updatedAttributes
389
+ } = updateAttributes(
387
390
  updatedValue,
388
391
  setAttributes,
389
392
  attributes
390
393
  );
391
394
  if (isEntityLink) {
392
- createBinding();
395
+ createBinding(updatedAttributes);
393
396
  } else {
394
- clearBinding();
397
+ clearBinding(updatedAttributes);
395
398
  }
396
399
  }
397
400
  }