@wordpress/block-directory 5.34.0 → 5.35.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 (103) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/auto-block-uninstaller/index.js +2 -0
  3. package/build/components/auto-block-uninstaller/index.js.map +1 -1
  4. package/build/components/block-ratings/index.js +4 -2
  5. package/build/components/block-ratings/index.js.map +1 -1
  6. package/build/components/block-ratings/stars.js +3 -1
  7. package/build/components/block-ratings/stars.js.map +1 -1
  8. package/build/components/compact-list/index.js +3 -1
  9. package/build/components/compact-list/index.js.map +1 -1
  10. package/build/components/downloadable-block-icon/index.js +3 -1
  11. package/build/components/downloadable-block-icon/index.js.map +1 -1
  12. package/build/components/downloadable-block-list-item/index.js +3 -1
  13. package/build/components/downloadable-block-list-item/index.js.map +1 -1
  14. package/build/components/downloadable-block-notice/index.js +4 -2
  15. package/build/components/downloadable-block-notice/index.js.map +1 -1
  16. package/build/components/downloadable-blocks-list/index.js +4 -2
  17. package/build/components/downloadable-blocks-list/index.js.map +1 -1
  18. package/build/components/downloadable-blocks-panel/index.js +5 -3
  19. package/build/components/downloadable-blocks-panel/index.js.map +1 -1
  20. package/build/components/downloadable-blocks-panel/inserter-panel.js +3 -1
  21. package/build/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
  22. package/build/components/downloadable-blocks-panel/no-results.js +3 -1
  23. package/build/components/downloadable-blocks-panel/no-results.js.map +1 -1
  24. package/build/index.js +2 -0
  25. package/build/index.js.map +1 -1
  26. package/build/lock-unlock.js +3 -1
  27. package/build/lock-unlock.js.map +1 -1
  28. package/build/plugins/get-install-missing/index.js +5 -3
  29. package/build/plugins/get-install-missing/index.js.map +2 -2
  30. package/build/plugins/get-install-missing/install-button.js +3 -1
  31. package/build/plugins/get-install-missing/install-button.js.map +1 -1
  32. package/build/plugins/index.js +3 -1
  33. package/build/plugins/index.js.map +1 -1
  34. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js +3 -1
  35. package/build/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
  36. package/build/plugins/installed-blocks-pre-publish-panel/index.js +3 -1
  37. package/build/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
  38. package/build/store/actions.js +4 -2
  39. package/build/store/actions.js.map +1 -1
  40. package/build/store/index.js +5 -3
  41. package/build/store/index.js.map +1 -1
  42. package/build/store/load-assets.js +3 -1
  43. package/build/store/load-assets.js.map +1 -1
  44. package/build/store/reducer.js +5 -3
  45. package/build/store/reducer.js.map +1 -1
  46. package/build/store/resolvers.js +3 -1
  47. package/build/store/resolvers.js.map +1 -1
  48. package/build/store/selectors.js +5 -3
  49. package/build/store/selectors.js.map +1 -1
  50. package/build/store/utils/get-plugin-url.js +2 -0
  51. package/build/store/utils/get-plugin-url.js.map +1 -1
  52. package/build-module/components/auto-block-uninstaller/index.js +1 -0
  53. package/build-module/components/auto-block-uninstaller/index.js.map +1 -1
  54. package/build-module/components/block-ratings/index.js +3 -2
  55. package/build-module/components/block-ratings/index.js.map +1 -1
  56. package/build-module/components/block-ratings/stars.js +2 -1
  57. package/build-module/components/block-ratings/stars.js.map +1 -1
  58. package/build-module/components/compact-list/index.js +2 -1
  59. package/build-module/components/compact-list/index.js.map +1 -1
  60. package/build-module/components/downloadable-block-icon/index.js +2 -1
  61. package/build-module/components/downloadable-block-icon/index.js.map +1 -1
  62. package/build-module/components/downloadable-block-list-item/index.js +2 -1
  63. package/build-module/components/downloadable-block-list-item/index.js.map +1 -1
  64. package/build-module/components/downloadable-block-notice/index.js +3 -2
  65. package/build-module/components/downloadable-block-notice/index.js.map +1 -1
  66. package/build-module/components/downloadable-blocks-list/index.js +3 -2
  67. package/build-module/components/downloadable-blocks-list/index.js.map +1 -1
  68. package/build-module/components/downloadable-blocks-panel/index.js +4 -3
  69. package/build-module/components/downloadable-blocks-panel/index.js.map +1 -1
  70. package/build-module/components/downloadable-blocks-panel/inserter-panel.js +2 -1
  71. package/build-module/components/downloadable-blocks-panel/inserter-panel.js.map +1 -1
  72. package/build-module/components/downloadable-blocks-panel/no-results.js +2 -1
  73. package/build-module/components/downloadable-blocks-panel/no-results.js.map +1 -1
  74. package/build-module/index.js +1 -0
  75. package/build-module/index.js.map +1 -1
  76. package/build-module/lock-unlock.js +2 -1
  77. package/build-module/lock-unlock.js.map +1 -1
  78. package/build-module/plugins/get-install-missing/index.js +4 -3
  79. package/build-module/plugins/get-install-missing/index.js.map +2 -2
  80. package/build-module/plugins/get-install-missing/install-button.js +2 -1
  81. package/build-module/plugins/get-install-missing/install-button.js.map +1 -1
  82. package/build-module/plugins/index.js +2 -1
  83. package/build-module/plugins/index.js.map +1 -1
  84. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js +2 -1
  85. package/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js.map +1 -1
  86. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js +2 -1
  87. package/build-module/plugins/installed-blocks-pre-publish-panel/index.js.map +1 -1
  88. package/build-module/store/actions.js +3 -2
  89. package/build-module/store/actions.js.map +1 -1
  90. package/build-module/store/index.js +4 -3
  91. package/build-module/store/index.js.map +1 -1
  92. package/build-module/store/load-assets.js +2 -1
  93. package/build-module/store/load-assets.js.map +1 -1
  94. package/build-module/store/reducer.js +4 -3
  95. package/build-module/store/reducer.js.map +1 -1
  96. package/build-module/store/resolvers.js +2 -1
  97. package/build-module/store/resolvers.js.map +1 -1
  98. package/build-module/store/selectors.js +4 -3
  99. package/build-module/store/selectors.js.map +1 -1
  100. package/build-module/store/utils/get-plugin-url.js +1 -0
  101. package/build-module/store/utils/get-plugin-url.js.map +1 -1
  102. package/package.json +21 -21
  103. package/src/plugins/get-install-missing/index.js +0 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 5.35.0 (2025-11-12)
6
+
5
7
  ## 5.34.0 (2025-10-29)
6
8
 
7
9
  ## 5.33.0 (2025-10-17)
@@ -15,6 +15,8 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/auto-block-uninstaller/index.js
18
20
  var auto_block_uninstaller_exports = {};
19
21
  __export(auto_block_uninstaller_exports, {
20
22
  default: () => AutoBlockUninstaller
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/auto-block-uninstaller/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { unregisterBlockType } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport default function AutoBlockUninstaller() {\n\tconst { uninstallBlockType } = useDispatch( blockDirectoryStore );\n\n\tconst shouldRemoveBlockTypes = useSelect( ( select ) => {\n\t\tconst { isAutosavingPost, isSavingPost } = select( editorStore );\n\t\treturn isSavingPost() && ! isAutosavingPost();\n\t}, [] );\n\n\tconst unusedBlockTypes = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).getUnusedBlockTypes(),\n\t\t[]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( shouldRemoveBlockTypes && unusedBlockTypes.length ) {\n\t\t\tunusedBlockTypes.forEach( ( blockType ) => {\n\t\t\t\tuninstallBlockType( blockType );\n\t\t\t\tunregisterBlockType( blockType.name );\n\t\t\t} );\n\t\t}\n\t}, [ shouldRemoveBlockTypes ] );\n\n\treturn null;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAoC;AACpC,kBAAuC;AACvC,qBAA0B;AAC1B,oBAAqC;AAKrC,mBAA6C;AAE9B,SAAR,uBAAwC;AAC9C,QAAM,EAAE,mBAAmB,QAAI,yBAAa,aAAAA,KAAoB;AAEhE,QAAM,6BAAyB,uBAAW,CAAE,WAAY;AACvD,UAAM,EAAE,kBAAkB,aAAa,IAAI,OAAQ,cAAAC,KAAY;AAC/D,WAAO,aAAa,KAAK,CAAE,iBAAiB;AAAA,EAC7C,GAAG,CAAC,CAAE;AAEN,QAAM,uBAAmB;AAAA,IACxB,CAAE,WAAY,OAAQ,aAAAD,KAAoB,EAAE,oBAAoB;AAAA,IAChE,CAAC;AAAA,EACF;AAEA,gCAAW,MAAM;AAChB,QAAK,0BAA0B,iBAAiB,QAAS;AACxD,uBAAiB,QAAS,CAAE,cAAe;AAC1C,2BAAoB,SAAU;AAC9B,+CAAqB,UAAU,IAAK;AAAA,MACrC,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,sBAAuB,CAAE;AAE9B,SAAO;AACR;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,oBAAoC;AACpC,kBAAuC;AACvC,qBAA0B;AAC1B,oBAAqC;AAKrC,mBAA6C;AAE9B,SAAR,uBAAwC;AAC9C,QAAM,EAAE,mBAAmB,QAAI,yBAAa,aAAAA,KAAoB;AAEhE,QAAM,6BAAyB,uBAAW,CAAE,WAAY;AACvD,UAAM,EAAE,kBAAkB,aAAa,IAAI,OAAQ,cAAAC,KAAY;AAC/D,WAAO,aAAa,KAAK,CAAE,iBAAiB;AAAA,EAC7C,GAAG,CAAC,CAAE;AAEN,QAAM,uBAAmB;AAAA,IACxB,CAAE,WAAY,OAAQ,aAAAD,KAAoB,EAAE,oBAAoB;AAAA,IAChE,CAAC;AAAA,EACF;AAEA,gCAAW,MAAM;AAChB,QAAK,0BAA0B,iBAAiB,QAAS;AACxD,uBAAiB,QAAS,CAAE,cAAe;AAC1C,2BAAoB,SAAU;AAC9B,+CAAqB,UAAU,IAAK;AAAA,MACrC,CAAE;AAAA,IACH;AAAA,EACD,GAAG,CAAE,sBAAuB,CAAE;AAE9B,SAAO;AACR;",
6
6
  "names": ["blockDirectoryStore", "editorStore"]
7
7
  }
@@ -25,15 +25,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/components/block-ratings/index.js
28
30
  var block_ratings_exports = {};
29
31
  __export(block_ratings_exports, {
30
32
  BlockRatings: () => BlockRatings,
31
33
  default: () => block_ratings_default
32
34
  });
33
35
  module.exports = __toCommonJS(block_ratings_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_stars = __toESM(require("./stars"));
36
- const BlockRatings = ({ rating }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-block-ratings", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stars.default, { rating }) });
37
+ var import_jsx_runtime = require("react/jsx-runtime");
38
+ var BlockRatings = ({ rating }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "block-directory-block-ratings", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stars.default, { rating }) });
37
39
  var block_ratings_default = BlockRatings;
38
40
  // Annotate the CommonJS export names for ESM import in node:
39
41
  0 && (module.exports = {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-ratings/index.js"],
4
4
  "sourcesContent": ["/**\n * Internal dependencies\n */\nimport Stars from './stars';\n\nexport const BlockRatings = ( { rating } ) => (\n\t<span className=\"block-directory-block-ratings\">\n\t\t<Stars rating={ rating } />\n\t</span>\n);\n\nexport default BlockRatings;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOE;AAJF,mBAAkB;AAEX,MAAM,eAAe,CAAE,EAAE,OAAO,MACtC,4CAAC,UAAK,WAAU,iCACf,sDAAC,aAAAA,SAAA,EAAM,QAAkB,GAC1B;AAGD,IAAO,wBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAkB;AAIhB;AAFK,IAAM,eAAe,CAAE,EAAE,OAAO,MACtC,4CAAC,UAAK,WAAU,iCACf,sDAAC,aAAAA,SAAA,EAAM,QAAkB,GAC1B;AAGD,IAAO,wBAAQ;",
6
6
  "names": ["Stars"]
7
7
  }
@@ -15,14 +15,16 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/block-ratings/stars.js
18
20
  var stars_exports = {};
19
21
  __export(stars_exports, {
20
22
  default: () => stars_default
21
23
  });
22
24
  module.exports = __toCommonJS(stars_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_i18n = require("@wordpress/i18n");
25
26
  var import_icons = require("@wordpress/icons");
27
+ var import_jsx_runtime = require("react/jsx-runtime");
26
28
  function Stars({ rating }) {
27
29
  const stars = Math.round(rating / 0.5) * 0.5;
28
30
  const fullStarCount = Math.floor(rating);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/block-ratings/stars.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Icon, starEmpty, starFilled, starHalf } from '@wordpress/icons';\n\nfunction Stars( { rating } ) {\n\tconst stars = Math.round( rating / 0.5 ) * 0.5;\n\n\tconst fullStarCount = Math.floor( rating );\n\tconst halfStarCount = Math.ceil( rating - fullStarCount );\n\tconst emptyStarCount = 5 - ( fullStarCount + halfStarCount );\n\n\treturn (\n\t\t<span\n\t\t\taria-label={ sprintf(\n\t\t\t\t/* translators: %s: number of stars. */\n\t\t\t\t__( '%s out of 5 stars' ),\n\t\t\t\tstars\n\t\t\t) }\n\t\t>\n\t\t\t{ Array.from( { length: fullStarCount } ).map( ( _, i ) => (\n\t\t\t\t<Icon\n\t\t\t\t\tkey={ `full_stars_${ i }` }\n\t\t\t\t\tclassName=\"block-directory-block-ratings__star-full\"\n\t\t\t\t\ticon={ starFilled }\n\t\t\t\t\tsize={ 16 }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ Array.from( { length: halfStarCount } ).map( ( _, i ) => (\n\t\t\t\t<Icon\n\t\t\t\t\tkey={ `half_stars_${ i }` }\n\t\t\t\t\tclassName=\"block-directory-block-ratings__star-half-full\"\n\t\t\t\t\ticon={ starHalf }\n\t\t\t\t\tsize={ 16 }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t\t{ Array.from( { length: emptyStarCount } ).map( ( _, i ) => (\n\t\t\t\t<Icon\n\t\t\t\t\tkey={ `empty_stars_${ i }` }\n\t\t\t\t\tclassName=\"block-directory-block-ratings__star-empty\"\n\t\t\t\t\ticon={ starEmpty }\n\t\t\t\t\tsize={ 16 }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</span>\n\t);\n}\n\nexport default Stars;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcE;AAXF,kBAA4B;AAC5B,mBAAsD;AAEtD,SAAS,MAAO,EAAE,OAAO,GAAI;AAC5B,QAAM,QAAQ,KAAK,MAAO,SAAS,GAAI,IAAI;AAE3C,QAAM,gBAAgB,KAAK,MAAO,MAAO;AACzC,QAAM,gBAAgB,KAAK,KAAM,SAAS,aAAc;AACxD,QAAM,iBAAiB,KAAM,gBAAgB;AAE7C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAa;AAAA;AAAA,YAEZ,gBAAI,mBAAoB;AAAA,QACxB;AAAA,MACD;AAAA,MAEE;AAAA,cAAM,KAAM,EAAE,QAAQ,cAAc,CAAE,EAAE,IAAK,CAAE,GAAG,MACnD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,cAAe,CAAE;AAAA,QAIxB,CACC;AAAA,QACA,MAAM,KAAM,EAAE,QAAQ,cAAc,CAAE,EAAE,IAAK,CAAE,GAAG,MACnD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,cAAe,CAAE;AAAA,QAIxB,CACC;AAAA,QACA,MAAM,KAAM,EAAE,QAAQ,eAAe,CAAE,EAAE,IAAK,CAAE,GAAG,MACpD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,eAAgB,CAAE;AAAA,QAIzB,CACC;AAAA;AAAA;AAAA,EACH;AAEF;AAEA,IAAO,gBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,mBAAsD;AAUpD;AARF,SAAS,MAAO,EAAE,OAAO,GAAI;AAC5B,QAAM,QAAQ,KAAK,MAAO,SAAS,GAAI,IAAI;AAE3C,QAAM,gBAAgB,KAAK,MAAO,MAAO;AACzC,QAAM,gBAAgB,KAAK,KAAM,SAAS,aAAc;AACxD,QAAM,iBAAiB,KAAM,gBAAgB;AAE7C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,kBAAa;AAAA;AAAA,YAEZ,gBAAI,mBAAoB;AAAA,QACxB;AAAA,MACD;AAAA,MAEE;AAAA,cAAM,KAAM,EAAE,QAAQ,cAAc,CAAE,EAAE,IAAK,CAAE,GAAG,MACnD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,cAAe,CAAE;AAAA,QAIxB,CACC;AAAA,QACA,MAAM,KAAM,EAAE,QAAQ,cAAc,CAAE,EAAE,IAAK,CAAE,GAAG,MACnD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,cAAe,CAAE;AAAA,QAIxB,CACC;AAAA,QACA,MAAM,KAAM,EAAE,QAAQ,eAAe,CAAE,EAAE,IAAK,CAAE,GAAG,MACpD;AAAA,UAAC;AAAA;AAAA,YAEA,WAAU;AAAA,YACV,MAAO;AAAA,YACP,MAAO;AAAA;AAAA,UAHD,eAAgB,CAAE;AAAA,QAIzB,CACC;AAAA;AAAA;AAAA,EACH;AAEF;AAEA,IAAO,gBAAQ;",
6
6
  "names": []
7
7
  }
@@ -25,14 +25,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/components/compact-list/index.js
28
30
  var compact_list_exports = {};
29
31
  __export(compact_list_exports, {
30
32
  default: () => CompactList
31
33
  });
32
34
  module.exports = __toCommonJS(compact_list_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
35
  var import_i18n = require("@wordpress/i18n");
35
36
  var import_downloadable_block_icon = __toESM(require("../downloadable-block-icon"));
37
+ var import_jsx_runtime = require("react/jsx-runtime");
36
38
  function CompactList({ items }) {
37
39
  if (!items.length) {
38
40
  return null;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/compact-list/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlockIcon from '../downloadable-block-icon';\n\nexport default function CompactList( { items } ) {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul className=\"block-directory-compact-list\">\n\t\t\t{ items.map( ( { icon, id, title, author } ) => (\n\t\t\t\t<li key={ id } className=\"block-directory-compact-list__item\">\n\t\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\n\t\t\t\t\t<div className=\"block-directory-compact-list__item-details\">\n\t\t\t\t\t\t<div className=\"block-directory-compact-list__item-title\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"block-directory-compact-list__item-author\">\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: Name of the block author. */\n\t\t\t\t\t\t\t\t__( 'By %s' ),\n\t\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBK;AAhBL,kBAA4B;AAK5B,qCAAkC;AAEnB,SAAR,YAA8B,EAAE,MAAM,GAAI;AAChD,MAAK,CAAE,MAAM,QAAS;AACrB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,QAAG,WAAU,gCACX,gBAAM,IAAK,CAAE,EAAE,MAAM,IAAI,OAAO,OAAO,MACxC,6CAAC,QAAc,WAAU,sCACxB;AAAA,gDAAC,+BAAAA,SAAA,EAAsB,MAAc,OAAgB;AAAA,IAErD,6CAAC,SAAI,WAAU,8CACd;AAAA,kDAAC,SAAI,WAAU,4CACZ,iBACH;AAAA,MACA,4CAAC,SAAI,WAAU,6CACZ;AAAA;AAAA,YAED,gBAAI,OAAQ;AAAA,QACZ;AAAA,MACD,GACD;AAAA,OACD;AAAA,OAdS,EAeV,CACC,GACH;AAEF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAK5B,qCAAkC;AAW7B;AATU,SAAR,YAA8B,EAAE,MAAM,GAAI;AAChD,MAAK,CAAE,MAAM,QAAS;AACrB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,QAAG,WAAU,gCACX,gBAAM,IAAK,CAAE,EAAE,MAAM,IAAI,OAAO,OAAO,MACxC,6CAAC,QAAc,WAAU,sCACxB;AAAA,gDAAC,+BAAAA,SAAA,EAAsB,MAAc,OAAgB;AAAA,IAErD,6CAAC,SAAI,WAAU,8CACd;AAAA,kDAAC,SAAI,WAAU,4CACZ,iBACH;AAAA,MACA,4CAAC,SAAI,WAAU,6CACZ;AAAA;AAAA,YAED,gBAAI,OAAQ;AAAA,QACZ;AAAA,MACD,GACD;AAAA,OACD;AAAA,OAdS,EAeV,CACC,GACH;AAEF;",
6
6
  "names": ["DownloadableBlockIcon"]
7
7
  }
@@ -15,13 +15,15 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/downloadable-block-icon/index.js
18
20
  var downloadable_block_icon_exports = {};
19
21
  __export(downloadable_block_icon_exports, {
20
22
  default: () => downloadable_block_icon_default
21
23
  });
22
24
  module.exports = __toCommonJS(downloadable_block_icon_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_block_editor = require("@wordpress/block-editor");
26
+ var import_jsx_runtime = require("react/jsx-runtime");
25
27
  function DownloadableBlockIcon({ icon }) {
26
28
  const className = "block-directory-downloadable-block-icon";
27
29
  return icon.match(/\.(jpeg|jpg|gif|png|svg)(?:\?.*)?$/) !== null ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { className, src: icon, alt: "" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockIcon, { className, icon, showColors: true });
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-block-icon/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BlockIcon } from '@wordpress/block-editor';\n\nfunction DownloadableBlockIcon( { icon } ) {\n\tconst className = 'block-directory-downloadable-block-icon';\n\treturn icon.match( /\\.(jpeg|jpg|gif|png|svg)(?:\\?.*)?$/ ) !== null ? (\n\t\t<img className={ className } src={ icon } alt=\"\" />\n\t) : (\n\t\t<BlockIcon className={ className } icon={ icon } showColors />\n\t);\n}\n\nexport default DownloadableBlockIcon;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE;AALF,0BAA0B;AAE1B,SAAS,sBAAuB,EAAE,KAAK,GAAI;AAC1C,QAAM,YAAY;AAClB,SAAO,KAAK,MAAO,oCAAqC,MAAM,OAC7D,4CAAC,SAAI,WAAwB,KAAM,MAAO,KAAI,IAAG,IAEjD,4CAAC,iCAAU,WAAwB,MAAc,YAAU,MAAC;AAE9D;AAEA,IAAO,kCAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA0B;AAKxB;AAHF,SAAS,sBAAuB,EAAE,KAAK,GAAI;AAC1C,QAAM,YAAY;AAClB,SAAO,KAAK,MAAO,oCAAqC,MAAM,OAC7D,4CAAC,SAAI,WAAwB,KAAM,MAAO,KAAI,IAAG,IAEjD,4CAAC,iCAAU,WAAwB,MAAc,YAAU,MAAC;AAE9D;AAEA,IAAO,kCAAQ;",
6
6
  "names": []
7
7
  }
@@ -25,12 +25,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/components/downloadable-block-list-item/index.js
28
30
  var downloadable_block_list_item_exports = {};
29
31
  __export(downloadable_block_list_item_exports, {
30
32
  default: () => downloadable_block_list_item_default
31
33
  });
32
34
  module.exports = __toCommonJS(downloadable_block_list_item_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
35
  var import_clsx = __toESM(require("clsx"));
35
36
  var import_i18n = require("@wordpress/i18n");
36
37
  var import_components = require("@wordpress/components");
@@ -42,6 +43,7 @@ var import_block_ratings = __toESM(require("../block-ratings"));
42
43
  var import_downloadable_block_icon = __toESM(require("../downloadable-block-icon"));
43
44
  var import_downloadable_block_notice = __toESM(require("../downloadable-block-notice"));
44
45
  var import_store = require("../../store");
46
+ var import_jsx_runtime = require("react/jsx-runtime");
45
47
  function getDownloadableBlockLabel({ title, rating, ratingCount }, { hasNotice, isInstalled, isInstalling }) {
46
48
  const stars = Math.round(rating / 0.5) * 0.5;
47
49
  if (!isInstalled && hasNotice) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-block-list-item/index.js"],
4
4
  "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tTooltip,\n\tSpinner,\n\tVisuallyHidden,\n\tComposite,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockRatings from '../block-ratings';\nimport DownloadableBlockIcon from '../downloadable-block-icon';\nimport DownloadableBlockNotice from '../downloadable-block-notice';\nimport { store as blockDirectoryStore } from '../../store';\n\n// Return the appropriate block item label, given the block data and status.\nfunction getDownloadableBlockLabel(\n\t{ title, rating, ratingCount },\n\t{ hasNotice, isInstalled, isInstalling }\n) {\n\tconst stars = Math.round( rating / 0.5 ) * 0.5;\n\n\tif ( ! isInstalled && hasNotice ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Retry installing %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalled ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Add %s.', decodeEntities( title ) );\n\t}\n\n\tif ( isInstalling ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Installing %s.', decodeEntities( title ) );\n\t}\n\n\t// No ratings yet, just use the title.\n\tif ( ratingCount < 1 ) {\n\t\t/* translators: %s: block title */\n\t\treturn sprintf( 'Install %s.', decodeEntities( title ) );\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: block title, 2: average rating, 3: total ratings count. */\n\t\t_n(\n\t\t\t'Install %1$s. %2$s stars with %3$s review.',\n\t\t\t'Install %1$s. %2$s stars with %3$s reviews.',\n\t\t\tratingCount\n\t\t),\n\t\tdecodeEntities( title ),\n\t\tstars,\n\t\tratingCount\n\t);\n}\n\nfunction DownloadableBlockListItem( { item, onClick } ) {\n\tconst { author, description, icon, rating, title } = item;\n\t// getBlockType returns a block object if this block exists, or null if not.\n\tconst isInstalled = !! getBlockType( item.name );\n\n\tconst { hasNotice, isInstalling, isInstallable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getErrorNoticeForBlock, isInstalling: isBlockInstalling } =\n\t\t\t\tselect( blockDirectoryStore );\n\t\t\tconst notice = getErrorNoticeForBlock( item.id );\n\t\t\tconst hasFatal = notice && notice.isFatal;\n\t\t\treturn {\n\t\t\t\thasNotice: !! notice,\n\t\t\t\tisInstalling: isBlockInstalling( item.id ),\n\t\t\t\tisInstallable: ! hasFatal,\n\t\t\t};\n\t\t},\n\t\t[ item ]\n\t);\n\n\tlet statusText = '';\n\tif ( isInstalled ) {\n\t\tstatusText = __( 'Installed!' );\n\t} else if ( isInstalling ) {\n\t\tstatusText = __( 'Installing\u2026' );\n\t}\n\n\tconst itemLabel = getDownloadableBlockLabel( item, {\n\t\thasNotice,\n\t\tisInstalled,\n\t\tisInstalling,\n\t} );\n\n\treturn (\n\t\t<Tooltip placement=\"top\" text={ itemLabel }>\n\t\t\t<Composite.Item\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-directory-downloadable-block-list-item',\n\t\t\t\t\tisInstalling && 'is-installing'\n\t\t\t\t) }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tdisabled={ isInstalling || ! isInstallable }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tonClick();\n\t\t\t\t} }\n\t\t\t\taria-label={ itemLabel }\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"option\"\n\t\t\t>\n\t\t\t\t<div className=\"block-directory-downloadable-block-list-item__icon\">\n\t\t\t\t\t<DownloadableBlockIcon icon={ icon } title={ title } />\n\t\t\t\t\t{ isInstalling ? (\n\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__spinner\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<BlockRatings rating={ rating } />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__details\">\n\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__title\">\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: 1: block title. 2: author name. */\n\t\t\t\t\t\t\t\t__( '%1$s <span>by %2$s</span>' ),\n\t\t\t\t\t\t\t\tdecodeEntities( title ),\n\t\t\t\t\t\t\t\tauthor\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tspan: (\n\t\t\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__author\" />\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ hasNotice ? (\n\t\t\t\t\t\t<DownloadableBlockNotice block={ item } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"block-directory-downloadable-block-list-item__desc\">\n\t\t\t\t\t\t\t\t{ !! statusText\n\t\t\t\t\t\t\t\t\t? statusText\n\t\t\t\t\t\t\t\t\t: decodeEntities( description ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{ isInstallable &&\n\t\t\t\t\t\t\t\t! ( isInstalled || isInstalling ) && (\n\t\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Install block' ) }\n\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\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</span>\n\t\t\t</Composite.Item>\n\t\t</Tooltip>\n\t);\n}\n\nexport default DownloadableBlockListItem;\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["blockDirectoryStore", "clsx", "DownloadableBlockIcon", "BlockRatings", "DownloadableBlockNotice"]
7
7
  }
@@ -15,17 +15,19 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/downloadable-block-notice/index.js
18
20
  var downloadable_block_notice_exports = {};
19
21
  __export(downloadable_block_notice_exports, {
20
22
  DownloadableBlockNotice: () => DownloadableBlockNotice,
21
23
  default: () => downloadable_block_notice_default
22
24
  });
23
25
  module.exports = __toCommonJS(downloadable_block_notice_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
26
  var import_i18n = require("@wordpress/i18n");
26
27
  var import_data = require("@wordpress/data");
27
28
  var import_store = require("../../store");
28
- const DownloadableBlockNotice = ({ block }) => {
29
+ var import_jsx_runtime = require("react/jsx-runtime");
30
+ var DownloadableBlockNotice = ({ block }) => {
29
31
  const errorNotice = (0, import_data.useSelect)(
30
32
  (select) => select(import_store.store).getErrorNoticeForBlock(block.id),
31
33
  [block]
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-block-notice/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport const DownloadableBlockNotice = ( { block } ) => {\n\tconst errorNotice = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockDirectoryStore ).getErrorNoticeForBlock( block.id ),\n\t\t[ block ]\n\t);\n\n\tif ( ! errorNotice ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"block-directory-downloadable-block-notice\">\n\t\t\t<div className=\"block-directory-downloadable-block-notice__content\">\n\t\t\t\t{ errorNotice.message }\n\t\t\t\t{ errorNotice.isFatal\n\t\t\t\t\t? ' ' + __( 'Try reloading the page.' )\n\t\t\t\t\t: null }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default DownloadableBlockNotice;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBE;AApBF,kBAAmB;AACnB,kBAA0B;AAK1B,mBAA6C;AAEtC,MAAM,0BAA0B,CAAE,EAAE,MAAM,MAAO;AACvD,QAAM,kBAAc;AAAA,IACnB,CAAE,WACD,OAAQ,aAAAA,KAAoB,EAAE,uBAAwB,MAAM,EAAG;AAAA,IAChE,CAAE,KAAM;AAAA,EACT;AAEA,MAAK,CAAE,aAAc;AACpB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,SAAI,WAAU,6CACd,uDAAC,SAAI,WAAU,sDACZ;AAAA,gBAAY;AAAA,IACZ,YAAY,UACX,UAAM,gBAAI,yBAA0B,IACpC;AAAA,KACJ,GACD;AAEF;AAEA,IAAO,oCAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,kBAA0B;AAK1B,mBAA6C;AAc3C;AAZK,IAAM,0BAA0B,CAAE,EAAE,MAAM,MAAO;AACvD,QAAM,kBAAc;AAAA,IACnB,CAAE,WACD,OAAQ,aAAAA,KAAoB,EAAE,uBAAwB,MAAM,EAAG;AAAA,IAChE,CAAE,KAAM;AAAA,EACT;AAEA,MAAK,CAAE,aAAc;AACpB,WAAO;AAAA,EACR;AAEA,SACC,4CAAC,SAAI,WAAU,6CACd,uDAAC,SAAI,WAAU,sDACZ;AAAA,gBAAY;AAAA,IACZ,YAAY,UACX,UAAM,gBAAI,yBAA0B,IACpC;AAAA,KACJ,GACD;AAEF;AAEA,IAAO,oCAAQ;",
6
6
  "names": ["blockDirectoryStore"]
7
7
  }
@@ -25,19 +25,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/components/downloadable-blocks-list/index.js
28
30
  var downloadable_blocks_list_exports = {};
29
31
  __export(downloadable_blocks_list_exports, {
30
32
  default: () => downloadable_blocks_list_default
31
33
  });
32
34
  module.exports = __toCommonJS(downloadable_blocks_list_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
35
  var import_i18n = require("@wordpress/i18n");
35
36
  var import_components = require("@wordpress/components");
36
37
  var import_blocks = require("@wordpress/blocks");
37
38
  var import_data = require("@wordpress/data");
38
39
  var import_downloadable_block_list_item = __toESM(require("../downloadable-block-list-item"));
39
40
  var import_store = require("../../store");
40
- const noop = () => {
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var noop = () => {
41
43
  };
42
44
  function DownloadableBlocksList({ items, onHover = noop, onSelect }) {
43
45
  const { installBlockType } = (0, import_data.useDispatch)(import_store.store);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-blocks-list/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Composite } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlockListItem from '../downloadable-block-list-item';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst noop = () => {};\n\nfunction DownloadableBlocksList( { items, onHover = noop, onSelect } ) {\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-directory-downloadable-blocks-list\"\n\t\t\taria-label={ __( 'Blocks available for install' ) }\n\t\t>\n\t\t\t{ items.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DownloadableBlockListItem\n\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t// Check if the block is registered (`getBlockType`\n\t\t\t\t\t\t\t// will return an object). If so, insert the block.\n\t\t\t\t\t\t\t// This prevents installing existing plugins.\n\t\t\t\t\t\t\tif ( getBlockType( item.name ) ) {\n\t\t\t\t\t\t\t\tonSelect( item );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tinstallBlockType( item ).then( ( success ) => {\n\t\t\t\t\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\t\t\t\t\tonSelect( item );\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}\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default DownloadableBlocksList;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BK;AA5BL,kBAAmB;AACnB,wBAA0B;AAC1B,oBAA6B;AAC7B,kBAA4B;AAK5B,0CAAsC;AACtC,mBAA6C;AAE7C,MAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,uBAAwB,EAAE,OAAO,UAAU,MAAM,SAAS,GAAI;AACtE,QAAM,EAAE,iBAAiB,QAAI,yBAAa,aAAAA,KAAoB;AAE9D,MAAK,CAAE,MAAM,QAAS;AACrB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,WAAU;AAAA,MACV,kBAAa,gBAAI,8BAA+B;AAAA,MAE9C,gBAAM,IAAK,CAAE,SAAU;AACxB,eACC;AAAA,UAAC,oCAAAC;AAAA,UAAA;AAAA,YAEA,SAAU,MAAM;AAIf,sBAAK,4BAAc,KAAK,IAAK,GAAI;AAChC,yBAAU,IAAK;AAAA,cAChB,OAAO;AACN,iCAAkB,IAAK,EAAE,KAAM,CAAE,YAAa;AAC7C,sBAAK,SAAU;AACd,6BAAU,IAAK;AAAA,kBAChB;AAAA,gBACD,CAAE;AAAA,cACH;AACA,sBAAS,IAAK;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAjBM,KAAK;AAAA,QAkBZ;AAAA,MAEF,CAAE;AAAA;AAAA,EACH;AAEF;AAEA,IAAO,mCAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAA0B;AAC1B,oBAA6B;AAC7B,kBAA4B;AAK5B,0CAAsC;AACtC,mBAA6C;AAmBxC;AAjBL,IAAM,OAAO,MAAM;AAAC;AAEpB,SAAS,uBAAwB,EAAE,OAAO,UAAU,MAAM,SAAS,GAAI;AACtE,QAAM,EAAE,iBAAiB,QAAI,yBAAa,aAAAA,KAAoB;AAE9D,MAAK,CAAE,MAAM,QAAS;AACrB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAK;AAAA,MACL,WAAU;AAAA,MACV,kBAAa,gBAAI,8BAA+B;AAAA,MAE9C,gBAAM,IAAK,CAAE,SAAU;AACxB,eACC;AAAA,UAAC,oCAAAC;AAAA,UAAA;AAAA,YAEA,SAAU,MAAM;AAIf,sBAAK,4BAAc,KAAK,IAAK,GAAI;AAChC,yBAAU,IAAK;AAAA,cAChB,OAAO;AACN,iCAAkB,IAAK,EAAE,KAAM,CAAE,YAAa;AAC7C,sBAAK,SAAU;AACd,6BAAU,IAAK;AAAA,kBAChB;AAAA,gBACD,CAAE;AAAA,cACH;AACA,sBAAS,IAAK;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAjBM,KAAK;AAAA,QAkBZ;AAAA,MAEF,CAAE;AAAA;AAAA,EACH;AAEF;AAEA,IAAO,mCAAQ;",
6
6
  "names": ["blockDirectoryStore", "DownloadableBlockListItem"]
7
7
  }
@@ -25,12 +25,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/components/downloadable-blocks-panel/index.js
28
30
  var downloadable_blocks_panel_exports = {};
29
31
  __export(downloadable_blocks_panel_exports, {
30
32
  default: () => DownloadableBlocksPanel
31
33
  });
32
34
  module.exports = __toCommonJS(downloadable_blocks_panel_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
35
  var import_i18n = require("@wordpress/i18n");
35
36
  var import_components = require("@wordpress/components");
36
37
  var import_core_data = require("@wordpress/core-data");
@@ -40,8 +41,9 @@ var import_downloadable_blocks_list = __toESM(require("../downloadable-blocks-li
40
41
  var import_inserter_panel = __toESM(require("./inserter-panel"));
41
42
  var import_no_results = __toESM(require("./no-results"));
42
43
  var import_store = require("../../store");
43
- const EMPTY_ARRAY = [];
44
- const useDownloadableBlocks = (filterValue) => (0, import_data.useSelect)(
44
+ var import_jsx_runtime = require("react/jsx-runtime");
45
+ var EMPTY_ARRAY = [];
46
+ var useDownloadableBlocks = (filterValue) => (0, import_data.useSelect)(
45
47
  (select) => {
46
48
  const {
47
49
  getDownloadableBlocks,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-blocks-panel/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DownloadableBlocksList from '../downloadable-blocks-list';\nimport DownloadableBlocksInserterPanel from './inserter-panel';\nimport DownloadableBlocksNoResults from './no-results';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nconst useDownloadableBlocks = ( filterValue ) =>\n\tuseSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetDownloadableBlocks,\n\t\t\t\tisRequestingDownloadableBlocks,\n\t\t\t\tgetInstalledBlockTypes,\n\t\t\t} = select( blockDirectoryStore );\n\n\t\t\tconst hasPermission = select( coreStore ).canUser(\n\t\t\t\t'read',\n\t\t\t\t'block-directory/search'\n\t\t\t);\n\n\t\t\tlet downloadableBlocks = EMPTY_ARRAY;\n\t\t\tif ( hasPermission ) {\n\t\t\t\tdownloadableBlocks = getDownloadableBlocks( filterValue );\n\n\t\t\t\t// Filter out blocks that are already installed.\n\t\t\t\tconst installedBlockTypes = getInstalledBlockTypes();\n\t\t\t\tconst installableBlocks = downloadableBlocks.filter(\n\t\t\t\t\t( { name } ) => {\n\t\t\t\t\t\t// Check if the block has just been installed, in which case it\n\t\t\t\t\t\t// should still show in the list to avoid suddenly disappearing.\n\t\t\t\t\t\t// `installedBlockTypes` only returns blocks stored in state\n\t\t\t\t\t\t// immediately after installation, not all installed blocks.\n\t\t\t\t\t\tconst isJustInstalled = installedBlockTypes.some(\n\t\t\t\t\t\t\t( blockType ) => blockType.name === name\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst isPreviouslyInstalled = getBlockType( name );\n\t\t\t\t\t\treturn isJustInstalled || ! isPreviouslyInstalled;\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Keep identity of the `downloadableBlocks` array if nothing was filtered out\n\t\t\t\tif ( installableBlocks.length !== downloadableBlocks.length ) {\n\t\t\t\t\tdownloadableBlocks = installableBlocks;\n\t\t\t\t}\n\n\t\t\t\t// Return identical empty array when there are no blocks\n\t\t\t\tif ( downloadableBlocks.length === 0 ) {\n\t\t\t\t\tdownloadableBlocks = EMPTY_ARRAY;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasPermission,\n\t\t\t\tdownloadableBlocks,\n\t\t\t\tisLoading: isRequestingDownloadableBlocks( filterValue ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\nexport default function DownloadableBlocksPanel( {\n\tonSelect,\n\tonHover,\n\thasLocalBlocks,\n\tisTyping,\n\tfilterValue,\n} ) {\n\tconst { hasPermission, downloadableBlocks, isLoading } =\n\t\tuseDownloadableBlocks( filterValue );\n\n\tif ( hasPermission === undefined || isLoading || isTyping ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ hasPermission && ! hasLocalBlocks && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'No results available from your installed blocks.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel has-blocks-loading\">\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( false === hasPermission ) {\n\t\tif ( ! hasLocalBlocks ) {\n\t\t\treturn <DownloadableBlocksNoResults />;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tif ( downloadableBlocks.length === 0 ) {\n\t\treturn hasLocalBlocks ? null : <DownloadableBlocksNoResults />;\n\t}\n\n\treturn (\n\t\t<DownloadableBlocksInserterPanel\n\t\t\tdownloadableItems={ downloadableBlocks }\n\t\t\thasLocalBlocks={ hasLocalBlocks }\n\t\t>\n\t\t\t<DownloadableBlocksList\n\t\t\t\titems={ downloadableBlocks }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t</DownloadableBlocksInserterPanel>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuFK;AApFL,kBAAmB;AACnB,wBAAwB;AACxB,uBAAmC;AACnC,kBAA0B;AAC1B,oBAA6B;AAK7B,sCAAmC;AACnC,4BAA4C;AAC5C,wBAAwC;AACxC,mBAA6C;AAE7C,MAAM,cAAc,CAAC;AAErB,MAAM,wBAAwB,CAAE,oBAC/B;AAAA,EACC,CAAE,WAAY;AACb,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD,IAAI,OAAQ,aAAAA,KAAoB;AAEhC,UAAM,gBAAgB,OAAQ,iBAAAC,KAAU,EAAE;AAAA,MACzC;AAAA,MACA;AAAA,IACD;AAEA,QAAI,qBAAqB;AACzB,QAAK,eAAgB;AACpB,2BAAqB,sBAAuB,WAAY;AAGxD,YAAM,sBAAsB,uBAAuB;AACnD,YAAM,oBAAoB,mBAAmB;AAAA,QAC5C,CAAE,EAAE,KAAK,MAAO;AAKf,gBAAM,kBAAkB,oBAAoB;AAAA,YAC3C,CAAE,cAAe,UAAU,SAAS;AAAA,UACrC;AACA,gBAAM,4BAAwB,4BAAc,IAAK;AACjD,iBAAO,mBAAmB,CAAE;AAAA,QAC7B;AAAA,MACD;AAGA,UAAK,kBAAkB,WAAW,mBAAmB,QAAS;AAC7D,6BAAqB;AAAA,MACtB;AAGA,UAAK,mBAAmB,WAAW,GAAI;AACtC,6BAAqB;AAAA,MACtB;AAAA,IACD;AAEA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,WAAW,+BAAgC,WAAY;AAAA,IACxD;AAAA,EACD;AAAA,EACA,CAAE,WAAY;AACf;AAEc,SAAR,wBAA0C;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,eAAe,oBAAoB,UAAU,IACpD,sBAAuB,WAAY;AAEpC,MAAK,kBAAkB,UAAa,aAAa,UAAW;AAC3D,WACC,4EACG;AAAA,uBAAiB,CAAE,kBACpB,4EACC;AAAA,oDAAC,OAAE,WAAU,uDACV;AAAA,UACD;AAAA,QACD,GACD;AAAA,QACA,4CAAC,SAAI,WAAU,mDAAkD;AAAA,SAClE;AAAA,MAED,4CAAC,SAAI,WAAU,gEACd,sDAAC,6BAAQ,GACV;AAAA,OACD;AAAA,EAEF;AAEA,MAAK,UAAU,eAAgB;AAC9B,QAAK,CAAE,gBAAiB;AACvB,aAAO,4CAAC,kBAAAC,SAAA,EAA4B;AAAA,IACrC;AAEA,WAAO;AAAA,EACR;AAEA,MAAK,mBAAmB,WAAW,GAAI;AACtC,WAAO,iBAAiB,OAAO,4CAAC,kBAAAA,SAAA,EAA4B;AAAA,EAC7D;AAEA,SACC;AAAA,IAAC,sBAAAC;AAAA,IAAA;AAAA,MACA,mBAAoB;AAAA,MACpB;AAAA,MAEA;AAAA,QAAC,gCAAAC;AAAA,QAAA;AAAA,UACA,OAAQ;AAAA,UACR;AAAA,UACA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAAwB;AACxB,uBAAmC;AACnC,kBAA0B;AAC1B,oBAA6B;AAK7B,sCAAmC;AACnC,4BAA4C;AAC5C,wBAAwC;AACxC,mBAA6C;AAwExC;AAtEL,IAAM,cAAc,CAAC;AAErB,IAAM,wBAAwB,CAAE,oBAC/B;AAAA,EACC,CAAE,WAAY;AACb,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD,IAAI,OAAQ,aAAAA,KAAoB;AAEhC,UAAM,gBAAgB,OAAQ,iBAAAC,KAAU,EAAE;AAAA,MACzC;AAAA,MACA;AAAA,IACD;AAEA,QAAI,qBAAqB;AACzB,QAAK,eAAgB;AACpB,2BAAqB,sBAAuB,WAAY;AAGxD,YAAM,sBAAsB,uBAAuB;AACnD,YAAM,oBAAoB,mBAAmB;AAAA,QAC5C,CAAE,EAAE,KAAK,MAAO;AAKf,gBAAM,kBAAkB,oBAAoB;AAAA,YAC3C,CAAE,cAAe,UAAU,SAAS;AAAA,UACrC;AACA,gBAAM,4BAAwB,4BAAc,IAAK;AACjD,iBAAO,mBAAmB,CAAE;AAAA,QAC7B;AAAA,MACD;AAGA,UAAK,kBAAkB,WAAW,mBAAmB,QAAS;AAC7D,6BAAqB;AAAA,MACtB;AAGA,UAAK,mBAAmB,WAAW,GAAI;AACtC,6BAAqB;AAAA,MACtB;AAAA,IACD;AAEA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,WAAW,+BAAgC,WAAY;AAAA,IACxD;AAAA,EACD;AAAA,EACA,CAAE,WAAY;AACf;AAEc,SAAR,wBAA0C;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,eAAe,oBAAoB,UAAU,IACpD,sBAAuB,WAAY;AAEpC,MAAK,kBAAkB,UAAa,aAAa,UAAW;AAC3D,WACC,4EACG;AAAA,uBAAiB,CAAE,kBACpB,4EACC;AAAA,oDAAC,OAAE,WAAU,uDACV;AAAA,UACD;AAAA,QACD,GACD;AAAA,QACA,4CAAC,SAAI,WAAU,mDAAkD;AAAA,SAClE;AAAA,MAED,4CAAC,SAAI,WAAU,gEACd,sDAAC,6BAAQ,GACV;AAAA,OACD;AAAA,EAEF;AAEA,MAAK,UAAU,eAAgB;AAC9B,QAAK,CAAE,gBAAiB;AACvB,aAAO,4CAAC,kBAAAC,SAAA,EAA4B;AAAA,IACrC;AAEA,WAAO;AAAA,EACR;AAEA,MAAK,mBAAmB,WAAW,GAAI;AACtC,WAAO,iBAAiB,OAAO,4CAAC,kBAAAA,SAAA,EAA4B;AAAA,EAC7D;AAEA,SACC;AAAA,IAAC,sBAAAC;AAAA,IAAA;AAAA,MACA,mBAAoB;AAAA,MACpB;AAAA,MAEA;AAAA,QAAC,gCAAAC;AAAA,QAAA;AAAA,UACA,OAAQ;AAAA,UACR;AAAA,UACA;AAAA;AAAA,MACD;AAAA;AAAA,EACD;AAEF;",
6
6
  "names": ["blockDirectoryStore", "coreStore", "DownloadableBlocksNoResults", "DownloadableBlocksInserterPanel", "DownloadableBlocksList"]
7
7
  }
@@ -15,15 +15,17 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/downloadable-blocks-panel/inserter-panel.js
18
20
  var inserter_panel_exports = {};
19
21
  __export(inserter_panel_exports, {
20
22
  default: () => inserter_panel_default
21
23
  });
22
24
  module.exports = __toCommonJS(inserter_panel_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_i18n = require("@wordpress/i18n");
25
26
  var import_element = require("@wordpress/element");
26
27
  var import_a11y = require("@wordpress/a11y");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
27
29
  function DownloadableBlocksInserterPanel({
28
30
  children,
29
31
  downloadableItems,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-blocks-panel/inserter-panel.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { speak } from '@wordpress/a11y';\n\nfunction DownloadableBlocksInserterPanel( {\n\tchildren,\n\tdownloadableItems,\n\thasLocalBlocks,\n} ) {\n\tconst count = downloadableItems.length;\n\tuseEffect( () => {\n\t\tspeak(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %d: number of available blocks. */\n\t\t\t\t_n(\n\t\t\t\t\t'%d additional block is available to install.',\n\t\t\t\t\t'%d additional blocks are available to install.',\n\t\t\t\t\tcount\n\t\t\t\t),\n\t\t\t\tcount\n\t\t\t)\n\t\t);\n\t}, [ count ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hasLocalBlocks && (\n\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__no-local\">\n\t\t\t\t\t{ __( 'No results available from your installed blocks.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-separator\" />\n\n\t\t\t<div className=\"block-directory-downloadable-blocks-panel\">\n\t\t\t\t<div className=\"block-directory-downloadable-blocks-panel__header\">\n\t\t\t\t\t<h2 className=\"block-directory-downloadable-blocks-panel__title\">\n\t\t\t\t\t\t{ __( 'Available to install' ) }\n\t\t\t\t\t</h2>\n\t\t\t\t\t<p className=\"block-directory-downloadable-blocks-panel__description\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select a block to install and add it to your post.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default DownloadableBlocksInserterPanel;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4BE;AAzBF,kBAAgC;AAChC,qBAA0B;AAC1B,kBAAsB;AAEtB,SAAS,gCAAiC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,QAAQ,kBAAkB;AAChC,gCAAW,MAAM;AAChB;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAE,KAAM,CAAE;AAEb,SACC,4EACG;AAAA,KAAE,kBACH,4CAAC,OAAE,WAAU,uDACV,8BAAI,kDAAmD,GAC1D;AAAA,IAGD,4CAAC,SAAI,WAAU,mDAAkD;AAAA,IAEjE,6CAAC,SAAI,WAAU,6CACd;AAAA,mDAAC,SAAI,WAAU,qDACd;AAAA,oDAAC,QAAG,WAAU,oDACX,8BAAI,sBAAuB,GAC9B;AAAA,QACA,4CAAC,OAAE,WAAU,0DACV;AAAA,UACD;AAAA,QACD,GACD;AAAA,SACD;AAAA,MACE;AAAA,OACH;AAAA,KACD;AAEF;AAEA,IAAO,yBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAgC;AAChC,qBAA0B;AAC1B,kBAAsB;AAuBpB;AArBF,SAAS,gCAAiC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,QAAQ,kBAAkB;AAChC,gCAAW,MAAM;AAChB;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD,GAAG,CAAE,KAAM,CAAE;AAEb,SACC,4EACG;AAAA,KAAE,kBACH,4CAAC,OAAE,WAAU,uDACV,8BAAI,kDAAmD,GAC1D;AAAA,IAGD,4CAAC,SAAI,WAAU,mDAAkD;AAAA,IAEjE,6CAAC,SAAI,WAAU,6CACd;AAAA,mDAAC,SAAI,WAAU,qDACd;AAAA,oDAAC,QAAG,WAAU,oDACX,8BAAI,sBAAuB,GAC9B;AAAA,QACA,4CAAC,OAAE,WAAU,0DACV;AAAA,UACD;AAAA,QACD,GACD;AAAA,SACD;AAAA,MACE;AAAA,OACH;AAAA,KACD;AAEF;AAEA,IAAO,yBAAQ;",
6
6
  "names": []
7
7
  }
@@ -15,14 +15,16 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/components/downloadable-blocks-panel/no-results.js
18
20
  var no_results_exports = {};
19
21
  __export(no_results_exports, {
20
22
  default: () => no_results_default
21
23
  });
22
24
  module.exports = __toCommonJS(no_results_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_i18n = require("@wordpress/i18n");
25
26
  var import_components = require("@wordpress/components");
27
+ var import_jsx_runtime = require("react/jsx-runtime");
26
28
  function DownloadableBlocksNoResults() {
27
29
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
28
30
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "block-editor-inserter__no-results", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: (0, import_i18n.__)("No results found.") }) }),
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/downloadable-blocks-panel/no-results.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Tip, ExternalLink } from '@wordpress/components';\n\nfunction DownloadableBlocksNoResults() {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"block-editor-inserter__no-results\">\n\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t</div>\n\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t<Tip>\n\t\t\t\t\t{ __( 'Interested in creating your own block?' ) }\n\t\t\t\t\t<br />\n\t\t\t\t\t<ExternalLink href=\"https://developer.wordpress.org/block-editor/\">\n\t\t\t\t\t\t{ __( 'Get started here' ) }.\n\t\t\t\t\t</ExternalLink>\n\t\t\t\t</Tip>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default DownloadableBlocksNoResults;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQE;AALF,kBAAmB;AACnB,wBAAkC;AAElC,SAAS,8BAA8B;AACtC,SACC,4EACC;AAAA,gDAAC,SAAI,WAAU,qCACd,sDAAC,OAAI,8BAAI,mBAAoB,GAAG,GACjC;AAAA,IACA,4CAAC,SAAI,WAAU,+BACd,uDAAC,yBACE;AAAA,0BAAI,wCAAyC;AAAA,MAC/C,4CAAC,QAAG;AAAA,MACJ,6CAAC,kCAAa,MAAK,iDAChB;AAAA,4BAAI,kBAAmB;AAAA,QAAG;AAAA,SAC7B;AAAA,OACD,GACD;AAAA,KACD;AAEF;AAEA,IAAO,qBAAQ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAAkC;AAIhC;AAFF,SAAS,8BAA8B;AACtC,SACC,4EACC;AAAA,gDAAC,SAAI,WAAU,qCACd,sDAAC,OAAI,8BAAI,mBAAoB,GAAG,GACjC;AAAA,IACA,4CAAC,SAAI,WAAU,+BACd,uDAAC,yBACE;AAAA,0BAAI,wCAAyC;AAAA,MAC/C,4CAAC,QAAG;AAAA,MACJ,6CAAC,kCAAa,MAAK,iDAChB;AAAA,4BAAI,kBAAmB;AAAA,QAAG;AAAA,SAC7B;AAAA,OACD,GACD;AAAA,KACD;AAEF;AAEA,IAAO,qBAAQ;",
6
6
  "names": []
7
7
  }
package/build/index.js CHANGED
@@ -15,6 +15,8 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/index.js
18
20
  var index_exports = {};
19
21
  __export(index_exports, {
20
22
  store: () => import_store.store
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.js"],
4
4
  "sourcesContent": ["/**\n * Internal dependencies\n */\nimport './plugins';\n\nexport { store } from './store';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAO;AAEP,mBAAsB;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAAO;AAEP,mBAAsB;",
6
6
  "names": []
7
7
  }
@@ -15,6 +15,8 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/lock-unlock.js
18
20
  var lock_unlock_exports = {};
19
21
  __export(lock_unlock_exports, {
20
22
  lock: () => lock,
@@ -22,7 +24,7 @@ __export(lock_unlock_exports, {
22
24
  });
23
25
  module.exports = __toCommonJS(lock_unlock_exports);
24
26
  var import_private_apis = require("@wordpress/private-apis");
25
- const { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
27
+ var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
26
28
  "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
27
29
  "@wordpress/block-directory"
28
30
  );
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/lock-unlock.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.',\n\t\t'@wordpress/block-directory'\n\t);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAiE;AAE1D,MAAM,EAAE,MAAM,OAAO,QAC3B;AAAA,EACC;AAAA,EACA;AACD;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAiE;AAE1D,IAAM,EAAE,MAAM,OAAO,QAC3B;AAAA,EACC;AAAA,EACA;AACD;",
6
6
  "names": []
7
7
  }
@@ -25,12 +25,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // packages/block-directory/src/plugins/get-install-missing/index.js
28
30
  var get_install_missing_exports = {};
29
31
  __export(get_install_missing_exports, {
30
32
  default: () => get_install_missing_default
31
33
  });
32
34
  module.exports = __toCommonJS(get_install_missing_exports);
33
- var import_jsx_runtime = require("react/jsx-runtime");
34
35
  var import_i18n = require("@wordpress/i18n");
35
36
  var import_components = require("@wordpress/components");
36
37
  var import_blocks = require("@wordpress/blocks");
@@ -40,7 +41,8 @@ var import_core_data = require("@wordpress/core-data");
40
41
  var import_block_editor = require("@wordpress/block-editor");
41
42
  var import_install_button = __toESM(require("./install-button"));
42
43
  var import_store = require("../../store");
43
- const getInstallMissing = (OriginalComponent) => (props) => {
44
+ var import_jsx_runtime = require("react/jsx-runtime");
45
+ var getInstallMissing = (OriginalComponent) => (props) => {
44
46
  const { originalName } = props.attributes;
45
47
  const { block, hasPermission } = (0, import_data.useSelect)(
46
48
  (select) => {
@@ -63,7 +65,7 @@ const getInstallMissing = (OriginalComponent) => (props) => {
63
65
  }
64
66
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ModifiedWarning, { ...props, originalBlock: block });
65
67
  };
66
- const ModifiedWarning = ({ originalBlock, ...props }) => {
68
+ var ModifiedWarning = ({ originalBlock, ...props }) => {
67
69
  const { originalName, originalUndelimitedContent, clientId } = props.attributes;
68
70
  const { replaceBlock } = (0, import_data.useDispatch)(import_block_editor.store);
69
71
  const convertToHTML = () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugins/get-install-missing/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RawHTML } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport InstallButton from './install-button';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst getInstallMissing = ( OriginalComponent ) => ( props ) => {\n\tconst { originalName } = props.attributes;\n\t// Disable reason: This is a valid component, but it's mistaken for a callback.\n\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\tconst { block, hasPermission } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDownloadableBlocks } = select( blockDirectoryStore );\n\t\t\tconst blocks = getDownloadableBlocks(\n\t\t\t\t'block:' + originalName\n\t\t\t).filter( ( { name } ) => originalName === name );\n\t\t\treturn {\n\t\t\t\thasPermission: select( coreStore ).canUser(\n\t\t\t\t\t'read',\n\t\t\t\t\t'block-directory/search'\n\t\t\t\t),\n\t\t\t\tblock: blocks.length && blocks[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ originalName ]\n\t);\n\n\t// The user can't install blocks, or the block isn't available for download.\n\tif ( ! hasPermission || ! block ) {\n\t\treturn <OriginalComponent { ...props } />;\n\t}\n\n\treturn <ModifiedWarning { ...props } originalBlock={ block } />;\n};\n\nconst ModifiedWarning = ( { originalBlock, ...props } ) => {\n\tconst { originalName, originalUndelimitedContent, clientId } =\n\t\tprops.attributes;\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst convertToHTML = () => {\n\t\treplaceBlock(\n\t\t\tprops.clientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tlet messageHTML = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__(\n\t\t\t'Your site doesn\u2019t include support for the %s block. You can try installing the block or remove it entirely.'\n\t\t),\n\t\toriginalBlock.title || originalName\n\t);\n\tconst actions = [\n\t\t<InstallButton\n\t\t\tkey=\"install\"\n\t\t\tblock={ originalBlock }\n\t\t\tattributes={ props.attributes }\n\t\t\tclientId={ props.clientId }\n\t\t/>,\n\t];\n\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn\u2019t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalBlock.title || originalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tkey=\"convert\"\n\t\t\t\tonClick={ convertToHTML }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t>\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</div>\n\t);\n};\n\nexport default getInstallMissing;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CS;AAzCT,kBAA4B;AAC5B,wBAAuB;AACvB,oBAA4B;AAC5B,qBAAwB;AACxB,kBAAuC;AACvC,uBAAmC;AACnC,0BAIO;AAKP,4BAA0B;AAC1B,mBAA6C;AAE7C,MAAM,oBAAoB,CAAE,sBAAuB,CAAE,UAAW;AAC/D,QAAM,EAAE,aAAa,IAAI,MAAM;AAG/B,QAAM,EAAE,OAAO,cAAc,QAAI;AAAA,IAChC,CAAE,WAAY;AACb,YAAM,EAAE,sBAAsB,IAAI,OAAQ,aAAAA,KAAoB;AAC9D,YAAM,SAAS;AAAA,QACd,WAAW;AAAA,MACZ,EAAE,OAAQ,CAAE,EAAE,KAAK,MAAO,iBAAiB,IAAK;AAChD,aAAO;AAAA,QACN,eAAe,OAAQ,iBAAAC,KAAU,EAAE;AAAA,UAClC;AAAA,UACA;AAAA,QACD;AAAA,QACA,OAAO,OAAO,UAAU,OAAQ,CAAE;AAAA,MACnC;AAAA,IACD;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAGA,MAAK,CAAE,iBAAiB,CAAE,OAAQ;AACjC,WAAO,4CAAC,qBAAoB,GAAG,OAAQ;AAAA,EACxC;AAEA,SAAO,4CAAC,mBAAkB,GAAG,OAAQ,eAAgB,OAAQ;AAC9D;AAEA,MAAM,kBAAkB,CAAE,EAAE,eAAe,GAAG,MAAM,MAAO;AAC1D,QAAM,EAAE,cAAc,4BAA4B,SAAS,IAC1D,MAAM;AACP,QAAM,EAAE,aAAa,QAAI,yBAAa,oBAAAC,KAAiB;AACvD,QAAM,gBAAgB,MAAM;AAC3B;AAAA,MACC,MAAM;AAAA,UACN,2BAAa,aAAa;AAAA,QACzB,SAAS;AAAA,MACV,CAAE;AAAA,IACH;AAAA,EACD;AAEA,QAAM,aAAa,CAAC,CAAE;AACtB,QAAM,mBAAe;AAAA,IACpB,CAAE,WAAY;AACb,YAAM,EAAE,oBAAoB,qBAAqB,IAChD,OAAQ,oBAAAA,KAAiB;AAE1B,aAAO;AAAA,QACN;AAAA,QACA,qBAAsB,QAAS;AAAA,MAChC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,MAAI,kBAAc;AAAA;AAAA,QAEjB;AAAA,MACC;AAAA,IACD;AAAA,IACA,cAAc,SAAS;AAAA,EACxB;AACA,QAAM,UAAU;AAAA,IACf;AAAA,MAAC,sBAAAC;AAAA,MAAA;AAAA,QAEA,OAAQ;AAAA,QACR,YAAa,MAAM;AAAA,QACnB,UAAW,MAAM;AAAA;AAAA,MAHb;AAAA,IAIL;AAAA,EACD;AAEA,MAAK,cAAc,cAAe;AACjC,sBAAc;AAAA;AAAA,UAEb;AAAA,QACC;AAAA,MACD;AAAA,MACA,cAAc,SAAS;AAAA,IACxB;AACA,YAAQ;AAAA,MACP;AAAA,QAAC;AAAA;AAAA,UACA,uBAAqB;AAAA,UAErB,SAAU;AAAA,UACV,SAAQ;AAAA,UAEN,8BAAI,cAAe;AAAA;AAAA,QAJjB;AAAA,MAKL;AAAA,IACD;AAAA,EACD;AAEA,SACC,6CAAC,SAAM,OAAG,mCAAc,GACvB;AAAA,gDAAC,+BAAQ,SAAsB,uBAAa;AAAA,IAC5C,4CAAC,0BAAU,sCAA4B;AAAA,KACxC;AAEF;AAEA,IAAO,8BAAQ;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RawHTML } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport InstallButton from './install-button';\nimport { store as blockDirectoryStore } from '../../store';\n\nconst getInstallMissing = ( OriginalComponent ) => ( props ) => {\n\tconst { originalName } = props.attributes;\n\tconst { block, hasPermission } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDownloadableBlocks } = select( blockDirectoryStore );\n\t\t\tconst blocks = getDownloadableBlocks(\n\t\t\t\t'block:' + originalName\n\t\t\t).filter( ( { name } ) => originalName === name );\n\t\t\treturn {\n\t\t\t\thasPermission: select( coreStore ).canUser(\n\t\t\t\t\t'read',\n\t\t\t\t\t'block-directory/search'\n\t\t\t\t),\n\t\t\t\tblock: blocks.length && blocks[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ originalName ]\n\t);\n\n\t// The user can't install blocks, or the block isn't available for download.\n\tif ( ! hasPermission || ! block ) {\n\t\treturn <OriginalComponent { ...props } />;\n\t}\n\n\treturn <ModifiedWarning { ...props } originalBlock={ block } />;\n};\n\nconst ModifiedWarning = ( { originalBlock, ...props } ) => {\n\tconst { originalName, originalUndelimitedContent, clientId } =\n\t\tprops.attributes;\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst convertToHTML = () => {\n\t\treplaceBlock(\n\t\t\tprops.clientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn canInsertBlockType(\n\t\t\t\t'core/html',\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tlet messageHTML = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__(\n\t\t\t'Your site doesn\u2019t include support for the %s block. You can try installing the block or remove it entirely.'\n\t\t),\n\t\toriginalBlock.title || originalName\n\t);\n\tconst actions = [\n\t\t<InstallButton\n\t\t\tkey=\"install\"\n\t\t\tblock={ originalBlock }\n\t\t\tattributes={ props.attributes }\n\t\t\tclientId={ props.clientId }\n\t\t/>,\n\t];\n\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t/* translators: %s: block name */\n\t\t\t__(\n\t\t\t\t'Your site doesn\u2019t include support for the %s block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely.'\n\t\t\t),\n\t\t\toriginalBlock.title || originalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tkey=\"convert\"\n\t\t\t\tonClick={ convertToHTML }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t>\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</div>\n\t);\n};\n\nexport default getInstallMissing;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,wBAAuB;AACvB,oBAA4B;AAC5B,qBAAwB;AACxB,kBAAuC;AACvC,uBAAmC;AACnC,0BAIO;AAKP,4BAA0B;AAC1B,mBAA6C;AAuBpC;AArBT,IAAM,oBAAoB,CAAE,sBAAuB,CAAE,UAAW;AAC/D,QAAM,EAAE,aAAa,IAAI,MAAM;AAC/B,QAAM,EAAE,OAAO,cAAc,QAAI;AAAA,IAChC,CAAE,WAAY;AACb,YAAM,EAAE,sBAAsB,IAAI,OAAQ,aAAAA,KAAoB;AAC9D,YAAM,SAAS;AAAA,QACd,WAAW;AAAA,MACZ,EAAE,OAAQ,CAAE,EAAE,KAAK,MAAO,iBAAiB,IAAK;AAChD,aAAO;AAAA,QACN,eAAe,OAAQ,iBAAAC,KAAU,EAAE;AAAA,UAClC;AAAA,UACA;AAAA,QACD;AAAA,QACA,OAAO,OAAO,UAAU,OAAQ,CAAE;AAAA,MACnC;AAAA,IACD;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAGA,MAAK,CAAE,iBAAiB,CAAE,OAAQ;AACjC,WAAO,4CAAC,qBAAoB,GAAG,OAAQ;AAAA,EACxC;AAEA,SAAO,4CAAC,mBAAkB,GAAG,OAAQ,eAAgB,OAAQ;AAC9D;AAEA,IAAM,kBAAkB,CAAE,EAAE,eAAe,GAAG,MAAM,MAAO;AAC1D,QAAM,EAAE,cAAc,4BAA4B,SAAS,IAC1D,MAAM;AACP,QAAM,EAAE,aAAa,QAAI,yBAAa,oBAAAC,KAAiB;AACvD,QAAM,gBAAgB,MAAM;AAC3B;AAAA,MACC,MAAM;AAAA,UACN,2BAAa,aAAa;AAAA,QACzB,SAAS;AAAA,MACV,CAAE;AAAA,IACH;AAAA,EACD;AAEA,QAAM,aAAa,CAAC,CAAE;AACtB,QAAM,mBAAe;AAAA,IACpB,CAAE,WAAY;AACb,YAAM,EAAE,oBAAoB,qBAAqB,IAChD,OAAQ,oBAAAA,KAAiB;AAE1B,aAAO;AAAA,QACN;AAAA,QACA,qBAAsB,QAAS;AAAA,MAChC;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,MAAI,kBAAc;AAAA;AAAA,QAEjB;AAAA,MACC;AAAA,IACD;AAAA,IACA,cAAc,SAAS;AAAA,EACxB;AACA,QAAM,UAAU;AAAA,IACf;AAAA,MAAC,sBAAAC;AAAA,MAAA;AAAA,QAEA,OAAQ;AAAA,QACR,YAAa,MAAM;AAAA,QACnB,UAAW,MAAM;AAAA;AAAA,MAHb;AAAA,IAIL;AAAA,EACD;AAEA,MAAK,cAAc,cAAe;AACjC,sBAAc;AAAA;AAAA,UAEb;AAAA,QACC;AAAA,MACD;AAAA,MACA,cAAc,SAAS;AAAA,IACxB;AACA,YAAQ;AAAA,MACP;AAAA,QAAC;AAAA;AAAA,UACA,uBAAqB;AAAA,UAErB,SAAU;AAAA,UACV,SAAQ;AAAA,UAEN,8BAAI,cAAe;AAAA;AAAA,QAJjB;AAAA,MAKL;AAAA,IACD;AAAA,EACD;AAEA,SACC,6CAAC,SAAM,OAAG,mCAAc,GACvB;AAAA,gDAAC,+BAAQ,SAAsB,uBAAa;AAAA,IAC5C,4CAAC,0BAAU,sCAA4B;AAAA,KACxC;AAEF;AAEA,IAAO,8BAAQ;",
6
6
  "names": ["blockDirectoryStore", "coreStore", "blockEditorStore", "InstallButton"]
7
7
  }
@@ -15,18 +15,20 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // packages/block-directory/src/plugins/get-install-missing/install-button.js
18
20
  var install_button_exports = {};
19
21
  __export(install_button_exports, {
20
22
  default: () => InstallButton
21
23
  });
22
24
  module.exports = __toCommonJS(install_button_exports);
23
- var import_jsx_runtime = require("react/jsx-runtime");
24
25
  var import_i18n = require("@wordpress/i18n");
25
26
  var import_components = require("@wordpress/components");
26
27
  var import_blocks = require("@wordpress/blocks");
27
28
  var import_data = require("@wordpress/data");
28
29
  var import_block_editor = require("@wordpress/block-editor");
29
30
  var import_store = require("../../store");
31
+ var import_jsx_runtime = require("react/jsx-runtime");
30
32
  function InstallButton({ attributes, block, clientId }) {
31
33
  const isInstallingBlock = (0, import_data.useSelect)(
32
34
  (select) => select(import_store.store).isInstalling(block.id),
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugins/get-install-missing/install-button.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { createBlock, getBlockType, parse } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as blockDirectoryStore } from '../../store';\n\nexport default function InstallButton( { attributes, block, clientId } ) {\n\tconst isInstallingBlock = useSelect(\n\t\t( select ) => select( blockDirectoryStore ).isInstalling( block.id ),\n\t\t[ block.id ]\n\t);\n\tconst { installBlockType } = useDispatch( blockDirectoryStore );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tonClick={ () =>\n\t\t\t\tinstallBlockType( block ).then( ( success ) => {\n\t\t\t\t\tif ( success ) {\n\t\t\t\t\t\tconst blockType = getBlockType( block.name );\n\t\t\t\t\t\tconst [ originalBlock ] = parse(\n\t\t\t\t\t\t\tattributes.originalContent\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( originalBlock && blockType ) {\n\t\t\t\t\t\t\treplaceBlock(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\tblockType.name,\n\t\t\t\t\t\t\t\t\toriginalBlock.attributes,\n\t\t\t\t\t\t\t\t\toriginalBlock.innerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t\taccessibleWhenDisabled\n\t\t\tdisabled={ isInstallingBlock }\n\t\t\tisBusy={ isInstallingBlock }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %s: block name */\n\t\t\t\t__( 'Install %s' ),\n\t\t\t\tblock.title\n\t\t\t) }\n\t\t</Button>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBE;AApBF,kBAA4B;AAC5B,wBAAuB;AACvB,oBAAiD;AACjD,kBAAuC;AACvC,0BAA0C;AAK1C,mBAA6C;AAE9B,SAAR,cAAgC,EAAE,YAAY,OAAO,SAAS,GAAI;AACxE,QAAM,wBAAoB;AAAA,IACzB,CAAE,WAAY,OAAQ,aAAAA,KAAoB,EAAE,aAAc,MAAM,EAAG;AAAA,IACnE,CAAE,MAAM,EAAG;AAAA,EACZ;AACA,QAAM,EAAE,iBAAiB,QAAI,yBAAa,aAAAA,KAAoB;AAC9D,QAAM,EAAE,aAAa,QAAI,yBAAa,oBAAAC,KAAiB;AAEvD,SACC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,SAAU,MACT,iBAAkB,KAAM,EAAE,KAAM,CAAE,YAAa;AAC9C,YAAK,SAAU;AACd,gBAAM,gBAAY,4BAAc,MAAM,IAAK;AAC3C,gBAAM,CAAE,aAAc,QAAI;AAAA,YACzB,WAAW;AAAA,UACZ;AACA,cAAK,iBAAiB,WAAY;AACjC;AAAA,cACC;AAAA,kBACA;AAAA,gBACC,UAAU;AAAA,gBACV,cAAc;AAAA,gBACd,cAAc;AAAA,cACf;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD,CAAE;AAAA,MAEH,wBAAsB;AAAA,MACtB,UAAW;AAAA,MACX,QAAS;AAAA,MACT,SAAQ;AAAA,MAEN;AAAA;AAAA,YAED,gBAAI,YAAa;AAAA,QACjB,MAAM;AAAA,MACP;AAAA;AAAA,EACD;AAEF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,wBAAuB;AACvB,oBAAiD;AACjD,kBAAuC;AACvC,0BAA0C;AAK1C,mBAA6C;AAW3C;AATa,SAAR,cAAgC,EAAE,YAAY,OAAO,SAAS,GAAI;AACxE,QAAM,wBAAoB;AAAA,IACzB,CAAE,WAAY,OAAQ,aAAAA,KAAoB,EAAE,aAAc,MAAM,EAAG;AAAA,IACnE,CAAE,MAAM,EAAG;AAAA,EACZ;AACA,QAAM,EAAE,iBAAiB,QAAI,yBAAa,aAAAA,KAAoB;AAC9D,QAAM,EAAE,aAAa,QAAI,yBAAa,oBAAAC,KAAiB;AAEvD,SACC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,SAAU,MACT,iBAAkB,KAAM,EAAE,KAAM,CAAE,YAAa;AAC9C,YAAK,SAAU;AACd,gBAAM,gBAAY,4BAAc,MAAM,IAAK;AAC3C,gBAAM,CAAE,aAAc,QAAI;AAAA,YACzB,WAAW;AAAA,UACZ;AACA,cAAK,iBAAiB,WAAY;AACjC;AAAA,cACC;AAAA,kBACA;AAAA,gBACC,UAAU;AAAA,gBACV,cAAc;AAAA,gBACd,cAAc;AAAA,cACf;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD,CAAE;AAAA,MAEH,wBAAsB;AAAA,MACtB,UAAW;AAAA,MACX,QAAS;AAAA,MACT,SAAQ;AAAA,MAEN;AAAA;AAAA,YAED,gBAAI,YAAa;AAAA,QACjB,MAAM;AAAA,MACP;AAAA;AAAA,EACD;AAEF;",
6
6
  "names": ["blockDirectoryStore", "blockEditorStore"]
7
7
  }
@@ -20,13 +20,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
20
20
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
21
  mod
22
22
  ));
23
- var import_jsx_runtime = require("react/jsx-runtime");
23
+
24
+ // packages/block-directory/src/plugins/index.js
24
25
  var import_plugins = require("@wordpress/plugins");
25
26
  var import_hooks = require("@wordpress/hooks");
26
27
  var import_auto_block_uninstaller = __toESM(require("../components/auto-block-uninstaller"));
27
28
  var import_inserter_menu_downloadable_blocks_panel = __toESM(require("./inserter-menu-downloadable-blocks-panel"));
28
29
  var import_installed_blocks_pre_publish_panel = __toESM(require("./installed-blocks-pre-publish-panel"));
29
30
  var import_get_install_missing = __toESM(require("./get-install-missing"));
31
+ var import_jsx_runtime = require("react/jsx-runtime");
30
32
  (0, import_plugins.registerPlugin)("block-directory", {
31
33
  // The icon is explicitly set to undefined to prevent PluginPrePublishPanel
32
34
  // from rendering the fallback icon pluginIcon.
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/plugins/index.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { registerPlugin } from '@wordpress/plugins';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport AutoBlockUninstaller from '../components/auto-block-uninstaller';\nimport InserterMenuDownloadableBlocksPanel from './inserter-menu-downloadable-blocks-panel';\nimport InstalledBlocksPrePublishPanel from './installed-blocks-pre-publish-panel';\nimport getInstallMissing from './get-install-missing';\n\nregisterPlugin( 'block-directory', {\n\t// The icon is explicitly set to undefined to prevent PluginPrePublishPanel\n\t// from rendering the fallback icon pluginIcon.\n\ticon: undefined,\n\trender() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<AutoBlockUninstaller />\n\t\t\t\t<InserterMenuDownloadableBlocksPanel />\n\t\t\t\t<InstalledBlocksPrePublishPanel />\n\t\t\t</>\n\t\t);\n\t},\n} );\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'block-directory/fallback',\n\t( settings, name ) => {\n\t\tif ( name !== 'core/missing' ) {\n\t\t\treturn settings;\n\t\t}\n\t\tsettings.edit = getInstallMissing( settings.edit );\n\n\t\treturn settings;\n\t}\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAoBG;AAjBH,qBAA+B;AAC/B,mBAA0B;AAK1B,oCAAiC;AACjC,qDAAgD;AAChD,gDAA2C;AAC3C,iCAA8B;AAAA,IAE9B,+BAAgB,mBAAmB;AAAA;AAAA;AAAA,EAGlC,MAAM;AAAA,EACN,SAAS;AACR,WACC,4EACC;AAAA,kDAAC,8BAAAA,SAAA,EAAqB;AAAA,MACtB,4CAAC,+CAAAC,SAAA,EAAoC;AAAA,MACrC,4CAAC,0CAAAC,SAAA,EAA+B;AAAA,OACjC;AAAA,EAEF;AACD,CAAE;AAAA,IAEF;AAAA,EACC;AAAA,EACA;AAAA,EACA,CAAE,UAAU,SAAU;AACrB,QAAK,SAAS,gBAAiB;AAC9B,aAAO;AAAA,IACR;AACA,aAAS,WAAO,2BAAAC,SAAmB,SAAS,IAAK;AAEjD,WAAO;AAAA,EACR;AACD;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAGA,qBAA+B;AAC/B,mBAA0B;AAK1B,oCAAiC;AACjC,qDAAgD;AAChD,gDAA2C;AAC3C,iCAA8B;AAQ3B;AAAA,IANH,+BAAgB,mBAAmB;AAAA;AAAA;AAAA,EAGlC,MAAM;AAAA,EACN,SAAS;AACR,WACC,4EACC;AAAA,kDAAC,8BAAAA,SAAA,EAAqB;AAAA,MACtB,4CAAC,+CAAAC,SAAA,EAAoC;AAAA,MACrC,4CAAC,0CAAAC,SAAA,EAA+B;AAAA,OACjC;AAAA,EAEF;AACD,CAAE;AAAA,IAEF;AAAA,EACC;AAAA,EACA;AAAA,EACA,CAAE,UAAU,SAAU;AACrB,QAAK,SAAS,gBAAiB;AAC9B,aAAO;AAAA,IACR;AACA,aAAS,WAAO,2BAAAC,SAAmB,SAAS,IAAK;AAEjD,WAAO;AAAA,EACR;AACD;",
6
6
  "names": ["AutoBlockUninstaller", "InserterMenuDownloadableBlocksPanel", "InstalledBlocksPrePublishPanel", "getInstallMissing"]
7
7
  }