PluginProbe
Gutenberg / 24.1.0
Gutenberg v24.1.0
24.1.0 24.0.0 23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 All 404 releases
← All changes | build/scripts/reusable-blocks/index.js +18 -414 23.7.1 → 24.1.0 View file →
@@ -1,4 +1,5 @@
1 +(function() {
1 2 var wp;
2 3 (wp ||= {}).reusableBlocks = (() => {
3 4 var __create = Object.create;
4 5 var __defProp = Object.defineProperty;
@@ -37,29 +38,8 @@
37 38 module.exports = window.wp.data;
38 39 }
39 40 });
40 41
41 - // package-external:@wordpress/block-editor
42 - var require_block_editor = __commonJS({
43 - "package-external:@wordpress/block-editor"(exports, module) {
44 - module.exports = window.wp.blockEditor;
45 - }
46 - });
47 -
48 - // package-external:@wordpress/blocks
49 - var require_blocks = __commonJS({
50 - "package-external:@wordpress/blocks"(exports, module) {
51 - module.exports = window.wp.blocks;
52 - }
53 - });
54 -
55 - // package-external:@wordpress/i18n
56 - var require_i18n = __commonJS({
57 - "package-external:@wordpress/i18n"(exports, module) {
58 - module.exports = window.wp.i18n;
59 - }
60 - });
61 -
62 42 // package-external:@wordpress/deprecated
63 43 var require_deprecated = __commonJS({
64 44 "package-external:@wordpress/deprecated"(exports, module) {
65 45 module.exports = window.wp.deprecated;
@@ -65,57 +45,8 @@
65 45 module.exports = window.wp.deprecated;
66 46 }
67 47 });
68 48
69 - // package-external:@wordpress/element
70 - var require_element = __commonJS({
71 - "package-external:@wordpress/element"(exports, module) {
72 - module.exports = window.wp.element;
73 - }
74 - });
75 -
76 - // package-external:@wordpress/components
77 - var require_components = __commonJS({
78 - "package-external:@wordpress/components"(exports, module) {
79 - module.exports = window.wp.components;
80 - }
81 - });
82 -
83 - // package-external:@wordpress/primitives
84 - var require_primitives = __commonJS({
85 - "package-external:@wordpress/primitives"(exports, module) {
86 - module.exports = window.wp.primitives;
87 - }
88 - });
89 -
90 - // vendor-external:react/jsx-runtime
91 - var require_jsx_runtime = __commonJS({
92 - "vendor-external:react/jsx-runtime"(exports, module) {
93 - module.exports = window.ReactJSXRuntime;
94 - }
95 - });
96 -
97 - // package-external:@wordpress/notices
98 - var require_notices = __commonJS({
99 - "package-external:@wordpress/notices"(exports, module) {
100 - module.exports = window.wp.notices;
101 - }
102 - });
103 -
104 - // package-external:@wordpress/core-data
105 - var require_core_data = __commonJS({
106 - "package-external:@wordpress/core-data"(exports, module) {
107 - module.exports = window.wp.coreData;
108 - }
109 - });
110 -
111 - // package-external:@wordpress/url
112 - var require_url = __commonJS({
113 - "package-external:@wordpress/url"(exports, module) {
114 - module.exports = window.wp.url;
115 - }
116 - });
117 -
118 49 // packages/reusable-blocks/build-module/index.mjs
119 50 var index_exports = {};
120 51 __export(index_exports, {
121 52 ReusableBlocksMenuItems: () => ReusableBlocksMenuItems,
@@ -122,9 +53,9 @@
122 53 store: () => store
123 54 });
124 55
125 56 // packages/reusable-blocks/build-module/store/index.mjs
126 - var import_data2 = __toESM(require_data(), 1);
57 + var import_data = __toESM(require_data(), 1);
127 58
128 59 // packages/reusable-blocks/build-module/store/actions.mjs
129 60 var actions_exports = {};
130 61 __export(actions_exports, {
@@ -132,13 +63,10 @@
132 63 __experimentalConvertBlocksToReusable: () => __experimentalConvertBlocksToReusable,
133 64 __experimentalDeleteReusableBlock: () => __experimentalDeleteReusableBlock,
134 65 __experimentalSetEditingReusableBlock: () => __experimentalSetEditingReusableBlock
135 66 });
136 - var import_block_editor = __toESM(require_block_editor(), 1);
137 - var import_blocks = __toESM(require_blocks(), 1);
138 - var import_i18n = __toESM(require_i18n(), 1);
139 67 var import_deprecated = __toESM(require_deprecated(), 1);
140 - var __experimentalConvertBlockToStatic = (clientId) => ({ registry }) => {
68 + var __experimentalConvertBlockToStatic = () => () => {
141 69 (0, import_deprecated.default)(
142 70 "wp.data.dispatch( 'core/reusable-blocks' ).__experimentalConvertBlockToStatic",
143 71 {
144 72 since: "7.1"
@@ -143,20 +71,10 @@
143 71 {
144 72 since: "7.1"
145 73 }
146 74 );
147 - const oldBlock = registry.select(import_block_editor.store).getBlock(clientId);
148 - const reusableBlock = registry.select("core").getEditedEntityRecord(
149 - "postType",
150 - "wp_block",
151 - oldBlock.attributes.ref
152 - );
153 - const newBlocks = (0, import_blocks.parse)(
154 - typeof reusableBlock.content === "function" ? reusableBlock.content(reusableBlock) : reusableBlock.content
155 - );
156 - registry.dispatch(import_block_editor.store).replaceBlocks(oldBlock.clientId, newBlocks);
157 75 };
158 - var __experimentalConvertBlocksToReusable = (clientIds, title, syncType) => async ({ registry, dispatch }) => {
76 + var __experimentalConvertBlocksToReusable = () => async () => {
159 77 (0, import_deprecated.default)(
160 78 "wp.data.dispatch( 'core/reusable-blocks' ).__experimentalConvertBlocksToReusable",
161 79 {
162 80 since: "7.1"
@@ -161,33 +79,10 @@
161 79 {
162 80 since: "7.1"
163 81 }
164 82 );
165 - const meta = syncType === "unsynced" ? {
166 - wp_pattern_sync_status: syncType
167 - } : void 0;
168 - const reusableBlock = {
169 - title: title || (0, import_i18n.__)("Untitled pattern block"),
170 - content: (0, import_blocks.serialize)(
171 - registry.select(import_block_editor.store).getBlocksByClientId(clientIds)
172 - ),
173 - status: "publish",
174 - meta
175 - };
176 - const updatedRecord = await registry.dispatch("core").saveEntityRecord("postType", "wp_block", reusableBlock);
177 - if (syncType === "unsynced") {
178 - return;
179 - }
180 - const newBlock = (0, import_blocks.createBlock)("core/block", {
181 - ref: updatedRecord.id
182 - });
183 - registry.dispatch(import_block_editor.store).replaceBlocks(clientIds, newBlock);
184 - dispatch.__experimentalSetEditingReusableBlock(
185 - newBlock.clientId,
186 - true
187 - );
188 83 };
189 - var __experimentalDeleteReusableBlock = (id) => async ({ registry }) => {
84 + var __experimentalDeleteReusableBlock = () => async () => {
190 85 (0, import_deprecated.default)(
191 86 "wp.data.dispatch( 'core/reusable-blocks' ).__experimentalDeleteReusableBlock",
192 87 {
193 88 since: "7.1"
@@ -192,23 +87,8 @@
192 87 {
193 88 since: "7.1"
194 89 }
195 90 );
196 - const reusableBlock = registry.select("core").getEditedEntityRecord("postType", "wp_block", id);
197 - if (!reusableBlock) {
198 - return;
199 - }
200 - const allBlocks = registry.select(import_block_editor.store).getBlocks();
201 - const associatedBlocks = allBlocks.filter(
202 - (block) => (0, import_blocks.isReusableBlock)(block) && block.attributes.ref === id
203 - );
204 - const associatedBlockClientIds = associatedBlocks.map(
205 - (block) => block.clientId
206 - );
207 - if (associatedBlockClientIds.length) {
208 - registry.dispatch(import_block_editor.store).removeBlocks(associatedBlockClientIds);
209 - }
210 - await registry.dispatch("core").deleteEntityRecord("postType", "wp_block", id);
211 91 };
212 92 function __experimentalSetEditingReusableBlock(clientId, isEditing) {
213 93 (0, import_deprecated.default)(
214 94 "wp.data.dispatch( 'core/reusable-blocks' ).__experimentalSetEditingReusableBlock",
@@ -223,21 +103,14 @@
223 103 };
224 104 }
225 105
226 106 // packages/reusable-blocks/build-module/store/reducer.mjs
227 - var import_data = __toESM(require_data(), 1);
228 - function isEditingReusableBlock(state = {}, action) {
229 - if (action?.type === "SET_EDITING_REUSABLE_BLOCK") {
230 - return {
231 - ...state,
232 - [action.clientId]: action.isEditing
233 - };
234 - }
107 + var DEFAULT_STATE = {
108 + isEditingReusableBlock: {}
109 + };
110 + function reducer(state = DEFAULT_STATE) {
235 111 return state;
236 112 }
237 - var reducer_default = (0, import_data.combineReducers)({
238 - isEditingReusableBlock
239 - });
240 113
241 114 // packages/reusable-blocks/build-module/store/selectors.mjs
242 115 var selectors_exports = {};
243 116 __export(selectors_exports, {
@@ -243,9 +116,9 @@
243 116 __export(selectors_exports, {
244 117 __experimentalIsEditingReusableBlock: () => __experimentalIsEditingReusableBlock
245 118 });
246 119 var import_deprecated2 = __toESM(require_deprecated(), 1);
247 - function __experimentalIsEditingReusableBlock(state, clientId) {
120 + function __experimentalIsEditingReusableBlock() {
248 121 (0, import_deprecated2.default)(
249 122 "wp.data.select( 'core/reusable-blocks' ).__experimentalIsEditingReusableBlock",
250 123 {
251 124 since: "7.1"
@@ -250,298 +123,29 @@
250 123 {
251 124 since: "7.1"
252 125 }
253 126 );
254 - return state.isEditingReusableBlock[clientId];
127 + return false;
255 128 }
256 129
257 130 // packages/reusable-blocks/build-module/store/index.mjs
258 131 var STORE_NAME = "core/reusable-blocks";
259 - var store = (0, import_data2.createReduxStore)(STORE_NAME, {
132 + var store = (0, import_data.createReduxStore)(STORE_NAME, {
260 133 actions: actions_exports,
261 - reducer: reducer_default,
134 + reducer,
262 135 selectors: selectors_exports
263 136 });
264 - (0, import_data2.register)(store);
137 + (0, import_data.register)(store);
265 138
266 139 // packages/reusable-blocks/build-module/components/reusable-blocks-menu-items/index.mjs
267 - var import_block_editor4 = __toESM(require_block_editor(), 1);
268 140 var import_deprecated3 = __toESM(require_deprecated(), 1);
269 -
270 - // packages/reusable-blocks/build-module/components/reusable-blocks-menu-items/reusable-block-convert-button.mjs
271 - var import_blocks2 = __toESM(require_blocks(), 1);
272 - var import_block_editor2 = __toESM(require_block_editor(), 1);
273 - var import_element = __toESM(require_element(), 1);
274 - var import_components = __toESM(require_components(), 1);
275 -
276 - // packages/icons/build-module/library/symbol.mjs
277 - var import_primitives = __toESM(require_primitives(), 1);
278 - var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
279 - var symbol_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z" }) });
280 -
281 - // packages/reusable-blocks/build-module/components/reusable-blocks-menu-items/reusable-block-convert-button.mjs
282 - var import_data3 = __toESM(require_data(), 1);
283 - var import_i18n2 = __toESM(require_i18n(), 1);
284 - var import_notices = __toESM(require_notices(), 1);
285 - var import_core_data = __toESM(require_core_data(), 1);
286 - var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
287 - function ReusableBlockConvertButton({
288 - clientIds,
289 - rootClientId,
290 - onClose
291 - }) {
292 - const [syncType, setSyncType] = (0, import_element.useState)(void 0);
293 - const [isModalOpen, setIsModalOpen] = (0, import_element.useState)(false);
294 - const [title, setTitle] = (0, import_element.useState)("");
295 - const canConvert = (0, import_data3.useSelect)(
296 - (select) => {
297 - const { canUser } = select(import_core_data.store);
298 - const {
299 - getBlocksByClientId,
300 - canInsertBlockType,
301 - getBlockRootClientId
302 - } = select(import_block_editor2.store);
303 - const rootId = rootClientId || (clientIds.length > 0 ? getBlockRootClientId(clientIds[0]) : void 0);
304 - const blocks = getBlocksByClientId(clientIds) ?? [];
305 - const isReusable = blocks.length === 1 && blocks[0] && (0, import_blocks2.isReusableBlock)(blocks[0]) && !!select(import_core_data.store).getEntityRecord(
306 - "postType",
307 - "wp_block",
308 - blocks[0].attributes.ref
309 - );
310 - const _canConvert = (
311 - // Hide when this is already a reusable block.
312 - !isReusable && // Hide when reusable blocks are disabled.
313 - canInsertBlockType("core/block", rootId) && blocks.every(
314 - (block) => (
315 - // Guard against the case where a regular block has *just* been converted.
316 - !!block && // Hide on invalid blocks.
317 - block.isValid && // Hide when block doesn't support being made reusable.
318 - (0, import_blocks2.hasBlockSupport)(block.name, "reusable", true)
319 - )
320 - ) && // Hide when current doesn't have permission to do that.
321 - // Blocks refers to the wp_block post type, this checks the ability to create a post of that type.
322 - !!canUser("create", {
323 - kind: "postType",
324 - name: "wp_block"
325 - })
326 - );
327 - return _canConvert;
328 - },
329 - [clientIds, rootClientId]
330 - );
331 - const { __experimentalConvertBlocksToReusable: convertBlocksToReusable } = (0, import_data3.useDispatch)(store);
332 - const { createSuccessNotice, createErrorNotice } = (0, import_data3.useDispatch)(import_notices.store);
333 - const onConvert = (0, import_element.useCallback)(
334 - async function(reusableBlockTitle) {
335 - try {
336 - await convertBlocksToReusable(
337 - clientIds,
338 - reusableBlockTitle,
339 - syncType
340 - );
341 - createSuccessNotice(
342 - !syncType ? (0, import_i18n2.sprintf)(
343 - // translators: %s: the name the user has given to the pattern.
344 - (0, import_i18n2.__)("Synced pattern created: %s"),
345 - reusableBlockTitle
346 - ) : (0, import_i18n2.sprintf)(
347 - // translators: %s: the name the user has given to the pattern.
348 - (0, import_i18n2.__)("Unsynced pattern created: %s"),
349 - reusableBlockTitle
350 - ),
351 - {
352 - type: "snackbar",
353 - id: "convert-to-reusable-block-success"
354 - }
355 - );
356 - } catch (error) {
357 - createErrorNotice(error.message, {
358 - type: "snackbar",
359 - id: "convert-to-reusable-block-error"
360 - });
361 - }
362 - },
363 - [
364 - convertBlocksToReusable,
365 - clientIds,
366 - syncType,
367 - createSuccessNotice,
368 - createErrorNotice
369 - ]
370 - );
371 - if (!canConvert) {
372 - return null;
373 - }
374 - return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
375 - /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_components.MenuItem, { icon: symbol_default, onClick: () => setIsModalOpen(true), children: (0, import_i18n2.__)("Create pattern") }),
376 - isModalOpen && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
377 - import_components.Modal,
378 - {
379 - title: (0, import_i18n2.__)("Create pattern"),
380 - onRequestClose: () => {
381 - setIsModalOpen(false);
382 - setTitle("");
383 - },
384 - overlayClassName: "reusable-blocks-menu-items__convert-modal",
385 - children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
386 - "form",
387 - {
388 - onSubmit: (event) => {
389 - event.preventDefault();
390 - onConvert(title);
391 - setIsModalOpen(false);
392 - setTitle("");
393 - onClose();
394 - },
395 - children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_components.__experimentalVStack, { spacing: "5", children: [
396 - /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
397 - import_components.TextControl,
398 - {
399 - label: (0, import_i18n2.__)("Name"),
400 - value: title,
401 - onChange: setTitle,
402 - placeholder: (0, import_i18n2.__)("My pattern")
403 - }
404 - ),
405 - /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
406 - import_components.ToggleControl,
407 - {
408 - label: (0, import_i18n2._x)("Synced", "pattern (singular)"),
409 - help: (0, import_i18n2.__)(
410 - "Sync this pattern across multiple locations."
411 - ),
412 - checked: !syncType,
413 - onChange: () => {
414 - setSyncType(
415 - !syncType ? "unsynced" : void 0
416 - );
417 - }
418 - }
419 - ),
420 - /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_components.__experimentalHStack, { justify: "right", children: [
421 - /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
422 - import_components.Button,
423 - {
424 - __next40pxDefaultSize: true,
425 - variant: "tertiary",
426 - onClick: () => {
427 - setIsModalOpen(false);
428 - setTitle("");
429 - },
430 - children: (0, import_i18n2.__)("Cancel")
431 - }
432 - ),
433 - /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
434 - import_components.Button,
435 - {
436 - __next40pxDefaultSize: true,
437 - variant: "primary",
438 - type: "submit",
439 - children: (0, import_i18n2.__)("Create")
440 - }
441 - )
442 - ] })
443 - ] })
444 - }
445 - )
446 - }
447 - )
448 - ] });
449 - }
450 -
451 - // packages/reusable-blocks/build-module/components/reusable-blocks-menu-items/reusable-blocks-manage-button.mjs
452 - var import_components2 = __toESM(require_components(), 1);
453 - var import_i18n3 = __toESM(require_i18n(), 1);
454 - var import_blocks3 = __toESM(require_blocks(), 1);
455 - var import_data4 = __toESM(require_data(), 1);
456 - var import_element2 = __toESM(require_element(), 1);
457 - var import_block_editor3 = __toESM(require_block_editor(), 1);
458 - var import_url = __toESM(require_url(), 1);
459 - var import_core_data2 = __toESM(require_core_data(), 1);
460 - var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
461 - function ReusableBlocksManageButton({ clientId }) {
462 - const [showConfirmDialog, setShowConfirmDialog] = (0, import_element2.useState)(false);
463 - const { canRemove, isVisible, managePatternsUrl } = (0, import_data4.useSelect)(
464 - (select) => {
465 - const { getBlock, canRemoveBlock } = select(import_block_editor3.store);
466 - const { canUser } = select(import_core_data2.store);
467 - const reusableBlock = getBlock(clientId);
468 - return {
469 - canRemove: canRemoveBlock(clientId),
470 - isVisible: !!reusableBlock && (0, import_blocks3.isReusableBlock)(reusableBlock) && !!canUser("update", {
471 - kind: "postType",
472 - name: "wp_block",
473 - id: reusableBlock.attributes.ref
474 - }),
475 - // The site editor and templates both check whether the user
476 - // has edit_theme_options capabilities. We can leverage that here
477 - // and omit the manage patterns link if the user can't access it.
478 - managePatternsUrl: canUser("create", {
479 - kind: "postType",
480 - name: "wp_template"
481 - }) ? (0, import_url.addQueryArgs)("site-editor.php", {
482 - p: "/pattern"
483 - }) : (0, import_url.addQueryArgs)("edit.php", {
484 - post_type: "wp_block"
485 - })
486 - };
487 - },
488 - [clientId]
489 - );
490 - const { __experimentalConvertBlockToStatic: convertBlockToStatic } = (0, import_data4.useDispatch)(store);
491 - if (!isVisible) {
492 - return null;
493 - }
494 - const handleDetach = () => {
495 - convertBlockToStatic(clientId);
496 - setShowConfirmDialog(false);
497 - };
498 - return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
499 - /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_components2.MenuItem, { href: managePatternsUrl, children: (0, import_i18n3.__)("Manage patterns") }),
500 - canRemove && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
501 - /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_components2.MenuItem, { onClick: () => setShowConfirmDialog(true), children: (0, import_i18n3.__)("Disconnect pattern") }),
502 - /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
503 - import_components2.__experimentalConfirmDialog,
504 - {
505 - isOpen: showConfirmDialog,
506 - onConfirm: handleDetach,
507 - onCancel: () => setShowConfirmDialog(false),
508 - confirmButtonText: (0, import_i18n3.__)("Disconnect"),
509 - size: "medium",
510 - title: (0, import_i18n3.__)("Disconnect pattern?"),
511 - __experimentalHideHeader: false,
512 - children: (0, import_i18n3.__)(
513 - "Blocks will be separated from the original pattern and will be fully editable. Future changes to the pattern will not apply here."
514 - )
515 - }
516 - )
517 - ] })
518 - ] });
519 - }
520 - var reusable_blocks_manage_button_default = ReusableBlocksManageButton;
521 -
522 - // packages/reusable-blocks/build-module/components/reusable-blocks-menu-items/index.mjs
523 - var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
524 - function ReusableBlocksMenuItems({ rootClientId }) {
141 + function ReusableBlocksMenuItems() {
525 142 (0, import_deprecated3.default)("wp.reusableBlocks.ReusableBlocksMenuItems", {
526 143 since: "7.1"
527 144 });
528 - return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_block_editor4.BlockSettingsMenuControls, { children: ({ onClose, selectedClientIds }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
529 - /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
530 - ReusableBlockConvertButton,
531 - {
532 - clientIds: selectedClientIds,
533 - rootClientId,
534 - onClose
535 - }
536 - ),
537 - selectedClientIds.length === 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
538 - reusable_blocks_manage_button_default,
539 - {
540 - clientId: selectedClientIds[0]
541 - }
542 - )
543 - ] }) });
145 + return null;
544 146 }
545 147 return __toCommonJS(index_exports);
148 +})();
149 +(window.wp ||= {}).reusableBlocks = wp.reusableBlocks;
546 150 })();
547 151 //# sourceMappingURL=index.js.map