File: /www/wwwroot/www.waciwang.com/wp-content/plugins/gutenberg/build/scripts/block-library/index.js.map
{
"version": 3,
"sources": ["package-external:@wordpress/blocks", "package-external:@wordpress/compose", "package-external:@wordpress/data", "package-external:@wordpress/block-editor", "package-external:@wordpress/server-side-render", "package-external:@wordpress/i18n", "../../../node_modules/html-dom-parser/node_modules/domelementtype/lib/index.js", "../../../node_modules/html-dom-parser/node_modules/domhandler/lib/node.js", "../../../node_modules/html-dom-parser/node_modules/domhandler/lib/index.js", "../../../node_modules/html-dom-parser/src/client/constants.ts", "../../../node_modules/html-dom-parser/src/client/utilities.ts", "../../../node_modules/html-dom-parser/src/client/domparser.ts", "../../../node_modules/html-dom-parser/src/client/html-to-dom.ts", "../../../node_modules/react-property/lib/possibleStandardNamesOptimized.js", "../../../node_modules/react-property/lib/index.js", "vendor-external:react", "../../../node_modules/inline-style-parser/index.js", "../../../node_modules/style-to-object/src/index.ts", "../../../node_modules/style-to-js/src/utilities.ts", "../../../node_modules/style-to-js/src/index.ts", "../../../node_modules/html-react-parser/src/utilities.ts", "../../../node_modules/html-react-parser/src/attributes-to-props.ts", "../../../node_modules/html-react-parser/src/dom-to-react.ts", "../../../node_modules/html-react-parser/node_modules/domelementtype/lib/index.js", "../../../node_modules/html-react-parser/node_modules/domhandler/lib/node.js", "../../../node_modules/html-react-parser/node_modules/domhandler/lib/index.js", "../../../node_modules/html-react-parser/src/index.ts", "package-external:@wordpress/dom", "vendor-external:react/jsx-runtime", "package-external:@wordpress/components", "package-external:@wordpress/element", "package-external:@wordpress/blob", "package-external:@wordpress/core-data", "package-external:@wordpress/primitives", "package-external:@wordpress/url", "package-external:@wordpress/html-entities", "package-external:@wordpress/notices", "package-external:@wordpress/private-apis", "package-external:@wordpress/keycodes", "package-external:@wordpress/deprecated", "package-external:@wordpress/rich-text", "package-external:@wordpress/date", "package-external:@wordpress/api-fetch", "package-external:@wordpress/hooks", "../../../node_modules/remove-accents/index.js", "package-external:@wordpress/a11y", "package-external:@wordpress/escape-html", "package-external:@wordpress/wordcount", "package-external:@wordpress/patterns", "package-external:@wordpress/autop", "../../../node_modules/fast-deep-equal/es6/index.js", "package-external:@wordpress/keyboard-shortcuts", "../../../packages/block-library/src/index.js", "../../../node_modules/clsx/dist/clsx.mjs", "../../../node_modules/html-react-parser/esm/index.mjs", "../../../packages/block-library/src/utils/html-renderer.js", "../../../packages/block-library/src/accordion/index.js", "../../../packages/block-library/src/accordion/edit.js", "../../../packages/block-library/src/utils/hooks.js", "../../../packages/block-library/src/accordion/save.js", "../../../packages/block-library/build-module/accordion/block.json", "../../../packages/block-library/src/utils/init-block.js", "../../../packages/block-library/src/accordion/icon.js", "../../../packages/block-library/src/accordion-item/edit.js", "../../../packages/block-library/src/accordion-item/save.js", "../../../packages/block-library/build-module/accordion-item/block.json", "../../../packages/block-library/src/accordion-item/icon.js", "../../../packages/block-library/src/accordion-item/index.js", "../../../packages/block-library/src/accordion-heading/edit.js", "../../../packages/block-library/src/accordion-heading/save.js", "../../../packages/block-library/build-module/accordion-heading/block.json", "../../../packages/block-library/src/accordion-heading/icon.js", "../../../packages/block-library/src/accordion-heading/deprecated.js", "../../../packages/block-library/src/accordion-heading/index.js", "../../../packages/block-library/src/accordion-panel/edit.js", "../../../packages/block-library/src/accordion-panel/save.js", "../../../packages/block-library/build-module/accordion-panel/block.json", "../../../packages/block-library/src/accordion-panel/icon.js", "../../../packages/block-library/src/accordion-panel/index.js", "../../../packages/icons/src/icon/index.ts", "../../../packages/icons/src/library/add-submenu.tsx", "../../../packages/icons/src/library/align-center.tsx", "../../../packages/icons/src/library/align-left.tsx", "../../../packages/icons/src/library/align-none.tsx", "../../../packages/icons/src/library/align-right.tsx", "../../../packages/icons/src/library/archive.tsx", "../../../packages/icons/src/library/audio.tsx", "../../../packages/icons/src/library/block-default.tsx", "../../../packages/icons/src/library/block-table.tsx", "../../../packages/icons/src/library/breadcrumbs.tsx", "../../../packages/icons/src/library/button.tsx", "../../../packages/icons/src/library/buttons.tsx", "../../../packages/icons/src/library/calendar.tsx", "../../../packages/icons/src/library/caption.tsx", "../../../packages/icons/src/library/category.tsx", "../../../packages/icons/src/library/chevron-down.tsx", "../../../packages/icons/src/library/chevron-left-small.tsx", "../../../packages/icons/src/library/chevron-right-small.tsx", "../../../packages/icons/src/library/chevron-up.tsx", "../../../packages/icons/src/library/classic.tsx", "../../../packages/icons/src/library/close.tsx", "../../../packages/icons/src/library/code.tsx", "../../../packages/icons/src/library/column.tsx", "../../../packages/icons/src/library/columns.tsx", "../../../packages/icons/src/library/comment-author-avatar.tsx", "../../../packages/icons/src/library/comment-author-name.tsx", "../../../packages/icons/src/library/comment-content.tsx", "../../../packages/icons/src/library/comment-edit-link.tsx", "../../../packages/icons/src/library/comment-reply-link.tsx", "../../../packages/icons/src/library/comment.tsx", "../../../packages/icons/src/library/cover.tsx", "../../../packages/icons/src/library/crop.tsx", "../../../packages/icons/src/library/custom-link.tsx", "../../../packages/icons/src/library/custom-post-type.tsx", "../../../packages/icons/src/library/details.tsx", "../../../packages/icons/src/library/file.tsx", "../../../packages/icons/src/library/footer.tsx", "../../../packages/icons/src/library/format-indent-rtl.tsx", "../../../packages/icons/src/library/format-indent.tsx", "../../../packages/icons/src/library/format-list-bullets-rtl.tsx", "../../../packages/icons/src/library/format-list-bullets.tsx", "../../../packages/icons/src/library/format-list-numbered-rtl.tsx", "../../../packages/icons/src/library/format-list-numbered.tsx", "../../../packages/icons/src/library/format-ltr.tsx", "../../../packages/icons/src/library/format-outdent-rtl.tsx", "../../../packages/icons/src/library/format-outdent.tsx", "../../../packages/icons/src/library/fullscreen.tsx", "../../../packages/icons/src/library/gallery.tsx", "../../../packages/icons/src/library/grid.tsx", "../../../packages/icons/src/library/group.tsx", "../../../packages/icons/src/library/header.tsx", "../../../packages/icons/src/library/heading-level-1.tsx", "../../../packages/icons/src/library/heading-level-2.tsx", "../../../packages/icons/src/library/heading-level-3.tsx", "../../../packages/icons/src/library/heading-level-4.tsx", "../../../packages/icons/src/library/heading-level-5.tsx", "../../../packages/icons/src/library/heading-level-6.tsx", "../../../packages/icons/src/library/heading.tsx", "../../../packages/icons/src/library/home.tsx", "../../../packages/icons/src/library/html.tsx", "../../../packages/icons/src/library/image.tsx", "../../../packages/icons/src/library/keyboard-return.tsx", "../../../packages/icons/src/library/layout.tsx", "../../../packages/icons/src/library/link-off.tsx", "../../../packages/icons/src/library/link.tsx", "../../../packages/icons/src/library/list-item.tsx", "../../../packages/icons/src/library/list.tsx", "../../../packages/icons/src/library/login.tsx", "../../../packages/icons/src/library/loop.tsx", "../../../packages/icons/src/library/map-marker.tsx", "../../../packages/icons/src/library/math.tsx", "../../../packages/icons/src/library/media-and-text.tsx", "../../../packages/icons/src/library/media.tsx", "../../../packages/icons/src/library/menu.tsx", "../../../packages/icons/src/library/more-vertical.tsx", "../../../packages/icons/src/library/more.tsx", "../../../packages/icons/src/library/navigation.tsx", "../../../packages/icons/src/library/next.tsx", "../../../packages/icons/src/library/overlay-text.tsx", "../../../packages/icons/src/library/page-break.tsx", "../../../packages/icons/src/library/page.tsx", "../../../packages/icons/src/library/pages.tsx", "../../../packages/icons/src/library/paragraph.tsx", "../../../packages/icons/src/library/pencil.tsx", "../../../packages/icons/src/library/pin.tsx", "../../../packages/icons/src/library/plugins.tsx", "../../../packages/icons/src/library/plus.tsx", "../../../packages/icons/src/library/position-center.tsx", "../../../packages/icons/src/library/position-left.tsx", "../../../packages/icons/src/library/position-right.tsx", "../../../packages/icons/src/library/post-author.tsx", "../../../packages/icons/src/library/post-categories.tsx", "../../../packages/icons/src/library/post-comments-count.tsx", "../../../packages/icons/src/library/post-comments-form.tsx", "../../../packages/icons/src/library/post-comments.tsx", "../../../packages/icons/src/library/post-content.tsx", "../../../packages/icons/src/library/post-date.tsx", "../../../packages/icons/src/library/post-excerpt.tsx", "../../../packages/icons/src/library/post-featured-image.tsx", "../../../packages/icons/src/library/post-list.tsx", "../../../packages/icons/src/library/post-terms.tsx", "../../../packages/icons/src/library/preformatted.tsx", "../../../packages/icons/src/library/previous.tsx", "../../../packages/icons/src/library/pull-left.tsx", "../../../packages/icons/src/library/pull-right.tsx", "../../../packages/icons/src/library/pullquote.tsx", "../../../packages/icons/src/library/query-pagination-next.tsx", "../../../packages/icons/src/library/query-pagination-numbers.tsx", "../../../packages/icons/src/library/query-pagination-previous.tsx", "../../../packages/icons/src/library/query-pagination.tsx", "../../../packages/icons/src/library/quote.tsx", "../../../packages/icons/src/library/remove-submenu.tsx", "../../../packages/icons/src/library/resize-corner-n-e.tsx", "../../../packages/icons/src/library/row.tsx", "../../../packages/icons/src/library/rss.tsx", "../../../packages/icons/src/library/search.tsx", "../../../packages/icons/src/library/separator.tsx", "../../../packages/icons/src/library/share.tsx", "../../../packages/icons/src/library/shortcode.tsx", "../../../packages/icons/src/library/sidebar.tsx", "../../../packages/icons/src/library/site-logo.tsx", "../../../packages/icons/src/library/square.tsx", "../../../packages/icons/src/library/stack.tsx", "../../../packages/icons/src/library/symbol-filled.tsx", "../../../packages/icons/src/library/symbol.tsx", "../../../packages/icons/src/library/table-column-after.tsx", "../../../packages/icons/src/library/table-column-before.tsx", "../../../packages/icons/src/library/table-column-delete.tsx", "../../../packages/icons/src/library/table-of-contents.tsx", "../../../packages/icons/src/library/table-row-after.tsx", "../../../packages/icons/src/library/table-row-before.tsx", "../../../packages/icons/src/library/table-row-delete.tsx", "../../../packages/icons/src/library/table.tsx", "../../../packages/icons/src/library/tag.tsx", "../../../packages/icons/src/library/term-count.tsx", "../../../packages/icons/src/library/term-description.tsx", "../../../packages/icons/src/library/term-name.tsx", "../../../packages/icons/src/library/time-to-read.tsx", "../../../packages/icons/src/library/title.tsx", "../../../packages/icons/src/library/upload.tsx", "../../../packages/icons/src/library/verse.tsx", "../../../packages/icons/src/library/video.tsx", "../../../packages/icons/src/library/word-count.tsx", "../../../packages/block-library/build-module/archives/block.json", "../../../packages/block-library/src/archives/edit.js", "../../../packages/block-library/src/archives/index.js", "../../../packages/block-library/build-module/avatar/block.json", "../../../packages/block-library/src/avatar/edit.js", "../../../packages/block-library/src/avatar/hooks.js", "../../../packages/block-library/src/avatar/user-control.js", "../../../packages/block-library/src/avatar/index.js", "../../../packages/block-library/src/audio/index.js", "../../../packages/block-library/src/audio/deprecated.js", "../../../packages/block-library/src/audio/edit.js", "../../../node_modules/memize/dist/index.js", "../../../packages/block-library/src/embed/util.js", "../../../packages/block-library/build-module/embed/block.json", "../../../packages/block-library/src/embed/constants.js", "../../../packages/block-library/src/lock-unlock.ts", "../../../packages/block-library/src/utils/caption.js", "../../../packages/block-library/build-module/audio/block.json", "../../../packages/block-library/src/audio/save.js", "../../../packages/block-library/src/audio/transforms.js", "../../../packages/block-library/build-module/breadcrumbs/block.json", "../../../packages/block-library/src/breadcrumbs/edit.js", "../../../packages/block-library/src/breadcrumbs/index.js", "../../../packages/block-library/src/button/index.js", "../../../packages/block-library/src/button/deprecated.js", "../../../packages/block-library/src/utils/migrate-font-family.js", "../../../packages/block-library/src/utils/migrate-text-align.js", "../../../packages/block-library/src/button/edit.js", "../../../packages/block-library/src/button/constants.js", "../../../packages/block-library/src/button/get-updated-link-attributes.js", "../../../packages/block-library/src/utils/remove-anchor-tag.js", "../../../packages/block-library/src/utils/deprecated-text-align-attributes.js", "../../../packages/block-library/build-module/button/block.json", "../../../packages/block-library/src/button/save.js", "../../../packages/block-library/src/buttons/index.js", "../../../packages/block-library/src/buttons/deprecated.js", "../../../packages/block-library/src/buttons/transforms.js", "../../../packages/block-library/src/utils/get-transformed-attributes.js", "../../../packages/block-library/src/buttons/edit.js", "../../../packages/block-library/build-module/buttons/block.json", "../../../packages/block-library/src/buttons/save.js", "../../../packages/block-library/build-module/calendar/block.json", "../../../packages/block-library/src/calendar/edit.js", "../../../packages/block-library/src/calendar/transforms.js", "../../../packages/block-library/src/calendar/index.js", "../../../packages/block-library/build-module/categories/block.json", "../../../packages/block-library/src/categories/edit.js", "../../../packages/block-library/src/categories/variations.js", "../../../packages/block-library/src/categories/index.js", "../../../packages/block-library/src/freeform/edit.js", "../../../packages/block-library/src/freeform/convert-to-blocks-button.js", "../../../packages/block-library/src/freeform/modal.js", "../../../packages/block-library/build-module/freeform/block.json", "../../../packages/block-library/src/freeform/save.js", "../../../packages/block-library/src/freeform/index.js", "../../../packages/block-library/src/code/index.js", "../../../packages/block-library/src/code/edit.js", "../../../packages/block-library/build-module/code/block.json", "../../../packages/block-library/src/code/save.js", "../../../packages/block-library/src/code/utils.js", "../../../packages/block-library/src/code/transforms.js", "../../../packages/block-library/src/column/deprecated.js", "../../../packages/block-library/src/column/edit.js", "../../../packages/block-library/build-module/column/block.json", "../../../packages/block-library/src/column/save.js", "../../../packages/block-library/src/column/index.js", "../../../packages/block-library/src/columns/index.js", "../../../packages/block-library/src/columns/deprecated.js", "../../../packages/block-library/src/columns/edit.js", "../../../packages/block-library/src/columns/utils.js", "../../../packages/block-library/build-module/columns/block.json", "../../../packages/block-library/src/columns/save.js", "../../../packages/block-library/src/columns/variations.js", "../../../packages/block-library/src/columns/transforms.js", "../../../packages/block-library/build-module/comments/block.json", "../../../packages/block-library/src/comments/deprecated.js", "../../../packages/block-library/src/comments/edit/index.js", "../../../packages/block-library/src/comments/edit/comments-inspector-controls.js", "../../../packages/block-library/src/comments/edit/comments-legacy.js", "../../../packages/block-library/src/comments/edit/placeholder.js", "../../../packages/block-library/src/post-comments-form/form.js", "../../../packages/block-library/src/comments/edit/template.js", "../../../packages/block-library/src/comments/save.js", "../../../packages/block-library/src/comments/index.js", "../../../packages/block-library/build-module/comment-author-avatar/block.json", "../../../packages/block-library/src/comment-author-avatar/edit.js", "../../../packages/block-library/src/comment-author-avatar/index.js", "../../../packages/block-library/build-module/comment-author-name/block.json", "../../../packages/block-library/src/comment-author-name/edit.js", "../../../packages/block-library/src/comment-author-name/deprecated.js", "../../../packages/block-library/src/comment-author-name/index.js", "../../../packages/block-library/build-module/comment-content/block.json", "../../../packages/block-library/src/comment-content/edit.js", "../../../packages/block-library/src/comment-content/deprecated.js", "../../../packages/block-library/src/comment-content/index.js", "../../../packages/block-library/build-module/comment-date/block.json", "../../../packages/block-library/src/comment-date/edit.js", "../../../packages/block-library/src/comment-date/deprecated.js", "../../../packages/block-library/src/comment-date/index.js", "../../../packages/block-library/build-module/comment-edit-link/block.json", "../../../packages/block-library/src/comment-edit-link/edit.js", "../../../packages/block-library/src/comment-edit-link/index.js", "../../../packages/block-library/build-module/comment-reply-link/block.json", "../../../packages/block-library/src/comment-reply-link/edit.js", "../../../packages/block-library/src/comment-reply-link/index.js", "../../../packages/block-library/build-module/comment-template/block.json", "../../../packages/block-library/src/comment-template/edit.js", "../../../packages/block-library/src/comment-template/hooks.js", "../../../packages/block-library/src/comment-template/save.js", "../../../packages/block-library/src/comment-template/index.js", "../../../packages/block-library/src/comments-pagination-previous/index.js", "../../../packages/block-library/build-module/comments-pagination-previous/block.json", "../../../packages/block-library/src/comments-pagination-previous/edit.js", "../../../packages/block-library/build-module/comments-pagination/block.json", "../../../packages/block-library/src/comments-pagination/edit.js", "../../../packages/block-library/src/comments-pagination/comments-pagination-arrow-controls.js", "../../../packages/block-library/src/comments-pagination/save.js", "../../../packages/block-library/src/comments-pagination/index.js", "../../../packages/block-library/src/comments-pagination-next/index.js", "../../../packages/block-library/build-module/comments-pagination-next/block.json", "../../../packages/block-library/src/comments-pagination-next/edit.js", "../../../packages/block-library/build-module/comments-pagination-numbers/block.json", "../../../packages/block-library/src/comments-pagination-numbers/edit.js", "../../../packages/block-library/src/comments-pagination-numbers/index.js", "../../../packages/block-library/build-module/comments-title/block.json", "../../../packages/block-library/src/comments-title/edit.js", "../../../packages/block-library/src/comments-title/deprecated.js", "../../../packages/block-library/src/comments-title/index.js", "../../../packages/block-library/src/cover/index.js", "../../../packages/block-library/src/cover/deprecated.js", "../../../packages/block-library/src/cover/shared.js", "../../../packages/block-library/src/cover/edit/index.js", "../../../packages/block-library/src/cover/edit/inspector-controls.js", "../../../packages/block-library/src/cover/constants.js", "../../../packages/block-library/src/utils/poster-image.js", "../../../packages/block-library/src/cover/edit/block-controls.js", "../../../packages/block-library/src/cover/edit/embed-video-url-input.js", "../../../packages/block-library/src/cover/embed-video-utils.js", "../../../packages/block-library/src/cover/edit/cover-placeholder.js", "../../../packages/block-library/src/cover/edit/resizable-cover-popover.js", "../../../node_modules/colord/index.mjs", "../../../node_modules/colord/plugins/names.mjs", "../../../node_modules/fast-average-color/dist/index.esm.js", "../../../packages/block-library/src/cover/edit/color-utils.js", "../../../packages/block-library/build-module/cover/block.json", "../../../packages/block-library/src/cover/save.js", "../../../packages/block-library/src/cover/transforms.js", "../../../packages/block-library/src/cover/variations.js", "../../../packages/block-library/src/details/index.js", "../../../packages/block-library/build-module/details/block.json", "../../../packages/block-library/src/details/edit.js", "../../../packages/block-library/src/details/save.js", "../../../packages/block-library/src/details/transforms.js", "../../../packages/block-library/src/embed/embed-controls.js", "../../../packages/block-library/src/embed/icons.js", "../../../packages/block-library/src/embed/embed-loading.js", "../../../packages/block-library/src/embed/embed-placeholder.js", "../../../packages/block-library/src/embed/embed-preview.js", "../../../packages/block-library/src/embed/wp-embed-preview.js", "../../../packages/block-library/src/embed/edit.js", "../../../packages/block-library/src/embed/save.js", "../../../packages/block-library/src/embed/transforms.js", "../../../packages/block-library/src/embed/variations.js", "../../../packages/block-library/src/embed/deprecated.js", "../../../packages/block-library/src/embed/index.js", "../../../packages/block-library/src/file/index.js", "../../../packages/block-library/src/file/deprecated.js", "../../../packages/block-library/src/file/edit.js", "../../../packages/block-library/src/file/inspector.js", "../../../packages/block-library/src/file/utils/index.js", "../../../packages/block-library/build-module/file/block.json", "../../../packages/block-library/src/file/save.js", "../../../packages/block-library/src/file/transforms.js", "../../../packages/block-library/src/form/index.js", "../../../packages/block-library/src/form/edit.js", "../../../packages/block-library/src/form/utils.js", "../../../packages/block-library/build-module/form/block.json", "../../../packages/block-library/src/form/save.js", "../../../packages/block-library/src/form/variations.js", "../../../packages/block-library/src/form/deprecated.js", "../../../packages/block-library/src/form/icons.js", "../../../packages/block-library/src/form-input/deprecated.js", "../../../packages/block-library/src/form-input/edit.js", "../../../packages/block-library/build-module/form-input/block.json", "../../../packages/block-library/src/form-input/save.js", "../../../packages/block-library/src/form-input/variations.js", "../../../packages/block-library/src/form-input/icons.js", "../../../packages/block-library/src/form-input/index.js", "../../../packages/block-library/src/form-submit-button/edit.js", "../../../packages/block-library/build-module/form-submit-button/block.json", "../../../packages/block-library/src/form-submit-button/save.js", "../../../packages/block-library/src/form-submit-button/index.js", "../../../packages/block-library/src/form-submission-notification/edit.js", "../../../packages/block-library/build-module/form-submission-notification/block.json", "../../../packages/block-library/src/form-submission-notification/save.js", "../../../packages/block-library/src/form-submission-notification/variations.js", "../../../packages/block-library/src/form-submission-notification/index.js", "../../../packages/block-library/src/gallery/deprecated.js", "../../../packages/block-library/src/gallery/constants.js", "../../../packages/block-library/src/gallery/edit.js", "../../../packages/block-library/src/gallery/shared-icon.js", "../../../packages/block-library/src/gallery/shared.js", "../../../packages/block-library/src/image/constants.js", "../../../packages/block-library/src/gallery/utils.js", "../../../packages/block-library/src/image/utils.js", "../../../packages/block-library/src/gallery/gallery.js", "../../../packages/block-library/src/gallery/use-image-sizes.js", "../../../packages/block-library/src/gallery/use-get-new-images.js", "../../../packages/block-library/src/gallery/use-get-media.js", "../../../packages/block-library/src/gallery/gap-styles.js", "../../../packages/block-library/build-module/gallery/block.json", "../../../packages/block-library/src/gallery/save.js", "../../../packages/block-library/src/gallery/transforms.js", "../../../packages/block-library/src/gallery/index.js", "../../../packages/block-library/src/group/index.js", "../../../packages/block-library/src/group/deprecated.js", "../../../packages/block-library/src/group/edit.js", "../../../packages/block-library/src/group/placeholder.js", "../../../packages/block-library/build-module/group/block.json", "../../../packages/block-library/src/group/save.js", "../../../packages/block-library/src/group/transforms.js", "../../../packages/block-library/src/group/variations.js", "../../../packages/block-library/src/heading/index.js", "../../../packages/block-library/src/heading/deprecated.js", "../../../packages/block-library/src/heading/edit.js", "../../../packages/block-library/src/heading/autogenerate-anchors.js", "../../../packages/block-library/build-module/heading/block.json", "../../../packages/block-library/src/heading/save.js", "../../../packages/block-library/src/heading/transforms.js", "../../../packages/block-library/src/heading/shared.js", "../../../packages/block-library/src/heading/variations.js", "../../../packages/block-library/src/home-link/index.js", "../../../packages/block-library/build-module/home-link/block.json", "../../../packages/block-library/src/home-link/edit.js", "../../../packages/block-library/src/home-link/save.js", "../../../packages/block-library/src/html/index.js", "../../../packages/block-library/src/html/edit.js", "../../../packages/block-library/src/html/preview.js", "../../../packages/block-library/src/html/modal.js", "../../../packages/block-library/src/html/utils.js", "../../../packages/block-library/build-module/html/block.json", "../../../packages/block-library/src/html/save.js", "../../../packages/block-library/src/html/transforms.js", "../../../packages/block-library/src/image/index.js", "../../../packages/block-library/src/image/deprecated.js", "../../../packages/block-library/src/image/edit.js", "../../../packages/block-library/src/image/image.js", "../../../packages/block-library/src/utils/media-control.js", "../../../packages/block-library/src/image/use-max-width-observer.js", "../../../packages/block-library/build-module/image/block.json", "../../../packages/block-library/src/image/save.js", "../../../packages/block-library/src/image/transforms.js", "../../../packages/block-library/build-module/latest-comments/block.json", "../../../packages/block-library/src/latest-comments/edit.js", "../../../packages/block-library/src/latest-comments/deprecated.js", "../../../packages/block-library/src/latest-comments/index.js", "../../../packages/block-library/build-module/latest-posts/block.json", "../../../packages/block-library/src/latest-posts/deprecated.js", "../../../packages/block-library/src/latest-posts/edit.js", "../../../packages/block-library/src/latest-posts/constants.js", "../../../packages/block-library/src/latest-posts/index.js", "../../../packages/block-library/src/list/index.js", "../../../packages/block-library/src/list/deprecated.js", "../../../packages/block-library/src/list/utils.js", "../../../packages/block-library/src/list/edit.js", "../../../packages/block-library/src/list/ordered-list-settings.js", "../../../packages/block-library/src/list/tag-name.js", "../../../packages/block-library/build-module/list/block.json", "../../../packages/block-library/src/list/save.js", "../../../packages/block-library/src/list/transforms.js", "../../../packages/block-library/src/math/edit.js", "../../../packages/block-library/build-module/math/block.json", "../../../packages/block-library/src/math/save.js", "../../../packages/block-library/src/math/deprecated.js", "../../../packages/block-library/src/math/index.js", "../../../packages/block-library/src/list-item/index.js", "../../../packages/block-library/build-module/list-item/block.json", "../../../packages/block-library/src/list-item/edit.js", "../../../packages/block-library/src/list-item/hooks/use-outdent-list-item.js", "../../../packages/block-library/src/list-item/hooks/use-indent-list-item.js", "../../../packages/block-library/src/list-item/hooks/use-enter.js", "../../../packages/block-library/src/list-item/hooks/use-space.js", "../../../packages/block-library/src/list-item/hooks/use-merge.js", "../../../packages/block-library/src/list-item/save.js", "../../../packages/block-library/src/list-item/transforms.js", "../../../packages/block-library/src/loginout/edit.js", "../../../packages/block-library/build-module/loginout/block.json", "../../../packages/block-library/src/loginout/index.js", "../../../packages/block-library/src/media-text/index.js", "../../../packages/block-library/src/media-text/deprecated.js", "../../../packages/block-library/src/media-text/constants.js", "../../../packages/block-library/src/media-text/edit.js", "../../../packages/block-library/src/media-text/media-container.js", "../../../packages/block-library/src/media-text/image-fill.js", "../../../packages/block-library/build-module/media-text/block.json", "../../../packages/block-library/src/media-text/save.js", "../../../packages/block-library/src/media-text/transforms.js", "../../../packages/block-library/src/missing/index.js", "../../../packages/block-library/src/missing/edit.js", "../../../packages/block-library/build-module/missing/block.json", "../../../packages/block-library/src/missing/save.js", "../../../packages/block-library/src/more/index.js", "../../../packages/block-library/src/more/edit.js", "../../../packages/block-library/build-module/more/block.json", "../../../packages/block-library/src/more/save.js", "../../../packages/block-library/src/more/transforms.js", "../../../packages/block-library/src/navigation/index.js", "../../../packages/block-library/build-module/navigation/block.json", "../../../packages/block-library/src/navigation/edit/index.js", "../../../packages/block-library/src/navigation/use-navigation-menu.js", "../../../packages/block-library/src/navigation/constants.js", "../../../packages/block-library/src/navigation/use-navigation-entities.js", "../../../packages/block-library/src/navigation/edit/placeholder/index.js", "../../../packages/block-library/src/navigation/edit/placeholder/placeholder-preview.js", "../../../packages/block-library/src/navigation/edit/navigation-menu-selector.js", "../../../packages/block-library/src/navigation/edit/responsive-wrapper.js", "../../../packages/block-library/src/navigation/edit/overlay-menu-icon.js", "../../../packages/block-library/src/navigation/edit/inner-blocks.js", "../../../packages/block-library/src/navigation/edit/navigation-menu-name-control.js", "../../../packages/block-library/src/navigation/edit/unsaved-inner-blocks.js", "../../../packages/block-library/src/navigation/edit/are-blocks-dirty.js", "../../../packages/block-library/src/navigation/edit/navigation-menu-delete-control.js", "../../../packages/block-library/src/navigation/edit/use-navigation-notice.js", "../../../packages/block-library/src/navigation/edit/overlay-menu-preview.js", "../../../packages/block-library/src/navigation/edit/overlay-panel.js", "../../../packages/block-library/src/navigation/edit/overlay-template-part-selector.js", "../../../packages/block-library/src/template-part/edit/utils/create-template-part-id.js", "../../../packages/block-library/src/navigation/edit/use-create-overlay.js", "../../../node_modules/tslib/tslib.es6.mjs", "../../../node_modules/lower-case/src/index.ts", "../../../node_modules/no-case/src/index.ts", "../../../node_modules/upper-case-first/src/index.ts", "../../../node_modules/capital-case/src/index.ts", "../../../node_modules/dot-case/src/index.ts", "../../../node_modules/param-case/src/index.ts", "../../../packages/block-library/src/navigation/edit/utils.js", "../../../packages/block-library/src/navigation/edit/overlay-visibility-control.js", "../../../packages/block-library/src/navigation/edit/overlay-menu-preview-button.js", "../../../packages/block-library/src/navigation/edit/overlay-menu-preview-controls.js", "../../../packages/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js", "../../../packages/block-library/src/navigation/menu-items-to-blocks.js", "../../../packages/block-library/src/navigation-link/shared/use-entity-binding.js", "../../../packages/block-library/src/navigation/edit/use-create-navigation-menu.js", "../../../packages/block-library/src/navigation/edit/use-generate-default-navigation-title.js", "../../../packages/block-library/src/navigation/use-template-part-area-label.js", "../../../packages/block-library/src/template-part/edit/utils/get-template-part-icon.js", "../../../packages/block-library/src/navigation/edit/use-inner-blocks.js", "../../../packages/block-library/src/navigation/edit/manage-menus-button.js", "../../../packages/block-library/src/navigation/edit/menu-inspector-controls.js", "../../../packages/block-library/src/navigation/edit/deleted-navigation-warning.js", "../../../packages/block-library/src/navigation/edit/leaf-more-menu.js", "../../../packages/block-library/src/navigation-link/shared/controls.js", "../../../packages/block-library/src/navigation-link/shared/use-handle-link-change.js", "../../../packages/block-library/src/navigation-link/shared/update-attributes.js", "../../../packages/block-library/src/navigation-link/link-ui/index.js", "../../../packages/block-library/src/navigation-link/link-ui/page-creator.js", "../../../packages/block-library/src/navigation-link/link-ui/dialog-wrapper.js", "../../../packages/block-library/src/navigation-link/link-ui/block-inserter.js", "../../../packages/block-library/src/navigation-link/shared/use-link-preview.js", "../../../packages/block-library/src/navigation-link/shared/use-is-invalid-link.js", "../../../packages/block-library/src/navigation-link/shared/invalid-draft-display.js", "../../../packages/block-library/src/navigation-link/shared/use-enable-link-status-validation.js", "../../../packages/block-library/src/navigation/edit/accessible-description.js", "../../../packages/block-library/src/navigation/edit/accessible-menu-description.js", "../../../packages/block-library/src/navigation/save.js", "../../../packages/block-library/src/navigation/deprecated.js", "../../../packages/block-library/src/navigation-link/index.js", "../../../packages/block-library/build-module/navigation-link/block.json", "../../../packages/block-library/src/navigation-link/edit.js", "../../../packages/block-library/src/navigation-link/save.js", "../../../packages/block-library/src/navigation-link/hooks.js", "../../../packages/block-library/src/navigation-link/transforms.js", "../../../packages/block-library/src/navigation-submenu/index.js", "../../../packages/block-library/build-module/navigation-submenu/block.json", "../../../packages/block-library/src/navigation-submenu/edit.js", "../../../packages/block-library/src/navigation-submenu/icons.js", "../../../packages/block-library/src/navigation-submenu/save.js", "../../../packages/block-library/src/navigation-submenu/transforms.js", "../../../packages/block-library/src/nextpage/edit.js", "../../../packages/block-library/build-module/nextpage/block.json", "../../../packages/block-library/src/nextpage/save.js", "../../../packages/block-library/src/nextpage/transforms.js", "../../../packages/block-library/src/nextpage/index.js", "../../../packages/block-library/src/navigation-overlay-close/index.js", "../../../packages/block-library/src/utils/is-within-overlay.js", "../../../packages/block-library/src/navigation-overlay-close/edit.js", "../../../packages/block-library/build-module/navigation-overlay-close/block.json", "../../../packages/block-library/src/navigation-overlay-close/icon.js", "../../../packages/block-library/build-module/pattern/block.json", "../../../packages/block-library/src/pattern/edit.js", "../../../packages/block-library/src/pattern/recursion-detector.js", "../../../packages/block-library/src/pattern/index.js", "../../../packages/block-library/build-module/page-list/block.json", "../../../packages/block-library/src/page-list/edit.js", "../../../packages/block-library/src/page-list/use-convert-to-navigation-links.js", "../../../packages/block-library/src/page-list/convert-to-links-modal.js", "../../../packages/block-library/src/page-list/index.js", "../../../packages/block-library/build-module/page-list-item/block.json", "../../../packages/block-library/src/page-list-item/edit.js", "../../../packages/block-library/src/navigation-link/icons.js", "../../../packages/block-library/src/page-list-item/index.js", "../../../packages/block-library/src/paragraph/index.js", "../../../packages/block-library/src/paragraph/deprecated.js", "../../../packages/block-library/src/paragraph/edit.js", "../../../packages/block-library/src/paragraph/use-enter.js", "../../../packages/block-library/src/paragraph/deprecated-attributes.js", "../../../packages/block-library/build-module/paragraph/block.json", "../../../packages/block-library/src/paragraph/save.js", "../../../packages/block-library/src/paragraph/transforms.js", "../../../packages/block-library/src/post-author/index.js", "../../../packages/block-library/build-module/post-author/block.json", "../../../packages/block-library/src/post-author/edit.js", "../../../packages/block-library/build-module/post-author-name/block.json", "../../../packages/block-library/src/post-author-name/edit.js", "../../../packages/block-library/src/post-author-name/transforms.js", "../../../packages/block-library/src/post-author-name/index.js", "../../../packages/block-library/build-module/post-author-biography/block.json", "../../../packages/block-library/src/post-author-biography/edit.js", "../../../packages/block-library/src/post-author-biography/index.js", "../../../packages/block-library/build-module/post-comment/block.json", "../../../packages/block-library/src/post-comment/edit.js", "../../../packages/block-library/src/post-comment/save.js", "../../../packages/block-library/src/post-comment/index.js", "../../../packages/block-library/build-module/post-comments-count/block.json", "../../../packages/block-library/src/post-comments-count/edit.js", "../../../packages/block-library/src/post-comments-count/transforms.js", "../../../packages/block-library/src/post-comments-count/index.js", "../../../packages/block-library/build-module/post-comments-form/block.json", "../../../packages/block-library/src/post-comments-form/edit.js", "../../../packages/block-library/src/post-comments-form/index.js", "../../../packages/block-library/build-module/post-comments-link/block.json", "../../../packages/block-library/src/post-comments-link/edit.js", "../../../packages/block-library/src/post-comments-link/transforms.js", "../../../packages/block-library/src/post-comments-link/index.js", "../../../packages/block-library/build-module/post-content/block.json", "../../../packages/block-library/src/post-content/edit.js", "../../../packages/block-library/src/post-content/index.js", "../../../packages/block-library/build-module/post-date/block.json", "../../../packages/block-library/src/post-date/edit.js", "../../../packages/block-library/src/post-date/deprecated.js", "../../../packages/block-library/src/post-date/variations.js", "../../../packages/block-library/src/post-date/index.js", "../../../packages/block-library/build-module/post-excerpt/block.json", "../../../packages/block-library/src/post-excerpt/edit.js", "../../../packages/block-library/src/post-excerpt/transforms.js", "../../../packages/block-library/src/post-excerpt/index.js", "../../../packages/block-library/build-module/post-featured-image/block.json", "../../../packages/block-library/src/post-featured-image/edit.js", "../../../packages/block-library/src/post-featured-image/dimension-controls.js", "../../../packages/block-library/src/post-featured-image/overlay-controls.js", "../../../packages/block-library/src/post-featured-image/overlay.js", "../../../packages/block-library/src/post-featured-image/utils.js", "../../../packages/block-library/src/post-featured-image/index.js", "../../../packages/block-library/src/post-navigation-link/index.js", "../../../packages/block-library/build-module/post-navigation-link/block.json", "../../../packages/block-library/src/post-navigation-link/edit.js", "../../../packages/block-library/src/post-navigation-link/variations.js", "../../../packages/block-library/build-module/post-template/block.json", "../../../packages/block-library/src/post-template/edit.js", "../../../packages/block-library/src/post-template/save.js", "../../../packages/block-library/src/post-template/index.js", "../../../packages/block-library/src/post-terms/index.js", "../../../packages/block-library/build-module/post-terms/block.json", "../../../packages/block-library/src/post-terms/edit.js", "../../../packages/block-library/src/post-terms/use-post-terms.js", "../../../packages/block-library/src/post-terms/hooks.js", "../../../packages/block-library/build-module/post-time-to-read/block.json", "../../../packages/block-library/src/post-time-to-read/edit.js", "../../../packages/block-library/src/post-time-to-read/variations.js", "../../../packages/block-library/src/post-time-to-read/index.js", "../../../packages/block-library/build-module/post-title/block.json", "../../../packages/block-library/src/post-title/edit.js", "../../../packages/block-library/src/post-title/deprecated.js", "../../../packages/block-library/src/post-title/index.js", "../../../packages/block-library/src/preformatted/index.js", "../../../packages/block-library/src/preformatted/edit.js", "../../../packages/block-library/build-module/preformatted/block.json", "../../../packages/block-library/src/preformatted/save.js", "../../../packages/block-library/src/preformatted/transforms.js", "../../../packages/block-library/src/pullquote/index.js", "../../../packages/block-library/src/pullquote/deprecated.js", "../../../packages/block-library/src/pullquote/shared.js", "../../../packages/block-library/src/pullquote/edit.js", "../../../packages/block-library/src/pullquote/figure.js", "../../../packages/block-library/src/pullquote/blockquote.js", "../../../packages/block-library/build-module/pullquote/block.json", "../../../packages/block-library/src/pullquote/save.js", "../../../packages/block-library/src/pullquote/transforms.js", "../../../packages/block-library/build-module/query/block.json", "../../../packages/block-library/src/query/edit/index.js", "../../../packages/block-library/src/query/edit/query-content.js", "../../../packages/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js", "../../../packages/block-library/src/query/utils.js", "../../../packages/block-library/src/query/edit/inspector-controls/index.js", "../../../packages/block-library/src/query/edit/inspector-controls/order-control.js", "../../../packages/block-library/src/query/edit/inspector-controls/author-control.js", "../../../packages/block-library/src/query/edit/inspector-controls/parent-control.js", "../../../packages/block-library/src/query/edit/inspector-controls/taxonomy-controls.js", "../../../packages/block-library/src/query/edit/inspector-controls/format-controls.js", "../../../packages/block-library/src/query/edit/inspector-controls/sticky-control.js", "../../../packages/block-library/src/query/edit/inspector-controls/per-page-control.js", "../../../packages/block-library/src/query/edit/inspector-controls/offset-controls.js", "../../../packages/block-library/src/query/edit/inspector-controls/pages-control.js", "../../../packages/block-library/src/query/edit/enhanced-pagination-modal.js", "../../../packages/block-library/src/query/edit/query-toolbar.js", "../../../packages/block-library/src/query/edit/pattern-selection.js", "../../../packages/block-library/src/utils/search-patterns.js", "../../../packages/block-library/src/query/edit/query-placeholder.js", "../../../packages/block-library/src/query/save.js", "../../../packages/block-library/src/query/variations.js", "../../../packages/block-library/src/query/icons.js", "../../../packages/block-library/src/query/deprecated.js", "../../../packages/block-library/src/query/index.js", "../../../packages/block-library/src/query-no-results/index.js", "../../../packages/block-library/build-module/query-no-results/block.json", "../../../packages/block-library/src/query-no-results/edit.js", "../../../packages/block-library/src/query-no-results/save.js", "../../../packages/block-library/build-module/query-pagination/block.json", "../../../packages/block-library/src/query-pagination/edit.js", "../../../packages/block-library/src/query-pagination/query-pagination-arrow-controls.js", "../../../packages/block-library/src/query-pagination/query-pagination-label-control.js", "../../../packages/block-library/src/query-pagination/save.js", "../../../packages/block-library/src/query-pagination/deprecated.js", "../../../packages/block-library/src/query-pagination/index.js", "../../../packages/block-library/build-module/query-pagination-next/block.json", "../../../packages/block-library/src/query-pagination-next/edit.js", "../../../packages/block-library/src/query-pagination-next/index.js", "../../../packages/block-library/build-module/query-pagination-numbers/block.json", "../../../packages/block-library/src/query-pagination-numbers/edit.js", "../../../packages/block-library/src/query-pagination-numbers/index.js", "../../../packages/block-library/build-module/query-pagination-previous/block.json", "../../../packages/block-library/src/query-pagination-previous/edit.js", "../../../packages/block-library/src/query-pagination-previous/index.js", "../../../packages/block-library/build-module/query-title/block.json", "../../../packages/block-library/src/query-title/edit.js", "../../../packages/block-library/src/query-title/use-archive-label.js", "../../../packages/block-library/src/query-title/use-post-type-label.js", "../../../packages/block-library/src/query-title/variations.js", "../../../packages/block-library/src/query-title/deprecated.js", "../../../packages/block-library/src/query-title/index.js", "../../../packages/block-library/build-module/query-total/block.json", "../../../packages/block-library/src/query-total/edit.js", "../../../packages/block-library/src/query-total/icons.js", "../../../packages/block-library/src/query-total/index.js", "../../../packages/block-library/src/quote/index.js", "../../../packages/block-library/src/quote/deprecated.js", "../../../packages/block-library/src/quote/edit.js", "../../../packages/block-library/build-module/quote/block.json", "../../../packages/block-library/src/quote/save.js", "../../../packages/block-library/src/quote/transforms.js", "../../../packages/block-library/src/block/index.js", "../../../packages/block-library/build-module/block/block.json", "../../../packages/block-library/src/block/edit.js", "../../../packages/block-library/src/block/deprecated.js", "../../../packages/block-library/src/read-more/index.js", "../../../packages/block-library/build-module/read-more/block.json", "../../../packages/block-library/src/read-more/edit.js", "../../../packages/block-library/build-module/rss/block.json", "../../../packages/block-library/src/rss/edit.js", "../../../packages/block-library/src/rss/index.js", "../../../packages/block-library/src/search/index.js", "../../../packages/block-library/build-module/search/block.json", "../../../packages/block-library/src/search/edit.js", "../../../packages/block-library/src/search/utils.js", "../../../packages/block-library/src/search/variations.js", "../../../packages/block-library/src/separator/edit.js", "../../../packages/block-library/src/separator/use-deprecated-opacity.js", "../../../packages/block-library/build-module/separator/block.json", "../../../packages/block-library/src/separator/save.js", "../../../packages/block-library/src/separator/transforms.js", "../../../packages/block-library/src/separator/deprecated.js", "../../../packages/block-library/src/separator/index.js", "../../../packages/block-library/src/shortcode/edit.js", "../../../packages/block-library/src/shortcode/save.js", "../../../packages/block-library/src/shortcode/transforms.js", "../../../packages/block-library/build-module/shortcode/block.json", "../../../packages/block-library/src/shortcode/index.js", "../../../packages/block-library/build-module/site-logo/block.json", "../../../packages/block-library/src/site-logo/edit.js", "../../../packages/block-library/src/site-logo/transforms.js", "../../../packages/block-library/src/site-logo/index.js", "../../../packages/block-library/build-module/site-tagline/block.json", "../../../packages/block-library/src/site-tagline/edit.js", "../../../packages/block-library/src/site-tagline/icon.js", "../../../packages/block-library/src/site-tagline/deprecated.js", "../../../packages/block-library/src/site-tagline/index.js", "../../../packages/block-library/build-module/site-title/block.json", "../../../packages/block-library/src/site-title/edit.js", "../../../packages/block-library/src/site-title/deprecated.js", "../../../packages/block-library/src/site-title/transforms.js", "../../../packages/block-library/src/site-title/index.js", "../../../packages/block-library/src/social-link/index.js", "../../../packages/block-library/src/social-link/edit.js", "../../../packages/block-library/src/social-link/social-list.js", "../../../packages/block-library/src/social-link/icons/amazon.js", "../../../packages/block-library/src/social-link/icons/bandcamp.js", "../../../packages/block-library/src/social-link/icons/behance.js", "../../../packages/block-library/src/social-link/icons/bluesky.js", "../../../packages/block-library/src/social-link/icons/chain.js", "../../../packages/block-library/src/social-link/icons/codepen.js", "../../../packages/block-library/src/social-link/icons/deviantart.js", "../../../packages/block-library/src/social-link/icons/discord.js", "../../../packages/block-library/src/social-link/icons/dribbble.js", "../../../packages/block-library/src/social-link/icons/dropbox.js", "../../../packages/block-library/src/social-link/icons/etsy.js", "../../../packages/block-library/src/social-link/icons/facebook.js", "../../../packages/block-library/src/social-link/icons/feed.js", "../../../packages/block-library/src/social-link/icons/fivehundredpx.js", "../../../packages/block-library/src/social-link/icons/flickr.js", "../../../packages/block-library/src/social-link/icons/foursquare.js", "../../../packages/block-library/src/social-link/icons/goodreads.js", "../../../packages/block-library/src/social-link/icons/google.js", "../../../packages/block-library/src/social-link/icons/github.js", "../../../packages/block-library/src/social-link/icons/gravatar.js", "../../../packages/block-library/src/social-link/icons/instagram.js", "../../../packages/block-library/src/social-link/icons/lastfm.js", "../../../packages/block-library/src/social-link/icons/linkedin.js", "../../../packages/block-library/src/social-link/icons/mail.js", "../../../packages/block-library/src/social-link/icons/mastodon.js", "../../../packages/block-library/src/social-link/icons/meetup.js", "../../../packages/block-library/src/social-link/icons/medium.js", "../../../packages/block-library/src/social-link/icons/patreon.js", "../../../packages/block-library/src/social-link/icons/pinterest.js", "../../../packages/block-library/src/social-link/icons/pocket.js", "../../../packages/block-library/src/social-link/icons/reddit.js", "../../../packages/block-library/src/social-link/icons/skype.js", "../../../packages/block-library/src/social-link/icons/snapchat.js", "../../../packages/block-library/src/social-link/icons/soundcloud.js", "../../../packages/block-library/src/social-link/icons/spotify.js", "../../../packages/block-library/src/social-link/icons/telegram.js", "../../../packages/block-library/src/social-link/icons/threads.js", "../../../packages/block-library/src/social-link/icons/tiktok.js", "../../../packages/block-library/src/social-link/icons/tumblr.js", "../../../packages/block-library/src/social-link/icons/twitch.js", "../../../packages/block-library/src/social-link/icons/twitter.js", "../../../packages/block-library/src/social-link/icons/vimeo.js", "../../../packages/block-library/src/social-link/icons/vk.js", "../../../packages/block-library/src/social-link/icons/whatsapp.js", "../../../packages/block-library/src/social-link/icons/wordpress.js", "../../../packages/block-library/src/social-link/icons/x.js", "../../../packages/block-library/src/social-link/icons/yelp.js", "../../../packages/block-library/src/social-link/icons/youtube.js", "../../../packages/block-library/build-module/social-link/block.json", "../../../packages/block-library/src/social-link/variations.js", "../../../packages/block-library/src/social-links/deprecated.js", "../../../packages/block-library/src/social-links/edit.js", "../../../packages/block-library/build-module/social-links/block.json", "../../../packages/block-library/src/social-links/save.js", "../../../packages/block-library/src/social-links/index.js", "../../../packages/block-library/src/spacer/deprecated.js", "../../../packages/block-library/src/spacer/edit.js", "../../../packages/block-library/src/spacer/controls.js", "../../../packages/block-library/src/spacer/constants.js", "../../../packages/block-library/build-module/spacer/block.json", "../../../packages/block-library/src/spacer/transforms.js", "../../../packages/block-library/src/spacer/save.js", "../../../packages/block-library/src/spacer/index.js", "../../../packages/block-library/src/tab/edit.js", "../../../packages/block-library/src/tab/controls.js", "../../../packages/block-library/src/tab/add-tab-toolbar-control.js", "../../../packages/block-library/src/tab/slug-from-label.js", "../../../packages/block-library/src/tab/tabs-list.js", "../../../packages/block-library/src/tab/save.js", "../../../packages/block-library/build-module/tab/block.json", "../../../packages/block-library/src/tab/icon.js", "../../../packages/block-library/src/tab/index.js", "../../../packages/block-library/src/table/index.js", "../../../packages/block-library/src/table/deprecated.js", "../../../packages/block-library/src/table/edit.js", "../../../packages/block-library/src/table/state.js", "../../../packages/block-library/build-module/table/block.json", "../../../packages/block-library/src/table/save.js", "../../../packages/block-library/src/table/transforms.js", "../../../packages/block-library/src/table/utils.js", "../../../packages/block-library/src/table-of-contents/index.js", "../../../packages/block-library/build-module/table-of-contents/block.json", "../../../packages/block-library/src/table-of-contents/edit.js", "../../../packages/block-library/src/table-of-contents/list.tsx", "../../../packages/block-library/src/table-of-contents/utils.ts", "../../../packages/block-library/src/table-of-contents/hooks.js", "../../../packages/block-library/src/table-of-contents/save.js", "../../../packages/block-library/src/tabs/edit.js", "../../../packages/block-library/src/tabs/style-engine.js", "../../../packages/block-library/src/tabs/controls.js", "../../../packages/block-library/src/tabs/save.js", "../../../packages/block-library/src/tabs/icon.js", "../../../packages/block-library/build-module/tabs/block.json", "../../../packages/block-library/src/tabs/index.js", "../../../packages/block-library/src/tag-cloud/transforms.js", "../../../packages/block-library/build-module/tag-cloud/block.json", "../../../packages/block-library/src/tag-cloud/edit.js", "../../../packages/block-library/src/tag-cloud/index.js", "../../../packages/block-library/src/template-part/index.js", "../../../packages/block-library/build-module/template-part/block.json", "../../../packages/block-library/src/template-part/edit/index.js", "../../../packages/block-library/src/template-part/edit/placeholder.js", "../../../packages/block-library/src/template-part/edit/utils/hooks.js", "../../../packages/block-library/src/template-part/edit/title-modal.js", "../../../packages/block-library/src/template-part/edit/selection-modal.js", "../../../packages/block-library/src/template-part/edit/utils/map-template-part-to-block-pattern.js", "../../../packages/block-library/src/template-part/edit/advanced-controls.js", "../../../packages/block-library/src/template-part/edit/import-controls.js", "../../../packages/block-library/src/template-part/edit/utils/transformers.js", "../../../packages/block-library/src/template-part/edit/inner-blocks.js", "../../../packages/block-library/src/template-part/variations.js", "../../../packages/block-library/build-module/term-count/block.json", "../../../packages/block-library/src/term-count/edit.js", "../../../packages/block-library/src/term-count/icons.js", "../../../packages/block-library/src/term-count/use-term-count.js", "../../../packages/block-library/src/term-count/index.js", "../../../packages/block-library/build-module/term-description/block.json", "../../../packages/block-library/src/term-description/edit.js", "../../../packages/block-library/src/term-description/use-term-description.js", "../../../packages/block-library/src/term-description/index.js", "../../../packages/block-library/build-module/term-name/block.json", "../../../packages/block-library/src/term-name/edit.js", "../../../packages/block-library/src/term-name/use-term-name.js", "../../../packages/block-library/src/term-name/index.js", "../../../packages/block-library/build-module/terms-query/block.json", "../../../packages/block-library/src/terms-query/edit/index.js", "../../../packages/block-library/src/terms-query/edit/terms-query-content.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/index.js", "../../../packages/block-library/src/terms-query/utils.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/taxonomy-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/order-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/empty-terms-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/nested-terms-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/inherit-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/max-terms-control.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/advanced-controls.js", "../../../packages/block-library/src/terms-query/edit/inspector-controls/include-control.js", "../../../packages/block-library/src/terms-query/edit/terms-query-placeholder.js", "../../../packages/block-library/src/terms-query/save.js", "../../../packages/block-library/src/terms-query/variations.js", "../../../packages/block-library/src/terms-query/index.js", "../../../packages/block-library/build-module/term-template/block.json", "../../../packages/block-library/src/term-template/edit.js", "../../../packages/block-library/src/term-template/save.js", "../../../packages/block-library/src/term-template/index.js", "../../../packages/block-library/src/text-columns/edit.js", "../../../packages/block-library/build-module/text-columns/block.json", "../../../packages/block-library/src/text-columns/save.js", "../../../packages/block-library/src/text-columns/transforms.js", "../../../packages/block-library/src/text-columns/index.js", "../../../packages/block-library/src/verse/index.js", "../../../packages/block-library/src/verse/deprecated.js", "../../../packages/block-library/src/verse/edit.js", "../../../packages/block-library/build-module/verse/block.json", "../../../packages/block-library/src/verse/save.js", "../../../packages/block-library/src/verse/transforms.js", "../../../packages/block-library/src/video/index.js", "../../../packages/block-library/src/video/deprecated.js", "../../../packages/block-library/build-module/video/block.json", "../../../packages/block-library/src/video/tracks.js", "../../../packages/block-library/src/video/edit.js", "../../../packages/block-library/src/video/edit-common-settings.js", "../../../packages/block-library/src/video/tracks-editor.js", "../../../packages/block-library/src/video/save.js", "../../../packages/block-library/src/video/transforms.js", "../../../packages/block-library/src/footnotes/index.js", "../../../packages/block-library/src/footnotes/edit.js", "../../../packages/block-library/build-module/footnotes/block.json", "../../../node_modules/uuid/dist/esm-browser/rng.js", "../../../node_modules/uuid/dist/esm-browser/stringify.js", "../../../node_modules/uuid/dist/esm-browser/native.js", "../../../node_modules/uuid/dist/esm-browser/v4.js", "../../../packages/block-library/src/footnotes/format.js", "../../../packages/block-library/src/utils/is-block-metadata-experimental.js", "../../../packages/block-library/src/block-keyboard-shortcuts/index.js", "../../../packages/block-library/src/private-apis.js"],
"sourcesContent": ["module.exports = window.wp.blocks;", "module.exports = window.wp.compose;", "module.exports = window.wp.data;", "module.exports = window.wp.blockEditor;", "module.exports = window.wp.serverSideRender;", "module.exports = window.wp.i18n;", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n", "\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n", "/**\n * SVG elements are case-sensitive.\n *\n * @see https://developer.mozilla.org/docs/Web/SVG/Element#svg_elements_a_to_z\n */\nexport const CASE_SENSITIVE_TAG_NAMES = [\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'linearGradient',\n 'radialGradient',\n 'textPath',\n] as const;\n\nexport const CASE_SENSITIVE_TAG_NAMES_MAP = CASE_SENSITIVE_TAG_NAMES.reduce(\n (accumulator, tagName) => {\n accumulator[tagName.toLowerCase()] = tagName;\n return accumulator;\n },\n {} as Record<string, string>,\n);\n\nexport const CARRIAGE_RETURN = '\\r';\nexport const CARRIAGE_RETURN_REGEX = new RegExp(CARRIAGE_RETURN, 'g');\nexport const CARRIAGE_RETURN_PLACEHOLDER = `__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_${Date.now()}__`;\nexport const CARRIAGE_RETURN_PLACEHOLDER_REGEX = new RegExp(\n CARRIAGE_RETURN_PLACEHOLDER,\n 'g',\n);\n", "import { Comment, Element, ProcessingInstruction, Text } from 'domhandler';\n\nimport type { DOMNode } from '../types';\nimport {\n CARRIAGE_RETURN,\n CARRIAGE_RETURN_PLACEHOLDER,\n CARRIAGE_RETURN_PLACEHOLDER_REGEX,\n CARRIAGE_RETURN_REGEX,\n CASE_SENSITIVE_TAG_NAMES_MAP,\n} from './constants';\n\n/**\n * Gets case-sensitive tag name.\n *\n * @param tagName - Tag name in lowercase.\n * @returns - Case-sensitive tag name.\n */\nfunction getCaseSensitiveTagName(tagName: string): string | undefined {\n return CASE_SENSITIVE_TAG_NAMES_MAP[tagName];\n}\n\n/**\n * Formats DOM attributes to a hash map.\n *\n * @param attributes - List of attributes.\n * @returns - Map of attribute name to value.\n */\nexport function formatAttributes(attributes: NamedNodeMap) {\n const map: Record<string, string> = {};\n let index = 0;\n const attributesLength = attributes.length;\n\n // `NamedNodeMap` is array-like\n for (; index < attributesLength; index++) {\n const attribute = attributes[index];\n map[attribute.name] = attribute.value;\n }\n\n return map;\n}\n\n/**\n * Corrects the tag name if it is case-sensitive (SVG).\n * Otherwise, returns the lowercase tag name (HTML).\n *\n * @param tagName - Lowercase tag name.\n * @returns - Formatted tag name.\n */\nfunction formatTagName(tagName: string): string {\n tagName = tagName.toLowerCase();\n const caseSensitiveTagName = getCaseSensitiveTagName(tagName);\n\n if (caseSensitiveTagName) {\n return caseSensitiveTagName;\n }\n\n return tagName;\n}\n\n/**\n * Escapes special characters before parsing.\n *\n * @param html - The HTML string.\n * @returns - HTML string with escaped special characters.\n */\nexport function escapeSpecialCharacters(html: string): string {\n return html.replace(CARRIAGE_RETURN_REGEX, CARRIAGE_RETURN_PLACEHOLDER);\n}\n\n/**\n * Reverts escaped special characters back to actual characters.\n *\n * @param text - The text with escaped characters.\n * @returns - Text with escaped characters reverted.\n */\nexport function revertEscapedCharacters(text: string): string {\n return text.replace(CARRIAGE_RETURN_PLACEHOLDER_REGEX, CARRIAGE_RETURN);\n}\n\n/**\n * Transforms DOM nodes to `domhandler` nodes.\n *\n * @param nodes - DOM nodes.\n * @param parent - Parent node.\n * @param directive - Directive.\n * @returns - Nodes.\n */\nexport function formatDOM(\n nodes: NodeList,\n parent: DOMNode | null = null,\n directive?: string,\n): DOMNode[] {\n const domNodes = [];\n let current;\n let index = 0;\n const nodesLength = nodes.length;\n\n for (; index < nodesLength; index++) {\n const node = nodes[index];\n\n // set the node data given the type\n switch (node.nodeType) {\n case 1: {\n const tagName = formatTagName(node.nodeName);\n\n // script, style, or tag\n current = new Element(\n tagName,\n formatAttributes((node as HTMLElement).attributes),\n );\n\n current.children = formatDOM(\n // template children are on content\n tagName === 'template'\n ? (node as HTMLTemplateElement).content.childNodes\n : node.childNodes,\n current,\n );\n\n break;\n }\n\n case 3:\n current = new Text(revertEscapedCharacters(node.nodeValue!));\n break;\n\n case 8:\n current = new Comment(node.nodeValue!);\n break;\n\n default:\n continue;\n }\n\n // set previous node next\n const prev = domNodes[index - 1] || null;\n if (prev) {\n prev.next = current;\n }\n\n // set properties for current node\n current.parent = parent as Element;\n current.prev = prev;\n current.next = null;\n\n domNodes.push(current);\n }\n\n if (directive) {\n current = new ProcessingInstruction(\n directive.substring(0, directive.indexOf(' ')).toLowerCase(),\n directive,\n );\n\n current.next = domNodes[0] || null;\n current.parent = parent as Element;\n domNodes.unshift(current);\n\n if (domNodes[1]) {\n domNodes[1].prev = domNodes[0];\n }\n }\n\n return domNodes;\n}\n", "import { escapeSpecialCharacters } from './utilities';\n\n// constants\nconst HTML = 'html';\nconst HEAD = 'head';\nconst BODY = 'body';\nconst FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/; // e.g., <h1>\n\n// match-all-characters in case of newlines (DOTALL)\nconst HEAD_TAG_REGEX = /<head[^]*>/i;\nconst BODY_TAG_REGEX = /<body[^]*>/i;\n\n// falls back to `parseFromString` if `createHTMLDocument` cannot be used\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nlet parseFromDocument = (html: string, tagName?: string): Document => {\n /* istanbul ignore next */\n throw new Error(\n 'This browser does not support `document.implementation.createHTMLDocument`',\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nlet parseFromString = (html: string, tagName?: string): Document => {\n /* istanbul ignore next */\n throw new Error(\n 'This browser does not support `DOMParser.prototype.parseFromString`',\n );\n};\n\nconst DOMParser = typeof window === 'object' && window.DOMParser;\n\n/**\n * DOMParser (performance: slow).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMParser#Parsing_an_SVG_or_HTML_document\n */\nif (typeof DOMParser === 'function') {\n const domParser = new DOMParser();\n const mimeType = 'text/html';\n\n /**\n * Creates an HTML document using `DOMParser.parseFromString`.\n *\n * @param html - The HTML string.\n * @param tagName - The element to render the HTML (with 'body' as fallback).\n * @returns - Document.\n */\n parseFromString = (html: string, tagName?: string): Document => {\n if (tagName) {\n /* istanbul ignore next */\n html = `<${tagName}>${html}</${tagName}>`;\n }\n\n return domParser.parseFromString(html, mimeType);\n };\n\n parseFromDocument = parseFromString;\n}\n\n/**\n * DOMImplementation (performance: fair).\n *\n * @see https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument\n */\nif (typeof document === 'object' && document.implementation) {\n const htmlDocument = document.implementation.createHTMLDocument();\n\n /**\n * Use HTML document created by `document.implementation.createHTMLDocument`.\n *\n * @param html - The HTML string.\n * @param tagName - The element to render the HTML (with 'body' as fallback).\n * @returns - Document\n */\n parseFromDocument = function (html: string, tagName?: string): Document {\n if (tagName) {\n const element = htmlDocument.documentElement.querySelector(tagName);\n\n if (element) {\n element.innerHTML = html;\n }\n\n return htmlDocument;\n }\n\n htmlDocument.documentElement.innerHTML = html;\n return htmlDocument;\n };\n}\n\n/**\n * Template (performance: fast).\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Element/template\n */\nconst template =\n typeof document === 'object' && document.createElement('template');\n\nlet parseFromTemplate: (html: string) => NodeList;\n\nif (template && template.content) {\n /**\n * Uses a template element (content fragment) to parse HTML.\n *\n * @param html - HTML string.\n * @returns - Nodes.\n */\n parseFromTemplate = (html: string): NodeList => {\n template.innerHTML = html;\n return template.content.childNodes;\n };\n}\n\n/**\n * Parses HTML string to DOM nodes.\n *\n * @param html - HTML markup.\n * @returns - DOM nodes.\n */\nexport default function domparser(html: string): NodeList {\n // Escape special characters before parsing\n html = escapeSpecialCharacters(html);\n\n const match = html.match(FIRST_TAG_REGEX);\n const firstTagName = match && match[1] ? match[1].toLowerCase() : '';\n\n switch (firstTagName) {\n case HTML: {\n const doc = parseFromString(html);\n\n // the created document may come with filler head/body elements,\n // so make sure to remove them if they don't actually exist\n if (!HEAD_TAG_REGEX.test(html)) {\n const element = doc.querySelector(HEAD);\n element?.parentNode?.removeChild(element);\n }\n\n if (!BODY_TAG_REGEX.test(html)) {\n const element = doc.querySelector(BODY);\n element?.parentNode?.removeChild(element);\n }\n\n return doc.querySelectorAll(HTML);\n }\n\n case HEAD:\n case BODY: {\n const elements = parseFromDocument(html).querySelectorAll(firstTagName);\n\n // if there's a sibling element, then return both elements\n if (BODY_TAG_REGEX.test(html) && HEAD_TAG_REGEX.test(html)) {\n return elements[0].parentNode!.childNodes;\n }\n\n return elements;\n }\n\n // low-level tag or text\n default: {\n if (parseFromTemplate) {\n return parseFromTemplate(html);\n }\n const element = parseFromDocument(html, BODY).querySelector(BODY);\n return element!.childNodes;\n }\n }\n}\n", "import domparser from './domparser';\nimport { formatDOM } from './utilities';\n\nconst DIRECTIVE_REGEX = /<(![a-zA-Z\\s]+)>/; // e.g., <!doctype html>\n\n/**\n * Parses HTML string to DOM nodes in browser.\n *\n * @param html - HTML markup.\n * @returns - DOM elements.\n */\nexport default function HTMLDOMParser(html: string) {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n // match directive\n const match = html.match(DIRECTIVE_REGEX);\n const directive = match ? match[1] : undefined;\n\n return formatDOM(domparser(html), null, directive);\n}\n", "// An attribute in which the DOM/SVG standard name is the same as the React prop name (e.g., 'accept').\nvar SAME = 0;\nexports.SAME = SAME;\n\n// An attribute in which the React prop name is the camelcased version of the DOM/SVG standard name (e.g., 'acceptCharset').\nvar CAMELCASE = 1;\nexports.CAMELCASE = CAMELCASE;\n\nexports.possibleStandardNames = {\n accept: 0,\n acceptCharset: 1,\n 'accept-charset': 'acceptCharset',\n accessKey: 1,\n action: 0,\n allowFullScreen: 1,\n alt: 0,\n as: 0,\n async: 0,\n autoCapitalize: 1,\n autoComplete: 1,\n autoCorrect: 1,\n autoFocus: 1,\n autoPlay: 1,\n autoSave: 1,\n capture: 0,\n cellPadding: 1,\n cellSpacing: 1,\n challenge: 0,\n charSet: 1,\n checked: 0,\n children: 0,\n cite: 0,\n class: 'className',\n classID: 1,\n className: 1,\n cols: 0,\n colSpan: 1,\n content: 0,\n contentEditable: 1,\n contextMenu: 1,\n controls: 0,\n controlsList: 1,\n coords: 0,\n crossOrigin: 1,\n dangerouslySetInnerHTML: 1,\n data: 0,\n dateTime: 1,\n default: 0,\n defaultChecked: 1,\n defaultValue: 1,\n defer: 0,\n dir: 0,\n disabled: 0,\n disablePictureInPicture: 1,\n disableRemotePlayback: 1,\n download: 0,\n draggable: 0,\n encType: 1,\n enterKeyHint: 1,\n for: 'htmlFor',\n form: 0,\n formMethod: 1,\n formAction: 1,\n formEncType: 1,\n formNoValidate: 1,\n formTarget: 1,\n frameBorder: 1,\n headers: 0,\n height: 0,\n hidden: 0,\n high: 0,\n href: 0,\n hrefLang: 1,\n htmlFor: 1,\n httpEquiv: 1,\n 'http-equiv': 'httpEquiv',\n icon: 0,\n id: 0,\n innerHTML: 1,\n inputMode: 1,\n integrity: 0,\n is: 0,\n itemID: 1,\n itemProp: 1,\n itemRef: 1,\n itemScope: 1,\n itemType: 1,\n keyParams: 1,\n keyType: 1,\n kind: 0,\n label: 0,\n lang: 0,\n list: 0,\n loop: 0,\n low: 0,\n manifest: 0,\n marginWidth: 1,\n marginHeight: 1,\n max: 0,\n maxLength: 1,\n media: 0,\n mediaGroup: 1,\n method: 0,\n min: 0,\n minLength: 1,\n multiple: 0,\n muted: 0,\n name: 0,\n noModule: 1,\n nonce: 0,\n noValidate: 1,\n open: 0,\n optimum: 0,\n pattern: 0,\n placeholder: 0,\n playsInline: 1,\n poster: 0,\n preload: 0,\n profile: 0,\n radioGroup: 1,\n readOnly: 1,\n referrerPolicy: 1,\n rel: 0,\n required: 0,\n reversed: 0,\n role: 0,\n rows: 0,\n rowSpan: 1,\n sandbox: 0,\n scope: 0,\n scoped: 0,\n scrolling: 0,\n seamless: 0,\n selected: 0,\n shape: 0,\n size: 0,\n sizes: 0,\n span: 0,\n spellCheck: 1,\n src: 0,\n srcDoc: 1,\n srcLang: 1,\n srcSet: 1,\n start: 0,\n step: 0,\n style: 0,\n summary: 0,\n tabIndex: 1,\n target: 0,\n title: 0,\n type: 0,\n useMap: 1,\n value: 0,\n width: 0,\n wmode: 0,\n wrap: 0,\n about: 0,\n accentHeight: 1,\n 'accent-height': 'accentHeight',\n accumulate: 0,\n additive: 0,\n alignmentBaseline: 1,\n 'alignment-baseline': 'alignmentBaseline',\n allowReorder: 1,\n alphabetic: 0,\n amplitude: 0,\n arabicForm: 1,\n 'arabic-form': 'arabicForm',\n ascent: 0,\n attributeName: 1,\n attributeType: 1,\n autoReverse: 1,\n azimuth: 0,\n baseFrequency: 1,\n baselineShift: 1,\n 'baseline-shift': 'baselineShift',\n baseProfile: 1,\n bbox: 0,\n begin: 0,\n bias: 0,\n by: 0,\n calcMode: 1,\n capHeight: 1,\n 'cap-height': 'capHeight',\n clip: 0,\n clipPath: 1,\n 'clip-path': 'clipPath',\n clipPathUnits: 1,\n clipRule: 1,\n 'clip-rule': 'clipRule',\n color: 0,\n colorInterpolation: 1,\n 'color-interpolation': 'colorInterpolation',\n colorInterpolationFilters: 1,\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorProfile: 1,\n 'color-profile': 'colorProfile',\n colorRendering: 1,\n 'color-rendering': 'colorRendering',\n contentScriptType: 1,\n contentStyleType: 1,\n cursor: 0,\n cx: 0,\n cy: 0,\n d: 0,\n datatype: 0,\n decelerate: 0,\n descent: 0,\n diffuseConstant: 1,\n direction: 0,\n display: 0,\n divisor: 0,\n dominantBaseline: 1,\n 'dominant-baseline': 'dominantBaseline',\n dur: 0,\n dx: 0,\n dy: 0,\n edgeMode: 1,\n elevation: 0,\n enableBackground: 1,\n 'enable-background': 'enableBackground',\n end: 0,\n exponent: 0,\n externalResourcesRequired: 1,\n fill: 0,\n fillOpacity: 1,\n 'fill-opacity': 'fillOpacity',\n fillRule: 1,\n 'fill-rule': 'fillRule',\n filter: 0,\n filterRes: 1,\n filterUnits: 1,\n floodOpacity: 1,\n 'flood-opacity': 'floodOpacity',\n floodColor: 1,\n 'flood-color': 'floodColor',\n focusable: 0,\n fontFamily: 1,\n 'font-family': 'fontFamily',\n fontSize: 1,\n 'font-size': 'fontSize',\n fontSizeAdjust: 1,\n 'font-size-adjust': 'fontSizeAdjust',\n fontStretch: 1,\n 'font-stretch': 'fontStretch',\n fontStyle: 1,\n 'font-style': 'fontStyle',\n fontVariant: 1,\n 'font-variant': 'fontVariant',\n fontWeight: 1,\n 'font-weight': 'fontWeight',\n format: 0,\n from: 0,\n fx: 0,\n fy: 0,\n g1: 0,\n g2: 0,\n glyphName: 1,\n 'glyph-name': 'glyphName',\n glyphOrientationHorizontal: 1,\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphOrientationVertical: 1,\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphRef: 1,\n gradientTransform: 1,\n gradientUnits: 1,\n hanging: 0,\n horizAdvX: 1,\n 'horiz-adv-x': 'horizAdvX',\n horizOriginX: 1,\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 0,\n imageRendering: 1,\n 'image-rendering': 'imageRendering',\n in2: 0,\n in: 0,\n inlist: 0,\n intercept: 0,\n k1: 0,\n k2: 0,\n k3: 0,\n k4: 0,\n k: 0,\n kernelMatrix: 1,\n kernelUnitLength: 1,\n kerning: 0,\n keyPoints: 1,\n keySplines: 1,\n keyTimes: 1,\n lengthAdjust: 1,\n letterSpacing: 1,\n 'letter-spacing': 'letterSpacing',\n lightingColor: 1,\n 'lighting-color': 'lightingColor',\n limitingConeAngle: 1,\n local: 0,\n markerEnd: 1,\n 'marker-end': 'markerEnd',\n markerHeight: 1,\n markerMid: 1,\n 'marker-mid': 'markerMid',\n markerStart: 1,\n 'marker-start': 'markerStart',\n markerUnits: 1,\n markerWidth: 1,\n mask: 0,\n maskContentUnits: 1,\n maskUnits: 1,\n mathematical: 0,\n mode: 0,\n numOctaves: 1,\n offset: 0,\n opacity: 0,\n operator: 0,\n order: 0,\n orient: 0,\n orientation: 0,\n origin: 0,\n overflow: 0,\n overlinePosition: 1,\n 'overline-position': 'overlinePosition',\n overlineThickness: 1,\n 'overline-thickness': 'overlineThickness',\n paintOrder: 1,\n 'paint-order': 'paintOrder',\n panose1: 0,\n 'panose-1': 'panose1',\n pathLength: 1,\n patternContentUnits: 1,\n patternTransform: 1,\n patternUnits: 1,\n pointerEvents: 1,\n 'pointer-events': 'pointerEvents',\n points: 0,\n pointsAtX: 1,\n pointsAtY: 1,\n pointsAtZ: 1,\n prefix: 0,\n preserveAlpha: 1,\n preserveAspectRatio: 1,\n primitiveUnits: 1,\n property: 0,\n r: 0,\n radius: 0,\n refX: 1,\n refY: 1,\n renderingIntent: 1,\n 'rendering-intent': 'renderingIntent',\n repeatCount: 1,\n repeatDur: 1,\n requiredExtensions: 1,\n requiredFeatures: 1,\n resource: 0,\n restart: 0,\n result: 0,\n results: 0,\n rotate: 0,\n rx: 0,\n ry: 0,\n scale: 0,\n security: 0,\n seed: 0,\n shapeRendering: 1,\n 'shape-rendering': 'shapeRendering',\n slope: 0,\n spacing: 0,\n specularConstant: 1,\n specularExponent: 1,\n speed: 0,\n spreadMethod: 1,\n startOffset: 1,\n stdDeviation: 1,\n stemh: 0,\n stemv: 0,\n stitchTiles: 1,\n stopColor: 1,\n 'stop-color': 'stopColor',\n stopOpacity: 1,\n 'stop-opacity': 'stopOpacity',\n strikethroughPosition: 1,\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughThickness: 1,\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 0,\n stroke: 0,\n strokeDasharray: 1,\n 'stroke-dasharray': 'strokeDasharray',\n strokeDashoffset: 1,\n 'stroke-dashoffset': 'strokeDashoffset',\n strokeLinecap: 1,\n 'stroke-linecap': 'strokeLinecap',\n strokeLinejoin: 1,\n 'stroke-linejoin': 'strokeLinejoin',\n strokeMiterlimit: 1,\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokeWidth: 1,\n 'stroke-width': 'strokeWidth',\n strokeOpacity: 1,\n 'stroke-opacity': 'strokeOpacity',\n suppressContentEditableWarning: 1,\n suppressHydrationWarning: 1,\n surfaceScale: 1,\n systemLanguage: 1,\n tableValues: 1,\n targetX: 1,\n targetY: 1,\n textAnchor: 1,\n 'text-anchor': 'textAnchor',\n textDecoration: 1,\n 'text-decoration': 'textDecoration',\n textLength: 1,\n textRendering: 1,\n 'text-rendering': 'textRendering',\n to: 0,\n transform: 0,\n typeof: 0,\n u1: 0,\n u2: 0,\n underlinePosition: 1,\n 'underline-position': 'underlinePosition',\n underlineThickness: 1,\n 'underline-thickness': 'underlineThickness',\n unicode: 0,\n unicodeBidi: 1,\n 'unicode-bidi': 'unicodeBidi',\n unicodeRange: 1,\n 'unicode-range': 'unicodeRange',\n unitsPerEm: 1,\n 'units-per-em': 'unitsPerEm',\n unselectable: 0,\n vAlphabetic: 1,\n 'v-alphabetic': 'vAlphabetic',\n values: 0,\n vectorEffect: 1,\n 'vector-effect': 'vectorEffect',\n version: 0,\n vertAdvY: 1,\n 'vert-adv-y': 'vertAdvY',\n vertOriginX: 1,\n 'vert-origin-x': 'vertOriginX',\n vertOriginY: 1,\n 'vert-origin-y': 'vertOriginY',\n vHanging: 1,\n 'v-hanging': 'vHanging',\n vIdeographic: 1,\n 'v-ideographic': 'vIdeographic',\n viewBox: 1,\n viewTarget: 1,\n visibility: 0,\n vMathematical: 1,\n 'v-mathematical': 'vMathematical',\n vocab: 0,\n widths: 0,\n wordSpacing: 1,\n 'word-spacing': 'wordSpacing',\n writingMode: 1,\n 'writing-mode': 'writingMode',\n x1: 0,\n x2: 0,\n x: 0,\n xChannelSelector: 1,\n xHeight: 1,\n 'x-height': 'xHeight',\n xlinkActuate: 1,\n 'xlink:actuate': 'xlinkActuate',\n xlinkArcrole: 1,\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkHref: 1,\n 'xlink:href': 'xlinkHref',\n xlinkRole: 1,\n 'xlink:role': 'xlinkRole',\n xlinkShow: 1,\n 'xlink:show': 'xlinkShow',\n xlinkTitle: 1,\n 'xlink:title': 'xlinkTitle',\n xlinkType: 1,\n 'xlink:type': 'xlinkType',\n xmlBase: 1,\n 'xml:base': 'xmlBase',\n xmlLang: 1,\n 'xml:lang': 'xmlLang',\n xmlns: 0,\n 'xml:space': 'xmlSpace',\n xmlnsXlink: 1,\n 'xmlns:xlink': 'xmlnsXlink',\n xmlSpace: 1,\n y1: 0,\n y2: 0,\n y: 0,\n yChannelSelector: 1,\n z: 0,\n zoomAndPan: 1\n};\n", "'use strict';\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n\n\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nconst RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\nconst STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nconst BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nconst BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nconst OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nconst NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nconst POSITIVE_NUMERIC = 6;\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(\n name,\n type,\n mustUseProperty,\n attributeName,\n attributeNamespace,\n sanitizeURL,\n removeEmptyString,\n) {\n this.acceptsBooleans =\n type === BOOLEANISH_STRING ||\n type === BOOLEAN ||\n type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nconst properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\nconst reservedProps = [\n 'children',\n 'dangerouslySetInnerHTML',\n // TODO: This prevents the assignment of defaultValue to regular\n // elements (not just inputs). Now that ReactDOMInput assigns to the\n // defaultValue property -- do we need this?\n 'defaultValue',\n 'defaultChecked',\n 'innerHTML',\n 'suppressContentEditableWarning',\n 'suppressHydrationWarning',\n 'style',\n];\n\nreservedProps.forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n RESERVED,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[\n ['acceptCharset', 'accept-charset'],\n ['className', 'class'],\n ['htmlFor', 'for'],\n ['httpEquiv', 'http-equiv'],\n].forEach(([name, attributeName]) => {\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n[\n 'autoReverse',\n 'externalResourcesRequired',\n 'focusable',\n 'preserveAlpha',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEANISH_STRING,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML boolean attributes.\n[\n 'allowFullScreen',\n 'async',\n // Note: there is a special case that prevents it from being written to the DOM\n // on the client side because the browsers are inconsistent. Instead we call focus().\n 'autoFocus',\n 'autoPlay',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'disablePictureInPicture',\n 'disableRemotePlayback',\n 'formNoValidate',\n 'hidden',\n 'loop',\n 'noModule',\n 'noValidate',\n 'open',\n 'playsInline',\n 'readOnly',\n 'required',\n 'reversed',\n 'scoped',\n 'seamless',\n // Microdata\n 'itemScope',\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n[\n 'checked',\n // Note: `option.selected` is not updated if `select.multiple` is\n // disabled with `removeAttribute`. We have special logic for handling this.\n 'multiple',\n 'muted',\n 'selected',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n BOOLEAN,\n true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n[\n 'capture',\n 'download',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n OVERLOADED_BOOLEAN,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be positive numbers.\n[\n 'cols',\n 'rows',\n 'size',\n 'span',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n POSITIVE_NUMERIC,\n false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(name => {\n properties[name] = new PropertyInfoRecord(\n name,\n NUMERIC,\n false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\nconst CAMELIZE = /[\\-\\:]([a-z])/g;\nconst capitalize = token => token[1].toUpperCase();\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n[\n 'accent-height',\n 'alignment-baseline',\n 'arabic-form',\n 'baseline-shift',\n 'cap-height',\n 'clip-path',\n 'clip-rule',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'dominant-baseline',\n 'enable-background',\n 'fill-opacity',\n 'fill-rule',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'glyph-name',\n 'glyph-orientation-horizontal',\n 'glyph-orientation-vertical',\n 'horiz-adv-x',\n 'horiz-origin-x',\n 'image-rendering',\n 'letter-spacing',\n 'lighting-color',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'overline-position',\n 'overline-thickness',\n 'paint-order',\n 'panose-1',\n 'pointer-events',\n 'rendering-intent',\n 'shape-rendering',\n 'stop-color',\n 'stop-opacity',\n 'strikethrough-position',\n 'strikethrough-thickness',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke-width',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'underline-position',\n 'underline-thickness',\n 'unicode-bidi',\n 'unicode-range',\n 'units-per-em',\n 'v-alphabetic',\n 'v-hanging',\n 'v-ideographic',\n 'v-mathematical',\n 'vector-effect',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'word-spacing',\n 'writing-mode',\n 'xmlns:xlink',\n 'x-height',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xlink namespace.\n[\n 'xlink:actuate',\n 'xlink:arcrole',\n 'xlink:role',\n 'xlink:show',\n 'xlink:title',\n 'xlink:type',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/1999/xlink',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// String SVG attributes with the xml namespace.\n[\n 'xml:base',\n 'xml:lang',\n 'xml:space',\n\n // NOTE: if you add a camelCased prop to this list,\n // you'll need to set attributeName to name.toLowerCase()\n // instead in the assignment below.\n].forEach(attributeName => {\n const name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(\n name,\n STRING,\n false, // mustUseProperty\n attributeName,\n 'http://www.w3.org/XML/1998/namespace',\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false, // removeEmptyString\n );\n});\n\n// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nconst xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord(\n 'xlinkHref',\n STRING,\n false, // mustUseProperty\n 'xlink:href',\n 'http://www.w3.org/1999/xlink',\n true, // sanitizeURL\n false, // removeEmptyString\n);\n\n['src', 'href', 'action', 'formAction'].forEach(attributeName => {\n properties[attributeName] = new PropertyInfoRecord(\n attributeName,\n STRING,\n false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true, // removeEmptyString\n );\n});\n\n// \nconst {\n CAMELCASE,\n SAME,\n possibleStandardNames: possibleStandardNamesOptimized\n} = require('../lib/possibleStandardNamesOptimized');\n\nconst ATTRIBUTE_NAME_START_CHAR =\n ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n\nconst ATTRIBUTE_NAME_CHAR =\n ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n/**\n * Checks whether a property name is a custom attribute.\n *\n * @see https://github.com/facebook/react/blob/15-stable/src/renderers/dom/shared/HTMLDOMPropertyConfig.js#L23-L25\n *\n * @type {(attribute: string) => boolean}\n */\nconst isCustomAttribute =\n RegExp.prototype.test.bind(\n // eslint-disable-next-line no-misleading-character-class\n new RegExp('^(data|aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$')\n );\n\n/**\n * @type {Record<string, string>}\n */\nconst possibleStandardNames = Object.keys(\n possibleStandardNamesOptimized\n).reduce((accumulator, standardName) => {\n const propName = possibleStandardNamesOptimized[standardName];\n if (propName === SAME) {\n accumulator[standardName] = standardName;\n } else if (propName === CAMELCASE) {\n accumulator[standardName.toLowerCase()] = standardName;\n } else {\n accumulator[standardName] = propName;\n }\n return accumulator;\n}, {});\n\nexports.BOOLEAN = BOOLEAN;\nexports.BOOLEANISH_STRING = BOOLEANISH_STRING;\nexports.NUMERIC = NUMERIC;\nexports.OVERLOADED_BOOLEAN = OVERLOADED_BOOLEAN;\nexports.POSITIVE_NUMERIC = POSITIVE_NUMERIC;\nexports.RESERVED = RESERVED;\nexports.STRING = STRING;\nexports.getPropertyInfo = getPropertyInfo;\nexports.isCustomAttribute = isCustomAttribute;\nexports.possibleStandardNames = possibleStandardNames;\n", "module.exports = window.React;", "// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n", "import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport interface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n", "const CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9_-]+$/;\nconst HYPHEN_REGEX = /-([a-z])/g;\nconst NO_HYPHEN_REGEX = /^[^-]+$/;\nconst VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nconst MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n\n/**\n * Checks whether to skip camelCase.\n */\nconst skipCamelCase = (property: string) =>\n !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n\n/**\n * Replacer that capitalizes first character.\n */\nconst capitalize = (match: string, character: string) =>\n character.toUpperCase();\n\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nconst trimHyphen = (match: string, prefix: string) => `${prefix}-`;\n\n/**\n * CamelCase options.\n */\nexport interface CamelCaseOptions {\n reactCompat?: boolean;\n}\n\n/**\n * CamelCases a CSS property.\n */\nexport const camelCase = (property: string, options: CamelCaseOptions = {}) => {\n if (skipCamelCase(property)) {\n return property;\n }\n\n property = property.toLowerCase();\n\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n } else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n\n return property.replace(HYPHEN_REGEX, capitalize);\n};\n", "import StyleToObject from 'style-to-object';\n\nimport { camelCase, CamelCaseOptions } from './utilities';\n\ntype StyleObject = Record<string, string>;\n\ninterface StyleToJSOptions extends CamelCaseOptions {}\n\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style: string, options?: StyleToJSOptions): StyleObject {\n const output: StyleObject = {};\n\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n StyleToObject(style, (property, value) => {\n // skip CSS comment\n if (property && value) {\n output[camelCase(property, options)] = value;\n }\n });\n\n return output;\n}\n\nStyleToJS.default = StyleToJS;\n\nexport = StyleToJS;\n", "import type { Element } from 'html-dom-parser';\nimport { version } from 'react';\nimport StyleToJS from 'style-to-js';\n\nimport type { Props } from './attributes-to-props';\n\nconst RESERVED_SVG_MATHML_ELEMENTS = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n] as const);\n\ntype ReservedSvgMathmlElements =\n typeof RESERVED_SVG_MATHML_ELEMENTS extends Set<infer T> ? T : never;\n\n/**\n * Check if a tag is a custom component.\n *\n * @see {@link https://github.com/facebook/react/blob/v16.6.3/packages/react-dom/src/shared/isCustomComponent.js}\n *\n * @param tagName - Tag name.\n * @param props - Props passed to the element.\n * @returns - Whether the tag is custom component.\n */\nexport function isCustomComponent(\n tagName: string,\n props?: Record<PropertyKey, string>,\n): boolean {\n if (!tagName.includes('-')) {\n return Boolean(props && typeof props.is === 'string');\n }\n\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n if (RESERVED_SVG_MATHML_ELEMENTS.has(tagName as ReservedSvgMathmlElements)) {\n return false;\n }\n\n return true;\n}\n\nconst styleOptions = {\n reactCompat: true,\n} as const;\n\n/**\n * Sets style prop.\n *\n * @param style - Inline style.\n * @param props - Props object.\n */\nexport function setStyleProp(style: string, props: Props): void {\n if (typeof style !== 'string') {\n return;\n }\n\n if (!style.trim()) {\n props.style = {};\n return;\n }\n\n try {\n props.style = StyleToJS(style, styleOptions);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n props.style = {};\n }\n}\n\n/**\n * @see https://reactjs.org/blog/2017/09/08/dom-attributes-in-react-16.html\n */\nexport const PRESERVE_CUSTOM_ATTRIBUTES = Number(version.split('.')[0]) >= 16;\n\n/**\n * @see https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-dom/src/client/validateDOMNesting.js#L213\n */\nexport const ELEMENTS_WITH_NO_TEXT_CHILDREN = new Set([\n 'tr',\n 'tbody',\n 'thead',\n 'tfoot',\n 'colgroup',\n 'table',\n 'head',\n 'html',\n 'frameset',\n] as const);\n\ntype ElementsWithNoTextChildren =\n typeof ELEMENTS_WITH_NO_TEXT_CHILDREN extends Set<infer T> ? T : never;\n\n/**\n * Checks if the given node can contain text nodes\n *\n * @param node - Element node.\n * @returns - Whether the node can contain text nodes.\n */\nexport const canTextBeChildOfNode = (node: Element) =>\n !ELEMENTS_WITH_NO_TEXT_CHILDREN.has(node.name as ElementsWithNoTextChildren);\n\n/**\n * Returns the first argument as is.\n *\n * @param arg - The argument to be returned.\n * @returns - The input argument `arg`.\n */\nexport const returnFirstArg = (arg: any) => arg; // eslint-disable-line @typescript-eslint/no-explicit-any\n", "import {\n BOOLEAN,\n getPropertyInfo,\n isCustomAttribute,\n OVERLOADED_BOOLEAN,\n possibleStandardNames,\n} from 'react-property';\n\nimport { PRESERVE_CUSTOM_ATTRIBUTES, setStyleProp } from './utilities';\n\n// https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components\n// https://developer.mozilla.org/docs/Web/HTML/Attributes\nconst UNCONTROLLED_COMPONENT_ATTRIBUTES = ['checked', 'value'] as const;\nconst UNCONTROLLED_COMPONENT_NAMES = ['input', 'select', 'textarea'] as const;\n\ntype UncontrolledComponentAttributes =\n (typeof UNCONTROLLED_COMPONENT_ATTRIBUTES)[number];\n\ntype UncontrolledComponentNames = (typeof UNCONTROLLED_COMPONENT_NAMES)[number];\n\nconst valueOnlyInputs = {\n reset: true,\n submit: true,\n} as const;\n\nexport type ValueOnlyInputsKeys = keyof typeof valueOnlyInputs;\n\nexport type Attributes = Record<PropertyKey, string>;\n\nexport type Props = Record<PropertyKey, string | boolean> & {\n dangerouslySetInnerHTML?: {\n __html: string;\n };\n key?: string | number;\n style?: Record<PropertyKey, string>;\n};\n\n/**\n * Converts HTML/SVG DOM attributes to React props.\n *\n * @param attributes - HTML/SVG DOM attributes.\n * @param nodeName - DOM node name.\n * @returns - React props.\n */\nexport default function attributesToProps(\n attributes: Attributes = {},\n nodeName?: string,\n): Props {\n const props: Props = {};\n\n const isInputValueOnly = Boolean(\n attributes.type && valueOnlyInputs[attributes.type as ValueOnlyInputsKeys],\n );\n\n for (const attributeName in attributes) {\n const attributeValue = attributes[attributeName];\n\n // ARIA (aria-*) or custom data (data-*) attribute\n if (isCustomAttribute(attributeName)) {\n props[attributeName] = attributeValue;\n continue;\n }\n\n // convert HTML/SVG attribute to React prop\n const attributeNameLowerCased = attributeName.toLowerCase();\n let propName = getPropName(attributeNameLowerCased);\n\n if (propName) {\n const propertyInfo = getPropertyInfo(propName);\n\n // convert attribute to uncontrolled component prop (e.g., `value` to `defaultValue`)\n if (\n UNCONTROLLED_COMPONENT_ATTRIBUTES.includes(\n propName as UncontrolledComponentAttributes,\n ) &&\n UNCONTROLLED_COMPONENT_NAMES.includes(\n nodeName! as UncontrolledComponentNames,\n ) &&\n !isInputValueOnly\n ) {\n propName = getPropName('default' + attributeNameLowerCased);\n }\n\n props[propName] = attributeValue;\n\n switch (propertyInfo && propertyInfo.type) {\n case BOOLEAN:\n props[propName] = true;\n break;\n case OVERLOADED_BOOLEAN:\n if (attributeValue === '') {\n props[propName] = true;\n }\n break;\n }\n continue;\n }\n\n // preserve custom attribute if React >=16\n if (PRESERVE_CUSTOM_ATTRIBUTES) {\n props[attributeName] = attributeValue;\n }\n }\n\n // transform inline style to object\n setStyleProp(attributes.style, props);\n\n return props;\n}\n\n/**\n * Gets prop name from lowercased attribute name.\n *\n * @param attributeName - Lowercased attribute name.\n * @returns - Prop name.\n */\nfunction getPropName(attributeName: string): string {\n return possibleStandardNames[attributeName];\n}\n", "import type { DOMNode, Element, Text } from 'html-dom-parser';\nimport type { JSX } from 'react';\nimport { cloneElement, createElement, isValidElement } from 'react';\n\nimport type { Props } from './attributes-to-props';\nimport attributesToProps from './attributes-to-props';\nimport type { HTMLReactParserOptions } from './types';\nimport {\n canTextBeChildOfNode,\n isCustomComponent,\n PRESERVE_CUSTOM_ATTRIBUTES,\n returnFirstArg,\n setStyleProp,\n} from './utilities';\n\nconst React = {\n cloneElement,\n createElement,\n isValidElement,\n} as const;\n\n/**\n * Converts DOM nodes to JSX element(s).\n *\n * @param nodes - DOM nodes.\n * @param options - Options.\n * @returns - String or JSX element(s).\n */\nexport default function domToReact(\n nodes: DOMNode[],\n options: HTMLReactParserOptions = {},\n): string | JSX.Element | JSX.Element[] {\n const reactElements = [];\n\n const hasReplace = typeof options.replace === 'function';\n const transform = options.transform || returnFirstArg;\n const { cloneElement, createElement, isValidElement } =\n options.library || React;\n\n const nodesLength = nodes.length;\n\n for (let index = 0; index < nodesLength; index++) {\n const node = nodes[index];\n\n // replace with custom React element (if present)\n if (hasReplace) {\n let replaceElement = options.replace!(node, index) as JSX.Element;\n\n if (isValidElement(replaceElement)) {\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n replaceElement = cloneElement(replaceElement, {\n key: replaceElement.key || index,\n });\n }\n\n reactElements.push(transform(replaceElement, node, index));\n continue;\n }\n }\n\n if (node.type === 'text') {\n const isWhitespace = !node.data.trim().length;\n\n // We have a whitespace node that can't be nested in its parent\n // so skip it\n if (\n isWhitespace &&\n node.parent &&\n !canTextBeChildOfNode(node.parent as Element)\n ) {\n continue;\n }\n\n // Trim is enabled and we have a whitespace node\n // so skip it\n if (options.trim && isWhitespace) {\n continue;\n }\n\n // We have a text node that's not whitespace and it can be nested\n // in its parent so add it to the results\n reactElements.push(transform(node.data, node, index));\n continue;\n }\n\n const element = node as Element;\n let props: Props = {};\n\n if (skipAttributesToProps(element)) {\n setStyleProp(element.attribs.style, element.attribs);\n props = element.attribs;\n } else if (element.attribs) {\n props = attributesToProps(element.attribs, element.name);\n }\n\n let children: ReturnType<typeof domToReact> | undefined;\n\n switch (node.type) {\n case 'script':\n case 'style':\n // prevent text in <script> or <style> from being escaped\n // https://react.dev/reference/react-dom/components/common#dangerously-setting-the-inner-html\n if (node.children[0]) {\n props.dangerouslySetInnerHTML = {\n __html: (node.children[0] as Text).data,\n };\n }\n break;\n\n case 'tag':\n // setting textarea value in children is an antipattern in React\n // https://react.dev/reference/react-dom/components/textarea#caveats\n if (node.name === 'textarea' && node.children[0]) {\n props.defaultValue = (node.children[0] as Text).data;\n } else if (node.children && node.children.length) {\n // continue recursion of creating React elements (if applicable)\n children = domToReact(node.children as Text[], options);\n }\n break;\n\n // skip all other cases (e.g., comment)\n default:\n continue;\n }\n\n // set \"key\" prop for sibling elements\n // https://react.dev/learn/rendering-lists#rules-of-keys\n if (nodesLength > 1) {\n props.key = index;\n }\n\n reactElements.push(\n transform(createElement(node.name, props, children), node, index),\n );\n }\n\n return reactElements.length === 1 ? reactElements[0] : reactElements;\n}\n\n/**\n * Determines whether DOM element attributes should be transformed to props.\n * Web Components should not have their attributes transformed except for `style`.\n *\n * @param node - Element node.\n * @returns - Whether the node attributes should be converted to props.\n */\nfunction skipAttributesToProps(node: Element): boolean {\n return (\n PRESERVE_CUSTOM_ATTRIBUTES &&\n node.type === 'tag' &&\n isCustomComponent(node.name, node.attribs)\n );\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n", "\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n", "\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n", "import htmlToDOM from 'html-dom-parser';\n\nimport attributesToProps from './attributes-to-props';\nimport domToReact from './dom-to-react';\nimport type { HTMLReactParserOptions } from './types';\n\nexport { Comment, Element, ProcessingInstruction, Text } from 'domhandler';\nexport type { DOMNode } from 'html-dom-parser';\n\nexport type { HTMLReactParserOptions };\nexport { attributesToProps, domToReact, htmlToDOM };\n\nconst domParserOptions = { lowerCaseAttributeNames: false } as const;\n\n/**\n * Converts HTML string to React elements.\n *\n * @param html - HTML string.\n * @param options - Parser options.\n * @returns - React element(s), empty array, or string.\n */\nexport default function HTMLReactParser(\n html: string,\n options?: HTMLReactParserOptions,\n): ReturnType<typeof domToReact> {\n if (typeof html !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!html) {\n return [];\n }\n\n return domToReact(\n htmlToDOM(html, options?.htmlparser2 || domParserOptions),\n options,\n );\n}\n", "module.exports = window.wp.dom;", "module.exports = window.ReactJSXRuntime;", "module.exports = window.wp.components;", "module.exports = window.wp.element;", "module.exports = window.wp.blob;", "module.exports = window.wp.coreData;", "module.exports = window.wp.primitives;", "module.exports = window.wp.url;", "module.exports = window.wp.htmlEntities;", "module.exports = window.wp.notices;", "module.exports = window.wp.privateApis;", "module.exports = window.wp.keycodes;", "module.exports = window.wp.deprecated;", "module.exports = window.wp.richText;", "module.exports = window.wp.date;", "module.exports = window.wp.apiFetch;", "module.exports = window.wp.hooks;", "var characterMap = {\n\t\"\u00C0\": \"A\",\n\t\"\u00C1\": \"A\",\n\t\"\u00C2\": \"A\",\n\t\"\u00C3\": \"A\",\n\t\"\u00C4\": \"A\",\n\t\"\u00C5\": \"A\",\n\t\"\u1EA4\": \"A\",\n\t\"\u1EAE\": \"A\",\n\t\"\u1EB2\": \"A\",\n\t\"\u1EB4\": \"A\",\n\t\"\u1EB6\": \"A\",\n\t\"\u00C6\": \"AE\",\n\t\"\u1EA6\": \"A\",\n\t\"\u1EB0\": \"A\",\n\t\"\u0202\": \"A\",\n\t\"\u1EA2\": \"A\",\n\t\"\u1EA0\": \"A\",\n\t\"\u1EA8\": \"A\",\n\t\"\u1EAA\": \"A\",\n\t\"\u1EAC\": \"A\",\n\t\"\u00C7\": \"C\",\n\t\"\u1E08\": \"C\",\n\t\"\u00C8\": \"E\",\n\t\"\u00C9\": \"E\",\n\t\"\u00CA\": \"E\",\n\t\"\u00CB\": \"E\",\n\t\"\u1EBE\": \"E\",\n\t\"\u1E16\": \"E\",\n\t\"\u1EC0\": \"E\",\n\t\"\u1E14\": \"E\",\n\t\"\u1E1C\": \"E\",\n\t\"\u0206\": \"E\",\n\t\"\u1EBA\": \"E\",\n\t\"\u1EBC\": \"E\",\n\t\"\u1EB8\": \"E\",\n\t\"\u1EC2\": \"E\",\n\t\"\u1EC4\": \"E\",\n\t\"\u1EC6\": \"E\",\n\t\"\u00CC\": \"I\",\n\t\"\u00CD\": \"I\",\n\t\"\u00CE\": \"I\",\n\t\"\u00CF\": \"I\",\n\t\"\u1E2E\": \"I\",\n\t\"\u020A\": \"I\",\n\t\"\u1EC8\": \"I\",\n\t\"\u1ECA\": \"I\",\n\t\"\u00D0\": \"D\",\n\t\"\u00D1\": \"N\",\n\t\"\u00D2\": \"O\",\n\t\"\u00D3\": \"O\",\n\t\"\u00D4\": \"O\",\n\t\"\u00D5\": \"O\",\n\t\"\u00D6\": \"O\",\n\t\"\u00D8\": \"O\",\n\t\"\u1ED0\": \"O\",\n\t\"\u1E4C\": \"O\",\n\t\"\u1E52\": \"O\",\n\t\"\u020E\": \"O\",\n\t\"\u1ECE\": \"O\",\n\t\"\u1ECC\": \"O\",\n\t\"\u1ED4\": \"O\",\n\t\"\u1ED6\": \"O\",\n\t\"\u1ED8\": \"O\",\n\t\"\u1EDC\": \"O\",\n\t\"\u1EDE\": \"O\",\n\t\"\u1EE0\": \"O\",\n\t\"\u1EDA\": \"O\",\n\t\"\u1EE2\": \"O\",\n\t\"\u00D9\": \"U\",\n\t\"\u00DA\": \"U\",\n\t\"\u00DB\": \"U\",\n\t\"\u00DC\": \"U\",\n\t\"\u1EE6\": \"U\",\n\t\"\u1EE4\": \"U\",\n\t\"\u1EEC\": \"U\",\n\t\"\u1EEE\": \"U\",\n\t\"\u1EF0\": \"U\",\n\t\"\u00DD\": \"Y\",\n\t\"\u00E0\": \"a\",\n\t\"\u00E1\": \"a\",\n\t\"\u00E2\": \"a\",\n\t\"\u00E3\": \"a\",\n\t\"\u00E4\": \"a\",\n\t\"\u00E5\": \"a\",\n\t\"\u1EA5\": \"a\",\n\t\"\u1EAF\": \"a\",\n\t\"\u1EB3\": \"a\",\n\t\"\u1EB5\": \"a\",\n\t\"\u1EB7\": \"a\",\n\t\"\u00E6\": \"ae\",\n\t\"\u1EA7\": \"a\",\n\t\"\u1EB1\": \"a\",\n\t\"\u0203\": \"a\",\n\t\"\u1EA3\": \"a\",\n\t\"\u1EA1\": \"a\",\n\t\"\u1EA9\": \"a\",\n\t\"\u1EAB\": \"a\",\n\t\"\u1EAD\": \"a\",\n\t\"\u00E7\": \"c\",\n\t\"\u1E09\": \"c\",\n\t\"\u00E8\": \"e\",\n\t\"\u00E9\": \"e\",\n\t\"\u00EA\": \"e\",\n\t\"\u00EB\": \"e\",\n\t\"\u1EBF\": \"e\",\n\t\"\u1E17\": \"e\",\n\t\"\u1EC1\": \"e\",\n\t\"\u1E15\": \"e\",\n\t\"\u1E1D\": \"e\",\n\t\"\u0207\": \"e\",\n\t\"\u1EBB\": \"e\",\n\t\"\u1EBD\": \"e\",\n\t\"\u1EB9\": \"e\",\n\t\"\u1EC3\": \"e\",\n\t\"\u1EC5\": \"e\",\n\t\"\u1EC7\": \"e\",\n\t\"\u00EC\": \"i\",\n\t\"\u00ED\": \"i\",\n\t\"\u00EE\": \"i\",\n\t\"\u00EF\": \"i\",\n\t\"\u1E2F\": \"i\",\n\t\"\u020B\": \"i\",\n\t\"\u1EC9\": \"i\",\n\t\"\u1ECB\": \"i\",\n\t\"\u00F0\": \"d\",\n\t\"\u00F1\": \"n\",\n\t\"\u00F2\": \"o\",\n\t\"\u00F3\": \"o\",\n\t\"\u00F4\": \"o\",\n\t\"\u00F5\": \"o\",\n\t\"\u00F6\": \"o\",\n\t\"\u00F8\": \"o\",\n\t\"\u1ED1\": \"o\",\n\t\"\u1E4D\": \"o\",\n\t\"\u1E53\": \"o\",\n\t\"\u020F\": \"o\",\n\t\"\u1ECF\": \"o\",\n\t\"\u1ECD\": \"o\",\n\t\"\u1ED5\": \"o\",\n\t\"\u1ED7\": \"o\",\n\t\"\u1ED9\": \"o\",\n\t\"\u1EDD\": \"o\",\n\t\"\u1EDF\": \"o\",\n\t\"\u1EE1\": \"o\",\n\t\"\u1EDB\": \"o\",\n\t\"\u1EE3\": \"o\",\n\t\"\u00F9\": \"u\",\n\t\"\u00FA\": \"u\",\n\t\"\u00FB\": \"u\",\n\t\"\u00FC\": \"u\",\n\t\"\u1EE7\": \"u\",\n\t\"\u1EE5\": \"u\",\n\t\"\u1EED\": \"u\",\n\t\"\u1EEF\": \"u\",\n\t\"\u1EF1\": \"u\",\n\t\"\u00FD\": \"y\",\n\t\"\u00FF\": \"y\",\n\t\"\u0100\": \"A\",\n\t\"\u0101\": \"a\",\n\t\"\u0102\": \"A\",\n\t\"\u0103\": \"a\",\n\t\"\u0104\": \"A\",\n\t\"\u0105\": \"a\",\n\t\"\u0106\": \"C\",\n\t\"\u0107\": \"c\",\n\t\"\u0108\": \"C\",\n\t\"\u0109\": \"c\",\n\t\"\u010A\": \"C\",\n\t\"\u010B\": \"c\",\n\t\"\u010C\": \"C\",\n\t\"\u010D\": \"c\",\n\t\"C\u0306\": \"C\",\n\t\"c\u0306\": \"c\",\n\t\"\u010E\": \"D\",\n\t\"\u010F\": \"d\",\n\t\"\u0110\": \"D\",\n\t\"\u0111\": \"d\",\n\t\"\u0112\": \"E\",\n\t\"\u0113\": \"e\",\n\t\"\u0114\": \"E\",\n\t\"\u0115\": \"e\",\n\t\"\u0116\": \"E\",\n\t\"\u0117\": \"e\",\n\t\"\u0118\": \"E\",\n\t\"\u0119\": \"e\",\n\t\"\u011A\": \"E\",\n\t\"\u011B\": \"e\",\n\t\"\u011C\": \"G\",\n\t\"\u01F4\": \"G\",\n\t\"\u011D\": \"g\",\n\t\"\u01F5\": \"g\",\n\t\"\u011E\": \"G\",\n\t\"\u011F\": \"g\",\n\t\"\u0120\": \"G\",\n\t\"\u0121\": \"g\",\n\t\"\u0122\": \"G\",\n\t\"\u0123\": \"g\",\n\t\"\u0124\": \"H\",\n\t\"\u0125\": \"h\",\n\t\"\u0126\": \"H\",\n\t\"\u0127\": \"h\",\n\t\"\u1E2A\": \"H\",\n\t\"\u1E2B\": \"h\",\n\t\"\u0128\": \"I\",\n\t\"\u0129\": \"i\",\n\t\"\u012A\": \"I\",\n\t\"\u012B\": \"i\",\n\t\"\u012C\": \"I\",\n\t\"\u012D\": \"i\",\n\t\"\u012E\": \"I\",\n\t\"\u012F\": \"i\",\n\t\"\u0130\": \"I\",\n\t\"\u0131\": \"i\",\n\t\"\u0132\": \"IJ\",\n\t\"\u0133\": \"ij\",\n\t\"\u0134\": \"J\",\n\t\"\u0135\": \"j\",\n\t\"\u0136\": \"K\",\n\t\"\u0137\": \"k\",\n\t\"\u1E30\": \"K\",\n\t\"\u1E31\": \"k\",\n\t\"K\u0306\": \"K\",\n\t\"k\u0306\": \"k\",\n\t\"\u0139\": \"L\",\n\t\"\u013A\": \"l\",\n\t\"\u013B\": \"L\",\n\t\"\u013C\": \"l\",\n\t\"\u013D\": \"L\",\n\t\"\u013E\": \"l\",\n\t\"\u013F\": \"L\",\n\t\"\u0140\": \"l\",\n\t\"\u0141\": \"l\",\n\t\"\u0142\": \"l\",\n\t\"\u1E3E\": \"M\",\n\t\"\u1E3F\": \"m\",\n\t\"M\u0306\": \"M\",\n\t\"m\u0306\": \"m\",\n\t\"\u0143\": \"N\",\n\t\"\u0144\": \"n\",\n\t\"\u0145\": \"N\",\n\t\"\u0146\": \"n\",\n\t\"\u0147\": \"N\",\n\t\"\u0148\": \"n\",\n\t\"\u0149\": \"n\",\n\t\"N\u0306\": \"N\",\n\t\"n\u0306\": \"n\",\n\t\"\u014C\": \"O\",\n\t\"\u014D\": \"o\",\n\t\"\u014E\": \"O\",\n\t\"\u014F\": \"o\",\n\t\"\u0150\": \"O\",\n\t\"\u0151\": \"o\",\n\t\"\u0152\": \"OE\",\n\t\"\u0153\": \"oe\",\n\t\"P\u0306\": \"P\",\n\t\"p\u0306\": \"p\",\n\t\"\u0154\": \"R\",\n\t\"\u0155\": \"r\",\n\t\"\u0156\": \"R\",\n\t\"\u0157\": \"r\",\n\t\"\u0158\": \"R\",\n\t\"\u0159\": \"r\",\n\t\"R\u0306\": \"R\",\n\t\"r\u0306\": \"r\",\n\t\"\u0212\": \"R\",\n\t\"\u0213\": \"r\",\n\t\"\u015A\": \"S\",\n\t\"\u015B\": \"s\",\n\t\"\u015C\": \"S\",\n\t\"\u015D\": \"s\",\n\t\"\u015E\": \"S\",\n\t\"\u0218\": \"S\",\n\t\"\u0219\": \"s\",\n\t\"\u015F\": \"s\",\n\t\"\u0160\": \"S\",\n\t\"\u0161\": \"s\",\n\t\"\u0162\": \"T\",\n\t\"\u0163\": \"t\",\n\t\"\u021B\": \"t\",\n\t\"\u021A\": \"T\",\n\t\"\u0164\": \"T\",\n\t\"\u0165\": \"t\",\n\t\"\u0166\": \"T\",\n\t\"\u0167\": \"t\",\n\t\"T\u0306\": \"T\",\n\t\"t\u0306\": \"t\",\n\t\"\u0168\": \"U\",\n\t\"\u0169\": \"u\",\n\t\"\u016A\": \"U\",\n\t\"\u016B\": \"u\",\n\t\"\u016C\": \"U\",\n\t\"\u016D\": \"u\",\n\t\"\u016E\": \"U\",\n\t\"\u016F\": \"u\",\n\t\"\u0170\": \"U\",\n\t\"\u0171\": \"u\",\n\t\"\u0172\": \"U\",\n\t\"\u0173\": \"u\",\n\t\"\u0216\": \"U\",\n\t\"\u0217\": \"u\",\n\t\"V\u0306\": \"V\",\n\t\"v\u0306\": \"v\",\n\t\"\u0174\": \"W\",\n\t\"\u0175\": \"w\",\n\t\"\u1E82\": \"W\",\n\t\"\u1E83\": \"w\",\n\t\"X\u0306\": \"X\",\n\t\"x\u0306\": \"x\",\n\t\"\u0176\": \"Y\",\n\t\"\u0177\": \"y\",\n\t\"\u0178\": \"Y\",\n\t\"Y\u0306\": \"Y\",\n\t\"y\u0306\": \"y\",\n\t\"\u0179\": \"Z\",\n\t\"\u017A\": \"z\",\n\t\"\u017B\": \"Z\",\n\t\"\u017C\": \"z\",\n\t\"\u017D\": \"Z\",\n\t\"\u017E\": \"z\",\n\t\"\u017F\": \"s\",\n\t\"\u0192\": \"f\",\n\t\"\u01A0\": \"O\",\n\t\"\u01A1\": \"o\",\n\t\"\u01AF\": \"U\",\n\t\"\u01B0\": \"u\",\n\t\"\u01CD\": \"A\",\n\t\"\u01CE\": \"a\",\n\t\"\u01CF\": \"I\",\n\t\"\u01D0\": \"i\",\n\t\"\u01D1\": \"O\",\n\t\"\u01D2\": \"o\",\n\t\"\u01D3\": \"U\",\n\t\"\u01D4\": \"u\",\n\t\"\u01D5\": \"U\",\n\t\"\u01D6\": \"u\",\n\t\"\u01D7\": \"U\",\n\t\"\u01D8\": \"u\",\n\t\"\u01D9\": \"U\",\n\t\"\u01DA\": \"u\",\n\t\"\u01DB\": \"U\",\n\t\"\u01DC\": \"u\",\n\t\"\u1EE8\": \"U\",\n\t\"\u1EE9\": \"u\",\n\t\"\u1E78\": \"U\",\n\t\"\u1E79\": \"u\",\n\t\"\u01FA\": \"A\",\n\t\"\u01FB\": \"a\",\n\t\"\u01FC\": \"AE\",\n\t\"\u01FD\": \"ae\",\n\t\"\u01FE\": \"O\",\n\t\"\u01FF\": \"o\",\n\t\"\u00DE\": \"TH\",\n\t\"\u00FE\": \"th\",\n\t\"\u1E54\": \"P\",\n\t\"\u1E55\": \"p\",\n\t\"\u1E64\": \"S\",\n\t\"\u1E65\": \"s\",\n\t\"X\u0301\": \"X\",\n\t\"x\u0301\": \"x\",\n\t\"\u0403\": \"\u0413\",\n\t\"\u0453\": \"\u0433\",\n\t\"\u040C\": \"\u041A\",\n\t\"\u045C\": \"\u043A\",\n\t\"A\u030B\": \"A\",\n\t\"a\u030B\": \"a\",\n\t\"E\u030B\": \"E\",\n\t\"e\u030B\": \"e\",\n\t\"I\u030B\": \"I\",\n\t\"i\u030B\": \"i\",\n\t\"\u01F8\": \"N\",\n\t\"\u01F9\": \"n\",\n\t\"\u1ED2\": \"O\",\n\t\"\u1ED3\": \"o\",\n\t\"\u1E50\": \"O\",\n\t\"\u1E51\": \"o\",\n\t\"\u1EEA\": \"U\",\n\t\"\u1EEB\": \"u\",\n\t\"\u1E80\": \"W\",\n\t\"\u1E81\": \"w\",\n\t\"\u1EF2\": \"Y\",\n\t\"\u1EF3\": \"y\",\n\t\"\u0200\": \"A\",\n\t\"\u0201\": \"a\",\n\t\"\u0204\": \"E\",\n\t\"\u0205\": \"e\",\n\t\"\u0208\": \"I\",\n\t\"\u0209\": \"i\",\n\t\"\u020C\": \"O\",\n\t\"\u020D\": \"o\",\n\t\"\u0210\": \"R\",\n\t\"\u0211\": \"r\",\n\t\"\u0214\": \"U\",\n\t\"\u0215\": \"u\",\n\t\"B\u030C\": \"B\",\n\t\"b\u030C\": \"b\",\n\t\"\u010C\u0323\": \"C\",\n\t\"\u010D\u0323\": \"c\",\n\t\"\u00CA\u030C\": \"E\",\n\t\"\u00EA\u030C\": \"e\",\n\t\"F\u030C\": \"F\",\n\t\"f\u030C\": \"f\",\n\t\"\u01E6\": \"G\",\n\t\"\u01E7\": \"g\",\n\t\"\u021E\": \"H\",\n\t\"\u021F\": \"h\",\n\t\"J\u030C\": \"J\",\n\t\"\u01F0\": \"j\",\n\t\"\u01E8\": \"K\",\n\t\"\u01E9\": \"k\",\n\t\"M\u030C\": \"M\",\n\t\"m\u030C\": \"m\",\n\t\"P\u030C\": \"P\",\n\t\"p\u030C\": \"p\",\n\t\"Q\u030C\": \"Q\",\n\t\"q\u030C\": \"q\",\n\t\"\u0158\u0329\": \"R\",\n\t\"\u0159\u0329\": \"r\",\n\t\"\u1E66\": \"S\",\n\t\"\u1E67\": \"s\",\n\t\"V\u030C\": \"V\",\n\t\"v\u030C\": \"v\",\n\t\"W\u030C\": \"W\",\n\t\"w\u030C\": \"w\",\n\t\"X\u030C\": \"X\",\n\t\"x\u030C\": \"x\",\n\t\"Y\u030C\": \"Y\",\n\t\"y\u030C\": \"y\",\n\t\"A\u0327\": \"A\",\n\t\"a\u0327\": \"a\",\n\t\"B\u0327\": \"B\",\n\t\"b\u0327\": \"b\",\n\t\"\u1E10\": \"D\",\n\t\"\u1E11\": \"d\",\n\t\"\u0228\": \"E\",\n\t\"\u0229\": \"e\",\n\t\"\u0190\u0327\": \"E\",\n\t\"\u025B\u0327\": \"e\",\n\t\"\u1E28\": \"H\",\n\t\"\u1E29\": \"h\",\n\t\"I\u0327\": \"I\",\n\t\"i\u0327\": \"i\",\n\t\"\u0197\u0327\": \"I\",\n\t\"\u0268\u0327\": \"i\",\n\t\"M\u0327\": \"M\",\n\t\"m\u0327\": \"m\",\n\t\"O\u0327\": \"O\",\n\t\"o\u0327\": \"o\",\n\t\"Q\u0327\": \"Q\",\n\t\"q\u0327\": \"q\",\n\t\"U\u0327\": \"U\",\n\t\"u\u0327\": \"u\",\n\t\"X\u0327\": \"X\",\n\t\"x\u0327\": \"x\",\n\t\"Z\u0327\": \"Z\",\n\t\"z\u0327\": \"z\",\n\t\"\u0439\":\"\u0438\",\n\t\"\u0419\":\"\u0418\",\n\t\"\u0451\":\"\u0435\",\n\t\"\u0401\":\"\u0415\",\n};\n\nvar chars = Object.keys(characterMap).join('|');\nvar allAccents = new RegExp(chars, 'g');\nvar firstAccent = new RegExp(chars, '');\n\nfunction matcher(match) {\n\treturn characterMap[match];\n}\n\nvar removeAccents = function(string) {\n\treturn string.replace(allAccents, matcher);\n};\n\nvar hasAccents = function(string) {\n\treturn !!string.match(firstAccent);\n};\n\nmodule.exports = removeAccents;\nmodule.exports.has = hasAccents;\nmodule.exports.remove = removeAccents;\n", "module.exports = window.wp.a11y;", "module.exports = window.wp.escapeHtml;", "module.exports = window.wp.wordcount;", "module.exports = window.wp.patterns;", "module.exports = window.wp.autop;", "'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", "module.exports = window.wp.keyboardShortcuts;", "/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n\tregisterBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useDisabled } from '@wordpress/compose';\nimport { select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport HtmlRenderer from './utils/html-renderer';\n\n/**\n * Internal dependencies\n */\n// When IS_GUTENBERG_PLUGIN is set to false, imports of experimental blocks\n// are transformed by packages/block-library/src/index.js as follows:\n// import * as experimentalBlock from './experimental-block'\n// becomes\n// const experimentalBlock = null;\n// This enables webpack to eliminate the experimental blocks code from the\n// production build to make the final bundle smaller.\n//\n// See https://github.com/WordPress/gutenberg/pull/40655 for more context.\nimport * as accordion from './accordion';\nimport * as accordionItem from './accordion-item';\nimport * as accordionHeading from './accordion-heading';\nimport * as accordionPanel from './accordion-panel';\nimport * as archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as breadcrumbs from './breadcrumbs';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as math from './math';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as navigationOverlayClose from './navigation-overlay-close';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as queryTotal from './query-total';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as tab from './tab';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tabs from './tabs';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termCount from './term-count';\nimport * as termDescription from './term-description';\nimport * as termName from './term-name';\nimport * as termsQuery from './terms-query';\nimport * as termTemplate from './term-template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\nimport * as footnotes from './footnotes';\n\nimport isBlockMetadataExperimental from './utils/is-block-metadata-experimental';\nimport { unlock } from './lock-unlock';\n\n/**\n * Function to get all the block-library blocks in an array\n */\nconst getAllBlocks = () => {\n\tconst blocks = [\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts \u2014 like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tlistItem,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\taccordion,\n\t\taccordionItem,\n\t\taccordionHeading,\n\t\taccordionPanel,\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tbuttons,\n\t\tcalendar,\n\t\tcategories,\n\t\tcode,\n\t\tcolumn,\n\t\tcolumns,\n\t\tcommentAuthorAvatar,\n\t\tcover,\n\t\tdetails,\n\t\tembed,\n\t\tfile,\n\t\tgroup,\n\t\thtml,\n\t\tmath,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmediaText,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpageList,\n\t\tpageListItem,\n\t\tpattern,\n\t\tpreformatted,\n\t\tpullquote,\n\t\treusableBlock,\n\t\trss,\n\t\tsearch,\n\t\tseparator,\n\t\tshortcode,\n\t\tsocialLink,\n\t\tsocialLinks,\n\t\tspacer,\n\t\ttable,\n\t\ttagCloud,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t\tfootnotes,\n\n\t\t// theme blocks\n\t\tnavigation,\n\t\tnavigationLink,\n\t\tnavigationSubmenu,\n\t\tsiteLogo,\n\t\tsiteTitle,\n\t\tsiteTagline,\n\t\tquery,\n\t\ttemplatePart,\n\t\tavatar,\n\t\tpostTitle,\n\t\tpostExcerpt,\n\t\tpostFeaturedImage,\n\t\tpostContent,\n\t\tpostAuthor,\n\t\tpostAuthorName,\n\t\tpostComment,\n\t\tpostCommentsCount,\n\t\tpostCommentsLink,\n\t\tpostDate,\n\t\tpostTerms,\n\t\tpostNavigationLink,\n\t\tpostTemplate,\n\t\tpostTimeToRead,\n\t\tqueryPagination,\n\t\tqueryPaginationNext,\n\t\tqueryPaginationNumbers,\n\t\tqueryPaginationPrevious,\n\t\tqueryNoResults,\n\t\tqueryTotal,\n\t\treadMore,\n\t\tcomments,\n\t\tcommentAuthorName,\n\t\tcommentContent,\n\t\tcommentDate,\n\t\tcommentEditLink,\n\t\tcommentReplyLink,\n\t\tcommentTemplate,\n\t\tcommentsTitle,\n\t\tcommentsPagination,\n\t\tcommentsPaginationNext,\n\t\tcommentsPaginationNumbers,\n\t\tcommentsPaginationPrevious,\n\t\tpostCommentsForm,\n\t\ttableOfContents,\n\t\thomeLink,\n\t\tlogInOut,\n\t\ttermCount,\n\t\ttermDescription,\n\t\ttermName,\n\t\ttermsQuery,\n\t\ttermTemplate,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t\tbreadcrumbs,\n\t];\n\n\tif ( window?.__experimentalEnableBlockExperiments ) {\n\t\tblocks.push( tab );\n\t\tblocks.push( tabs );\n\t}\n\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\tif ( window?.__experimentalNavigationOverlays ) {\n\t\tblocks.push( navigationOverlayClose );\n\t}\n\n\t// When in a WordPress context, conditionally\n\t// add the classic block and TinyMCE editor\n\t// under any of the following conditions:\n\t// - the current post contains a classic block\n\t// - the experiment to disable TinyMCE isn't active.\n\t// - a query argument specifies that TinyMCE should be loaded\n\tif (\n\t\twindow?.wp?.oldEditor &&\n\t\t( window?.wp?.needsClassicBlock ||\n\t\t\t! window?.__experimentalDisableTinymce ||\n\t\t\t!! new URLSearchParams( window?.location?.search ).get(\n\t\t\t\t'requiresTinymce'\n\t\t\t) )\n\t) {\n\t\tblocks.push( classic );\n\t}\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\t// Auto-register PHP-only blocks with ServerSideRender\n\tif ( window.__unstableAutoRegisterBlocks ) {\n\t\twindow.__unstableAutoRegisterBlocks.forEach( ( blockName ) => {\n\t\t\tconst bootstrappedBlockType = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBootstrappedBlockType( blockName );\n\n\t\t\tregisterBlockType( blockName, {\n\t\t\t\t// Use all metadata from PHP registration,\n\t\t\t\t// but fall back title to block name if not provided,\n\t\t\t\t// ensure minimum apiVersion 3 for block wrapper support,\n\t\t\t\t// and override with a ServerSideRender-based edit function.\n\t\t\t\t...bootstrappedBlockType,\n\t\t\t\ttitle: bootstrappedBlockType?.title || blockName,\n\t\t\t\t...( ( bootstrappedBlockType?.apiVersion ?? 0 ) < 3 && {\n\t\t\t\t\tapiVersion: 3,\n\t\t\t\t} ),\n\t\t\t\t// Inspector controls are rendered by the auto-register hook in block-editor\n\t\t\t\tedit: function Edit( { attributes } ) {\n\t\t\t\t\tconst disabledRef = useDisabled();\n\t\t\t\t\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\t\t\t\t\tconst { content, status, error } = useServerSideRender( {\n\t\t\t\t\t\tblock: blockName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( status === 'loading' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>{ __( 'Loading\u2026' ) }</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( status === 'error' ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: error message describing the problem */\n\t\t\t\t\t\t\t\t\t__( 'Error loading block: %s' ),\n\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<HtmlRenderer\n\t\t\t\t\t\t\twrapperProps={ blockProps }\n\t\t\t\t\t\t\thtml={ content }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tsave: () => null,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tsetDefaultBlockName( paragraph.name );\n\tif (\n\t\twindow.wp &&\n\t\twindow.wp.oldEditor &&\n\t\tblocks.some( ( { name } ) => name === classic.name )\n\t) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n\tsetGroupingBlockName( group.name );\n};\n\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {boolean} enableFSEBlocks Whether to enable the full site editing blocks.\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\nexport const __experimentalRegisterExperimentalCoreBlocks =\n\tglobalThis.IS_GUTENBERG_PLUGIN\n\t\t? ( { enableFSEBlocks } = {} ) => {\n\t\t\t\tconst enabledExperiments = [ enableFSEBlocks ? 'fse' : null ];\n\t\t\t\tgetAllBlocks()\n\t\t\t\t\t.filter( ( { metadata } ) =>\n\t\t\t\t\t\tisBlockMetadataExperimental( metadata )\n\t\t\t\t\t)\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t( { metadata: { __experimental } } ) =>\n\t\t\t\t\t\t\t__experimental === true ||\n\t\t\t\t\t\t\tenabledExperiments.includes( __experimental )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( { init } ) => init() );\n\t\t }\n\t\t: undefined;\n\nexport { privateApis } from './private-apis';\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;", "import HTMLReactParser from '../lib/index.js';\n\nexport {\n attributesToProps,\n Comment,\n domToReact,\n Element,\n htmlToDOM,\n ProcessingInstruction,\n Text,\n} from '../lib/index.js';\n\nexport default HTMLReactParser.default || HTMLReactParser;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport parse, { attributesToProps, domToReact } from 'html-react-parser';\n\n/**\n * WordPress dependencies\n */\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Renders HTML content as React elements with optional wrapper props.\n *\n * @param {Object} props - The props for the component.\n * @param {Object} props.wrapperProps - The props to merge with the root element.\n * className and style are merged with the parsed HTML attributes.\n * @param {string} props.html - The HTML content to render.\n * @return {JSX.Element} The rendered React elements.\n */\nconst HtmlRenderer = ( { wrapperProps = {}, html = '' } ) => {\n\tconst options = {\n\t\treplace: ( { name, type, attribs, parent, children } ) => {\n\t\t\tif ( type === 'tag' && name ) {\n\t\t\t\tconst parsedProps = attributesToProps( attribs || {} );\n\t\t\t\tconst TagName = name;\n\t\t\t\tif ( ! parent ) {\n\t\t\t\t\tconst mergedProps = {\n\t\t\t\t\t\t...parsedProps,\n\t\t\t\t\t\t...wrapperProps,\n\t\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t\tparsedProps.className,\n\t\t\t\t\t\t\twrapperProps.className\n\t\t\t\t\t\t),\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t...( parsedProps.style || {} ),\n\t\t\t\t\t\t\t...( wrapperProps.style || {} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TagName { ...mergedProps }>\n\t\t\t\t\t\t\t{ domToReact( children, options ) }\n\t\t\t\t\t\t</TagName>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n\n\tconst sanitizedContent = safeHTML( html );\n\tconst parsedContent = parse( sanitizedContent, options );\n\n\treturn parsedContent;\n};\n\nexport default HtmlRenderer;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/accordion-item',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-heading',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/accordion-item',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/accordion-heading',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\ttitle: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo lacus, interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockEditingMode,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ACCORDION_BLOCK_NAME = 'core/accordion-item';\nconst ACCORDION_HEADING_BLOCK_NAME = 'core/accordion-heading';\nconst ACCORDION_BLOCK = {\n\tname: ACCORDION_BLOCK_NAME,\n};\n\nexport default function Edit( {\n\tattributes: {\n\t\tautoclose,\n\t\ticonPosition,\n\t\tshowIcon,\n\t\theadingLevel,\n\t\tlevelOptions,\n\t},\n\tclientId,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n} ) {\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst blockProps = useBlockProps( {\n\t\trole: 'group',\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { updateBlockAttributes, insertBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: [ [ ACCORDION_BLOCK_NAME ] ],\n\t\tdefaultBlock: ACCORDION_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplateInsertUpdatesSelection: true,\n\t} );\n\n\tconst addAccordionItemBlock = () => {\n\t\t// When adding, set the header's level to current headingLevel\n\t\tconst newAccordionItem = createBlock( ACCORDION_BLOCK_NAME, {}, [\n\t\t\tcreateBlock( ACCORDION_HEADING_BLOCK_NAME, {\n\t\t\t\tlevel: headingLevel,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/accordion-panel', {} ),\n\t\t] );\n\t\tinsertBlock( newAccordionItem, undefined, clientId );\n\t};\n\n\t/**\n\t * Update all child Accordion Header blocks with a new heading level\n\t * based on the accordion group setting.\n\t * @param {number} newHeadingLevel The new heading level to set\n\t */\n\tconst updateHeadingLevel = ( newHeadingLevel ) => {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Get all accordion-header blocks from all accordion-content blocks.\n\t\tconst accordionHeaderClientIds = [];\n\t\tinnerBlockClientIds.forEach( ( contentClientId ) => {\n\t\t\tconst headerClientIds = getBlockOrder( contentClientId );\n\t\t\taccordionHeaderClientIds.push( ...headerClientIds );\n\t\t} );\n\n\t\t// Update own and child block heading levels.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { headingLevel: newHeadingLevel } );\n\t\t\tupdateBlockAttributes( accordionHeaderClientIds, {\n\t\t\t\tlevel: newHeadingLevel,\n\t\t\t} );\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && ! isContentOnlyMode && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\t\t\t\tvalue={ headingLevel }\n\t\t\t\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\t\t\t\tonChange={ updateHeadingLevel }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton onClick={ addAccordionItemBlock }>\n\t\t\t\t\t\t\t{ __( 'Add item' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls key=\"setting\">\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoclose: false,\n\t\t\t\t\t\t\tshowIcon: true,\n\t\t\t\t\t\t\ticonPosition: 'right',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! autoclose }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { autoclose: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tlabel={ __( 'Auto-close' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tautoclose: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tchecked={ autoclose }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Automatically close accordions when a new one is opened.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showIcon }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { showIcon: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tlabel={ __( 'Show icon' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowIcon: value,\n\t\t\t\t\t\t\t\t\ticonPosition: value\n\t\t\t\t\t\t\t\t\t\t? iconPosition\n\t\t\t\t\t\t\t\t\t\t: 'right',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tchecked={ showIcon }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Display a plus icon next to the accordion header.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ showIcon && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => iconPosition !== 'right' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: 'right' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tlabel={ __( 'Icon Position' ) }\n\t\t\t\t\t\t\t\tvalue={ iconPosition }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { iconPosition: value } );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Left' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"left\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Right' ) }\n\t\t\t\t\t\t\t\t\tvalue=\"right\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useEffect, useRef } from '@wordpress/element';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Returns whether the current user can edit the given entity.\n *\n * @param {string} kind Entity kind.\n * @param {string} name Entity name.\n * @param {string} recordId Record's id.\n */\nexport function useCanEditEntity( kind, name, recordId ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).canUser( 'update', {\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tid: recordId,\n\t\t\t} ),\n\t\t[ kind, name, recordId ]\n\t);\n}\n\n/**\n * Handles uploading a media file from a blob URL on mount.\n *\n * @param {Object} args Upload media arguments.\n * @param {string} args.url Blob URL.\n * @param {?Array} args.allowedTypes Array of allowed media types.\n * @param {Function} args.onChange Function called when the media is uploaded.\n * @param {Function} args.onError Function called when an error happens.\n */\nexport function useUploadMediaFromBlobURL( args = {} ) {\n\tconst latestArgsRef = useRef( args );\n\tconst hasUploadStartedRef = useRef( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgsRef.current = args;\n\t} );\n\n\tuseEffect( () => {\n\t\t// Uploading is a special effect that can't be canceled via the cleanup method.\n\t\t// The extra check avoids duplicate uploads in development mode (React.StrictMode).\n\t\tif ( hasUploadStartedRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t! latestArgsRef.current.url ||\n\t\t\t! isBlobURL( latestArgsRef.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgsRef.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgsRef.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\n\t\thasUploadStartedRef.current = true;\n\n\t\tmediaUpload( {\n\t\t\tfilesList: [ file ],\n\t\t\tallowedTypes,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tif ( isBlobURL( media?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonChange( media );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\trevokeBlobURL( url );\n\t\t\t\tonError( message );\n\t\t\t\thasUploadStartedRef.current = false;\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\n}\n\nexport function useDefaultAvatar() {\n\tconst avatarURL = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings?.avatarURL ?? '';\n\t}, [] );\n\treturn avatarURL;\n}\n\nexport function useToolsPanelDropdownMenuProps() {\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\treturn ! isMobile\n\t\t? {\n\t\t\t\tpopoverProps: {\n\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t// For non-mobile, inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t\t\t\t\toffset: 259,\n\t\t\t\t},\n\t\t }\n\t\t: {};\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'group',\n\t} );\n\treturn <div { ...useInnerBlocksProps.save( blockProps ) } />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/accordion\",\n\t\"title\": \"Accordion\",\n\t\"category\": \"design\",\n\t\"description\": \"Displays a foldable layout that groups content in collapsible sections.\",\n\t\"example\": {},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"blockGap\": true\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"layout\": true,\n\t\t\"ariaLabel\": true,\n\t\t\"interactivity\": true,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"contentRole\": true\n\t},\n\t\"attributes\": {\n\t\t\"iconPosition\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"right\"\n\t\t},\n\t\t\"showIcon\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"autoclose\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"headingLevel\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 3\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"core/accordion-icon-position\": \"iconPosition\",\n\t\t\"core/accordion-show-icon\": \"showIcon\",\n\t\t\"core/accordion-heading-level\": \"headingLevel\"\n\t},\n\t\"allowedBlocks\": [ \"core/accordion-item\" ],\n\t\"textdomain\": \"default\",\n\t\"viewScriptModule\": \"@wordpress/block-library/accordion/view\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { registerBlockType } from '@wordpress/blocks';\n\n/**\n * Function to register an individual block.\n *\n * @param {Object} block The block to be registered.\n *\n * @return {WPBlockType | undefined} The block, if it has been successfully registered;\n * otherwise `undefined`.\n */\nexport default function initBlock( block ) {\n\tif ( ! block ) {\n\t\treturn;\n\t}\n\tconst { metadata, settings, name } = block;\n\treturn registerBlockType( { name, ...metadata }, settings );\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 9.25L9.5 9.25L9.5 7.75L19.5 7.75L19.5 9.25Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path d=\"M4.5 6L8.5 8.5L4.5 11L4.5 6Z\" fill=\"currentColor\" />\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 16.25L9.5 16.25L9.5 14.75L19.5 14.75L19.5 16.25Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path d=\"M4.5 13L8.5 15.5L4.5 18L4.5 13Z\" fill=\"currentColor\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst TEMPLATE = [ [ 'core/accordion-heading' ], [ 'core/accordion-panel' ] ];\n\nexport default function Edit( {\n\tattributes,\n\tclientId,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n} ) {\n\tconst { openByDefault } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { isSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSingleSelected || openByDefault ) {\n\t\t\t\treturn { isSelected: true };\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisSelected: select( blockEditorStore ).hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSingleSelected, openByDefault ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'is-open': openByDefault || isSelected,\n\t\t} ),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: 'all',\n\t\tdirectInsert: true,\n\t\ttemplateInsertUpdatesSelection: true,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls key=\"setting\">\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( { openByDefault: false } );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! openByDefault }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( { openByDefault: false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\topenByDefault: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tchecked={ openByDefault }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Accordion content will be displayed by default.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\nexport default function save( { attributes } ) {\n\tconst { openByDefault } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: clsx( {\n\t\t\t'is-open': openByDefault,\n\t\t} ),\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <div { ...innerBlocksProps } />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/accordion-item\",\n\t\"title\": \"Accordion Item\",\n\t\"category\": \"design\",\n\t\"description\": \"Wraps the heading and panel in one unit.\",\n\t\"parent\": [ \"core/accordion\" ],\n\t\"allowedBlocks\": [ \"core/accordion-heading\", \"core/accordion-panel\" ],\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true\n\t\t},\n\t\t\"interactivity\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"blockGap\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"layout\": {\n\t\t\t\"allowEditing\": false\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"contentRole\": true\n\t},\n\t\"attributes\": {\n\t\t\"openByDefault\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"core/accordion-open-by-default\": \"openByDefault\"\n\t},\n\t\"textdomain\": \"default\",\n\t\"style\": \"wp-block-accordion-item\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 9.5L9.5 9.5L9.5 8L19.5 8L19.5 9.5Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 13L9.5 13L9.5 11.5L19.5 11.5L19.5 13Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 16.3999L9.5 16.3999L9.5 14.8999L19.5 14.8999L19.5 16.3999Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path d=\"M4.5 6.25L8.5 8.75L4.5 11.25L4.5 6.25Z\" fill=\"currentColor\" />\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\tRichText,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch } from '@wordpress/data';\n\nexport default function Edit( { attributes, setAttributes, context } ) {\n\tconst { title } = attributes;\n\tconst {\n\t\t'core/accordion-icon-position': iconPosition,\n\t\t'core/accordion-show-icon': showIcon,\n\t\t'core/accordion-heading-level': headingLevel,\n\t} = context;\n\tconst TagName = 'h' + headingLevel;\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Set icon attributes.\n\tuseEffect( () => {\n\t\tif ( iconPosition !== undefined && showIcon !== undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\ticonPosition,\n\t\t\t\tshowIcon,\n\t\t\t} );\n\t\t}\n\t}, [\n\t\ticonPosition,\n\t\tshowIcon,\n\t\tsetAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst [ fluidTypographySettings, layout ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout'\n\t);\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\tconst blockProps = useBlockProps();\n\tconst spacingProps = useSpacingProps( attributes );\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<button\n\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\tstyle={ spacingProps.style }\n\t\t\t\ttabIndex=\"-1\"\n\t\t\t>\n\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tdisableLineBreaks\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ ( newTitle ) =>\n\t\t\t\t\t\tsetAttributes( { title: newTitle } )\n\t\t\t\t\t}\n\t\t\t\t\tplaceholder={ __( 'Accordion title' ) }\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tletterSpacing: typographyProps.style.letterSpacing,\n\t\t\t\t\t\ttextDecoration: typographyProps.style.textDecoration,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</TagName>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\tRichText,\n\tgetTypographyClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { level, title, iconPosition, showIcon } = attributes;\n\tconst TagName = 'h' + ( level || 3 );\n\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps.save();\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\tstyle={ spacingProps.style }\n\t\t\t>\n\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tletterSpacing: typographyProps.style.letterSpacing,\n\t\t\t\t\t\ttextDecoration: typographyProps.style.textDecoration,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t>\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</TagName>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/accordion-heading\",\n\t\"title\": \"Accordion Heading\",\n\t\"category\": \"design\",\n\t\"description\": \"Displays a heading that toggles the accordion panel.\",\n\t\"parent\": [ \"core/accordion-item\" ],\n\t\"usesContext\": [\n\t\t\"core/accordion-icon-position\",\n\t\t\"core/accordion-show-icon\",\n\t\t\"core/accordion-heading-level\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true\n\t\t},\n\t\t\"align\": false,\n\t\t\"interactivity\": true,\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t},\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalSelector\": \".wp-block-accordion-heading__toggle\"\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"__experimentalSkipSerialization\": [\n\t\t\t\t\"textDecoration\",\n\t\t\t\t\"letterSpacing\"\n\t\t\t],\n\t\t\t\"fontSize\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true,\n\t\t\t\t\"fontFamily\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"visibility\": false,\n\t\t\"lock\": false\n\t},\n\t\"selectors\": {\n\t\t\"typography\": {\n\t\t\t\"letterSpacing\": \".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title\",\n\t\t\t\"textDecoration\": \".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title\"\n\t\t}\n\t},\n\t\"attributes\": {\n\t\t\"openByDefault\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \".wp-block-accordion-heading__toggle-title\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"iconPosition\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"left\", \"right\" ],\n\t\t\t\"default\": \"right\"\n\t\t},\n\t\t\"showIcon\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"textdomain\": \"default\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M19.5 12.75L9.5 12.75L9.5 11.25L19.5 11.25L19.5 12.75Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t\t<Path d=\"M4.5 9.5L8.5 12L4.5 14.5L4.5 9.5Z\" fill=\"currentColor\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\tRichText,\n\tgetTypographyClassesAndStyles,\n} from '@wordpress/block-editor';\n\nconst v1 = {\n\tattributes: {\n\t\topenByDefault: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'rich-text',\n\t\t\tsource: 'rich-text',\n\t\t\tselector: '.wp-block-accordion-heading__toggle-title',\n\t\t\trole: 'content',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t},\n\t\ticonPosition: {\n\t\t\ttype: 'string',\n\t\t\tenum: [ 'left', 'right' ],\n\t\t\tdefault: 'right',\n\t\t},\n\t\tshowIcon: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\tbackground: true,\n\t\t\tgradients: true,\n\t\t},\n\t\talign: false,\n\t\tinteractivity: true,\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalSelector: '.wp-block-accordion-heading__toggle',\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t\tfontFamily: true,\n\t\t\t},\n\t\t},\n\t\tshadow: true,\n\t\tvisibility: false,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { level, title, iconPosition, showIcon } = attributes;\n\t\tconst TagName = 'h' + ( level || 3 );\n\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\t\tstyle={ spacingProps.style }\n\t\t\t\t>\n\t\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</button>\n\t\t\t</TagName>\n\t\t);\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\topenByDefault: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'rich-text',\n\t\t\tsource: 'rich-text',\n\t\t\tselector: '.wp-block-accordion-heading__toggle-title',\n\t\t\trole: 'content',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t},\n\t\ticonPosition: {\n\t\t\ttype: 'string',\n\t\t\tenum: [ 'left', 'right' ],\n\t\t\tdefault: 'right',\n\t\t},\n\t\tshowIcon: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\tbackground: true,\n\t\t\tgradients: true,\n\t\t},\n\t\talign: false,\n\t\tinteractivity: true,\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalSelector: '.wp-block-accordion-heading__toggle',\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\t__experimentalSkipSerialization: [\n\t\t\t\t'textDecoration',\n\t\t\t\t'letterSpacing',\n\t\t\t],\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t\tfontFamily: true,\n\t\t\t},\n\t\t},\n\t\tshadow: true,\n\t\tvisibility: false,\n\t\tlock: false,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { level, title, iconPosition, showIcon } = attributes;\n\t\tconst TagName = 'h' + ( level || 3 );\n\t\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle\"\n\t\t\t\t\tstyle={ spacingProps.style }\n\t\t\t\t>\n\t\t\t\t\t{ showIcon && iconPosition === 'left' && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-title\"\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tletterSpacing: typographyProps.style.letterSpacing,\n\t\t\t\t\t\t\ttextDecoration:\n\t\t\t\t\t\t\t\ttypographyProps.style.textDecoration,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showIcon && iconPosition === 'right' && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"wp-block-accordion-heading__toggle-icon\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</button>\n\t\t\t</TagName>\n\t\t);\n\t},\n};\n\nexport default [ v1, v2 ];\n", "/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\nexport default function Edit( { attributes, context, clientId, isSelected } ) {\n\tconst { allowedBlocks, templateLock } = attributes;\n\tconst openByDefault = context[ 'core/accordion-open-by-default' ];\n\tconst { hasSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isSelected || openByDefault ) {\n\t\t\t\treturn { hasSelection: true };\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\thasSelection:\n\t\t\t\t\tisBlockSelected( rootClientId ) ||\n\t\t\t\t\thasSelectedInnerBlock( rootClientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, openByDefault ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\t'aria-hidden': ! hasSelection,\n\t\trole: 'region',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\ttemplate: [ [ 'core/paragraph', {} ] ],\n\t\ttemplateLock,\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'region',\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <div { ...innerBlocksProps } />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/accordion-panel\",\n\t\"title\": \"Accordion Panel\",\n\t\"category\": \"design\",\n\t\"description\": \"Contains the hidden or revealed content beneath the heading.\",\n\t\"parent\": [ \"core/accordion-item\" ],\n\t\"usesContext\": [ \"core/accordion-open-by-default\" ],\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true\n\t\t},\n\t\t\"interactivity\": true,\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true,\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"layout\": {\n\t\t\t\"allowEditing\": false\n\t\t},\n\t\t\"visibility\": false,\n\t\t\"contentRole\": true,\n\t\t\"allowedBlocks\": true,\n\t\t\"lock\": false\n\t},\n\t\"attributes\": {\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ],\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"textdomain\": \"default\",\n\t\"style\": \"wp-block-accordion-panel\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M8.10417 6.00024H6.5C5.39543 6.00024 4.5 6.89567 4.5 8.00024V10.3336H6V8.00024C6 7.7241 6.22386 7.50024 6.5 7.50024H8.10417V6.00024ZM4.5 13.6669V16.0002C4.5 17.1048 5.39543 18.0002 6.5 18.0002H8.10417V16.5002H6.5C6.22386 16.5002 6 16.2764 6 16.0002V13.6669H4.5ZM10.3958 6.00024V7.50024H13.6042V6.00024H10.3958ZM15.8958 6.00024V7.50024H17.5C17.7761 7.50024 18 7.7241 18 8.00024V10.3336H19.5V8.00024C19.5 6.89567 18.6046 6.00024 17.5 6.00024H15.8958ZM19.5 13.6669H18V16.0002C18 16.2764 17.7761 16.5002 17.5 16.5002H15.8958V18.0002H17.5C18.6046 18.0002 19.5 17.1048 19.5 16.0002V13.6669ZM13.6042 18.0002V16.5002H10.3958V18.0002H13.6042Z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport initBlock from '../utils/init-block';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { cloneElement, forwardRef } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport type { ReactElement } from 'react';\nimport type { SVGProps } from '@wordpress/primitives';\n\nexport interface IconProps extends SVGProps {\n\t/**\n\t * The SVG component to render\n\t */\n\ticon: ReactElement;\n\t/**\n\t * The size of the icon in pixels\n\t *\n\t * @default 24\n\t */\n\tsize?: number;\n}\n\n/**\n * Return an SVG icon.\n *\n * @param props The component props.\n *\n * @return Icon component\n */\nexport default forwardRef< HTMLElement, IconProps >(\n\t( { icon, size = 24, ...props }: IconProps, ref ) => {\n\t\treturn cloneElement( icon, {\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t\t...props,\n\t\t\tref,\n\t\t} );\n\t}\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M2 12c0 3.6 2.4 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.5 0-4.5-1.5-4.5-4s2-4.5 4.5-4.5h3.5V6H8c-3.6 0-6 2.4-6 6zm19.5-1h-8v1.5h8V11zm0 5h-8v1.5h8V16zm0-10h-8v1.5h8V6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM5 9h14v6H5V9Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M11.934 7.406a1 1 0 0 0 .914.594H19a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h5.764a.5.5 0 0 1 .447.276l.723 1.63Zm1.064-1.216a.5.5 0 0 0 .462.31H19a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.764a2 2 0 0 1 1.789 1.106l.445 1.084ZM8.5 10.5h7V12h-7v-1.5Zm7 3.5h-7v1.5h7V14Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><Path d=\"M4 13.5h3v-3H4v3Zm6-3.5 2 2-2 2 1 1 3-3-3-3-1 1Zm7 .5v3h3v-3h-3Z\" /></SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M8 12.5h8V11H8v1.5Z M19 6.5H5a2 2 0 0 0-2 2V15a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a2 2 0 0 0-2-2ZM5 8h14a.5.5 0 0 1 .5.5V15a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V8.5A.5.5 0 0 1 5 8Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M14.5 17.5H9.5V16H14.5V17.5Z M14.5 8H9.5V6.5H14.5V8Z M7 3.5H17C18.1046 3.5 19 4.39543 19 5.5V9C19 10.1046 18.1046 11 17 11H7C5.89543 11 5 10.1046 5 9V5.5C5 4.39543 5.89543 3.5 7 3.5ZM17 5H7C6.72386 5 6.5 5.22386 6.5 5.5V9C6.5 9.27614 6.72386 9.5 7 9.5H17C17.2761 9.5 17.5 9.27614 17.5 9V5.5C17.5 5.22386 17.2761 5 17 5Z M7 13H17C18.1046 13 19 13.8954 19 15V18.5C19 19.6046 18.1046 20.5 17 20.5H7C5.89543 20.5 5 19.6046 5 18.5V15C5 13.8954 5.89543 13 7 13ZM17 14.5H7C6.72386 14.5 6.5 14.7239 6.5 15V18.5C6.5 18.7761 6.72386 19 7 19H17C17.2761 19 17.5 18.7761 17.5 18.5V15C17.5 14.7239 17.2761 14.5 17 14.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M6 5.5h12a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5ZM4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Zm4 10h2v-1.5H8V16Zm5 0h-2v-1.5h2V16Zm1 0h2v-1.5h-2V16Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M20 6H4c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H4c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h16c.3 0 .5.2.5.5v9zM10 10H8v2h2v-2zm-5 2h2v-2H5v2zm8-2h-2v2h2v-2zm-5 6h8v-2H8v2zm6-4h2v-2h-2v2zm3 0h2v-2h-2v2zm0 4h2v-2h-2v2zM5 16h2v-2H5v2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM6 17.5c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h3v10H6zm13.5-.5c0 .3-.2.5-.5.5h-3v-10h3c.3 0 .5.2.5.5v9z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M15 7.5h-5v10h5v-10Zm1.5 0v10H19a.5.5 0 0 0 .5-.5V8a.5.5 0 0 0-.5-.5h-2.5ZM6 7.5h2.5v10H6a.5.5 0 0 1-.5-.5V8a.5.5 0 0 1 .5-.5ZM6 6h13a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t d=\"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Circle, Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t <Path d=\"M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t <Circle cx=\"12\" cy=\"9\" r=\"2\" fillRule=\"evenodd\" clipRule=\"evenodd\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"m6.249 11.065.44-.44h3.186l-1.5 1.5H7.31l-1.957 1.96A.792.792 0 0 1 4 13.524V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v1.5L12.5 8V5.5h-7v6.315l.749-.75ZM20 19.75H7v-1.5h13v1.5Zm0-12.653-8.967 9.064L8 17l.867-2.935L17.833 5 20 7.097Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M6.68822 10.625L6.24878 11.0649L5.5 11.8145L5.5 5.5L12.5 5.5V8L14 6.5V5C14 4.44772 13.5523 4 13 4H5C4.44772 4 4 4.44771 4 5V13.5247C4 13.8173 4.16123 14.086 4.41935 14.2237C4.72711 14.3878 5.10601 14.3313 5.35252 14.0845L7.31 12.125H8.375L9.875 10.625H7.31H6.68822ZM14.5605 10.4983L11.6701 13.75H16.9975C17.9963 13.75 18.7796 14.1104 19.3553 14.7048C19.9095 15.2771 20.2299 16.0224 20.4224 16.7443C20.7645 18.0276 20.7543 19.4618 20.7487 20.2544C20.7481 20.345 20.7475 20.4272 20.7475 20.4999L19.2475 20.5001C19.2475 20.4191 19.248 20.3319 19.2484 20.2394V20.2394C19.2526 19.4274 19.259 18.2035 18.973 17.1307C18.8156 16.5401 18.586 16.0666 18.2778 15.7483C17.9909 15.4521 17.5991 15.25 16.9975 15.25H11.8106L14.5303 17.9697L13.4696 19.0303L8.96956 14.5303L13.4394 9.50171L14.5605 10.4983Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h6.2v8.9l2.5-3.1 2.5 3.1V4.5h2.2c.4 0 .8.4.8.8v13.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18 20v-2h2v-1.5H7.75a.25.25 0 0 1-.25-.25V4H6v2H4v1.5h2v8.75c0 .966.784 1.75 1.75 1.75h8.75v2H18ZM9.273 7.5h6.977a.25.25 0 0 1 .25.25v6.977H18V7.75A1.75 1.75 0 0 0 16.25 6H9.273v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M12.5 14.5h-1V16h1c2.2 0 4-1.8 4-4s-1.8-4-4-4h-1v1.5h1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5zm-4 1.5v-1.5h-1C6.1 14.5 5 13.4 5 12s1.1-2.5 2.5-2.5h1V8h-1c-2.2 0-4 1.8-4 4s1.8 4 4 4h1zm-1-3.2h5v-1.5h-5v1.5zM18 4H9c-1.1 0-2 .9-2 2v.5h1.5V6c0-.3.2-.5.5-.5h9c.3 0 .5.2.5.5v12c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5v-.5H7v.5c0 1.1.9 2 2 2h9c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4zm.8-4l.7.7 2-2V12h1V9.2l2 2 .7-.7-2-2H12v-1H9.2l2-2-.7-.7-2 2V4h-1v2.8l-2-2-.7.7 2 2H4v1h2.8l-2 2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M4 16h10v1.5H4V16Zm0-4.5h16V13H4v-1.5ZM10 7h10v1.5H10V7Z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t <Path d=\"m4 5.25 4 2.5-4 2.5v-5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t d=\"M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM20.0303 9.03033L17.0607 12L20.0303 14.9697L18.9697 16.0303L15.4697 12.5303L14.9393 12L15.4697 11.4697L18.9697 7.96967L20.0303 9.03033Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-8-3.5l3 3-3 3 1 1 4-4-4-4-1 1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M3.8 15.8h8.9v-1.5H3.8v1.5zm0-7h8.9V7.2H3.8v1.6zm14.7-2.1V10h1V5.3l-2.2.7.3 1 .9-.3zm1.2 6.1c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5H20v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3 0-.8-.3-1.1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM5 6.7V10h1V5.3L3.8 6l.4 1 .8-.3zm-.4 5.7c-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-1c.3-.6.8-1.4.9-2.1.1-.3 0-.8-.2-1.1-.5-.6-1.3-.5-1.7-.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M3 9c0 2.8 2.2 5 5 5v-.2V20h1.5V5.5H12V20h1.5V5.5h3V4H8C5.2 4 3 6.2 3 9Zm15.9-1-1.1 1 2.6 3-2.6 3 1.1 1 3.4-4-3.4-4Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM15.4697 14.9697L18.4393 12L15.4697 9.03033L16.5303 7.96967L20.0303 11.4697L20.5607 12L20.0303 12.5303L16.5303 16.0303L15.4697 14.9697Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-4-4.6l-4 4 4 4 1-1-3-3 3-3-1-1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M6 4a2 2 0 0 0-2 2v3h1.5V6a.5.5 0 0 1 .5-.5h3V4H6Zm3 14.5H6a.5.5 0 0 1-.5-.5v-3H4v3a2 2 0 0 0 2 2h3v-1.5Zm6 1.5v-1.5h3a.5.5 0 0 0 .5-.5v-3H20v3a2 2 0 0 1-2 2h-3Zm3-16a2 2 0 0 1 2 2v3h-1.5V6a.5.5 0 0 0-.5-.5h-3V4h3Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M16.375 4.5H4.625a.125.125 0 0 0-.125.125v8.254l2.859-1.54a.75.75 0 0 1 .68-.016l2.384 1.142 2.89-2.074a.75.75 0 0 1 .874 0l2.313 1.66V4.625a.125.125 0 0 0-.125-.125Zm.125 9.398-2.75-1.975-2.813 2.02a.75.75 0 0 1-.76.067l-2.444-1.17L4.5 14.583v1.792c0 .069.056.125.125.125h11.75a.125.125 0 0 0 .125-.125v-2.477ZM4.625 3C3.728 3 3 3.728 3 4.625v11.75C3 17.273 3.728 18 4.625 18h11.75c.898 0 1.625-.727 1.625-1.625V4.625C18 3.728 17.273 3 16.375 3H4.625ZM20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M17.6 7c-.6.9-1.5 1.7-2.6 2v1h2v7h2V7h-1.4zM11 11H7V7H5v10h2v-4h4v4h2V7h-2v4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M9 11.1H5v-4H3v10h2v-4h4v4h2v-10H9v4zm8 4c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6v1.5h8v-2H17z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.3 1.7c-.4-.4-1-.7-1.6-.8v-.1c.6-.2 1.1-.5 1.5-.9.3-.4.5-.8.5-1.3 0-.4-.1-.8-.3-1.1-.2-.3-.5-.6-.8-.8-.4-.2-.8-.4-1.2-.5-.6-.1-1.1-.2-1.6-.2-.6 0-1.3.1-1.8.3s-1.1.5-1.6.9l1.2 1.4c.4-.2.7-.4 1.1-.6.3-.2.7-.3 1.1-.3.4 0 .8.1 1.1.3.3.2.4.5.4.8 0 .4-.2.7-.6.9-.7.3-1.5.5-2.2.4v1.6c.5 0 1 0 1.5.1.3.1.7.2 1 .3.2.1.4.2.5.4s.1.4.1.6c0 .3-.2.7-.5.8-.4.2-.9.3-1.4.3s-1-.1-1.4-.3c-.4-.2-.8-.4-1.2-.7L13 15.6c.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.6 0 1.1-.1 1.6-.2.4-.1.9-.2 1.3-.5.4-.2.7-.5.9-.9.2-.4.3-.8.3-1.2 0-.6-.3-1.1-.7-1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M20 13V7h-3l-4 6v2h5v2h2v-2h1v-2h-1zm-2 0h-2.8L18 9v4zm-9-2H5V7H3v10h2v-4h4v4h2V7H9v4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M9 11H5V7H3v10h2v-4h4v4h2V7H9v4zm11.7 1.2c-.2-.3-.5-.7-.8-.9-.3-.3-.7-.5-1.1-.6-.5-.1-.9-.2-1.4-.2-.2 0-.5.1-.7.1-.2.1-.5.1-.7.2l.1-1.9h4.3V7H14l-.3 5 1 .6.5-.2.4-.1c.1-.1.3-.1.4-.1h.5c.5 0 1 .1 1.4.4.4.2.6.7.6 1.1 0 .4-.2.8-.6 1.1-.4.3-.9.4-1.4.4-.4 0-.9-.1-1.3-.3-.4-.2-.7-.4-1.1-.7 0 0-1.1 1.4-1 1.5.5.4 1 .8 1.6 1 .7.3 1.5.4 2.3.4.5 0 1-.1 1.5-.3s.9-.4 1.3-.7c.4-.3.7-.7.9-1.1s.3-.9.3-1.4-.1-1-.3-1.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M20.7 12.4c-.2-.3-.4-.6-.7-.9s-.6-.5-1-.6c-.4-.2-.8-.2-1.2-.2-.5 0-.9.1-1.3.3s-.8.5-1.2.8c0-.5 0-.9.2-1.4l.6-.9c.2-.2.5-.4.8-.5.6-.2 1.3-.2 1.9 0 .3.1.6.3.8.5 0 0 1.3-1.3 1.3-1.4-.4-.3-.9-.6-1.4-.8-.6-.2-1.3-.3-2-.3-.6 0-1.1.1-1.7.4-.5.2-1 .5-1.4.9-.4.4-.8 1-1 1.6-.3.7-.4 1.5-.4 2.3s.1 1.5.3 2.1c.2.6.6 1.1 1 1.5.4.4.9.7 1.4.9 1 .3 2 .3 3 0 .4-.1.8-.3 1.2-.6.3-.3.6-.6.8-1 .2-.5.3-.9.3-1.4s-.1-.9-.3-1.3zm-2 2.1c-.1.2-.3.4-.4.5-.1.1-.3.2-.5.2-.2.1-.4.1-.6.1-.2.1-.5 0-.7-.1-.2 0-.3-.2-.5-.3-.1-.2-.3-.4-.4-.6-.2-.3-.3-.7-.3-1 .3-.3.6-.5 1-.7.3-.1.7-.2 1-.2.4 0 .8.1 1.1.3.3.3.4.7.4 1.1 0 .2 0 .5-.1.7zM9 11H5V7H3v10h2v-4h4v4h2V7H9v4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M6 5V18.5911L12 13.8473L18 18.5911V5H6Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M4.8 11.4H2.1V9H1v6h1.1v-2.6h2.7V15h1.1V9H4.8v2.4zm1.9-1.3h1.7V15h1.1v-4.9h1.7V9H6.7v1.1zM16.2 9l-1.5 2.7L13.3 9h-.9l-.8 6h1.1l.5-4 1.5 2.8 1.5-2.8.5 4h1.1L17 9h-.8zm3.8 5V9h-1.1v6h3.6v-1H20z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m6.734 16.106 2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.158 1.093-1.028-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M17.031 4.703 15.576 4l-1.56 3H14v.03l-2.324 4.47H9.5V13h1.396l-1.502 2.889h-.95a3.694 3.694 0 0 1 0-7.389H10V7H8.444a5.194 5.194 0 1 0 0 10.389h.17L7.5 19.53l1.416.719L15.049 8.5h.507a3.694 3.694 0 0 1 0 7.39H14v1.5h1.556a5.194 5.194 0 0 0 .273-10.383l1.202-2.304Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M10 17.389H8.444A5.194 5.194 0 1 1 8.444 7H10v1.5H8.444a3.694 3.694 0 0 0 0 7.389H10v1.5ZM14 7h1.556a5.194 5.194 0 0 1 0 10.39H14v-1.5h1.556a3.694 3.694 0 0 0 0-7.39H14V7Zm-4.5 6h5v-1.5h-5V13Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M12 11v1.5h8V11h-8zm-6-1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18.1823 11.6392C18.1823 13.0804 17.0139 14.2487 15.5727 14.2487C14.3579 14.2487 13.335 13.4179 13.0453 12.2922L13.0377 12.2625L13.0278 12.2335L12.3985 10.377L12.3942 10.3785C11.8571 8.64997 10.246 7.39405 8.33961 7.39405C5.99509 7.39405 4.09448 9.29465 4.09448 11.6392C4.09448 13.9837 5.99509 15.8843 8.33961 15.8843C8.88499 15.8843 9.40822 15.781 9.88943 15.5923L9.29212 14.0697C8.99812 14.185 8.67729 14.2487 8.33961 14.2487C6.89838 14.2487 5.73003 13.0804 5.73003 11.6392C5.73003 10.1979 6.89838 9.02959 8.33961 9.02959C9.55444 9.02959 10.5773 9.86046 10.867 10.9862L10.8772 10.9836L11.4695 12.7311C11.9515 14.546 13.6048 15.8843 15.5727 15.8843C17.9172 15.8843 19.8178 13.9837 19.8178 11.6392C19.8178 9.29465 17.9172 7.39404 15.5727 7.39404C15.0287 7.39404 14.5066 7.4968 14.0264 7.6847L14.6223 9.20781C14.9158 9.093 15.2358 9.02959 15.5727 9.02959C17.0139 9.02959 18.1823 10.1979 18.1823 11.6392Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><Path d=\"M11.2 6.8c-.7 0-1.4.5-1.6 1.1l-2.8 7.5-1.2-1.8c-.1-.2-.4-.3-.6-.3H3v1.5h1.6l1.2 1.8c.6.9 1.9.7 2.2-.3l2.9-7.9s.1-.2.2-.2h7.8V6.7h-7.8Zm5.3 3.4-1.9 1.9-1.9-1.9-1.1 1.1 1.9 1.9-1.9 1.9 1.1 1.1 1.9-1.9 1.9 1.9 1.1-1.1-1.9-1.9 1.9-1.9-1.1-1.1Z\"/></SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M3 6v11.5h8V6H3Zm11 3h7V7.5h-7V9Zm7 3.5h-7V11h7v1.5ZM14 16h7v-1.5h-7V16Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m7 6.5 4 2.5-4 2.5z\" />\n\t <Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12-9.8c.4 0 .8-.3.9-.7l1.1-3h3.6l.5 1.7h1.9L13 9h-2.2l-3.4 9.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12H20V6c0-1.1-.9-2-2-2zm-6 7l1.4 3.9h-2.7L12 11z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M17.5 9V6a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v3H8V6a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v3h1.5Zm0 6.5V18a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2v-2.5H8V18a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-2.5h1.5ZM4 13h16v-1.5H4V13Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z\" />\n\t <Path d=\"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M14.5 5.5h-7V7h7V5.5ZM7.5 9h7v1.5h-7V9Zm7 3.5h-7V14h7v-1.5Z\" />\n\t <Path d=\"M16 2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2ZM6 3.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5Z\" />\n\t <Path d=\"M20 8v11c0 .69-.31 1-.999 1H6v1.5h13.001c1.52 0 2.499-.982 2.499-2.5V8H20Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m9.99609 14v-.2251l.00391.0001v6.225h1.5v-14.5h2.5v14.5h1.5v-14.5h3v-1.5h-8.50391c-2.76142 0-5 2.23858-5 5 0 2.7614 2.23858 5 5 5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 5.5H5V4h14v1.5ZM19 20H5v-1.5h14V20ZM7 9h10v6H7V9Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M5 5.5h8V4H5v1.5ZM5 20h8v-1.5H5V20ZM19 9H5v6h14V9Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 5.5h-8V4h8v1.5ZM19 20h-8v-1.5h8V20ZM5 9h14v6H5V9Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M10 4.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm2.25 7.5v-1A2.75 2.75 0 0011 8.25H7A2.75 2.75 0 004.25 11v1h1.5v-1c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v1h1.5zM4 20h9v-1.5H4V20zm16-4H4v-1.5h16V16z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M20 4H4v1.5h16V4zm-2 9h-3c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3zM4 9.5h9V8H4v1.5zM9 13H6c-1.1 0-2 .9-2 2v3c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2zm.5 5c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3z\"\n\t fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-2.2 6.6H7l1.6-2.2c.3-.4.5-.7.6-.9.1-.2.2-.4.2-.5 0-.2-.1-.3-.1-.4-.1-.1-.2-.1-.4-.1s-.4 0-.6.1c-.3.1-.5.3-.7.4l-.2.2-.2-1.2.1-.1c.3-.2.5-.3.8-.4.3-.1.6-.1.9-.1.3 0 .6.1.9.2.2.1.4.3.6.5.1.2.2.5.2.7 0 .3-.1.6-.2.9-.1.3-.4.7-.7 1.1l-.5.6h1.6v1.2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 8H4v1.5h9V8zM4 4v1.5h16V4H4zm9 8H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1V13c0-.6-.4-1-1-1zm-.5 6.6H6.7l-1.2 1.2v-6.3h7v5.1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M14 10.1V4c0-.6-.4-1-1-1H5c-.6 0-1 .4-1 1v8.3c0 .3.2.7.6.8.1.1.2.1.3.1.2 0 .5-.1.6-.3l1.8-1.8H13c.6 0 1-.4 1-1zm-1.5-.5H6.7l-1.2 1.2V4.5h7v5.1zM19 12h-8c-.6 0-1 .4-1 1v6.1c0 .6.4 1 1 1h5.7l1.8 1.8c.1.2.4.3.6.3.1 0 .2 0 .3-.1.4-.1.6-.5.6-.8V13c0-.6-.4-1-1-1zm-.5 7.8l-1.2-1.2h-5.8v-5.1h7v6.3z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.696 13.972c.356-.546.599-.958.728-1.235a1.79 1.79 0 00.203-.783c0-.264-.077-.47-.23-.618-.148-.153-.354-.23-.618-.23-.295 0-.569.07-.82.212a3.413 3.413 0 00-.738.571l-.147-1.188c.289-.234.59-.41.903-.526.313-.117.66-.175 1.041-.175.375 0 .695.08.959.24.264.153.46.362.59.626.135.265.203.556.203.876 0 .362-.08.734-.24 1.115-.154.381-.427.87-.82 1.466l-.756 1.152H14v1.106h-4l1.696-2.609z\" />\n\t <Path d=\"M19.5 7h-15v12a.5.5 0 00.5.5h14a.5.5 0 00.5-.5V7zM3 7V5a2 2 0 012-2h14a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M8.001 3.984V9.47c0 1.518-.98 2.5-2.499 2.5h-.5v-1.5h.5c.69 0 1-.31 1-1V6.984H4v-3h4.001ZM4 20h9v-1.5H4V20Zm16-4H4v-1.5h16V16ZM13.001 3.984V9.47c0 1.518-.98 2.5-2.499 2.5h-.5v-1.5h.5c.69 0 1-.31 1-1V6.984H9v-3h4.001Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 5.5H6a.5.5 0 0 0-.5.5v12a.5.5 0 0 0 .5.5h12a.5.5 0 0 0 .5-.5V6a.5.5 0 0 0-.5-.5ZM6 4h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Zm1 5h1.5v1.5H7V9Zm1.5 4.5H7V15h1.5v-1.5ZM10 9h7v1.5h-7V9Zm7 4.5h-7V15h7v-1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M8.1 12.3c.1.1.3.3.5.3.2.1.4.1.6.1.2 0 .4 0 .6-.1.2-.1.4-.2.5-.3l3-3c.3-.3.5-.7.5-1.1 0-.4-.2-.8-.5-1.1L9.7 3.5c-.1-.2-.3-.3-.5-.3H5c-.4 0-.8.4-.8.8v4.2c0 .2.1.4.2.5l3.7 3.6zM5.8 4.8h3.1l3.4 3.4v.1l-3 3 .5.5-.7-.5-3.3-3.4V4.8zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18 8H6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v4zM4 4v1.5h16V4H4zm0 16h16v-1.5H4V20z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M5 13.5h3v-3H5v3zm5 0h3v-3h-3v3zM17 9l-1 1 2 2-2 2 1 1 3-3-3-3z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 13.5h6v-3H4v3zm8.2-2.5.8-.3V14h1V9.3l-2.2.7.4 1zm7.1-1.2c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3-.1-.8-.3-1.1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M16 10.5v3h3v-3h-3zm-5 3h3v-3h-3v3zM7 9l-3 3 3 3 1-1-2-2 2-2-1-1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"m13.955 20.748 8-17.5-.91-.416L19.597 6H13.5v1.5h5.411l-1.6 3.5H13.5v1.5h3.126l-1.6 3.5H13.5l.028 1.5h.812l-1.295 2.832.91.416ZM17.675 16l-.686 1.5h4.539L21.5 16h-3.825Zm2.286-5-.686 1.5H21.5V11h-1.54ZM2 12c0 3.58 2.42 5.5 6 5.5h.5V19l3-2.5-3-2.5v2H8c-2.48 0-4.5-1.52-4.5-4S5.52 7.5 8 7.5h3.5V6H8c-3.58 0-6 2.42-6 6Z\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M7 18h4.5v1.5h-7v-7H6V17L17 6h-4.5V4.5h7v7H18V7L7 18Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4 6.5h5a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H4V16h5a.5.5 0 0 0 .5-.5v-7A.5.5 0 0 0 9 8H4V6.5Zm16 0h-5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h5V16h-5a.5.5 0 0 1-.5-.5v-7A.5.5 0 0 1 15 8h5V6.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M5 10.2h-.8v1.5H5c1.9 0 3.8.8 5.1 2.1 1.4 1.4 2.1 3.2 2.1 5.1v.8h1.5V19c0-2.3-.9-4.5-2.6-6.2-1.6-1.6-3.8-2.6-6.1-2.6zm10.4-1.6C12.6 5.8 8.9 4.2 5 4.2h-.8v1.5H5c3.5 0 6.9 1.4 9.4 3.9s3.9 5.8 3.9 9.4v.8h1.5V19c0-3.9-1.6-7.6-4.4-10.4zM4 20h3v-3H4v3z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M4.5 12.5v4H3V7h1.5v3.987h15V7H21v9.5h-1.5v-4h-15Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M16 4.2v1.5h2.5v12.5H16v1.5h4V4.2h-4zM4.2 19.8h4v-1.5H5.8V5.8h2.5V4.2h-4l-.1 15.6zm5.1-3.1l1.4.6 4-10-1.4-.6-4 10z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8Zm0 1.5c3.4 0 6.2 2.7 6.5 6l-1.2-.6-.8-.4c-.1 0-.2 0-.3-.1H16c-.1-.2-.4-.2-.7 0l-2.9 2.1L9 11.3h-.7L5.5 13v-1.1c0-3.6 2.9-6.5 6.5-6.5Zm0 13c-2.7 0-5-1.7-6-4l2.8-1.7 3.5 1.2h.4s.2 0 .4-.2l2.9-2.1.4.2c.6.3 1.4.7 2.1 1.1-.5 3.1-3.2 5.4-6.4 5.4Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fill=\"none\"\n\t d=\"M5.75 12.75V18.25H11.25M12.75 5.75H18.25V11.25\"\n\t stroke=\"currentColor\"\n\t strokeWidth=\"1.5\"\n\t strokeLinecap=\"square\"\n\t />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M17.5 4v5a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2V4H8v5a.5.5 0 0 0 .5.5h7A.5.5 0 0 0 16 9V4h1.5Zm0 16v-5a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2v5H8v-5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v5h1.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<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-17.6 1L10 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\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<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\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14.2c.1.9.9 1.7 1.8 1.8H19.2c1-.1 1.8-1 1.8-2V5c0-1.1-.9-2-2-2ZM8.5 19.5H5c-.3 0-.5-.2-.5-.5v-3.5h4v4Zm0-5.5h-4v-4h4v4Zm0-5.5h-4V5c0-.3.2-.5.5-.5h3.5v4Zm11 10.5c0 .3-.2.5-.5.5h-9v-15h9c.3 0 .5.2.5.5v14Zm-4-10.8H14v3h-3v1.5h3v3h1.5v-3h3v-1.5h-3v-3Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1 .8 1.9 1.8 2H19.2c.9-.1 1.7-.9 1.8-1.8V5c0-1.1-.9-2-2-2Zm-5 16.5H5c-.3 0-.5-.2-.5-.5V5c0-.3.2-.5.5-.5h9v15Zm5.5-.5c0 .3-.2.5-.5.5h-3.5v-4h4V19Zm0-5h-4v-4h4v4Zm0-5.5h-4v-4H19c.3 0 .5.2.5.5v3.5Zm-11 7.3H10v-3h3v-1.5h-3v-3H8.5v3h-3v1.5h3v3Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14.2c.1.9.9 1.7 1.8 1.8H19.2c1-.1 1.8-1 1.8-2V5c0-1.1-.9-2-2-2ZM8.5 19.5H5c-.3 0-.5-.2-.5-.5V5c0-.3.2-.5.5-.5h3.5v15Zm11-.5c0 .3-.2.5-.5.5h-9v-15h9c.3 0 .5.2.5.5v14ZM16.9 8.8l-2.1 2.1-2.1-2.1-1.1 1.1 2.1 2.1-2.1 2.1 1.1 1.1 2.1-2.1 2.1 2.1 1.1-1.1-2.1-2.1L18 9.9l-1.1-1.1Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path fillRule=\"evenodd\"\n\t clipRule=\"evenodd\"\n\t d=\"M20 9.484h-8.889v-1.5H20v1.5Zm0 7h-4.889v-1.5H20v1.5Zm-14 .032a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z\"\n\t />\n\t <Path d=\"M13 15.516a2 2 0 1 1-4 0 2 2 0 0 1 4 0ZM8 8.484a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H4.8c-.9.1-1.7.9-1.8 1.8V19.2c.1 1 1 1.8 2 1.8h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2Zm-9 1.5h4v4h-4v-4ZM4.5 5c0-.3.2-.5.5-.5h3.5v4h-4V5Zm15 14c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-9h15v9Zm0-10.5h-4v-4H19c.3 0 .5.2.5.5v3.5Zm-8.3 10h1.5v-3h3V14h-3v-3h-1.5v3h-3v1.5h3v3Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M21 5c0-1.1-.9-2-2-2H5c-1 0-1.9.8-2 1.8V19.2c.1.9.9 1.7 1.8 1.8H19c1.1 0 2-.9 2-2V5ZM4.5 14V5c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v9h-15Zm4 5.5H5c-.3 0-.5-.2-.5-.5v-3.5h4v4Zm5.5 0h-4v-4h4v4Zm5.5-.5c0 .3-.2.5-.5.5h-3.5v-4h4V19ZM11.2 10h-3V8.5h3v-3h1.5v3h3V10h-3v3h-1.5v-3Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H4.8c-.9.1-1.7.9-1.8 1.8V19.2c.1 1 1 1.8 2 1.8h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2Zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-9h15v9Zm0-10.5h-15V5c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v3.5Zm-9.6 9.4 2.1-2.1 2.1 2.1 1.1-1.1-2.1-2.1 2.1-2.1-1.1-1.1-2.1 2.1-2.1-2.1-1.1 1.1 2.1 2.1-2.1 2.1 1.1 1.1Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2Zm.5 2v6.2h-6.8V4.4h6.2c.3 0 .5.2.5.5ZM5 4.5h6.2v6.8H4.4V5.1c0-.3.2-.5.5-.5ZM4.5 19v-6.2h6.8v6.8H5.1c-.3 0-.5-.2-.5-.5Zm14.5.5h-6.2v-6.8h6.8v6.2c0 .3-.2.5-.5.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M4.75 4a.75.75 0 0 0-.75.75v7.826c0 .2.08.39.22.53l6.72 6.716a2.313 2.313 0 0 0 3.276-.001l5.61-5.611-.531-.53.532.528a2.315 2.315 0 0 0 0-3.264L13.104 4.22a.75.75 0 0 0-.53-.22H4.75ZM19 12.576a.815.815 0 0 1-.236.574l-5.61 5.611a.814.814 0 0 1-1.153 0L5.5 12.264V5.5h6.763l6.5 6.502a.816.816 0 0 1 .237.574ZM8.75 9.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 12.841306,16.677917 12.001264,12.71529 Q 11.835801,11.930402 11.695793,11.417042 11.560029,10.89944 11.398809,10.568514 11.237588,10.237588 11,10 10.635133,9.6351329 10.219354,9.6351329 9.8078183,9.6308902 9.4387086,10 8.9932313,10.445477 8.8574668,11.022476 8.7259449,11.595233 8.7259449,12.155262 L 7.4955791,11.196425 Q 7.5719467,10.509117 7.8307477,9.9109045 8.0937915,9.3084495 8.6410921,8.7611489 9.1799075,8.2223335 9.7569066,8.086569 q 0.5812414,-0.1400071 1.1242994,0.046669 0.543058,0.1866762 0.975808,0.6194255 0.335168,0.3351686 0.581242,0.767918 0.24183,0.4285067 0.436992,1.0564174 0.195161,0.619426 0.381837,1.527351 l 0.364867,1.756453 1.883733,-1.883732 1.018234,1.018233 z\" />\n\t\t<Path d=\"M12.574 4a.75.75 0 0 1 .53.22l6.723 6.724a2.315 2.315 0 0 1 0 3.264l-.532-.528.531.53-5.61 5.611a2.31 2.31 0 0 1-3.276.001l-6.72-6.716a.75.75 0 0 1-.22-.53V4.75A.75.75 0 0 1 4.75 4h7.824ZM5.5 5.5v6.764l6.501 6.497a.817.817 0 0 0 .889.178.816.816 0 0 0 .264-.178l5.61-5.61a.816.816 0 0 0-.001-1.149l-6.5-6.502H5.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M6.08 10.103h2.914L9.657 12h1.417L8.23 4H6.846L4 12h1.417l.663-1.897Zm1.463-4.137.994 2.857h-2l1.006-2.857ZM11 16H4v-1.5h7V16Zm1 0h8v-1.5h-8V16Zm-4 4H4v-1.5h4V20Zm7-1.5V20H9v-1.5h6Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m14.95 13.889-1.061 1.061-5.552-5.553 1.06-1.06 5.552 5.552Z\" />\n\t\t<Path d=\"M12.574 4a.75.75 0 0 1 .53.22l6.723 6.724a2.315 2.315 0 0 1 0 3.264l-.532-.528.531.53-5.61 5.611a2.31 2.31 0 0 1-3.276.001l-6.72-6.716a.75.75 0 0 1-.22-.53V4.75A.75.75 0 0 1 4.75 4h7.824ZM5.5 5.5v6.764l6.501 6.497a.817.817 0 0 0 .889.178.816.816 0 0 0 .264-.178l5.61-5.61a.816.816 0 0 0-.001-1.149l-6.5-6.502H5.5Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 3c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16.5c-4.1 0-7.5-3.4-7.5-7.5S7.9 4.5 12 4.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5zM12 7l-1 5c0 .3.2.6.4.8l4.2 2.8-2.7-4.1L12 7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"m4 5.5h2v6.5h1.5v-6.5h2v-1.5h-5.5zm16 10.5h-16v-1.5h16zm-7 4h-9v-1.5h9z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t<Path d=\"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<Path d=\"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M19 5c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2zM5 6.5c-.3 0-.5.2-.5.5v10c0 .3.2.5.5.5h14c.3 0 .5-.2.5-.5V7c0-.3-.2-.5-.5-.5zM14.734 9q.714 0 1.15.253.437.247.639.84.2.591.2 1.61v1.15q0 .402.036.667.04.258.172.39.138.127.437.127h.104l-.162.828h-.08q-.5 0-.776-.097a.9.9 0 0 1-.414-.283 2 2 0 0 1-.259-.448q-.316.367-.748.598-.43.23-.977.23-.524 0-.914-.213a1.56 1.56 0 0 1-.61-.58 1.65 1.65 0 0 1-.213-.84q0-.477.207-.817.213-.345.564-.568.357-.23.794-.363.437-.139.902-.196.471-.062.902-.068 0-.805-.315-1.053-.316-.247-.915-.247-.316 0-.678.098-.356.097-.805.408l-.15-.84a2.8 2.8 0 0 1 .846-.419A3.4 3.4 0 0 1 14.734 9m-5.877 1.669H9.86l.59-1.531h.689l-.585 1.53h.898l-.249.727h-.922l-.337.866h1.019l-.354.773h-.962l-.681 1.804h-.701l.69-1.804h-.999l-.693 1.804h-.69l.685-1.804H6.3l.34-.773h.915l.333-.866h-.994l.244-.726H8.16l.594-1.531h.693zm6.832 1.264q-.823.029-1.335.16-.506.133-.74.397-.236.265-.236.685 0 .454.241.66.248.202.632.202.414 0 .8-.207.39-.207.637-.552zm-7.441.328h1l.34-.866h-1z\" />\n\t</SVG>\n);\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/archives\",\n\t\"title\": \"Archives\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display a date archive of your posts.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"displayAsDropdown\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showPostCounts\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"monthly\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\tSelectControl,\n\tSpinner,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\nexport default function ArchivesEdit( { attributes, setAttributes, name } ) {\n\tconst { showLabel, showPostCounts, displayAsDropdown, type } = attributes;\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdisplayAsDropdown: false,\n\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t\tshowPostCounts: false,\n\t\t\t\t\t\t\ttype: 'monthly',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => displayAsDropdown }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAsDropdown: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsDropdown: ! displayAsDropdown,\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</ToolsPanelItem>\n\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showPostCounts }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showPostCounts: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowPostCounts: ! showPostCounts,\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</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Group by' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => type !== 'monthly' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { type: 'monthly' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Group by' ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Year' ), value: 'yearly' },\n\t\t\t\t\t\t\t\t{ label: __( 'Month' ), value: 'monthly' },\n\t\t\t\t\t\t\t\t{ label: __( 'Week' ), value: 'weekly' },\n\t\t\t\t\t\t\t\t{ label: __( 'Day' ), value: 'daily' },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tvalue={ type }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { type: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { archive as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/avatar\",\n\t\"title\": \"Avatar\",\n\t\"category\": \"theme\",\n\t\"description\": \"Add a user\u2019s avatar.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"userId\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"size\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 96\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postType\", \"postId\", \"commentId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"align\": true,\n\t\t\"alignWide\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"color\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": false\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"border\": \".wp-block-avatar img\",\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-avatar img\"\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-avatar-editor\",\n\t\"style\": \"wp-block-avatar\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { useCommentAvatar, useUserAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: 96,\n\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\tuserId: undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => attributes?.size !== 96 }\n\t\t\t\t\tonDeselect={ () => setAttributes( { size: 96 } ) }\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ avatar.minSize }\n\t\t\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\t\t\tvalue={ attributes?.size }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => attributes?.isLink }\n\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ attributes.isLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ attributes.isLink && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => attributes?.linkTarget !== '_self' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ selectUser && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'User' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! attributes?.userId }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { userId: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<UserControl\n\t\t\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tuserId: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n};\n\nconst AvatarLinkWrapper = ( { children, isLink } ) =>\n\tisLink ? (\n\t\t<a\n\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t) : (\n\t\tchildren\n\t);\n\nconst ResizableAvatar = ( {\n\tsetAttributes,\n\tattributes,\n\tavatar,\n\tblockProps,\n\tisSelected,\n} ) => {\n\tconst borderProps = useBorderProps( attributes );\n\tconst doubledSizedSrc = addQueryArgs(\n\t\tremoveQueryArgs( avatar?.src, [ 's' ] ),\n\t\t{\n\t\t\ts: attributes?.size * 2,\n\t\t}\n\t);\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<AvatarLinkWrapper isLink={ attributes.isLink }>\n\t\t\t\t<ResizableBox\n\t\t\t\t\tsize={ {\n\t\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\t\theight: attributes.size,\n\t\t\t\t\t} }\n\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\t\tattributes.size +\n\t\t\t\t\t\t\t\t\t( delta.height || delta.width ),\n\t\t\t\t\t\t\t\t10\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\tlockAspectRatio\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: isRTL(),\n\t\t\t\t\t} }\n\t\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t\t>\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t\t/>\n\t\t\t\t</ResizableBox>\n\t\t\t</AvatarLinkWrapper>\n\t\t</div>\n\t);\n};\nconst CommentEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { commentId } = context;\n\tconst blockProps = useBlockProps();\n\tconst avatar = useCommentAvatar( { commentId } );\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tselectUser={ false }\n\t\t\t/>\n\t\t\t<ResizableAvatar\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nconst UserEdit = ( { attributes, context, setAttributes, isSelected } ) => {\n\tconst { postId, postType } = context;\n\tconst avatar = useUserAvatar( {\n\t\tuserId: attributes?.userId,\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<AvatarInspectorControls\n\t\t\t\tselectUser\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\n\t\t\t<ResizableAvatar\n\t\t\t\tattributes={ attributes }\n\t\t\t\tavatar={ avatar }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default function Edit( props ) {\n\t// Don't show the Comment Edit controls if we have a comment ID set, or if we're in the Site Editor (where it is `null`).\n\tif ( props?.context?.commentId || props?.context?.commentId === null ) {\n\t\treturn <CommentEdit { ...props } />;\n\t}\n\treturn <UserEdit { ...props } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useDefaultAvatar } from '../utils/hooks';\n\nfunction getAvatarSizes( sizes ) {\n\tconst minSize = sizes ? sizes[ 0 ] : 24;\n\tconst maxSize = sizes ? sizes[ sizes.length - 1 ] : 96;\n\tconst maxSizeBuffer = Math.floor( maxSize * 2.5 );\n\treturn {\n\t\tminSize,\n\t\tmaxSize: maxSizeBuffer,\n\t};\n}\n\nexport function useCommentAvatar( { commentId } ) {\n\tconst [ avatars ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_avatar_urls',\n\t\tcommentId\n\t);\n\n\tconst [ authorName ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_name',\n\t\tcommentId\n\t);\n\tconst avatarUrls = avatars ? Object.values( avatars ) : null;\n\tconst sizes = avatars ? Object.keys( avatars ) : null;\n\tconst { minSize, maxSize } = getAvatarSizes( sizes );\n\tconst defaultAvatar = useDefaultAvatar();\n\treturn {\n\t\tsrc: avatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : defaultAvatar,\n\t\tminSize,\n\t\tmaxSize,\n\t\talt: authorName\n\t\t\t? // translators: %s: Author name.\n\t\t\t sprintf( __( '%s Avatar' ), authorName )\n\t\t\t: __( 'Default Avatar' ),\n\t};\n}\n\nexport function useUserAvatar( { userId, postId, postType } ) {\n\tconst { authorDetails } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser } = select( coreStore );\n\t\t\tif ( userId ) {\n\t\t\t\treturn {\n\t\t\t\t\tauthorDetails: getUser( userId ),\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId, userId ]\n\t);\n\tconst avatarUrls = authorDetails?.avatar_urls\n\t\t? Object.values( authorDetails.avatar_urls )\n\t\t: null;\n\tconst sizes = authorDetails?.avatar_urls\n\t\t? Object.keys( authorDetails.avatar_urls )\n\t\t: null;\n\tconst { minSize, maxSize } = getAvatarSizes( sizes );\n\tconst defaultAvatar = useDefaultAvatar();\n\treturn {\n\t\tsrc: avatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : defaultAvatar,\n\t\tminSize,\n\t\tmaxSize,\n\t\talt: authorDetails\n\t\t\t? // translators: %s: Author name.\n\t\t\t sprintf( __( '%s Avatar' ), authorDetails?.name )\n\t\t\t: __( 'Default Avatar' ),\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nexport default function UserControl( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst options = useMemo( () => {\n\t\treturn ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\t}, [ authors ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'User' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Select the avatar user to display, if it is blank it will use the post/page author.'\n\t\t\t) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\toptions={ options }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { commentAuthorAvatar as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { audio as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t},\n\t\tviewportWidth: 350,\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'audio',\n\t\t\tlabel: __( 'Audio' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'audio' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.src,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\tsrc: value.url,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'caption',\n\t\t\tlabel: __( 'Caption' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'audio', 'caption' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\tsrc: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'audio',\n\t\t\t\tattribute: 'src',\n\t\t\t},\n\t\t\tcaption: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'figcaption',\n\t\t\t},\n\t\t\tid: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tautoplay: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'audio',\n\t\t\t\tattribute: 'autoplay',\n\t\t\t},\n\t\t\tloop: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'audio',\n\t\t\t\tattribute: 'loop',\n\t\t\t},\n\t\t\tpreload: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'audio',\n\t\t\t\tattribute: 'preload',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: true,\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { autoplay, caption, loop, preload, src } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<figure>\n\t\t\t\t\t<audio\n\t\t\t\t\t\tcontrols=\"controls\"\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\t\tloop={ loop }\n\t\t\t\t\t\tpreload={ preload }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\t},\n];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectAudio,\n\t\tonError: onUploadError,\n\t} );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined, blob: undefined } );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tonReset={ () => onSelectAudio( undefined ) }\n\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tpreload: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! autoplay }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tautoplay: false,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ !! autoplay }\n\t\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! loop }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tloop: false,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ !! loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! preload }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: undefined,\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\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Preload',\n\t\t\t\t\t\t\t\t'noun; Audio block parameter'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\tso the user clicking on it won't play the\n\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src ?? temporaryURL } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Audio caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && hasNonContentControls\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n", "/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {(...args: any[]) => any} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize(fn, options) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized(/* ...args */) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs,\n\t\t\ti;\n\n\t\tsearchCache: while (node) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif (node.args.length !== arguments.length) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tif (node.args[i] !== arguments[i]) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif (node !== head) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif (node === tail) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ (node.prev).next = node.next;\n\t\t\t\tif (node.next) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ (head).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array(len);\n\t\tfor (i = 0; i < len; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply(null, args),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif (head) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif (size === /** @type {MemizeOptions} */ (options).maxSize) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ (tail).prev;\n\t\t\t/** @type {MemizeCacheNode} */ (tail).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function () {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nexport { memize as default };\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { renderToString } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tgetBlockType,\n\tgetBlockVariations,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport { ASPECT_RATIOS, WP_EMBED_TYPE } from './constants';\nimport { unlock } from '../lock-unlock';\n\nconst { name: DEFAULT_EMBED_BLOCK } = metadata;\nconst { kebabCase } = unlock( componentsPrivateApis );\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * Returns the embed block's information by matching the provided service provider\n *\n * @param {string} provider The embed block's provider\n * @return {WPBlockVariation} The embed block's information\n */\nexport const getEmbedInfoByProvider = ( provider ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === provider\n\t);\n\n/**\n * Returns true if any of the regular expressions match the URL.\n *\n * @param {string} url The URL to test.\n * @param {Array} patterns The list of regular expressions to test against.\n * @return {boolean} True if any of the regular expressions match the URL.\n */\nexport const matchesPatterns = ( url, patterns = [] ) =>\n\tpatterns.some( ( pattern ) => url.match( pattern ) );\n\n/**\n * Finds the block variation that should be used for the URL,\n * based on the provided URL and the variation's patterns.\n *\n * @param {string} url The URL to test.\n * @return {WPBlockVariation} The block variation that should be used for this URL\n */\nexport const findMoreSuitableBlock = ( url ) =>\n\tgetBlockVariations( DEFAULT_EMBED_BLOCK )?.find( ( { patterns } ) =>\n\t\tmatchesPatterns( url, patterns )\n\t);\n\nexport const isFromWordPress = ( html ) =>\n\thtml && html.includes( 'class=\"wp-embedded-content\"' );\n\nexport const getPhotoHtml = ( photo ) => {\n\t// If full image url not found use thumbnail.\n\tconst imageUrl = photo.url || photo.thumbnail_url;\n\n\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t// actually the full size photo.\n\tconst photoPreview = (\n\t\t<p>\n\t\t\t<img src={ imageUrl } alt={ photo.title } width=\"100%\" />\n\t\t</p>\n\t);\n\treturn renderToString( photoPreview );\n};\n\n/**\n * Creates a more suitable embed block based on the passed in props\n * and attributes generated from an embed block's preview.\n *\n * We require `attributesFromPreview` to be generated from the latest attributes\n * and preview, and because of the way the react lifecycle operates, we can't\n * guarantee that the attributes contained in the block's props are the latest\n * versions, so we require that these are generated separately.\n * See `getAttributesFromPreview` in the generated embed edit component.\n *\n * @param {Object} props The block's props.\n * @param {Object} [attributesFromPreview] Attributes generated from the block's most up to date preview.\n * @return {Object|undefined} A more suitable embed block if one exists.\n */\nexport const createUpgradedEmbedBlock = (\n\tprops,\n\tattributesFromPreview = {}\n) => {\n\tconst { preview, attributes = {} } = props;\n\tconst { url, providerNameSlug, type, ...restAttributes } = attributes;\n\n\tif ( ! url || ! getBlockType( DEFAULT_EMBED_BLOCK ) ) {\n\t\treturn;\n\t}\n\n\tconst matchedBlock = findMoreSuitableBlock( url );\n\n\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\tconst isCurrentBlockWP =\n\t\tproviderNameSlug === 'wordpress' || type === WP_EMBED_TYPE;\n\t// If current block is not WordPress and a more suitable block found\n\t// that is different from the current one, create the new matched block.\n\tconst shouldCreateNewBlock =\n\t\t! isCurrentBlockWP &&\n\t\tmatchedBlock &&\n\t\t( matchedBlock.attributes.providerNameSlug !== providerNameSlug ||\n\t\t\t! providerNameSlug );\n\tif ( shouldCreateNewBlock ) {\n\t\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\t\turl,\n\t\t\t...restAttributes,\n\t\t\t...matchedBlock.attributes,\n\t\t} );\n\t}\n\n\tconst wpVariation = getBlockVariations( DEFAULT_EMBED_BLOCK )?.find(\n\t\t( { name } ) => name === 'wordpress'\n\t);\n\n\t// We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\tif (\n\t\t! wpVariation ||\n\t\t! preview ||\n\t\t! isFromWordPress( preview.html ) ||\n\t\tisCurrentBlockWP\n\t) {\n\t\treturn;\n\t}\n\n\t// This is not the WordPress embed block so transform it into one.\n\treturn createBlock( DEFAULT_EMBED_BLOCK, {\n\t\turl,\n\t\t...wpVariation.attributes,\n\t\t// By now we have the preview, but when the new block first renders, it\n\t\t// won't have had all the attributes set, and so won't get the correct\n\t\t// type and it won't render correctly. So, we pass through the current attributes\n\t\t// here so that the initial render works when we switch to the WordPress\n\t\t// block. This only affects the WordPress block because it can't be\n\t\t// rendered in the usual Sandbox (it has a sandbox of its own) and it\n\t\t// relies on the preview to set the correct render type.\n\t\t...attributesFromPreview,\n\t} );\n};\n\n/**\n * Determine if the block already has an aspect ratio class applied.\n *\n * @param {string} existingClassNames Existing block classes.\n * @return {boolean} True or false if the classnames contain an aspect ratio class.\n */\nexport const hasAspectRatioClass = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\treturn false;\n\t}\n\treturn ASPECT_RATIOS.some( ( { className } ) =>\n\t\texistingClassNames.includes( className )\n\t);\n};\n\n/**\n * Removes all previously set aspect ratio related classes and return the rest\n * existing class names.\n *\n * @param {string} existingClassNames Any existing class names.\n * @return {string} The class names without any aspect ratio related class.\n */\nexport const removeAspectRatioClasses = ( existingClassNames ) => {\n\tif ( ! existingClassNames ) {\n\t\t// Avoids extraneous work and also, by returning the same value as\n\t\t// received, ensures the post is not dirtied by a change of the block\n\t\t// attribute from `undefined` to an empty string.\n\t\treturn existingClassNames;\n\t}\n\tconst aspectRatioClassNames = ASPECT_RATIOS.reduce(\n\t\t( accumulator, { className } ) => {\n\t\t\taccumulator.push( className );\n\t\t\treturn accumulator;\n\t\t},\n\t\t[ 'wp-has-aspect-ratio' ]\n\t);\n\tlet outputClassNames = existingClassNames;\n\tfor ( const className of aspectRatioClassNames ) {\n\t\toutputClassNames = outputClassNames.replace( className, '' );\n\t}\n\treturn outputClassNames.trim();\n};\n\n/**\n * Returns class names with any relevant responsive aspect ratio names.\n *\n * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n * @param {string} existingClassNames Any existing class names.\n * @param {boolean} allowResponsive If the responsive class names should be added, or removed.\n * @return {string} Deduped class names.\n */\nexport function getClassNames(\n\thtml,\n\texistingClassNames,\n\tallowResponsive = true\n) {\n\tif ( ! allowResponsive ) {\n\t\treturn removeAspectRatioClasses( existingClassNames );\n\t}\n\n\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\tpreviewDocument.body.innerHTML = html;\n\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t// If we have a fixed aspect iframe, and it's a responsive embed block.\n\tif ( iframe && iframe.height && iframe.width ) {\n\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\tfor (\n\t\t\tlet ratioIndex = 0;\n\t\t\tratioIndex < ASPECT_RATIOS.length;\n\t\t\tratioIndex++\n\t\t) {\n\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\t// Evaluate the difference between actual aspect ratio and closest match.\n\t\t\t\t// If the difference is too big, do not scale the embed according to aspect ratio.\n\t\t\t\tconst ratioDiff = aspectRatio - potentialRatio.ratio;\n\t\t\t\tif ( ratioDiff > 0.1 ) {\n\t\t\t\t\t// No close aspect ratio match found.\n\t\t\t\t\treturn removeAspectRatioClasses( existingClassNames );\n\t\t\t\t}\n\t\t\t\t// Close aspect ratio match found.\n\t\t\t\treturn clsx(\n\t\t\t\t\tremoveAspectRatioClasses( existingClassNames ),\n\t\t\t\t\tpotentialRatio.className,\n\t\t\t\t\t'wp-has-aspect-ratio'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn existingClassNames;\n}\n\n/**\n * Fallback behaviour for unembeddable URLs.\n * Creates a paragraph block containing a link to the URL, and calls `onReplace`.\n *\n * @param {string} url The URL that could not be embedded.\n * @param {Function} onReplace Function to call with the created fallback block.\n */\nexport function fallback( url, onReplace ) {\n\tconst link = <a href={ url }>{ url }</a>;\n\tonReplace(\n\t\tcreateBlock( 'core/paragraph', { content: renderToString( link ) } )\n\t);\n}\n\n/***\n * Gets block attributes based on the preview and responsive state.\n *\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {Object} currentClassNames The block's current class names.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @param {boolean} allowResponsive Apply responsive classes to fixed size content.\n * @return {Object} Attributes and values.\n */\nexport const getAttributesFromPreview = memoize(\n\t(\n\t\tpreview,\n\t\ttitle,\n\t\tcurrentClassNames,\n\t\tisResponsive,\n\t\tallowResponsive = true\n\t) => {\n\t\tif ( ! preview ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst attributes = {};\n\t\t// Some plugins only return HTML with no type info, so default this to 'rich'.\n\t\tlet { type = 'rich' } = preview;\n\t\t// If we got a provider name from the API, use it for the slug, otherwise we use the title,\n\t\t// because not all embed code gives us a provider name.\n\t\tconst { html, provider_name: providerName } = preview;\n\t\tconst providerNameSlug = kebabCase(\n\t\t\t( providerName || title ).toLowerCase()\n\t\t);\n\n\t\tif ( isFromWordPress( html ) ) {\n\t\t\ttype = WP_EMBED_TYPE;\n\t\t}\n\n\t\tif ( html || 'photo' === type ) {\n\t\t\tattributes.type = type;\n\t\t\tattributes.providerNameSlug = providerNameSlug;\n\t\t}\n\n\t\t// Aspect ratio classes are removed when the embed URL is updated.\n\t\t// If the embed already has an aspect ratio class, that means the URL has not changed.\n\t\t// Which also means no need to regenerate it with getClassNames.\n\t\tif ( hasAspectRatioClass( currentClassNames ) ) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\tattributes.className = getClassNames(\n\t\t\thtml,\n\t\t\tcurrentClassNames,\n\t\t\tisResponsive && allowResponsive\n\t\t);\n\n\t\treturn attributes;\n\t}\n);\n\n/**\n * Returns the attributes derived from the preview, merged with the current attributes.\n *\n * @param {Object} currentAttributes The current attributes of the block.\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @return {Object} Merged attributes.\n */\nexport const getMergedAttributesWithPreview = (\n\tcurrentAttributes,\n\tpreview,\n\ttitle,\n\tisResponsive\n) => {\n\tconst { allowResponsive, className } = currentAttributes;\n\n\treturn {\n\t\t...currentAttributes,\n\t\t...getAttributesFromPreview(\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tclassName,\n\t\t\tisResponsive,\n\t\t\tallowResponsive\n\t\t),\n\t};\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/embed\",\n\t\"title\": \"Embed\",\n\t\"category\": \"embed\",\n\t\"description\": \"Add a block that displays content pulled from other sites, like Twitter or YouTube.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"figcaption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"providerNameSlug\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"allowResponsive\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"responsive\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"previewable\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-embed-editor\",\n\t\"style\": \"wp-block-embed\"\n}\n", "export const ASPECT_RATIOS = [\n\t// Common video resolutions.\n\t{ ratio: '2.33', className: 'wp-embed-aspect-21-9' },\n\t{ ratio: '2.00', className: 'wp-embed-aspect-18-9' },\n\t{ ratio: '1.78', className: 'wp-embed-aspect-16-9' },\n\t{ ratio: '1.33', className: 'wp-embed-aspect-4-3' },\n\t// Vertical video and instagram square video support.\n\t{ ratio: '1.00', className: 'wp-embed-aspect-1-1' },\n\t{ ratio: '0.56', className: 'wp-embed-aspect-9-16' },\n\t{ ratio: '0.50', className: 'wp-embed-aspect-1-2' },\n];\n\nexport const WP_EMBED_TYPE = 'wp-embed';\n", "/**\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-library'\n\t);\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useCallback } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\t__experimentalGetElementClassName,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { caption as captionIcon } from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nexport function Caption( {\n\tattributeKey = 'caption',\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tplaceholder = __( 'Add caption' ),\n\tlabel = __( 'Caption text' ),\n\tshowToolbarButton = true,\n\texcludeElementClassName,\n\tclassName,\n\treadOnly,\n\ttagName = 'figcaption',\n\taddLabel = __( 'Add caption' ),\n\tremoveLabel = __( 'Remove caption' ),\n\ticon = captionIcon,\n\t...props\n} ) {\n\tconst caption = attributes[ attributeKey ];\n\tconst prevCaption = usePrevious( caption );\n\tconst { PrivateRichText: RichText } = unlock( blockEditorPrivateApis );\n\tconst isCaptionEmpty = RichText.isEmpty( caption );\n\tconst isPrevCaptionEmpty = RichText.isEmpty( prevCaption );\n\tconst [ showCaption, setShowCaption ] = useState( ! isCaptionEmpty );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( ! isCaptionEmpty && isPrevCaptionEmpty ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ isCaptionEmpty, isPrevCaptionEmpty ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && isCaptionEmpty ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, isCaptionEmpty ] );\n\n\t// Focus the caption when we click to add one.\n\tconst ref = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && isCaptionEmpty ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ isCaptionEmpty ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ showToolbarButton && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t[ attributeKey ]: undefined,\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\ticon={ icon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={ showCaption ? removeLabel : addLabel }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier={ attributeKey }\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\texcludeElementClassName\n\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t: __experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { [ attributeKey ]: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treadOnly={ readOnly }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/audio\",\n\t\"title\": \"Audio\",\n\t\"category\": \"media\",\n\t\"description\": \"Embed a simple audio player.\",\n\t\"keywords\": [ \"music\", \"sound\", \"podcast\", \"recording\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"blob\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"local\"\n\t\t},\n\t\t\"src\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"audio\",\n\t\t\t\"attribute\": \"src\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"figcaption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"autoplay\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"audio\",\n\t\t\t\"attribute\": \"autoplay\"\n\t\t},\n\t\t\"loop\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"audio\",\n\t\t\t\"attribute\": \"loop\"\n\t\t},\n\t\t\"preload\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"audio\",\n\t\t\t\"attribute\": \"preload\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-audio-editor\",\n\t\"style\": \"wp-block-audio\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { autoplay, caption, loop, preload, src } = attributes;\n\n\treturn (\n\t\tsrc && (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<audio\n\t\t\t\t\tcontrols=\"controls\"\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\tloop={ loop }\n\t\t\t\t\tpreload={ preload }\n\t\t\t\t/>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t)\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'audio/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the audio block.\n\t\t\t\tconst block = createBlock( 'core/audio', {\n\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t} );\n\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'audio',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp3, m4a, ogg, wav, wma },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp3 || m4a || ogg || wav || wma;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/breadcrumbs\",\n\t\"title\": \"Breadcrumbs\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display a breadcrumb trail showing the path to the current page.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"prefersTaxonomy\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"separator\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"/\"\n\t\t},\n\t\t\"showHomeItem\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showCurrentItem\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showOnHomePage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\", \"templateSlug\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": false,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-breadcrumbs\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\nconst separatorDefaultValue = '/';\n\nexport default function BreadcrumbEdit( {\n\tattributes,\n\tsetAttributes,\n\tname,\n\tcontext: { postId, postType, templateSlug },\n} ) {\n\tconst {\n\t\tseparator,\n\t\tshowHomeItem,\n\t\tshowCurrentItem,\n\t\tprefersTaxonomy,\n\t\tshowOnHomePage,\n\t} = attributes;\n\tconst {\n\t\tpost,\n\t\tisPostTypeHierarchical,\n\t\tpostTypeHasTaxonomies,\n\t\thasTermsAssigned,\n\t\tisLoading,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst _post = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst postTypeObject = select( coreStore ).getPostType( postType );\n\t\t\tconst _postTypeHasTaxonomies =\n\t\t\t\tpostTypeObject && postTypeObject.taxonomies.length;\n\t\t\tlet taxonomies;\n\t\t\tif ( _postTypeHasTaxonomies ) {\n\t\t\t\ttaxonomies = select( coreStore ).getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpost: _post,\n\t\t\t\tisPostTypeHierarchical: postTypeObject?.hierarchical,\n\t\t\t\tpostTypeHasTaxonomies: _postTypeHasTaxonomies,\n\t\t\t\thasTermsAssigned:\n\t\t\t\t\t_post &&\n\t\t\t\t\t( taxonomies || [] )\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.some( ( taxonomy ) => {\n\t\t\t\t\t\t\treturn !! _post[ taxonomy.rest_base ]?.length;\n\t\t\t\t\t\t} ),\n\t\t\t\tisLoading:\n\t\t\t\t\t( postId && ! _post ) ||\n\t\t\t\t\t! postTypeObject ||\n\t\t\t\t\t( _postTypeHasTaxonomies && ! taxonomies ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\t/**\n\t * Counter used to cache-bust `useServerSideRender`.\n\t *\n\t * This is a catch-all signal to re-render the block when a post's title,\n\t * parent ID, or terms change.\n\t *\n\t * This is fundamentally imperfect, because there are other entities which\n\t * could change in the meantime (the titles of ancestor posts, or the\n\t * labels of taxonomy terms), hence the choice to re-render systematically\n\t * upon saving.\n\t */\n\tconst [ invalidationKey, setInvalidationKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tsetInvalidationKey( ( c ) => c + 1 );\n\t}, [ post ] );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t\turlQueryArgs: { post_id: postId, invalidationKey },\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Try to determine breadcrumb type for more accurate previews.\n\tlet _showTerms;\n\t// Some non-hierarchical post types (e.g., attachments) can have parents.\n\t// Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs.\n\tif ( ! isPostTypeHierarchical && ! post?.parent ) {\n\t\t_showTerms = true;\n\t} else if ( ! postTypeHasTaxonomies ) {\n\t\t// Hierarchical post type without taxonomies can only use ancestors.\n\t\t_showTerms = false;\n\t} else {\n\t\t// For hierarchical post types with taxonomies, use the attribute.\n\t\t_showTerms = prefersTaxonomy;\n\t}\n\tlet placeholder = null;\n\t// This is fragile because this block is server side rendered and we'll have to\n\t// update the placeholder html if the server side rendering output changes.\n\tconst showPlaceholder =\n\t\t! postId ||\n\t\t! postType ||\n\t\t// When `templateSlug` is set only show placeholder if the post type is not.\n\t\t// This is needed because when we are showing the template in post editor we\n\t\t// want to show the real breadcrumbs if we have the post type.\n\t\t( templateSlug && ! postType ) ||\n\t\t( ! _showTerms && ! isPostTypeHierarchical ) ||\n\t\t( _showTerms && ! hasTermsAssigned );\n\tif ( showPlaceholder ) {\n\t\tconst placeholderItems = [];\n\t\tif ( showHomeItem ) {\n\t\t\tplaceholderItems.push( __( 'Home' ) );\n\t\t}\n\t\tif ( templateSlug && ! postId ) {\n\t\t\tplaceholderItems.push( __( 'Page' ) );\n\t\t} else if ( _showTerms ) {\n\t\t\tplaceholderItems.push( __( 'Category' ) );\n\t\t} else {\n\t\t\tplaceholderItems.push( __( 'Ancestor' ), __( 'Parent' ) );\n\t\t}\n\t\tplaceholder = (\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol>\n\t\t\t\t\t{ placeholderItems.map( ( text, index ) => (\n\t\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t\t<a href={ `#breadcrumbs-pseudo-link-${ index }` }>\n\t\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ showCurrentItem && (\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span aria-current=\"page\">{ __( 'Current' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\tshowCurrentItem: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showHomeItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowHomeItem: true,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHomeItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showHomeItem }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showCurrentItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowCurrentItem: true,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showCurrentItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showCurrentItem }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => separator !== separatorDefaultValue }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\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\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\t\tvalue={ separator }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { separator: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tif ( ! separator ) {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\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/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Show on homepage' ) }\n\t\t\t\t\tchecked={ showOnHomePage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showOnHomePage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'If this breadcrumbs block appears in a template or template part that\u2019s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Prefer taxonomy terms' ) }\n\t\t\t\t\tchecked={ prefersTaxonomy }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { prefersTaxonomy: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The exact type of breadcrumbs shown will vary automatically depending on the page in which this block is displayed. In the specific case of a hierarchical post type with taxonomies, the breadcrumbs can either reflect its post hierarchy (default) or the hierarchy of its assigned taxonomy terms.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showPlaceholder && placeholder }\n\t\t\t{ ! showPlaceholder && status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { breadcrumbs } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: breadcrumbs,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { text } = attributes;\n\n\t\tconst customName = attributes?.metadata?.name;\n\t\tconst hasContent = text?.trim().length > 0;\n\n\t\t// In the list view, use the block's text as the label.\n\t\t// If the text is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && ( customName || hasContent ) ) {\n\t\t\treturn customName || text;\n\t\t}\n\t},\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'text',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link', // TODO: replace with custom component\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.url,\n\t\t\t\trel: item.rel,\n\t\t\t\tlinkTarget: item.linkTarget,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\turl: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t\tlinkTarget: value.linkTarget,\n\t\t\t} ),\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'text', 'link' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tgetColorClassName,\n\tuseBlockProps,\n\t__experimentalGetGradientClass,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\t__experimentalGetElementClassName,\n\tgetTypographyClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\nimport migrateTextAlign from '../utils/migrate-text-align';\n\nconst migrateBorderRadius = ( attributes ) => {\n\tconst { borderRadius, ...newAttributes } = attributes;\n\t// We have to check old property `borderRadius` and if\n\t// `styles.border.radius` is a `number`\n\tconst oldBorderRadius = [\n\t\tborderRadius,\n\t\tnewAttributes.style?.border?.radius,\n\t].find( ( possibleBorderRadius ) => {\n\t\treturn (\n\t\t\ttypeof possibleBorderRadius === 'number' &&\n\t\t\tpossibleBorderRadius !== 0\n\t\t);\n\t} );\n\tif ( ! oldBorderRadius ) {\n\t\treturn newAttributes;\n\t}\n\n\treturn {\n\t\t...newAttributes,\n\t\tstyle: {\n\t\t\t...newAttributes.style,\n\t\t\tborder: {\n\t\t\t\t...newAttributes.style?.border,\n\t\t\t\tradius: `${ oldBorderRadius }px`,\n\t\t\t},\n\t\t},\n\t};\n};\n\nfunction migrateAlign( attributes ) {\n\tif ( ! attributes.align ) {\n\t\treturn attributes;\n\t}\n\tconst { align, ...otherAttributes } = attributes;\n\treturn {\n\t\t...otherAttributes,\n\t\tclassName: clsx(\n\t\t\totherAttributes.className,\n\t\t\t`align${ attributes.align }`\n\t\t),\n\t};\n}\n\nconst migrateCustomColorsAndGradients = ( attributes ) => {\n\tif (\n\t\t! attributes.customTextColor &&\n\t\t! attributes.customBackgroundColor &&\n\t\t! attributes.customGradient\n\t) {\n\t\treturn attributes;\n\t}\n\tconst style = { color: {} };\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\tif ( attributes.customGradient ) {\n\t\tstyle.color.gradient = attributes.customGradient;\n\t}\n\n\tconst {\n\t\tcustomTextColor,\n\t\tcustomBackgroundColor,\n\t\tcustomGradient,\n\t\t...restAttributes\n\t} = attributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t};\n};\n\nconst oldColorsMigration = ( attributes ) => {\n\tconst { color, textColor, ...restAttributes } = {\n\t\t...attributes,\n\t\tcustomTextColor:\n\t\t\tattributes.textColor && '#' === attributes.textColor[ 0 ]\n\t\t\t\t? attributes.textColor\n\t\t\t\t: undefined,\n\t\tcustomBackgroundColor:\n\t\t\tattributes.color && '#' === attributes.color[ 0 ]\n\t\t\t\t? attributes.color\n\t\t\t\t: undefined,\n\t};\n\treturn migrateCustomColorsAndGradients( restAttributes );\n};\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'href',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'title',\n\t},\n\ttext: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'a',\n\t},\n};\n\nconst v13 = {\n\tattributes: {\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tenum: [ 'a', 'button' ],\n\t\t\tdefault: 'a',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'button',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t\trole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a,button',\n\t\t\tattribute: 'title',\n\t\t\trole: 'content',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'rich-text',\n\t\t\tsource: 'rich-text',\n\t\t\tselector: 'a,button',\n\t\t\trole: 'content',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'target',\n\t\t\trole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'rel',\n\t\t\trole: 'content',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\talignWide: false,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\t__experimentalSkipSerialization: [\n\t\t\t\t'fontSize',\n\t\t\t\t'lineHeight',\n\t\t\t\t'fontFamily',\n\t\t\t\t'fontWeight',\n\t\t\t\t'fontStyle',\n\t\t\t\t'textTransform',\n\t\t\t\t'textDecoration',\n\t\t\t\t'letterSpacing',\n\t\t\t],\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalWritingMode: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\treusable: false,\n\t\tshadow: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t},\n\t\tspacing: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tpadding: [ 'horizontal', 'vertical' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t},\n\tselectors: {\n\t\troot: '.wp-block-button .wp-block-button__link',\n\t\ttypography: {\n\t\t\twritingMode: '.wp-block-button',\n\t\t},\n\t},\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\ttagName,\n\t\t\ttype,\n\t\t\ttextAlign,\n\t\t\tfontSize,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t\tstyle,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\turl,\n\t\t\twidth,\n\t\t} = attributes;\n\n\t\tconst TagName = tagName || 'a';\n\t\tconst isButtonTag = 'button' === TagName;\n\t\tconst buttonType = type || 'button';\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\t\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\t\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\t\tconst buttonClasses = clsx(\n\t\t\t'wp-block-button__link',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className,\n\t\t\ttypographyProps.className,\n\t\t\t{\n\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t\t// block support.\n\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\tfontSize || style?.typography?.fontSize,\n\t\t\t},\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t\t...spacingProps.style,\n\t\t\t...shadowProps.style,\n\t\t\t...typographyProps.style,\n\t\t\twritingMode: undefined,\n\t\t};\n\n\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\tconst wrapperClasses = clsx( className, {\n\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\ttype={ isButtonTag ? buttonType : null }\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ isButtonTag ? null : url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\ttarget={ isButtonTag ? null : linkTarget }\n\t\t\t\t\trel={ isButtonTag ? null : rel }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tisEligible( attributes ) {\n\t\treturn !! attributes.textAlign;\n\t},\n\tmigrate: migrateTextAlign,\n};\n\nconst v12 = {\n\tattributes: {\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tenum: [ 'a', 'button' ],\n\t\t\tdefault: 'a',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'button',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a,button',\n\t\t\tattribute: 'title',\n\t\t\trole: 'content',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'rich-text',\n\t\t\tsource: 'rich-text',\n\t\t\tselector: 'a,button',\n\t\t\trole: 'content',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'target',\n\t\t\trole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'rel',\n\t\t\trole: 'content',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\talignWide: false,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalWritingMode: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\treusable: false,\n\t\tshadow: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t},\n\t\tspacing: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tpadding: [ 'horizontal', 'vertical' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: '.wp-block-button__link',\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t},\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\ttagName,\n\t\t\ttype,\n\t\t\ttextAlign,\n\t\t\tfontSize,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t\tstyle,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\turl,\n\t\t\twidth,\n\t\t} = attributes;\n\n\t\tconst TagName = tagName || 'a';\n\t\tconst isButtonTag = 'button' === TagName;\n\t\tconst buttonType = type || 'button';\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\t\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\t\tconst buttonClasses = clsx(\n\t\t\t'wp-block-button__link',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className,\n\t\t\t{\n\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t\t// block support.\n\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t},\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t\t...spacingProps.style,\n\t\t\t...shadowProps.style,\n\t\t};\n\n\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\tconst wrapperClasses = clsx( className, {\n\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\ttype={ isButtonTag ? buttonType : null }\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ isButtonTag ? null : url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\ttarget={ isButtonTag ? null : linkTarget }\n\t\t\t\t\trel={ isButtonTag ? null : rel }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\nconst v11 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'title',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'target',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\talignWide: false,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\treusable: false,\n\t\tspacing: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tpadding: [ 'horizontal', 'vertical' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: '.wp-block-button__link',\n\t},\n\tsave( { attributes, className } ) {\n\t\tconst { fontSize, linkTarget, rel, style, text, title, url, width } =\n\t\t\tattributes;\n\n\t\tif ( ! text ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\t\tconst buttonClasses = clsx(\n\t\t\t'wp-block-button__link',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className,\n\t\t\t{\n\t\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t\t// block support.\n\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t}\n\t\t);\n\t\tconst buttonStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t\t...spacingProps.style,\n\t\t};\n\n\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\tconst wrapperClasses = clsx( className, {\n\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ rel }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\nconst v10 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'title',\n\t\t},\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'target',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\talignWide: false,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t},\n\t\treusable: false,\n\t\tspacing: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tpadding: [ 'horizontal', 'vertical' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t},\n\t\t__experimentalSelector: '.wp-block-button__link',\n\t},\n\tsave( { attributes, className } ) {\n\t\tconst { fontSize, linkTarget, rel, style, text, title, url, width } =\n\t\t\tattributes;\n\n\t\tif ( ! text ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\t\tconst buttonClasses = clsx(\n\t\t\t'wp-block-button__link',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className,\n\t\t\t{\n\t\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t\t// block support.\n\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t}\n\t\t);\n\t\tconst buttonStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t\t...spacingProps.style,\n\t\t};\n\n\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\tconst wrapperClasses = clsx( className, {\n\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t\t} );\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ rel }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\nconst deprecated = [\n\tv13,\n\tv12,\n\tv11,\n\tv10,\n\t{\n\t\tsupports: {\n\t\t\tanchor: true,\n\t\t\talign: true,\n\t\t\talignWide: false,\n\t\t\tcolor: {\n\t\t\t\t__experimentalSkipSerialization: true,\n\t\t\t\tgradients: true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t\t__experimentalFontFamily: true,\n\t\t\t},\n\t\t\treusable: false,\n\t\t\t__experimentalSelector: '.wp-block-button__link',\n\t\t},\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tisEligible( { style } ) {\n\t\t\treturn typeof style?.border?.radius === 'number';\n\t\t},\n\t\tsave( { attributes, className } ) {\n\t\t\tconst {\n\t\t\t\tfontSize,\n\t\t\t\tlinkTarget,\n\t\t\t\trel,\n\t\t\t\tstyle,\n\t\t\t\ttext,\n\t\t\t\ttitle,\n\t\t\t\turl,\n\t\t\t\twidth,\n\t\t\t} = attributes;\n\n\t\t\tif ( ! text ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst borderRadius = style?.border?.radius;\n\t\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\t\tconst buttonClasses = clsx(\n\t\t\t\t'wp-block-button__link',\n\t\t\t\tcolorProps.className,\n\t\t\t\t{\n\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst buttonStyle = {\n\t\t\t\tborderRadius: borderRadius ? borderRadius : undefined,\n\t\t\t\t...colorProps.style,\n\t\t\t};\n\n\t\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\t\tconst wrapperClasses = clsx( className, {\n\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\tfontSize || style?.typography?.fontSize,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: compose( migrateFontFamily, migrateBorderRadius ),\n\t},\n\t{\n\t\tsupports: {\n\t\t\tanchor: true,\n\t\t\talign: true,\n\t\t\talignWide: false,\n\t\t\tcolor: {\n\t\t\t\t__experimentalSkipSerialization: true,\n\t\t\t},\n\t\t\treusable: false,\n\t\t\t__experimentalSelector: '.wp-block-button__link',\n\t\t},\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tborderRadius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes, className } ) {\n\t\t\tconst { borderRadius, linkTarget, rel, text, title, url, width } =\n\t\t\t\tattributes;\n\t\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\t\tconst buttonClasses = clsx(\n\t\t\t\t'wp-block-button__link',\n\t\t\t\tcolorProps.className,\n\t\t\t\t{\n\t\t\t\t\t'no-border-radius': borderRadius === 0,\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst buttonStyle = {\n\t\t\t\tborderRadius: borderRadius ? borderRadius + 'px' : undefined,\n\t\t\t\t...colorProps.style,\n\t\t\t};\n\n\t\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\t\tconst wrapperClasses = clsx( className, {\n\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: compose( migrateFontFamily, migrateBorderRadius ),\n\t},\n\t{\n\t\tsupports: {\n\t\t\tanchor: true,\n\t\t\talign: true,\n\t\t\talignWide: false,\n\t\t\tcolor: {\n\t\t\t\t__experimentalSkipSerialization: true,\n\t\t\t},\n\t\t\treusable: false,\n\t\t\t__experimentalSelector: '.wp-block-button__link',\n\t\t},\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tborderRadius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes, className } ) {\n\t\t\tconst { borderRadius, linkTarget, rel, text, title, url, width } =\n\t\t\t\tattributes;\n\t\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\t\tconst buttonClasses = clsx(\n\t\t\t\t'wp-block-button__link',\n\t\t\t\tcolorProps.className,\n\t\t\t\t{\n\t\t\t\t\t'no-border-radius': borderRadius === 0,\n\t\t\t\t}\n\t\t\t);\n\t\t\tconst buttonStyle = {\n\t\t\t\tborderRadius: borderRadius ? borderRadius + 'px' : undefined,\n\t\t\t\t...colorProps.style,\n\t\t\t};\n\n\t\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\t\tconst wrapperClasses = clsx( className, {\n\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: compose( migrateFontFamily, migrateBorderRadius ),\n\t},\n\t{\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\talignWide: false,\n\t\t\tcolor: { gradients: true },\n\t\t},\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tborderRadius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { borderRadius, linkTarget, rel, text, title, url } =\n\t\t\t\tattributes;\n\t\t\tconst buttonClasses = clsx( 'wp-block-button__link', {\n\t\t\t\t'no-border-radius': borderRadius === 0,\n\t\t\t} );\n\t\t\tconst buttonStyle = {\n\t\t\t\tborderRadius: borderRadius ? borderRadius + 'px' : undefined,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ rel }\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t\tmigrate: migrateBorderRadius,\n\t},\n\t{\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\talignWide: false,\n\t\t},\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tborderRadius: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomGradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tisEligible: ( attributes ) =>\n\t\t\t!! attributes.customTextColor ||\n\t\t\t!! attributes.customBackgroundColor ||\n\t\t\t!! attributes.customGradient ||\n\t\t\t!! attributes.align,\n\t\tmigrate: compose(\n\t\t\tmigrateBorderRadius,\n\t\t\tmigrateCustomColorsAndGradients,\n\t\t\tmigrateAlign\n\t\t),\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tbackgroundColor,\n\t\t\t\tborderRadius,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t\tcustomGradient,\n\t\t\t\tlinkTarget,\n\t\t\t\tgradient,\n\t\t\t\trel,\n\t\t\t\ttext,\n\t\t\t\ttextColor,\n\t\t\t\ttitle,\n\t\t\t\turl,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass =\n\t\t\t\t! customGradient &&\n\t\t\t\tgetColorClassName( 'background-color', backgroundColor );\n\t\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\n\t\t\tconst buttonClasses = clsx( 'wp-block-button__link', {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t'has-background':\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tcustomBackgroundColor ||\n\t\t\t\t\tcustomGradient ||\n\t\t\t\t\tgradient,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t'no-border-radius': borderRadius === 0,\n\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t} );\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\tbackgroundClass || customGradient || gradient\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\tborderRadius: borderRadius ? borderRadius + 'px' : undefined,\n\t\t\t};\n\n\t\t\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t\t\t// if it had already been assigned, for the sake of backward-compatibility.\n\t\t\t// A title will no longer be assigned for new or updated button block links.\n\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tlinkTarget: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'target',\n\t\t\t},\n\t\t\trel: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'a',\n\t\t\t\tattribute: 'rel',\n\t\t\t},\n\t\t\tplaceholder: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tisEligible( attribute ) {\n\t\t\treturn (\n\t\t\t\tattribute.className &&\n\t\t\t\tattribute.className.includes( 'is-style-squared' )\n\t\t\t);\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\tlet newClassName = attributes.className;\n\t\t\tif ( newClassName ) {\n\t\t\t\tnewClassName = newClassName\n\t\t\t\t\t.replace( /is-style-squared[\\s]?/, '' )\n\t\t\t\t\t.trim();\n\t\t\t}\n\t\t\treturn migrateBorderRadius(\n\t\t\t\tmigrateCustomColorsAndGradients( {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tclassName: newClassName ? newClassName : undefined,\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t\tlinkTarget,\n\t\t\t\trel,\n\t\t\t\ttext,\n\t\t\t\ttextColor,\n\t\t\t\ttitle,\n\t\t\t\turl,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\n\t\t\tconst buttonClasses = clsx( 'wp-block-button__link', {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate: oldColorsMigration,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\turl,\n\t\t\t\ttext,\n\t\t\t\ttitle,\n\t\t\t\tbackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\n\t\t\tconst buttonClasses = clsx( 'wp-block-button__link', {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackgroundColor: color,\n\t\t\t\tcolor: textColor,\n\t\t\t};\n\n\t\t\tconst linkClass = 'wp-block-button__link';\n\n\t\t\treturn (\n\t\t\t\t<div className={ `align${ align }` }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: oldColorsMigration,\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ `align${ align }` }\n\t\t\t\t\tstyle={ { backgroundColor: color } }\n\t\t\t\t>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ { color: textColor } }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: oldColorsMigration,\n\t},\n];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\n/**\n * Migrates the current style.typography.fontFamily attribute,\n * whose value was \"var:preset|font-family|helvetica-arial\",\n * to the style.fontFamily attribute, whose value will be \"helvetica-arial\".\n *\n * @param {Object} attributes The current attributes\n * @return {Object} The updated attributes.\n */\nexport default function ( attributes ) {\n\tif ( ! attributes?.style?.typography?.fontFamily ) {\n\t\treturn attributes;\n\t}\n\n\tconst { fontFamily, ...typography } = attributes.style.typography;\n\n\treturn {\n\t\t...attributes,\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...attributes.style,\n\t\t\ttypography,\n\t\t} ),\n\t\tfontFamily: fontFamily.split( '|' ).pop(),\n\t};\n}\n", "/**\n * Migrates the current textAlign attribute,\n *\n * @param {Object} attributes The current attributes\n * @return {Object} The updated attributes.\n */\nexport default function ( attributes ) {\n\tconst { textAlign, ...restAttributes } = attributes;\n\tif ( ! textAlign ) {\n\t\treturn attributes;\n\t}\n\treturn {\n\t\t...restAttributes,\n\t\tstyle: {\n\t\t\t...attributes.style,\n\t\t\ttypography: {\n\t\t\t\t...attributes.style?.typography,\n\t\t\t\ttextAlign,\n\t\t\t},\n\t\t},\n\t};\n}\n", "import clsx from 'clsx';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseMemo,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport {\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tLinkControl,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tuseSettings,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tgetBlockBindingsSource,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => setAttributes( { width: undefined } ) }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! selectedWidth }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tvalue={ selectedWidth }\n\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tisBlock\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\tvalue={ widthValue }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d: Percentage value. */\n\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\twidthValue\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</ToggleGroupControl>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t\tcontext,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t\tmetadata,\n\t} = attributes;\n\tuseDeprecatedTextAlign( props );\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tconst {\n\t\tcreatePageEntity,\n\t\tuserCanCreatePages,\n\t\tlockUrlControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst _settings = select( blockEditorStore ).getSettings();\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcreatePageEntity: _settings.__experimentalCreatePageEntity,\n\t\t\t\tuserCanCreatePages: _settings.__experimentalUserCanCreatePages,\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSelected, metadata?.bindings?.url ]\n\t);\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await createPageEntity( {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: page.type,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tfunction createButtonText( searchTerm ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Create page: <mark>%s</mark>' ),\n\t\t\t\tsearchTerm\n\t\t\t),\n\t\t\t{ mark: <mark /> }\n\t\t);\n\t}\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst [ fluidTypographySettings, layout ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout'\n\t);\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst hasBlockControls =\n\t\thasNonContentControls || ( isLinkTag && ! lockUrlControls );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text\u2026' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\ttypographyProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t\t[ `has-custom-font-size` ]:\n\t\t\t\t\t\t\t\tblockProps.style.fontSize,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t\t...typographyProps.style,\n\t\t\t\t\t\twritingMode: undefined,\n\t\t\t\t\t} }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ ! isURLSet ? link : linkOff }\n\t\t\t\t\t\t\ttitle={ ! isURLSet ? __( 'Link' ) : __( 'Unlink' ) }\n\t\t\t\t\t\t\tshortcut={\n\t\t\t\t\t\t\t\t! isURLSet\n\t\t\t\t\t\t\t\t\t? displayShortcut.primary( 'k' )\n\t\t\t\t\t\t\t\t\t: displayShortcut.primaryShift( 'k' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ ! isURLSet ? startEditing : unlink }\n\t\t\t\t\t\t\tisActive={ isURLSet }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t\tcreateSuggestion={\n\t\t\t\t\t\t\t\tcreatePageEntity && handleCreate\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreatePages }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={ createButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<a>)' ), value: 'a' },\n\t\t\t\t\t\t{ label: '<button>', value: 'button' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\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\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n", "export const NEW_TAB_REL = 'noreferrer noopener';\nexport const NEW_TAB_TARGET = '_blank';\nexport const NOFOLLOW_REL = 'nofollow';\n", "/**\n * Internal dependencies\n */\nimport { NEW_TAB_REL, NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\n\n/**\n * WordPress dependencies\n */\nimport { prependHTTP } from '@wordpress/url';\n\n/**\n * Updates the link attributes.\n *\n * @param {Object} attributes The current block attributes.\n * @param {string} attributes.rel The current link rel attribute.\n * @param {string} attributes.url The current link url.\n * @param {boolean} attributes.opensInNewTab Whether the link should open in a new window.\n * @param {boolean} attributes.nofollow Whether the link should be marked as nofollow.\n */\nexport function getUpdatedLinkAttributes( {\n\trel = '',\n\turl = '',\n\topensInNewTab,\n\tnofollow,\n} ) {\n\tlet newLinkTarget;\n\t// Since `rel` is editable attribute, we need to check for existing values and proceed accordingly.\n\tlet updatedRel = rel;\n\n\tif ( opensInNewTab ) {\n\t\tnewLinkTarget = NEW_TAB_TARGET;\n\t\tupdatedRel = updatedRel?.includes( NEW_TAB_REL )\n\t\t\t? updatedRel\n\t\t\t: updatedRel + ` ${ NEW_TAB_REL }`;\n\t} else {\n\t\tconst relRegex = new RegExp( `\\\\b${ NEW_TAB_REL }\\\\s*`, 'g' );\n\t\tupdatedRel = updatedRel?.replace( relRegex, '' ).trim();\n\t}\n\n\tif ( nofollow ) {\n\t\tupdatedRel = updatedRel?.includes( NOFOLLOW_REL )\n\t\t\t? updatedRel\n\t\t\t: ( updatedRel + ` ${ NOFOLLOW_REL }` ).trim();\n\t} else {\n\t\tconst relRegex = new RegExp( `\\\\b${ NOFOLLOW_REL }\\\\s*`, 'g' );\n\t\tupdatedRel = updatedRel?.replace( relRegex, '' ).trim();\n\t}\n\n\treturn {\n\t\turl: prependHTTP( url ),\n\t\tlinkTarget: newLinkTarget,\n\t\trel: updatedRel || undefined,\n\t};\n}\n", "/**\n * Removes anchor tags from a string.\n *\n * @param {string} value The value to remove anchor tags from.\n *\n * @return {string} The value with anchor tags removed.\n */\nexport default function removeAnchorTag( value ) {\n\t// To do: Refactor this to use rich text's removeFormat instead.\n\treturn value.toString().replace( /<\\/?a[^>]*>/g, '' );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEvent } from '@wordpress/compose';\nimport { useEffect, useRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * If a plugin is still using the old textAlign attribute, we need to migrate its value\n * to the new style.typography.textAlign attribute.\n *\n * @param {Object} props Block props.\n */\nexport default function useDeprecatedTextAlign( props ) {\n\tconst { name, attributes, setAttributes } = props;\n\tconst { textAlign } = attributes;\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst updateStyleWithAlign = useEvent( () => {\n\t\tdeprecated( `textAlign attribute in ${ name }`, {\n\t\t\talternative: 'style.typography.textAlign',\n\t\t\tsince: '7.0',\n\t\t} );\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( ( currentAttr ) => ( {\n\t\t\tstyle: {\n\t\t\t\t...currentAttr.style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...currentAttr.style?.typography,\n\t\t\t\t\ttextAlign,\n\t\t\t\t},\n\t\t\t},\n\t\t} ) );\n\t} );\n\tconst lastUpdatedAlignRef = useRef();\n\tuseEffect( () => {\n\t\tif ( textAlign === lastUpdatedAlignRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tlastUpdatedAlignRef.current = textAlign;\n\t\tupdateStyleWithAlign();\n\t}, [ textAlign, updateStyleWithAlign ] );\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/button\",\n\t\"title\": \"Button\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/buttons\" ],\n\t\"description\": \"Prompt visitors to take action with a button-style link.\",\n\t\"keywords\": [ \"link\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"a\", \"button\" ],\n\t\t\t\"default\": \"a\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"button\"\n\t\t},\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a\",\n\t\t\t\"attribute\": \"href\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a,button\",\n\t\t\t\"attribute\": \"title\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"text\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"a,button\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a\",\n\t\t\t\"attribute\": \"target\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a\",\n\t\t\t\"attribute\": \"rel\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"backgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"textColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"gradient\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"number\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"splitting\": true,\n\t\t\"align\": false,\n\t\t\"alignWide\": false,\n\t\t\"color\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"__experimentalSkipSerialization\": [\n\t\t\t\t\"fontSize\",\n\t\t\t\t\"lineHeight\",\n\t\t\t\t\"textAlign\",\n\t\t\t\t\"fontFamily\",\n\t\t\t\t\"fontWeight\",\n\t\t\t\t\"fontStyle\",\n\t\t\t\t\"textTransform\",\n\t\t\t\t\"textDecoration\",\n\t\t\t\t\"letterSpacing\"\n\t\t\t],\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"textAlign\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"reusable\": false,\n\t\t\"shadow\": {\n\t\t\t\"__experimentalSkipSerialization\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"padding\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{ \"name\": \"fill\", \"label\": \"Fill\", \"isDefault\": true },\n\t\t{ \"name\": \"outline\", \"label\": \"Outline\" }\n\t],\n\t\"editorStyle\": \"wp-block-button-editor\",\n\t\"style\": \"wp-block-button\",\n\t\"selectors\": {\n\t\t\"root\": \".wp-block-button .wp-block-button__link\",\n\t\t\"typography\": {\n\t\t\t\"writingMode\": \".wp-block-button\"\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\t__experimentalGetElementClassName,\n\tgetTypographyClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst {\n\t\ttagName,\n\t\ttype,\n\t\tfontSize,\n\t\tlinkTarget,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\ttitle,\n\t\turl,\n\t\twidth,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\tconst isButtonTag = 'button' === TagName;\n\tconst buttonType = type || 'button';\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\tconst buttonClasses = clsx(\n\t\t'wp-block-button__link',\n\t\tcolorProps.className,\n\t\tborderProps.className,\n\t\ttypographyProps.className,\n\t\t{\n\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t// block support.\n\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t\t},\n\t\t__experimentalGetElementClassName( 'button' )\n\t);\n\tconst buttonStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t\t...spacingProps.style,\n\t\t...shadowProps.style,\n\t\t...typographyProps.style,\n\t\twritingMode: undefined,\n\t};\n\n\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t// if it had already been assigned, for the sake of backward-compatibility.\n\t// A title will no longer be assigned for new or updated button block links.\n\n\tconst wrapperClasses = clsx( className, {\n\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t} );\n\n\treturn (\n\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName={ TagName }\n\t\t\t\ttype={ isButtonTag ? buttonType : null }\n\t\t\t\tclassName={ buttonClasses }\n\t\t\t\thref={ isButtonTag ? null : url }\n\t\t\t\ttitle={ title }\n\t\t\t\tstyle={ buttonStyle }\n\t\t\t\tvalue={ text }\n\t\t\t\ttarget={ isButtonTag ? null : linkTarget }\n\t\t\t\trel={ isButtonTag ? null : rel }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { buttons as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport transforms from './transforms';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\tjustifyContent: 'center',\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/button',\n\t\t\t\tattributes: { text: __( 'Find out more' ) },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/button',\n\t\t\t\tattributes: { text: __( 'Contact us' ) },\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * @param {Object} attributes Block's attributes.\n */\nconst migrateWithLayout = ( attributes ) => {\n\tif ( !! attributes.layout ) {\n\t\treturn attributes;\n\t}\n\n\tconst { contentJustification, orientation, ...updatedAttributes } =\n\t\tattributes;\n\n\tif ( contentJustification || orientation ) {\n\t\tObject.assign( updatedAttributes, {\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\t...( contentJustification && {\n\t\t\t\t\tjustifyContent: contentJustification,\n\t\t\t\t} ),\n\t\t\t\t...( orientation && { orientation } ),\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn updatedAttributes;\n};\n\nconst deprecated = [\n\t{\n\t\tattributes: {\n\t\t\tcontentJustification: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\torientation: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'horizontal',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\tanchor: true,\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\t__experimentalExposeControlsToChildren: true,\n\t\t\tspacing: {\n\t\t\t\tblockGap: true,\n\t\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tblockGap: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tisEligible: ( { contentJustification, orientation } ) =>\n\t\t\t!! contentJustification || !! orientation,\n\t\tmigrate: migrateWithLayout,\n\t\tsave( { attributes: { contentJustification, orientation } } ) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\t{ ...useBlockProps.save( {\n\t\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t\t[ `is-content-justification-${ contentJustification }` ]:\n\t\t\t\t\t\t\t\tcontentJustification,\n\t\t\t\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t\t\t} ),\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports: {\n\t\t\talign: [ 'center', 'left', 'right' ],\n\t\t\tanchor: true,\n\t\t},\n\t\tsave() {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tisEligible( { align } ) {\n\t\t\treturn align && [ 'center', 'left', 'right' ].includes( align );\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn migrateWithLayout( {\n\t\t\t\t...attributes,\n\t\t\t\talign: undefined,\n\t\t\t\t// Floating Buttons blocks shouldn't have been supported in the\n\t\t\t\t// first place. Most users using them probably expected them to\n\t\t\t\t// act like content justification controls, so these blocks are\n\t\t\t\t// migrated to use content justification.\n\t\t\t\t// As for center-aligned Buttons blocks, the content justification\n\t\t\t\t// equivalent will create an identical end result in most cases.\n\t\t\t\tcontentJustification: attributes.align,\n\t\t\t} );\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __unstableCreateElement as createElement } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { getTransformedAttributes } from '../utils/get-transformed-attributes';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/button' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/buttons',\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) =>\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\tcreateBlock( 'core/button', attributes )\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/buttons',\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) => {\n\t\t\t\t\t\tconst { content } = attributes;\n\t\t\t\t\t\tconst element = createElement( document, content );\n\t\t\t\t\t\t// Remove any HTML tags.\n\t\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\t\t// Get first url.\n\t\t\t\t\t\tconst link = element.querySelector( 'a' );\n\t\t\t\t\t\tconst url = link?.getAttribute( 'href' );\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\treturn createBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\t...getTransformedAttributes(\n\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t'core/button',\n\t\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\t\ttext: contentBinding,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\tisMatch: ( paragraphs ) => {\n\t\t\t\treturn paragraphs.every( ( attributes ) => {\n\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tattributes.content\n\t\t\t\t\t);\n\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\tconst links = element.querySelectorAll( 'a' );\n\t\t\t\t\treturn text.length <= 30 && links.length <= 1;\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Transform block support attributes and metadata during block transforms.\n *\n * @param {Object} attributes Original attributes from the block being transformed.\n * @param {string} newBlockName Name of the target block after transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object} New attributes object with preserved block support attributes and metadata.\n */\nexport function getTransformedAttributes(\n\tattributes,\n\tnewBlockName,\n\tbindingsCallback = null\n) {\n\tif ( ! attributes ) {\n\t\treturn undefined;\n\t}\n\n\tconst newBlockType = getBlockType( newBlockName );\n\tif ( ! newBlockType ) {\n\t\treturn undefined;\n\t}\n\n\tconst transformedAttributes = {};\n\n\t// Handle attributes derived from block support. The custom class name and\n\t// allowed blocks attribute is handled separately.\n\tif ( hasBlockSupport( newBlockType, 'anchor' ) && attributes.anchor ) {\n\t\ttransformedAttributes.anchor = attributes.anchor;\n\t}\n\tif (\n\t\thasBlockSupport( newBlockType, 'ariaLabel' ) &&\n\t\tattributes.ariaLabel\n\t) {\n\t\ttransformedAttributes.ariaLabel = attributes.ariaLabel;\n\t}\n\n\t// Handle metadata transformation.\n\tif ( attributes.metadata ) {\n\t\t// The metadata properties that should be preserved after the transform.\n\t\t// The noteId, name, and blockVisibility properties are separately handled\n\t\t// in the `core/metadata/addTransforms` hook.\n\t\tconst transformedMetadata = [];\n\n\t\t// If there is a transform bindings callback, add the `id` and `bindings` properties.\n\t\tif ( bindingsCallback ) {\n\t\t\ttransformedMetadata.push( 'id', 'bindings' );\n\t\t}\n\n\t\t// Only process metadata if there are supported properties.\n\t\tif ( transformedMetadata.length > 0 ) {\n\t\t\tconst newMetadata = Object.entries( attributes.metadata ).reduce(\n\t\t\t\t( obj, [ prop, value ] ) => {\n\t\t\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\t\t\tif ( ! transformedMetadata.includes( prop ) ) {\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t}\n\t\t\t\t\tobj[ prop ] =\n\t\t\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\t\t\treturn obj;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\t// Only add metadata if object is not empty.\n\t\t\tif ( Object.keys( newMetadata ).length > 0 ) {\n\t\t\t\ttransformedAttributes.metadata = newMetadata;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( Object.keys( transformedAttributes ).length === 0 ) {\n\t\treturn undefined;\n\t}\n\n\treturn transformedAttributes;\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/button',\n\tattributesToCopy: [\n\t\t'backgroundColor',\n\t\t'border',\n\t\t'className',\n\t\t'fontFamily',\n\t\t'fontSize',\n\t\t'gradient',\n\t\t'style',\n\t\t'textColor',\n\t\t'width',\n\t],\n};\n\nfunction ButtonsEdit( { attributes, className } ) {\n\tconst { fontSize, layout, style } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, {\n\t\t\t'has-custom-font-size': fontSize || style?.typography?.fontSize,\n\t\t} ),\n\t} );\n\tconst { hasButtonVariations } = useSelect( ( select ) => {\n\t\tconst buttonVariations = select( blocksStore ).getBlockVariations(\n\t\t\t'core/button',\n\t\t\t'inserter'\n\t\t);\n\t\treturn {\n\t\t\thasButtonVariations: buttonVariations.length > 0,\n\t\t};\n\t}, [] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t// This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.\n\t\tdirectInsert: ! hasButtonVariations,\n\t\ttemplate: [ [ 'core/button' ] ],\n\t\ttemplateInsertUpdatesSelection: true,\n\t\torientation: layout?.orientation ?? 'horizontal',\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n\nexport default ButtonsEdit;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/buttons\",\n\t\"title\": \"Buttons\",\n\t\"category\": \"design\",\n\t\"allowedBlocks\": [ \"core/button\" ],\n\t\"description\": \"Prompt visitors to take action with a group of button-style links.\",\n\t\"keywords\": [ \"link\" ],\n\t\"textdomain\": \"default\",\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"__experimentalExposeControlsToChildren\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"listView\": true,\n\t\t\"contentRole\": true\n\t},\n\t\"editorStyle\": \"wp-block-buttons-editor\",\n\t\"style\": \"wp-block-buttons\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst { fontSize, style } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: clsx( className, {\n\t\t\t'has-custom-font-size': fontSize || style?.typography?.fontSize,\n\t\t} ),\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <div { ...innerBlocksProps } />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/calendar\",\n\t\"title\": \"Calendar\",\n\t\"category\": \"widgets\",\n\t\"description\": \"A calendar of your site\u2019s posts.\",\n\t\"keywords\": [ \"posts\", \"archive\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"month\": {\n\t\t\t\"type\": \"integer\"\n\t\t},\n\t\t\"year\": {\n\t\t\t\"type\": \"integer\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalSkipSerialization\": [ \"text\", \"background\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t},\n\t\t\t\"__experimentalSelector\": \"table, th\"\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-calendar\"\n}\n", "/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { calendar as icon } from '@wordpress/icons';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport HtmlRenderer from '../utils/html-renderer';\n\n/**\n * Returns the year and month of a specified date.\n *\n * @see `WP_REST_Posts_Controller::prepare_date_response()`.\n *\n * @param {string} date Date in `ISO8601/RFC3339` format.\n * @return {Object} Year and date of the specified date.\n */\nconst getYearMonth = memoize( ( date ) => {\n\tif ( ! date ) {\n\t\treturn {};\n\t}\n\tconst dateObj = new Date( date );\n\treturn {\n\t\tyear: dateObj.getFullYear(),\n\t\tmonth: dateObj.getMonth() + 1,\n\t};\n} );\n\nexport default function CalendarEdit( { attributes, name } ) {\n\tconst { date, hasPosts, hasPostsResolved } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords, hasFinishedResolution } = select( coreStore );\n\n\t\tconst singlePublishedPostQuery = {\n\t\t\tstatus: 'publish',\n\t\t\tper_page: 1,\n\t\t};\n\t\tconst posts = getEntityRecords(\n\t\t\t'postType',\n\t\t\t'post',\n\t\t\tsinglePublishedPostQuery\n\t\t);\n\t\tconst postsResolved = hasFinishedResolution( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\t'post',\n\t\t\tsinglePublishedPostQuery,\n\t\t] );\n\n\t\tlet _date;\n\n\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst editorSelectors = select( 'core/editor' );\n\t\tif ( editorSelectors ) {\n\t\t\tconst postType = editorSelectors.getEditedPostAttribute( 'type' );\n\t\t\t// Dates are used to overwrite year and month used on the calendar.\n\t\t\t// This overwrite should only happen for 'post' post types.\n\t\t\t// For other post types the calendar always displays the current month.\n\t\t\tif ( postType === 'post' ) {\n\t\t\t\t_date = editorSelectors.getEditedPostAttribute( 'date' );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tdate: _date,\n\t\t\thasPostsResolved: postsResolved,\n\t\t\thasPosts: postsResolved && posts?.length === 1,\n\t\t};\n\t}, [] );\n\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes: {\n\t\t\t...attributes,\n\t\t\t...getYearMonth( date ),\n\t\t},\n\t\tblock: name,\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder icon={ icon } label={ __( 'Calendar' ) }>\n\t\t\t\t\t{ ! hasPostsResolved ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No published posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/archives' ],\n\t\t\ttransform: () => createBlock( 'core/calendar' ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/archives' ],\n\t\t\ttransform: () => createBlock( 'core/archives' ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { calendar as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/categories\",\n\t\"title\": \"Terms List\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display a list of all terms of a given taxonomy.\",\n\t\"keywords\": [ \"categories\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"taxonomy\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"category\"\n\t\t},\n\t\t\"displayAsDropdown\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showHierarchy\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showPostCounts\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showOnlyTopLevel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showEmpty\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"showLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"usesContext\": [ \"enhancedPagination\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-categories-editor\",\n\t\"style\": \"wp-block-categories\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\tVisuallyHidden,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pin } from '@wordpress/icons';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticeStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function CategoriesEdit( {\n\tattributes: {\n\t\tdisplayAsDropdown,\n\t\tshowHierarchy,\n\t\tshowPostCounts,\n\t\tshowOnlyTopLevel,\n\t\tshowEmpty,\n\t\tlabel,\n\t\tshowLabel,\n\t\ttaxonomy: taxonomySlug,\n\t},\n\tsetAttributes,\n\tclassName,\n\tclientId,\n} ) {\n\tconst selectId = useInstanceId( CategoriesEdit, 'blocks-category-select' );\n\n\tconst { records: allTaxonomies, isResolvingTaxonomies } = useEntityRecords(\n\t\t'root',\n\t\t'taxonomy',\n\t\t{ per_page: -1 }\n\t);\n\n\tconst taxonomies = allTaxonomies?.filter( ( t ) => t.visibility.public );\n\n\tconst taxonomy = taxonomies?.find( ( t ) => t.slug === taxonomySlug );\n\n\tconst isHierarchicalTaxonomy =\n\t\t! isResolvingTaxonomies && taxonomy?.hierarchical;\n\n\tconst query = { per_page: -1, hide_empty: ! showEmpty, context: 'view' };\n\tif ( isHierarchicalTaxonomy && showOnlyTopLevel ) {\n\t\tquery.parent = 0;\n\t}\n\n\tconst { records: categories, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomySlug,\n\t\tquery\n\t);\n\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/categories/redirection-prevented/${ clientId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst getCategoriesList = ( parentId ) => {\n\t\tif ( ! categories?.length ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\t\treturn categories.filter( ( { parent } ) => parent === parentId );\n\t};\n\n\tconst toggleAttribute = ( attributeName ) => ( newValue ) =>\n\t\tsetAttributes( { [ attributeName ]: newValue } );\n\n\tconst renderCategoryName = ( name ) =>\n\t\t! name ? __( '(Untitled)' ) : decodeEntities( name ).trim();\n\n\tconst renderCategoryList = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn categoriesList.map( ( category ) =>\n\t\t\trenderCategoryListItem( category )\n\t\t);\n\t};\n\n\tconst renderCategoryListItem = ( category ) => {\n\t\tconst childCategories = getCategoriesList( category.id );\n\t\tconst { id, link, count, name } = category;\n\t\treturn (\n\t\t\t<li key={ id } className={ `cat-item cat-item-${ id }` }>\n\t\t\t\t<a href={ link } onClick={ showRedirectionPreventedNotice }>\n\t\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t</a>\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t\t{ isHierarchicalTaxonomy &&\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className=\"children\">\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) =>\n\t\t\t\t\t\t\t\trenderCategoryListItem( childCategory )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdown = () => {\n\t\tconst parentId = isHierarchicalTaxonomy && showHierarchy ? 0 : null;\n\t\tconst categoriesList = getCategoriesList( parentId );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ showLabel ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName=\"wp-block-categories__label\"\n\t\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\t\tplaceholder={ taxonomy?.name }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<VisuallyHidden as=\"label\" htmlFor={ selectId }>\n\t\t\t\t\t\t{ label ? label : taxonomy?.name }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t\t<select id={ selectId }>\n\t\t\t\t\t<option>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: taxonomy's singular name */\n\t\t\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\t\t\ttaxonomy?.labels?.singular_name\n\t\t\t\t\t\t) }\n\t\t\t\t\t</option>\n\t\t\t\t\t{ categoriesList.map( ( category ) =>\n\t\t\t\t\t\trenderCategoryDropdownItem( category, 0 )\n\t\t\t\t\t) }\n\t\t\t\t</select>\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdownItem = ( category, level ) => {\n\t\tconst { id, count, name } = category;\n\t\tconst childCategories = getCategoriesList( id );\n\t\treturn [\n\t\t\t<option key={ id } className={ `level-${ level }` }>\n\t\t\t\t{ Array.from( { length: level * 3 } ).map( () => '\\xa0' ) }\n\t\t\t\t{ renderCategoryName( name ) }\n\t\t\t\t{ showPostCounts && ` (${ count })` }\n\t\t\t</option>,\n\t\t\tisHierarchicalTaxonomy &&\n\t\t\t\tshowHierarchy &&\n\t\t\t\t!! childCategories.length &&\n\t\t\t\tchildCategories.map( ( childCategory ) =>\n\t\t\t\t\trenderCategoryDropdownItem( childCategory, level + 1 )\n\t\t\t\t),\n\t\t];\n\t};\n\n\tconst TagName =\n\t\t!! categories?.length && ! displayAsDropdown && ! isResolving\n\t\t\t? 'ul'\n\t\t\t: 'div';\n\n\tconst classes = clsx(\n\t\tclassName,\n\t\t`wp-block-categories-taxonomy-${ taxonomySlug }`,\n\t\t{\n\t\t\t'wp-block-categories-list':\n\t\t\t\t!! categories?.length && ! displayAsDropdown && ! isResolving,\n\t\t\t'wp-block-categories-dropdown':\n\t\t\t\t!! categories?.length && displayAsDropdown && ! isResolving,\n\t\t}\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\tdisplayAsDropdown: false,\n\t\t\t\t\t\t\tshowHierarchy: false,\n\t\t\t\t\t\t\tshowPostCounts: false,\n\t\t\t\t\t\t\tshowOnlyTopLevel: false,\n\t\t\t\t\t\t\tshowEmpty: false,\n\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ Array.isArray( taxonomies ) && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t\t\treturn taxonomySlug !== 'category';\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { taxonomy: 'category' } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\t\t\toptions={ taxonomies.map( ( t ) => ( {\n\t\t\t\t\t\t\t\t\tlabel: t.name,\n\t\t\t\t\t\t\t\t\tvalue: t.slug,\n\t\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\t\tvalue={ taxonomySlug }\n\t\t\t\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\ttaxonomy: selectedTaxonomy,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! displayAsDropdown }\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAsDropdown: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAsDropdown' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-categories__indentation\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showLabel' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showPostCounts }\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showPostCounts: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showPostCounts' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showOnlyTopLevel }\n\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showOnlyTopLevel: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show only top level terms' ) }\n\t\t\t\t\t\t\t\tchecked={ showOnlyTopLevel }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute(\n\t\t\t\t\t\t\t\t\t'showOnlyTopLevel'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! showEmpty }\n\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showEmpty: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\t\t\t\tchecked={ showEmpty }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showEmpty' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isHierarchicalTaxonomy && ! showOnlyTopLevel && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! showHierarchy }\n\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHierarchy: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showHierarchy' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ isResolving && (\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Terms' ) }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isResolving && categories?.length === 0 && (\n\t\t\t\t<p>{ taxonomy.labels.no_terms }</p>\n\t\t\t) }\n\t\t\t{ ! isResolving &&\n\t\t\t\tcategories?.length > 0 &&\n\t\t\t\t( displayAsDropdown\n\t\t\t\t\t? renderCategoryDropdown()\n\t\t\t\t\t: renderCategoryList() ) }\n\t\t</TagName>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { category as icon } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'terms',\n\t\ttitle: __( 'Terms List' ),\n\t\ticon,\n\t\tattributes: {\n\t\t\t// We need to set an attribute here that will be set when inserting the block.\n\t\t\t// We cannot leave this empty, as that would be interpreted as the default value,\n\t\t\t// which is `category` -- for which we're defining a distinct variation below,\n\t\t\t// for backwards compatibility reasons.\n\t\t\t// The logical fallback is thus the only other built-in and public taxonomy: Tags.\n\t\t\ttaxonomy: 'post_tag',\n\t\t},\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t// This variation is used for any taxonomy other than `category`.\n\t\t\tblockAttributes.taxonomy !== 'category',\n\t},\n\t{\n\t\tname: 'categories',\n\t\ttitle: __( 'Categories List' ),\n\t\tdescription: __( 'Display a list of all categories.' ),\n\t\ticon,\n\t\tattributes: {\n\t\t\ttaxonomy: 'category',\n\t\t},\n\t\tisActive: [ 'taxonomy' ],\n\t\t// The following is needed to prevent \"Terms List\" from showing up twice in the inserter\n\t\t// (once for the block, once for the variation). Fortunately, it does not collide with\n\t\t// `categories` being the default value of the `taxonomy` attribute.\n\t\tisDefault: true,\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { category as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tButton,\n\tPlaceholder,\n\tToolbarGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useState, useRef, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { classic } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nexport default function FreeformEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { content } = attributes;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst editButtonRef = useRef( null );\n\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ canRemove && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ConvertToBlocksButton clientId={ clientId } />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tref={ editButtonRef }\n\t\t\t\t\t\tonClick={ () => setOpen( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t{ content ? (\n\t\t\t\t\t<RawHTML>{ content }</RawHTML>\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ classic } /> }\n\t\t\t\t\t\tlabel={ __( 'Classic' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Use the classic editor to add content.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => setOpen( true ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit contents' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t) }\n\t\t\t\t{ isOpen && (\n\t\t\t\t\t<ModalEdit\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tcontent={ content }\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\tif ( editButtonRef.current ) {\n\t\t\t\t\t\t\t\teditButtonRef.current.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { rawHandler, serialize } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst ConvertToBlocksButton = ( { clientId } ) => {\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst block = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tonClick={ () =>\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tblock.clientId,\n\t\t\t\t\trawHandler( { HTML: serialize( block ) } )\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ __( 'Convert to blocks' ) }\n\t\t</ToolbarButton>\n\t);\n};\n\nexport default ConvertToBlocksButton;\n", "/**\n * WordPress dependencies\n */\nimport { store } from '@wordpress/block-editor';\nimport { Modal, Button, Flex, FlexItem } from '@wordpress/components';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( { clientId, content, onClose, onChange } ) {\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\theaderActions={\n\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t}\n\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( window.wp.oldEditor.getContent( id ) );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/freeform\",\n\t\"title\": \"Classic\",\n\t\"category\": \"text\",\n\t\"description\": \"Use the classic WordPress editor.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"raw\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"className\": false,\n\t\t\"customClassName\": false,\n\t\t\"lock\": false,\n\t\t\"reusable\": false,\n\t\t\"renaming\": false,\n\t\t\"visibility\": false\n\t},\n\t\"editorStyle\": \"wp-block-freeform-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save( { attributes } ) {\n\tconst { content } = attributes;\n\n\treturn <RawHTML>{ content }</RawHTML>;\n}\n", "/**\n * WordPress dependencies\n */\nimport { classic as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A \u201Cblock\u201D is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Code' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function CodeEdit( {\n\tattributes,\n\tsetAttributes,\n\tonRemove,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n} ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<pre { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName=\"code\"\n\t\t\t\tidentifier=\"content\"\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tplaceholder={ __( 'Write code\u2026' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\t__unstablePastePlainText\n\t\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/code\",\n\t\"title\": \"Code\",\n\t\"category\": \"text\",\n\t\"description\": \"Display code snippets that respect your spacing and tabs.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"code\",\n\t\t\t\"__unstablePreserveWhiteSpace\": true,\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"align\": [ \"wide\" ],\n\t\t\"anchor\": true,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"width\": true,\n\t\t\t\t\"color\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"text\": true,\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-code\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { escape } from './utils';\n\nexport default function save( { attributes } ) {\n\treturn (\n\t\t<pre { ...useBlockProps.save() }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"code\"\n\t\t\t\t// To do: `escape` encodes characters in shortcodes and URLs to\n\t\t\t\t// prevent embedding in PHP. Ideally checks for the code block,\n\t\t\t\t// or pre/code tags, should be made on the PHP side?\n\t\t\t\tvalue={ escape(\n\t\t\t\t\ttypeof attributes.content === 'string'\n\t\t\t\t\t\t? attributes.content\n\t\t\t\t\t\t: attributes.content.toHTMLString( {\n\t\t\t\t\t\t\t\tpreserveWhiteSpace: true,\n\t\t\t\t\t\t } )\n\t\t\t\t) }\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { pipe } from '@wordpress/compose';\n\n/**\n * Escapes ampersands, shortcodes, and links.\n *\n * @param {string} content The content of a code block.\n * @return {string} The given content with some characters escaped.\n */\nexport function escape( content ) {\n\treturn pipe(\n\t\tescapeOpeningSquareBrackets,\n\t\tescapeProtocolInIsolatedUrls\n\t)( content || '' );\n}\n\n/**\n * Returns the given content with all opening shortcode characters converted\n * into their HTML entity counterpart (i.e. [ => [). For instance, a\n * shortcode like [embed] becomes [embed]\n *\n * This function replicates the escaping of HTML tags, where a tag like\n * <strong> becomes <strong>.\n *\n * @param {string} content The content of a code block.\n * @return {string} The given content with its opening shortcode characters\n * converted into their HTML entity counterpart\n * (i.e. [ => [)\n */\nfunction escapeOpeningSquareBrackets( content ) {\n\treturn content.replace( /\\[/g, '[' );\n}\n\n/**\n * Converts the first two forward slashes of any isolated URL into their HTML\n * counterparts (i.e. // => //). For instance, https://youtube.com/watch?x\n * becomes https://youtube.com/watch?x.\n *\n * An isolated URL is a URL that sits in its own line, surrounded only by spacing\n * characters.\n *\n * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403\n *\n * @param {string} content The content of a code block.\n * @return {string} The given content with its ampersands converted into\n * their HTML entity counterpart (i.e. & => &)\n */\nfunction escapeProtocolInIsolatedUrls( content ) {\n\treturn content.replace(\n\t\t/^(\\s*https?:)\\/\\/([^\\s<>\"]+\\s*)$/m,\n\t\t'$1//$2'\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { create, toHTMLString } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { getTransformedAttributes } from '../utils/get-transformed-attributes';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'input',\n\t\t\tregExp: /^```$/,\n\t\t\ttransform: () => createBlock( 'core/code' ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\tconst { content } = attributes;\n\t\t\t\treturn createBlock( 'core/code', {\n\t\t\t\t\t...attributes,\n\t\t\t\t\t...getTransformedAttributes( attributes, 'core/code' ),\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/html' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\tconst { content: text } = attributes;\n\t\t\t\treturn createBlock( 'core/code', {\n\t\t\t\t\t...attributes,\n\t\t\t\t\t...getTransformedAttributes( attributes, 'core/code' ),\n\t\t\t\t\t// The HTML is plain text (with plain line breaks), so\n\t\t\t\t\t// convert it to rich text.\n\t\t\t\t\tcontent: toHTMLString( { value: create( { text } ) } ),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\tnode.children.length === 1 &&\n\t\t\t\tnode.firstChild.nodeName === 'CODE',\n\t\t\tschema: {\n\t\t\t\tpre: {\n\t\t\t\t\tchildren: {\n\t\t\t\t\t\tcode: {\n\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t'#text': {},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\tconst { content } = attributes;\n\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t...getTransformedAttributes( attributes, 'core/paragraph' ),\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nconst deprecated = [\n\t{\n\t\tattributes: {\n\t\t\tverticalAlignment: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'number',\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t},\n\t\t},\n\t\tisEligible( { width } ) {\n\t\t\treturn isFinite( width );\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\twidth: `${ attributes.width }%`,\n\t\t\t};\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { verticalAlignment, width } = attributes;\n\n\t\t\tconst wrapperClasses = clsx( {\n\t\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\tconst style = { flexBasis: width + '%' };\n\n\t\t\treturn (\n\t\t\t\t<div className={ wrapperClasses } style={ style }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction ColumnInspectorControls( { width, setAttributes } ) {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tsetAttributes( { width: undefined } );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => width !== undefined }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t__unstableInputWidth=\"calc(50% - 8px)\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t0 > parseFloat( nextWidth ) ? '0' : nextWidth;\n\t\t\t\t\t\tsetAttributes( { width: nextWidth } );\n\t\t\t\t\t} }\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnEdit( {\n\tattributes: { verticalAlignment, width, templateLock, allowedBlocks },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst classes = clsx( 'block-core-columns', {\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t} );\n\tconst { columnsIds, hasChildBlocks, rootClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootId = getBlockRootClientId( clientId );\n\n\t\t\treturn {\n\t\t\t\thasChildBlocks: getBlockOrder( clientId ).length > 0,\n\t\t\t\trootClientId: rootId,\n\t\t\t\tcolumnsIds: getBlockOrder( rootId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst updateAlignment = ( value ) => {\n\t\t// Update own alignment.\n\t\tsetAttributes( { verticalAlignment: value } );\n\t\t// Reset parent Columns block.\n\t\tupdateBlockAttributes( rootClientId, {\n\t\t\tverticalAlignment: null,\n\t\t} );\n\t};\n\n\tconst widthWithUnit = Number.isFinite( width ) ? width + '%' : width;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: widthWithUnit ? { flexBasis: widthWithUnit } : undefined,\n\t} );\n\n\tconst columnsCount = columnsIds.length;\n\tconst currentColumnPosition = columnsIds.indexOf( clientId ) + 1;\n\n\tconst label = sprintf(\n\t\t/* translators: 1: Block label (i.e. \"Block: Column\"), 2: Position of the selected block, 3: Total number of sibling blocks of the same type */\n\t\t__( '%1$s (%2$d of %3$d)' ),\n\t\tblockProps[ 'aria-label' ],\n\t\tcurrentColumnPosition,\n\t\tcolumnsCount\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ ...blockProps, 'aria-label': label },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender: hasChildBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\tcontrols={ [ 'top', 'center', 'bottom', 'stretch' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\twidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nexport default ColumnEdit;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/column\",\n\t\"title\": \"Column\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/columns\" ],\n\t\"description\": \"A single column within a columns block.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"verticalAlignment\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ]\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"__experimentalOnEnter\": true,\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"button\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true,\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": true,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { verticalAlignment, width } = attributes;\n\n\tconst wrapperClasses = clsx( {\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t} );\n\n\tlet style;\n\n\tif ( width && /\\d/.test( width ) ) {\n\t\t// Numbers are handled for backward compatibility as they can be still provided with templates.\n\t\tlet flexBasis = Number.isFinite( width ) ? width + '%' : width;\n\t\t// In some cases we need to round the width to a shorter float.\n\t\tif ( ! Number.isFinite( width ) && width?.endsWith( '%' ) ) {\n\t\t\tconst multiplier = 1000000000000;\n\t\t\t// Shrink the number back to a reasonable float.\n\t\t\tflexBasis =\n\t\t\t\tMath.round( Number.parseFloat( width ) * multiplier ) /\n\t\t\t\t\tmultiplier +\n\t\t\t\t'%';\n\t\t}\n\t\tstyle = { flexBasis };\n\t}\n\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: wrapperClasses,\n\t\tstyle,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { columns as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\texample: {\n\t\tviewportWidth: 782, // Columns collapse \"@media (max-width: 781px)\".\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.'\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\t{\n\t\t\t\t\t\tname: 'core/image',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Suspendisse commodo neque lacus, a dictum orci interdum et.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/column',\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.'\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\t{\n\t\t\t\t\t\tname: 'core/paragraph',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t\t\t'Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { InnerBlocks, getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Given an HTML string for a deprecated columns inner block, returns the\n * column index to which the migrated inner block should be assigned. Returns\n * undefined if the inner block was not assigned to a column.\n *\n * @param {string} originalContent Deprecated Columns inner block HTML.\n *\n * @return {number | undefined} Column to which inner block is to be assigned.\n */\nfunction getDeprecatedLayoutColumn( originalContent ) {\n\tlet { doc } = getDeprecatedLayoutColumn;\n\tif ( ! doc ) {\n\t\tdoc = document.implementation.createHTMLDocument( '' );\n\t\tgetDeprecatedLayoutColumn.doc = doc;\n\t}\n\n\tlet columnMatch;\n\n\tdoc.body.innerHTML = originalContent;\n\tfor ( const classListItem of doc.body.firstChild.classList ) {\n\t\tif (\n\t\t\t( columnMatch = classListItem.match( /^layout-column-(\\d+)$/ ) )\n\t\t) {\n\t\t\treturn Number( columnMatch[ 1 ] ) - 1;\n\t\t}\n\t}\n}\n\nconst migrateCustomColors = ( attributes ) => {\n\tif ( ! attributes.customTextColor && ! attributes.customBackgroundColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = { color: {} };\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\n\tconst { customTextColor, customBackgroundColor, ...restAttributes } =\n\t\tattributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t\tisStackedOnMobile: true,\n\t};\n};\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\tverticalAlignment: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate: migrateCustomColors,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tverticalAlignment,\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\tconst style = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tisEligible( attributes, innerBlocks ) {\n\t\t\t// Since isEligible is called on every valid instance of the\n\t\t\t// Columns block and a deprecation is the unlikely case due to\n\t\t\t// its subsequent migration, optimize for the `false` condition\n\t\t\t// by performing a naive, inaccurate pass at inner blocks.\n\t\t\tconst isFastPassEligible = innerBlocks.some( ( innerBlock ) =>\n\t\t\t\t/layout-column-\\d+/.test( innerBlock.originalContent )\n\t\t\t);\n\n\t\t\tif ( ! isFastPassEligible ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Only if the fast pass is considered eligible is the more\n\t\t\t// accurate, durable, slower condition performed.\n\t\t\treturn innerBlocks.some(\n\t\t\t\t( innerBlock ) =>\n\t\t\t\t\tgetDeprecatedLayoutColumn( innerBlock.originalContent ) !==\n\t\t\t\t\tundefined\n\t\t\t);\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst columns = innerBlocks.reduce( ( accumulator, innerBlock ) => {\n\t\t\t\tconst { originalContent } = innerBlock;\n\n\t\t\t\tlet columnIndex = getDeprecatedLayoutColumn( originalContent );\n\t\t\t\tif ( columnIndex === undefined ) {\n\t\t\t\t\tcolumnIndex = 0;\n\t\t\t\t}\n\n\t\t\t\tif ( ! accumulator[ columnIndex ] ) {\n\t\t\t\t\taccumulator[ columnIndex ] = [];\n\t\t\t\t}\n\n\t\t\t\taccumulator[ columnIndex ].push( innerBlock );\n\n\t\t\t\treturn accumulator;\n\t\t\t}, [] );\n\n\t\t\tconst migratedInnerBlocks = columns.map( ( columnBlocks ) =>\n\t\t\t\tcreateBlock( 'core/column', {}, columnBlocks )\n\t\t\t);\n\n\t\t\tconst { columns: ignoredColumns, ...restAttributes } = attributes;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\t...restAttributes,\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t},\n\t\t\t\tmigratedInnerBlocks,\n\t\t\t];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { columns } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\tcolumns: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 2,\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes, innerBlocks ) {\n\t\t\tconst { columns, ...restAttributes } = attributes;\n\t\t\tattributes = {\n\t\t\t\t...restAttributes,\n\t\t\t\tisStackedOnMobile: true,\n\t\t\t};\n\n\t\t\treturn [ attributes, innerBlocks ];\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { verticalAlignment, columns } = attributes;\n\n\t\t\tconst wrapperClasses = clsx( `has-${ columns }-columns`, {\n\t\t\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\t\tverticalAlignment,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<div className={ wrapperClasses }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nimport {\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tBlockVerticalAlignmentToolbar,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\thasExplicitPercentColumnWidths,\n\tgetMappedColumnWidths,\n\tgetRedistributedColumnWidths,\n\ttoWidthPrecision,\n} from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/column',\n};\n\nfunction ColumnInspectorControls( {\n\tclientId,\n\tsetAttributes,\n\tisStackedOnMobile,\n} ) {\n\tconst { count, canInsertColumnBlock, minCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, canRemoveBlock, getBlockOrder } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\n\t\t\t// Get the indexes of columns for which removal is prevented.\n\t\t\t// The highest index will be used to determine the minimum column count.\n\t\t\tconst preventRemovalBlockIndexes = blockOrder.reduce(\n\t\t\t\t( acc, blockId, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( blockId ) ) {\n\t\t\t\t\t\tacc.push( index );\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t[]\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcount: blockOrder.length,\n\t\t\t\tcanInsertColumnBlock: canInsertBlockType(\n\t\t\t\t\t'core/column',\n\t\t\t\t\tclientId\n\t\t\t\t),\n\t\t\t\tminCount: Math.max( ...preventRemovalBlockIndexes ) + 1,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\t/**\n\t * Updates the column count, including necessary revisions to child Column\n\t * blocks to grant required or redistribute available space.\n\t *\n\t * @param {number} previousColumns Previous column count.\n\t * @param {number} newColumns New column count.\n\t */\n\tfunction updateColumns( previousColumns, newColumns ) {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tconst hasExplicitWidths = hasExplicitPercentColumnWidths( innerBlocks );\n\n\t\t// Redistribute available width for existing inner blocks.\n\t\tconst isAddingColumn = newColumns > previousColumns;\n\n\t\tif ( isAddingColumn && hasExplicitWidths ) {\n\t\t\t// If adding a new column, assign width to the new column equal to\n\t\t\t// as if it were `1 / columns` of the total available space.\n\t\t\tconst newColumnWidth = toWidthPrecision( 100 / newColumns );\n\t\t\tconst newlyAddedColumns = newColumns - previousColumns;\n\n\t\t\t// Redistribute in consideration of pending block insertion as\n\t\t\t// constraining the available working width.\n\t\t\tconst widths = getRedistributedColumnWidths(\n\t\t\t\tinnerBlocks,\n\t\t\t\t100 - newColumnWidth * newlyAddedColumns\n\t\t\t);\n\n\t\t\tinnerBlocks = [\n\t\t\t\t...getMappedColumnWidths( innerBlocks, widths ),\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newlyAddedColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column', {\n\t\t\t\t\t\twidth: `${ newColumnWidth }%`,\n\t\t\t\t\t} );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( isAddingColumn ) {\n\t\t\tinnerBlocks = [\n\t\t\t\t...innerBlocks,\n\t\t\t\t...Array.from( {\n\t\t\t\t\tlength: newColumns - previousColumns,\n\t\t\t\t} ).map( () => {\n\t\t\t\t\treturn createBlock( 'core/column' );\n\t\t\t\t} ),\n\t\t\t];\n\t\t} else if ( newColumns < previousColumns ) {\n\t\t\t// The removed column will be the last of the inner blocks.\n\t\t\tinnerBlocks = innerBlocks.slice(\n\t\t\t\t0,\n\t\t\t\t-( previousColumns - newColumns )\n\t\t\t);\n\t\t\tif ( hasExplicitWidths ) {\n\t\t\t\t// Redistribute as if block is already removed.\n\t\t\t\tconst widths = getRedistributedColumnWidths( innerBlocks, 100 );\n\n\t\t\t\tinnerBlocks = getMappedColumnWidths( innerBlocks, widths );\n\t\t\t}\n\t\t}\n\n\t\treplaceInnerBlocks( clientId, innerBlocks );\n\t}\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<VStack spacing={ 4 } style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ count }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tupdateColumns( count, Math.max( minCount, value ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ Math.max( 1, minCount ) }\n\t\t\t\t\t\tmax={ Math.max( 6, count ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ count > 6 && (\n\t\t\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => isStackedOnMobile !== true }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nfunction ColumnsEditContainer( { attributes, setAttributes, clientId } ) {\n\tconst { isStackedOnMobile, verticalAlignment, templateLock } = attributes;\n\tconst registry = useRegistry();\n\tconst { getBlockOrder } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst classes = clsx( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\ttemplateLock,\n\t} );\n\n\t/**\n\t * Update all child Column blocks with a new vertical alignment setting\n\t * based on whatever alignment is passed in. This allows change to parent\n\t * to override anything set on a individual column basis.\n\t *\n\t * @param {string} newVerticalAlignment The vertical alignment setting.\n\t */\n\tfunction updateAlignment( newVerticalAlignment ) {\n\t\tconst innerBlockClientIds = getBlockOrder( clientId );\n\n\t\t// Update own and child Column block vertical alignments.\n\t\t// This is a single action; the batching prevents creating multiple history records.\n\t\tregistry.batch( () => {\n\t\t\tsetAttributes( { verticalAlignment: newVerticalAlignment } );\n\t\t\tupdateBlockAttributes( innerBlockClientIds, {\n\t\t\t\tverticalAlignment: newVerticalAlignment,\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockVerticalAlignmentToolbar\n\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ColumnInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nfunction Placeholder( { clientId, name, setAttributes } ) {\n\tconst { blockType, defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockVariations,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetDefaultBlockVariation,\n\t\t\t} = select( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ blockType?.icon?.src }\n\t\t\t\tlabel={ blockType?.title }\n\t\t\t\tvariations={ variations }\n\t\t\t\tinstructions={ __( 'Divide into columns. Select a layout:' ) }\n\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t}\n\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t\tallowSkip\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nconst ColumnsEdit = ( props ) => {\n\tconst { clientId } = props;\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocks( clientId ).length > 0,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? ColumnsEditContainer : Placeholder;\n\n\treturn <Component { ...props } />;\n};\n\nexport default ColumnsEdit;\n", "/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\nexport const toWidthPrecision = ( value ) => {\n\tconst unitlessValue = parseFloat( value );\n\treturn Number.isFinite( unitlessValue )\n\t\t? parseFloat( unitlessValue.toFixed( 2 ) )\n\t\t: undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block Block object.\n * @param {number} totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\nexport function getEffectiveColumnWidth( block, totalBlockCount ) {\n\tconst { width = 100 / totalBlockCount } = block.attributes;\n\treturn toWidthPrecision( width );\n}\n\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\nexport function getTotalColumnsWidth(\n\tblocks,\n\ttotalBlockCount = blocks.length\n) {\n\treturn blocks.reduce(\n\t\t( sum, block ) =>\n\t\t\tsum + getEffectiveColumnWidth( block, totalBlockCount ),\n\t\t0\n\t);\n}\n\n/**\n * Returns an object of `clientId` \u2192 `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\nexport function getColumnWidths( blocks, totalBlockCount = blocks.length ) {\n\treturn blocks.reduce( ( accumulator, block ) => {\n\t\tconst width = getEffectiveColumnWidth( block, totalBlockCount );\n\t\treturn Object.assign( accumulator, { [ block.clientId ]: width } );\n\t}, {} );\n}\n\n/**\n * Returns an object of `clientId` \u2192 `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {number} availableWidth Maximum width to fit within.\n * @param {?number} totalBlockCount Total number of blocks in Columns.\n * Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\nexport function getRedistributedColumnWidths(\n\tblocks,\n\tavailableWidth,\n\ttotalBlockCount = blocks.length\n) {\n\tconst totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );\n\n\treturn Object.fromEntries(\n\t\tObject.entries( getColumnWidths( blocks, totalBlockCount ) ).map(\n\t\t\t( [ clientId, width ] ) => {\n\t\t\t\tconst newWidth = ( availableWidth * width ) / totalWidth;\n\t\t\t\treturn [ clientId, toWidthPrecision( newWidth ) ];\n\t\t\t}\n\t\t)\n\t);\n}\n\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\nexport function hasExplicitPercentColumnWidths( blocks ) {\n\treturn blocks.every( ( block ) => {\n\t\tconst blockWidth = block.attributes.width;\n\t\treturn Number.isFinite(\n\t\t\tblockWidth?.endsWith?.( '%' )\n\t\t\t\t? parseFloat( blockWidth )\n\t\t\t\t: blockWidth\n\t\t);\n\t} );\n}\n\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\nexport function getMappedColumnWidths( blocks, widths ) {\n\treturn blocks.map( ( block ) => ( {\n\t\t...block,\n\t\tattributes: {\n\t\t\t...block.attributes,\n\t\t\twidth: `${ widths[ block.clientId ] }%`,\n\t\t},\n\t} ) );\n}\n\n/**\n * Returns an array with columns widths values, parsed or no depends on `withParsing` flag.\n *\n * @param {WPBlock[]} blocks Block objects.\n * @param {?boolean} withParsing Whether value has to be parsed.\n *\n * @return {Array<number,string>} Column widths.\n */\nexport function getWidths( blocks, withParsing = true ) {\n\treturn blocks.map( ( innerColumn ) => {\n\t\tconst innerColumnWidth =\n\t\t\tinnerColumn.attributes.width || 100 / blocks.length;\n\n\t\treturn withParsing ? parseFloat( innerColumnWidth ) : innerColumnWidth;\n\t} );\n}\n\n/**\n * Returns a column width with unit.\n *\n * @param {string} width Column width.\n * @param {string} unit Column width unit.\n *\n * @return {string} Column width with unit.\n */\nexport function getWidthWithUnit( width, unit ) {\n\twidth = 0 > parseFloat( width ) ? '0' : width;\n\n\tif ( isPercentageUnit( unit ) ) {\n\t\twidth = Math.min( width, 100 );\n\t}\n\n\treturn `${ width }${ unit }`;\n}\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Column width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/columns\",\n\t\"title\": \"Columns\",\n\t\"category\": \"design\",\n\t\"allowedBlocks\": [ \"core/column\" ],\n\t\"description\": \"Display content in multiple columns, with blocks added to each column.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"verticalAlignment\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isStackedOnMobile\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ]\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"button\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": {\n\t\t\t\t\"__experimentalDefault\": \"2em\",\n\t\t\t\t\"sides\": [ \"horizontal\", \"vertical\" ]\n\t\t\t},\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true,\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"allowEditing\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\",\n\t\t\t\t\"flexWrap\": \"nowrap\"\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"shadow\": true\n\t},\n\t\"editorStyle\": \"wp-block-columns-editor\",\n\t\"style\": \"wp-block-columns\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { isStackedOnMobile, verticalAlignment } = attributes;\n\n\tconst className = clsx( {\n\t\t[ `are-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t[ `is-not-stacked-on-mobile` ]: ! isStackedOnMobile,\n\t} );\n\n\tconst blockProps = useBlockProps.save( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * Template option choices for predefined columns layouts.\n *\n * @type {WPBlockVariation[]}\n */\nconst variations = [\n\t{\n\t\tname: 'one-column-full',\n\t\ttitle: __( '100' ),\n\t\tdescription: __( 'One column' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tinnerBlocks: [ [ 'core/column' ] ],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'two-columns-equal',\n\t\ttitle: __( '50 / 50' ),\n\t\tdescription: __( 'Two columns; equal split' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tisDefault: true,\n\t\tinnerBlocks: [ [ 'core/column' ], [ 'core/column' ] ],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'two-columns-one-third-two-thirds',\n\t\ttitle: __( '33 / 66' ),\n\t\tdescription: __( 'Two columns; one-third, two-thirds split' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm17 0a2 2 0 0 1 2-2h27a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H19a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'core/column', { width: '33.33%' } ],\n\t\t\t[ 'core/column', { width: '66.66%' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'two-columns-two-thirds-one-third',\n\t\ttitle: __( '66 / 33' ),\n\t\tdescription: __( 'Two columns; two-thirds, one-third split' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h27a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm33 0a2 2 0 0 1 2-2h11a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H35a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'core/column', { width: '66.66%' } ],\n\t\t\t[ 'core/column', { width: '33.33%' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'three-columns-equal',\n\t\ttitle: __( '33 / 33 / 33' ),\n\t\tdescription: __( 'Three columns; equal split' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h10.531c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H2a2 2 0 0 1-2-2V10Zm16.5 0c0-1.105.864-2 1.969-2H29.53c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H18.47c-1.105 0-1.969-.895-1.969-2V10Zm17 0c0-1.105.864-2 1.969-2H46a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H35.469c-1.105 0-1.969-.895-1.969-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'core/column' ],\n\t\t\t[ 'core/column' ],\n\t\t\t[ 'core/column' ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'three-columns-wider-center',\n\t\ttitle: __( '25 / 50 / 25' ),\n\t\tdescription: __( 'Three columns; wide center column' ),\n\t\ticon: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h7.531c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H2a2 2 0 0 1-2-2V10Zm13.5 0c0-1.105.864-2 1.969-2H32.53c1.105 0 1.969.895 1.969 2v28c0 1.105-.864 2-1.969 2H15.47c-1.105 0-1.969-.895-1.969-2V10Zm23 0c0-1.105.864-2 1.969-2H46a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2h-7.531c-1.105 0-1.969-.895-1.969-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'core/column', { width: '25%' } ],\n\t\t\t[ 'core/column', { width: '50%' } ],\n\t\t\t[ 'core/column', { width: '25%' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nconst MAXIMUM_SELECTED_BLOCKS = 6;\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert: ( blocks ) => {\n\t\t\t\tconst columnWidth = +( 100 / blocks.length ).toFixed( 2 );\n\t\t\t\tconst innerBlocksTemplate = blocks.map(\n\t\t\t\t\t( { name, attributes, innerBlocks } ) => [\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ columnWidth }%` },\n\t\t\t\t\t\t[ [ name, { ...attributes }, innerBlocks ] ],\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { length: selectedBlocksLength }, blocks ) => {\n\t\t\t\t// If a user is trying to transform a single Columns block, skip\n\t\t\t\t// the transformation. Enabling this functiontionality creates\n\t\t\t\t// nested Columns blocks resulting in an unintuitive user experience.\n\t\t\t\t// Multiple Columns blocks can still be transformed.\n\t\t\t\tif (\n\t\t\t\t\tblocks.length === 1 &&\n\t\t\t\t\tblocks[ 0 ].name === 'core/columns'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tselectedBlocksLength &&\n\t\t\t\t\tselectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/media-text' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\talign,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaPosition,\n\t\t\t\t\tmediaSizeSlug: sizeSlug,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaWidth,\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} = attributes;\n\t\t\t\tlet media;\n\t\t\t\tif ( mediaType === 'image' || ! mediaType ) {\n\t\t\t\t\tconst imageAttrs = { id, alt, url, sizeSlug };\n\t\t\t\t\tconst linkAttrs = {\n\t\t\t\t\t\thref: attributes.href,\n\t\t\t\t\t\tlinkClass: attributes.linkClass,\n\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\tlinkTarget: attributes.linkTarget,\n\t\t\t\t\t\trel: attributes.rel,\n\t\t\t\t\t};\n\t\t\t\t\tmedia = [ 'core/image', { ...imageAttrs, ...linkAttrs } ];\n\t\t\t\t} else {\n\t\t\t\t\tmedia = [ 'core/video', { id, src: url } ];\n\t\t\t\t}\n\t\t\t\tconst innerBlocksTemplate = [\n\t\t\t\t\t[ 'core/column', { width: `${ mediaWidth }%` }, [ media ] ],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ 100 - mediaWidth }%` },\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tif ( mediaPosition === 'right' ) {\n\t\t\t\t\tinnerBlocksTemplate.reverse();\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tungroup: ( attributes, innerBlocks ) =>\n\t\tinnerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments\",\n\t\"title\": \"Comments\",\n\t\"category\": \"theme\",\n\t\"description\": \"An advanced block that allows displaying post comments using different visual configurations.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t},\n\t\t\"legacy\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-comments-editor\",\n\t\"usesContext\": [ \"postId\", \"postType\" ]\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\n// v1: Deprecate the initial version of the block which was called \"Comments\n// Query Loop\" instead of \"Comments\".\nconst v1 = {\n\tattributes: {\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t},\n\tapiVersion: 3,\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t\tlink: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes: { tagName: Tag } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst { className } = blockProps;\n\t\tconst classes = className?.split( ' ' ) || [];\n\n\t\t// The ID of the previous version of the block\n\t\t// didn't have the `wp-block-comments` class,\n\t\t// so we need to remove it here in order to mimic it.\n\t\tconst newClasses = classes?.filter(\n\t\t\t( cls ) => cls !== 'wp-block-comments'\n\t\t);\n\t\tconst newBlockProps = {\n\t\t\t...blockProps,\n\t\t\tclassName: newClasses.join( ' ' ),\n\t\t};\n\n\t\treturn (\n\t\t\t<Tag { ...newBlockProps }>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</Tag>\n\t\t);\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport CommentsInspectorControls from './comments-inspector-controls';\nimport CommentsLegacy from './comments-legacy';\nimport TEMPLATE from './template';\n\nexport default function CommentsEdit( props ) {\n\tconst { attributes, setAttributes, clientId } = props;\n\tconst { tagName: TagName, legacy } = attributes;\n\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\tif ( legacy ) {\n\t\treturn <CommentsLegacy { ...props } />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<CommentsInspectorControls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nexport default function CommentsInspectorControls( {\n\tattributes: { tagName },\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</InspectorControls>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tWarning,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport Placeholder from './placeholder';\n\nexport default function CommentsLegacy( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst { textAlign } = attributes;\n\n\tconst actions = [\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tkey=\"convert\"\n\t\t\tonClick={ () => void setAttributes( { legacy: false } ) }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ __( 'Switch to editable mode' ) }\n\t\t</Button>,\n\t];\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning actions={ actions }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Comments block: You\u2019re currently using the legacy version of the block. ' +\n\t\t\t\t\t\t\t'The following is just a placeholder - the final styling will likely look different. ' +\n\t\t\t\t\t\t\t'For a better representation and more customization options, ' +\n\t\t\t\t\t\t\t'switch the block to its editable mode.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t\t<Placeholder postId={ postId } postType={ postType } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport CommentsForm from '../../post-comments-form/form';\n\nexport default function PostCommentsPlaceholder( { postType, postId } ) {\n\tlet [ postTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tpostTitle = postTitle || __( 'Post Title' );\n\n\tconst avatarURL = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalDiscussionSettings?.avatarURL,\n\t\t[]\n\t);\n\n\treturn (\n\t\t<div className=\"wp-block-comments__legacy-placeholder\" inert=\"true\">\n\t\t\t<h3>\n\t\t\t\t{\n\t\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\t\tsprintf( __( 'One response to %s' ), postTitle )\n\t\t\t\t}\n\t\t\t</h3>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\">\u00AB { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } \u00BB</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<ol className=\"commentlist\">\n\t\t\t\t<li className=\"comment even thread-even depth-1\">\n\t\t\t\t\t<article className=\"comment-body\">\n\t\t\t\t\t\t<footer className=\"comment-meta\">\n\t\t\t\t\t\t\t<div className=\"comment-author vcard\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ __( 'Commenter Avatar' ) }\n\t\t\t\t\t\t\t\t\tsrc={ avatarURL }\n\t\t\t\t\t\t\t\t\tclassName=\"avatar avatar-32 photo\"\n\t\t\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t\t\t\twidth=\"32\"\n\t\t\t\t\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<b className=\"fn\">\n\t\t\t\t\t\t\t\t\t<a href=\"#top\" className=\"url\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'A WordPress Commenter' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</b>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"says\">{ __( 'says' ) }:</span>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"comment-metadata\">\n\t\t\t\t\t\t\t\t<a href=\"#top\">\n\t\t\t\t\t\t\t\t\t<time dateTime=\"2000-01-01T00:00:00+00:00\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'January 1, 2000 at 00:00 am' ) }\n\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t\t\t\t<span className=\"edit-link\">\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\tclassName=\"comment-edit-link\"\n\t\t\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</footer>\n\n\t\t\t\t\t\t<div className=\"comment-content\">\n\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t{ __( 'Hi, this is a comment.' ) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Commenter avatars come from <a>Gravatar</a>.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https://gravatar.com/\" />\n\t\t\t\t\t\t\t\t\t\t),\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</p>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className=\"reply\">\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"comment-reply-link\"\n\t\t\t\t\t\t\t\thref=\"#top\"\n\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t'Reply to A WordPress Commenter'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reply' ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</article>\n\t\t\t\t</li>\n\t\t\t</ol>\n\n\t\t\t<div className=\"navigation\">\n\t\t\t\t<div className=\"alignleft\">\n\t\t\t\t\t<a href=\"#top\">\u00AB { __( 'Older Comments' ) }</a>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"alignright\">\n\t\t\t\t\t<a href=\"#top\">{ __( 'Newer Comments' ) } \u00BB</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<CommentsForm postId={ postId } postType={ postType } />\n\t\t</div>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nconst CommentsFormPlaceholder = () => {\n\tconst instanceId = useInstanceId( CommentsFormPlaceholder );\n\n\treturn (\n\t\t<div className=\"comment-respond\">\n\t\t\t<h3 className=\"comment-reply-title\">{ __( 'Leave a Reply' ) }</h3>\n\t\t\t<form\n\t\t\t\tnoValidate\n\t\t\t\tclassName=\"comment-form\"\n\t\t\t\tonSubmit={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t<p>\n\t\t\t\t\t<label htmlFor={ `comment-${ instanceId }` }>\n\t\t\t\t\t\t{ __( 'Comment' ) }\n\t\t\t\t\t</label>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tid={ `comment-${ instanceId }` }\n\t\t\t\t\t\tname=\"comment\"\n\t\t\t\t\t\tcols=\"45\"\n\t\t\t\t\t\trows=\"8\"\n\t\t\t\t\t\treadOnly\n\t\t\t\t\t/>\n\t\t\t\t</p>\n\t\t\t\t<p className=\"form-submit wp-block-button\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tname=\"submit\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlabel={ __( 'Post Comment' ) }\n\t\t\t\t\t\tvalue={ __( 'Post Comment' ) }\n\t\t\t\t\t\taria-disabled=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t</p>\n\t\t\t</form>\n\t\t</div>\n\t);\n};\n\nconst CommentsForm = ( { postId, postType } ) => {\n\tconst [ commentStatus, setCommentStatus ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'comment_status',\n\t\tpostId\n\t);\n\n\tconst isSiteEditor = postType === undefined || postId === undefined;\n\n\tconst defaultCommentStatus = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalDiscussionSettings?.defaultCommentStatus,\n\t\t[]\n\t);\n\n\tconst postTypeSupportsComments = useSelect( ( select ) =>\n\t\tpostType\n\t\t\t? !! select( coreStore ).getPostType( postType )?.supports.comments\n\t\t\t: false\n\t);\n\n\tif ( ! isSiteEditor && 'open' !== commentStatus ) {\n\t\tif ( 'closed' === commentStatus ) {\n\t\t\tconst actions = [\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tkey=\"enableComments\"\n\t\t\t\t\tonClick={ () => setCommentStatus( 'open' ) }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t>\n\t\t\t\t\t{ _x(\n\t\t\t\t\t\t'Enable comments',\n\t\t\t\t\t\t'action that affects the current post'\n\t\t\t\t\t) }\n\t\t\t\t</Button>,\n\t\t\t];\n\t\t\treturn (\n\t\t\t\t<Warning actions={ actions }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Post Comments Form block: Comments are not enabled for this item.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t);\n\t\t} else if ( ! postTypeSupportsComments ) {\n\t\t\treturn (\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Post type (i.e. \"post\", \"page\") */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Post Comments Form block: Comments are not enabled for this post type (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tpostType\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t);\n\t\t} else if ( 'open' !== defaultCommentStatus ) {\n\t\t\treturn (\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Post Comments Form block: Comments are not enabled.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t);\n\t\t}\n\t}\n\n\treturn <CommentsFormPlaceholder />;\n};\n\nexport default CommentsForm;\n", "const TEMPLATE = [\n\t[ 'core/comments-title' ],\n\t[\n\t\t'core/comment-template',\n\t\t{},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/columns',\n\t\t\t\t{},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: '40px' },\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'core/avatar',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsize: 40,\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\tborder: { radius: '20px' },\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],\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'core/comment-author-name',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfontSize: 'small',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlayout: { type: 'flex' },\n\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\t\t\t\t\t\ttop: '0px',\n\t\t\t\t\t\t\t\t\t\t\t\tbottom: '0px',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\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\t[\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t'core/comment-date',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 'small',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t'core/comment-edit-link',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 'small',\n\t\t\t\t\t\t\t\t\t\t},\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\t[ 'core/comment-content' ],\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'core/comment-reply-link',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfontSize: 'small',\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],\n\t],\n\t[ 'core/comments-pagination' ],\n\t[ 'core/post-comments-form' ],\n];\n\nexport default TEMPLATE;\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes: { tagName: Tag, legacy } } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\t// The legacy version is dynamic (i.e. PHP rendered) and doesn't allow inner\n\t// blocks, so nothing is saved in that case.\n\treturn legacy ? null : <Tag { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { postComments as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": \"fse\",\n\t\"name\": \"core/comment-author-avatar\",\n\t\"title\": \"Comment Author Avatar (deprecated)\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"This block is deprecated. Please use the Avatar block instead.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"width\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 96\n\t\t},\n\t\t\"height\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 96\n\t\t}\n\t},\n\t\"usesContext\": [ \"commentId\" ],\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"inserter\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"color\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody, ResizableBox, RangeControl } from '@wordpress/components';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { __, isRTL } from '@wordpress/i18n';\n\nexport default function Edit( {\n\tattributes,\n\tcontext: { commentId },\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { height, width } = attributes;\n\n\tconst [ avatars ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_avatar_urls',\n\t\tcommentId\n\t);\n\n\tconst [ authorName ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'author_name',\n\t\tcommentId\n\t);\n\tconst avatarUrls = avatars ? Object.values( avatars ) : null;\n\tconst sizes = avatars ? Object.keys( avatars ) : null;\n\tconst minSize = sizes ? sizes[ 0 ] : 24;\n\tconst maxSize = sizes ? sizes[ sizes.length - 1 ] : 96;\n\tconst blockProps = useBlockProps();\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst maxSizeBuffer = Math.floor( maxSize * 2.5 );\n\tconst avatarURL = useSelect( ( select ) => {\n\t\tconst { __experimentalDiscussionSettings } =\n\t\t\tselect( blockEditorStore ).getSettings();\n\n\t\treturn __experimentalDiscussionSettings?.avatarURL;\n\t}, [] );\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: newWidth,\n\t\t\t\t\t\t\theight: newWidth,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ minSize }\n\t\t\t\t\tmax={ maxSizeBuffer }\n\t\t\t\t\tinitialPosition={ width }\n\t\t\t\t\tvalue={ width }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst resizableAvatar = (\n\t\t<ResizableBox\n\t\t\tsize={ {\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: parseInt( height + delta.height, 10 ),\n\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tlockAspectRatio\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tright: ! isRTL(),\n\t\t\t\tbottom: true,\n\t\t\t\tleft: isRTL(),\n\t\t\t} }\n\t\t\tminWidth={ minSize }\n\t\t\tmaxWidth={ maxSizeBuffer }\n\t\t>\n\t\t\t<img\n\t\t\t\tsrc={\n\t\t\t\t\tavatarUrls ? avatarUrls[ avatarUrls.length - 1 ] : avatarURL\n\t\t\t\t}\n\t\t\t\talt={ `${ authorName } ${ __( 'Avatar' ) }` }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</ResizableBox>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...spacingProps }>{ resizableAvatar }</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { commentAuthorAvatar as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-author-name\",\n\t\"title\": \"Comment Author Name\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"Displays the name of the author of the comment.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"commentId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"textAlign\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-comment-author-name\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\n/**\n * Renders the `core/comment-author-name` block on the editor.\n *\n * @param {Object} props React props.\n * @param {Object} props.setAttributes Callback for updating block attributes.\n * @param {Object} props.attributes Block attributes.\n * @param {string} props.attributes.isLink Whether the author name should be linked.\n * @param {string} props.attributes.linkTarget Target of the link.\n * @param {Object} props.context Inherited context.\n * @param {string} props.context.commentId The comment ID.\n *\n * @return {JSX.Element} React element.\n */\nexport default function Edit( props ) {\n\tconst {\n\t\tattributes: { isLink, linkTarget },\n\t\tcontext: { commentId },\n\t\tsetAttributes,\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockProps = useBlockProps();\n\tlet displayName = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\n\t\t\tconst comment = getEntityRecord( 'root', 'comment', commentId );\n\t\t\tconst authorName = comment?.author_name;\n\n\t\t\tif ( comment && ! authorName ) {\n\t\t\t\tconst user = getEntityRecord( 'root', 'user', comment.author );\n\t\t\t\treturn user?.name ?? __( 'Anonymous' );\n\t\t\t}\n\t\t\treturn authorName ?? '';\n\t\t},\n\t\t[ commentId ]\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisLink: true,\n\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Link to authors URL' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: true,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link to authors URL' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ isLink && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlinkTarget: '_self',\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tif ( ! commentId || ! displayName ) {\n\t\tdisplayName = _x( 'Comment Author', 'block title' );\n\t}\n\n\tconst displayAuthor = isLink ? (\n\t\t<a\n\t\t\thref=\"#comment-author-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t>\n\t\t\t{ displayName }\n\t\t</a>\n\t) : (\n\t\tdisplayName\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...blockProps }>{ displayAuthor }</div>\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\nimport migrateTextAlign from '../utils/migrate-text-align';\n\nconst v2 = {\n\tattributes: {\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '_self',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tusesContext: [ 'commentId' ],\n\tsupports: {\n\t\thtml: false,\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateTextAlign,\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\t!! attributes.textAlign ||\n\t\t\t!! attributes.className?.match(\n\t\t\t\t/\\bhas-text-align-(left|center|right)\\b/\n\t\t\t)\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '_self',\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v2, v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { commentAuthorName as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-content\",\n\t\"title\": \"Comment Content\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"Displays the contents of a comment.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"commentId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"textAlign\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t}\n\t\t},\n\t\t\"html\": false\n\t},\n\t\"style\": \"wp-block-comment-content\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { Disabled } from '@wordpress/components';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nexport default function Edit( props ) {\n\tconst {\n\t\tcontext: { commentId },\n\t} = props;\n\tuseDeprecatedTextAlign( props );\n\tconst blockProps = useBlockProps();\n\tconst [ content ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'content',\n\t\tcommentId\n\t);\n\n\tif ( ! commentId || ! content ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>{ _x( 'Comment Content', 'block title' ) }</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<RawHTML key=\"html\">{ content.rendered }</RawHTML>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport migrateTextAlign from '../utils/migrate-text-align';\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tusesContext: [ 'commentId' ],\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t},\n\t\tspacing: {\n\t\t\tpadding: [ 'horizontal', 'vertical' ],\n\t\t},\n\t\thtml: false,\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateTextAlign,\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\t!! attributes.textAlign ||\n\t\t\t!! attributes.className?.match(\n\t\t\t\t/\\bhas-text-align-(left|center|right)\\b/\n\t\t\t)\n\t\t);\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { commentContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-date\",\n\t\"title\": \"Comment Date\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"Displays the date on which the comment was posted.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"format\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"usesContext\": [ \"commentId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-comment-date\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/**\n * Renders the `core/comment-date` block on the editor.\n *\n * @param {Object} props React props.\n * @param {Object} props.setAttributes Callback for updating block attributes.\n * @param {Object} props.attributes Block attributes.\n * @param {string} props.attributes.format Format of the date.\n * @param {string} props.attributes.isLink Whether the author name should be linked.\n * @param {Object} props.context Inherited context.\n * @param {string} props.context.commentId The comment ID.\n *\n * @return {JSX.Element} React element.\n */\nexport default function Edit( {\n\tattributes: { format, isLink },\n\tcontext: { commentId },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tlet [ date ] = useEntityProp( 'root', 'comment', 'date', commentId );\n\tconst [ siteFormat = getDateSettings().formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\tisLink: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Date format' ) }\n\t\t\t\t\thasValue={ () => format !== undefined }\n\t\t\t\t\tonDeselect={ () => setAttributes( { format: undefined } ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Link to comment' ) }\n\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Link to comment' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tif ( ! commentId || ! date ) {\n\t\tdate = _x( 'Comment Date', 'block title' );\n\t}\n\n\tlet commentDate =\n\t\tdate instanceof Date ? (\n\t\t\t<time dateTime={ dateI18n( 'c', date ) }>\n\t\t\t\t{ format === 'human-diff'\n\t\t\t\t\t? humanTimeDiff( date )\n\t\t\t\t\t: dateI18n( format || siteFormat, date ) }\n\t\t\t</time>\n\t\t) : (\n\t\t\t<time>{ date }</time>\n\t\t);\n\n\tif ( isLink ) {\n\t\tcommentDate = (\n\t\t\t<a\n\t\t\t\thref=\"#comment-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ commentDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...blockProps }>{ commentDate }</div>\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { postDate as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-edit-link\",\n\t\"title\": \"Comment Edit Link\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"commentId\" ],\n\t\"attributes\": {\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"link\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-comment-edit-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function Edit( {\n\tattributes: { linkTarget, textAlign },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst blockControls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ textAlign }\n\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => linkTarget === '_blank' }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\thref=\"#edit-comment-pseudo-link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { commentEditLink as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-reply-link\",\n\t\"title\": \"Comment Reply Link\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comment-template\" ],\n\t\"description\": \"Displays a link to reply to a comment.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"commentId\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"html\": false\n\t},\n\t\"style\": \"wp-block-comment-reply-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\n/**\n * Renders the `core/comment-reply-link` block on the editor.\n *\n * @param {Object} props React props.\n * @param {Object} props.setAttributes Callback for updating block attributes.\n * @param {Object} props.attributes Block attributes.\n * @param {string} props.attributes.textAlign The `textAlign` attribute.\n *\n * @return {JSX.Element} React element.\n */\nfunction Edit( { setAttributes, attributes: { textAlign } } ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst blockControls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ textAlign }\n\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\thref=\"#comment-reply-pseudo-link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Reply' ) }\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Edit;\n", "/**\n * WordPress dependencies\n */\nimport { commentReplyLink as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\ticon,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comment-template\",\n\t\"title\": \"Comment Template\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/comments\" ],\n\t\"description\": \"Contains the block elements used to display a comment, like the title, date, author, avatar and more.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"reusable\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-comment-template\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useCommentQueryArgs, useCommentTree } from './hooks';\n\nconst TEMPLATE = [\n\t[ 'core/avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\n/**\n * Function that returns a comment structure that will be rendered with default placehoders.\n *\n * Each comment has a `commentId` property that is always a negative number in\n * case of the placeholders. This is to ensure that the comment does not\n * conflict with the actual (real) comments.\n *\n * @param {Object} settings Discussion Settings.\n * @param {number} [settings.perPage] - Comments per page setting or block attribute.\n * @param {boolean} [settings.pageComments] - Enable break comments into pages setting.\n * @param {boolean} [settings.threadComments] - Enable threaded (nested) comments setting.\n * @param {number} [settings.threadCommentsDepth] - Level deep of threaded comments.\n *\n * @typedef {{id: null, children: EmptyComment[]}} EmptyComment\n * @return {EmptyComment[]} \t\tInner blocks of the Comment Template\n */\nconst getCommentsPlaceholder = ( {\n\tperPage,\n\tpageComments,\n\tthreadComments,\n\tthreadCommentsDepth,\n} ) => {\n\t// Limit commentsDepth to 3\n\tconst commentsDepth = ! threadComments\n\t\t? 1\n\t\t: Math.min( threadCommentsDepth, 3 );\n\n\tconst buildChildrenComment = ( commentsLevel ) => {\n\t\t// Render children comments until commentsDepth is reached\n\t\tif ( commentsLevel < commentsDepth ) {\n\t\t\tconst nextLevel = commentsLevel + 1;\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcommentId: -( commentsLevel + 3 ),\n\t\t\t\t\tchildren: buildChildrenComment( nextLevel ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [];\n\t};\n\n\t// Add the first comment and its children\n\tconst placeholderComments = [\n\t\t{ commentId: -1, children: buildChildrenComment( 1 ) },\n\t];\n\n\t// Add a second comment unless the break comments setting is active and set to less than 2, and there is one nested comment max\n\tif ( ( ! pageComments || perPage >= 2 ) && commentsDepth < 3 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -2,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// Add a third comment unless the break comments setting is active and set to less than 3, and there aren't nested comments\n\tif ( ( ! pageComments || perPage >= 3 ) && commentsDepth < 2 ) {\n\t\tplaceholderComments.push( {\n\t\t\tcommentId: -3,\n\t\t\tchildren: [],\n\t\t} );\n\t}\n\n\t// In case that the value is set but larger than 3 we truncate it to 3.\n\treturn placeholderComments;\n};\n\n/**\n * Component which renders the inner blocks of the Comment Template.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comment] - A comment object.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.firstCommentId] - ID of the first comment in the array.\n * @param {Array} [props.blocks] - Array of blocks returned from\n * getBlocks() in parent .\n * @return {Element} \t\tInner blocks of the Comment Template\n */\nfunction CommentTemplateInnerBlocks( {\n\tcomment,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tfirstCommentId,\n\tblocks,\n} ) {\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps(\n\t\t{},\n\t\t{ template: TEMPLATE }\n\t);\n\n\treturn (\n\t\t<li { ...innerBlocksProps }>\n\t\t\t{ comment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t? children\n\t\t\t\t: null }\n\n\t\t\t{ /* To avoid flicker when switching active block contexts, a preview\n\t\t\t is ALWAYS rendered and the preview for the active block is hidden.\n\t\t\t This ensures that when switching the active block, the component is not\n\t\t\t mounted again but rather it only toggles the `isHidden` prop.\n\t\t\t The same strategy is used for preventing the flicker in the Post Template\n\t\t\t block. */ }\n\t\t\t<MemoizedCommentTemplatePreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\tcommentId={ comment.commentId }\n\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\tisHidden={\n\t\t\t\t\tcomment.commentId === ( activeCommentId || firstCommentId )\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{ comment?.children?.length > 0 ? (\n\t\t\t\t<CommentsList\n\t\t\t\t\tcomments={ comment.children }\n\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t/>\n\t\t\t) : null }\n\t\t</li>\n\t);\n}\n\nconst CommentTemplatePreview = ( {\n\tblocks,\n\tcommentId,\n\tsetActiveCommentId,\n\tisHidden,\n} ) => {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveCommentId( commentId );\n\t};\n\n\t// We have to hide the preview block if the `comment` props points to\n\t// the currently active block!\n\n\t// Or, to put it differently, every preview block is visible unless it is the\n\t// currently active block - in this case we render its inner blocks.\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<div\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\trole=\"button\"\n\t\t\tstyle={ style }\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t/>\n\t);\n};\n\nconst MemoizedCommentTemplatePreview = memo( CommentTemplatePreview );\n\n/**\n * Component that renders a list of (nested) comments. It is called recursively.\n *\n * @param {Object} props Component props.\n * @param {Array} [props.comments] - Array of comment objects.\n * @param {Array} [props.blockProps] - Props from parent's `useBlockProps()`.\n * @param {Array} [props.activeCommentId] - The ID of the comment that is currently active.\n * @param {Array} [props.setActiveCommentId] - The setter for activeCommentId.\n * @param {Array} [props.blocks] - Array of blocks returned from getBlocks() in parent.\n * @param {Object} [props.firstCommentId] - The ID of the first comment in the array of\n * comment objects.\n * @return {Element} \t\tList of comments.\n */\nconst CommentsList = ( {\n\tcomments,\n\tblockProps,\n\tactiveCommentId,\n\tsetActiveCommentId,\n\tblocks,\n\tfirstCommentId,\n} ) => (\n\t<ol { ...blockProps }>\n\t\t{ comments &&\n\t\t\tcomments.map( ( { commentId, ...comment }, index ) => (\n\t\t\t\t<BlockContextProvider\n\t\t\t\t\tkey={ comment.commentId || index }\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t// If the commentId is negative it means that this comment is a\n\t\t\t\t\t\t// \"placeholder\" and that the block is most likely being used in the\n\t\t\t\t\t\t// site editor. In this case, we have to set the commentId to `null`\n\t\t\t\t\t\t// because otherwise the (non-existent) comment with a negative ID\n\t\t\t\t\t\t// would be requested from the REST API.\n\t\t\t\t\t\tcommentId: commentId < 0 ? null : commentId,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<CommentTemplateInnerBlocks\n\t\t\t\t\t\tcomment={ { commentId, ...comment } }\n\t\t\t\t\t\tactiveCommentId={ activeCommentId }\n\t\t\t\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tfirstCommentId={ firstCommentId }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t) ) }\n\t</ol>\n);\n\nexport default function CommentTemplateEdit( {\n\tclientId,\n\tcontext: { postId },\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst [ activeCommentId, setActiveCommentId ] = useState();\n\tconst {\n\t\tcommentOrder,\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings ?? {};\n\t}, [] );\n\n\tconst commentQuery = useCommentQueryArgs( {\n\t\tpostId,\n\t} );\n\n\tconst { topLevelComments, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\t// Request only top-level comments. Replies are embedded.\n\t\t\t\ttopLevelComments: commentQuery\n\t\t\t\t\t? getEntityRecords( 'root', 'comment', commentQuery )\n\t\t\t\t\t: null,\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, commentQuery ]\n\t);\n\n\t// Generate a tree structure of comment IDs.\n\tlet commentTree = useCommentTree(\n\t\t// Reverse the order of top comments if needed.\n\t\tcommentOrder === 'desc' && topLevelComments\n\t\t\t? [ ...topLevelComments ].reverse()\n\t\t\t: topLevelComments\n\t);\n\n\tif ( ! topLevelComments ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! postId ) {\n\t\tcommentTree = getCommentsPlaceholder( {\n\t\t\tperPage: commentsPerPage,\n\t\t\tpageComments,\n\t\t\tthreadComments,\n\t\t\tthreadCommentsDepth,\n\t\t} );\n\t}\n\n\tif ( ! commentTree.length ) {\n\t\treturn <p { ...blockProps }>{ __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<CommentsList\n\t\t\tcomments={ commentTree }\n\t\t\tblockProps={ blockProps }\n\t\t\tblocks={ blocks }\n\t\t\tactiveCommentId={ activeCommentId }\n\t\t\tsetActiveCommentId={ setActiveCommentId }\n\t\t\tfirstCommentId={ commentTree[ 0 ]?.commentId }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addQueryArgs } from '@wordpress/url';\nimport apiFetch from '@wordpress/api-fetch';\n\n// This is limited by WP REST API\nconst MAX_COMMENTS_PER_PAGE = 100;\n\n/**\n * Return an object with the query args needed to fetch the default page of\n * comments.\n *\n * @param {Object} props Hook props.\n * @param {number} props.postId ID of the post that contains the comments.\n * discussion settings.\n *\n * @return {Object} Query args to retrieve the comments.\n */\nexport const useCommentQueryArgs = ( { postId } ) => {\n\t// Initialize the query args that are not going to change.\n\tconst queryArgs = {\n\t\tstatus: 'approve',\n\t\torder: 'asc',\n\t\tcontext: 'embed',\n\t\tparent: 0,\n\t\t_embed: 'children',\n\t};\n\n\t// Get the Discussion settings that may be needed to query the comments.\n\tconst {\n\t\tpageComments,\n\t\tcommentsPerPage,\n\t\tdefaultCommentsPage: defaultPage,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings ?? {};\n\t}, [] );\n\n\t// WP REST API doesn't allow fetching more than max items limit set per single page of data.\n\t// As for the editor performance is more important than completeness of data and fetching only the\n\t// max allowed for single page should be enough for the purpose of design and laying out the page.\n\t// Fetching over the limit would return an error here but would work with backend query.\n\tconst perPage = pageComments\n\t\t? Math.min( commentsPerPage, MAX_COMMENTS_PER_PAGE )\n\t\t: MAX_COMMENTS_PER_PAGE;\n\n\t// Get the number of the default page.\n\tconst page = useDefaultPageIndex( {\n\t\tdefaultPage,\n\t\tpostId,\n\t\tperPage,\n\t\tqueryArgs,\n\t} );\n\n\t// Merge, memoize and return all query arguments, unless the default page's\n\t// number is not known yet.\n\treturn useMemo( () => {\n\t\treturn page\n\t\t\t? {\n\t\t\t\t\t...queryArgs,\n\t\t\t\t\tpost: postId,\n\t\t\t\t\tper_page: perPage,\n\t\t\t\t\tpage,\n\t\t\t }\n\t\t\t: null;\n\t}, [ postId, perPage, page ] );\n};\n\n/**\n * Return the index of the default page, depending on whether `defaultPage` is\n * `newest` or `oldest`. In the first case, the only way to know the page's\n * index is by using the `X-WP-TotalPages` header, which forces to make an\n * additional request.\n *\n * @param {Object} props Hook props.\n * @param {string} props.defaultPage Page shown by default (newest/oldest).\n * @param {number} props.postId ID of the post that contains the comments.\n * @param {number} props.perPage The number of comments included per page.\n * @param {Object} props.queryArgs Other query args.\n *\n * @return {number} Index of the default comments page.\n */\nconst useDefaultPageIndex = ( { defaultPage, postId, perPage, queryArgs } ) => {\n\t// Store the default page indices.\n\tconst [ defaultPages, setDefaultPages ] = useState( {} );\n\tconst key = `${ postId }_${ perPage }`;\n\tconst page = defaultPages[ key ] || 0;\n\n\tuseEffect( () => {\n\t\t// Do nothing if the page is already known or not the newest page.\n\t\tif ( page || defaultPage !== 'newest' ) {\n\t\t\treturn;\n\t\t}\n\t\t// We need to fetch comments to know the index. Use HEAD and limit\n\t\t// fields just to ID, to make this call as light as possible.\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\t...queryArgs,\n\t\t\t\tpost: postId,\n\t\t\t\tper_page: perPage,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} )\n\t\t\t.then( ( res ) => {\n\t\t\t\tconst pages = parseInt( res.headers.get( 'X-WP-TotalPages' ) );\n\t\t\t\tsetDefaultPages( {\n\t\t\t\t\t...defaultPages,\n\t\t\t\t\t[ key ]: pages <= 1 ? 1 : pages, // If there are 0 pages, it means that there are no comments, but there is no 0th page.\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\t// There's no 0th page, but we can't know the number of pages, fallback to 1.\n\t\t\t\tsetDefaultPages( {\n\t\t\t\t\t...defaultPages,\n\t\t\t\t\t[ key ]: 1,\n\t\t\t\t} );\n\t\t\t} );\n\t}, [ defaultPage, postId, perPage, setDefaultPages ] );\n\n\t// The oldest one is always the first one.\n\treturn defaultPage === 'newest' ? page : 1;\n};\n\n/**\n * Generate a tree structure of comment IDs from a list of comment entities. The\n * children of each comment are obtained from `_embedded`.\n *\n * @typedef {{ commentId: number, children: CommentNode }} CommentNode\n *\n * @param {Object[]} topLevelComments List of comment entities.\n * @return {{ commentTree: CommentNode[]}} Tree of comment IDs.\n */\nexport const useCommentTree = ( topLevelComments ) => {\n\tconst commentTree = useMemo(\n\t\t() =>\n\t\t\ttopLevelComments?.map( ( { id, _embedded } ) => {\n\t\t\t\tconst [ children ] = _embedded?.children || [ [] ];\n\t\t\t\treturn {\n\t\t\t\t\tcommentId: id,\n\t\t\t\t\tchildren: children.map( ( child ) => ( {\n\t\t\t\t\t\tcommentId: child.id,\n\t\t\t\t\t} ) ),\n\t\t\t\t};\n\t\t\t} ),\n\t\t[ topLevelComments ]\n\t);\n\n\treturn commentTree;\n};\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function CommentTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { queryPaginationPrevious as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: __( 'Older Comments' ),\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments-pagination-previous\",\n\t\"title\": \"Comments Previous Page\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/comments-pagination\" ],\n\t\"description\": \"Displays the previous comment's page link.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"comments/paginationArrow\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2190',\n\tchevron: '\u00AB',\n};\n\nexport default function CommentsPaginationPreviousEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-previous-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-previous-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Older comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Older Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</a>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments-pagination\",\n\t\"title\": \"Comments Pagination\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/comments\" ],\n\t\"allowedBlocks\": [\n\t\t\"core/comments-pagination-previous\",\n\t\t\"core/comments-pagination-numbers\",\n\t\t\"core/comments-pagination-next\"\n\t],\n\t\"description\": \"Displays a paginated navigation to next/previous set of comments, when applicable.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"paginationArrow\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"none\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"attributes\": {\n\t\t\t\"paginationArrow\": \"none\"\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"comments/paginationArrow\": \"paginationArrow\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-comments-pagination-editor\",\n\t\"style\": \"wp-block-comments-pagination\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { CommentsPaginationArrowControls } from './comments-pagination-arrow-controls';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst TEMPLATE = [\n\t[ 'core/comments-pagination-previous' ],\n\t[ 'core/comments-pagination-numbers' ],\n\t[ 'core/comments-pagination-next' ],\n];\n\nexport default function QueryPaginationEdit( {\n\tattributes: { paginationArrow },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst hasNextPreviousBlocks = useSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst innerBlocks = getBlocks( clientId );\n\t\t/**\n\t\t * Show the `paginationArrow` control only if a\n\t\t * Comments Pagination Next or Comments Pagination Previous\n\t\t * block exists.\n\t\t */\n\t\treturn innerBlocks?.find( ( innerBlock ) => {\n\t\t\treturn [\n\t\t\t\t'core/comments-pagination-previous',\n\t\t\t\t'core/comments-pagination-next',\n\t\t\t].includes( innerBlock.name );\n\t\t} );\n\t}, [] );\n\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\t// Get the Discussion settings\n\tconst pageComments = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings?.pageComments;\n\t}, [] );\n\n\t// If paging comments is not enabled in the Discussion Settings then hide the pagination\n\t// controls. We don't want to remove them from the template so that when the user enables\n\t// paging comments, the controls will be visible.\n\tif ( ! pageComments ) {\n\t\treturn (\n\t\t\t<Warning>\n\t\t\t\t{ __(\n\t\t\t\t\t'Comments Pagination block: paging comments is disabled in the Discussion Settings'\n\t\t\t\t) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ hasNextPreviousBlocks && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( { paginationArrow: 'none' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\t\thasValue={ () => paginationArrow !== 'none' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: 'none' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CommentsPaginationArrowControls\n\t\t\t\t\t\t\t\tvalue={ paginationArrow }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: value } );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\n\nexport function CommentsPaginationArrowControls( { value, onChange } ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\thelp={ __(\n\t\t\t\t'A decorative arrow appended to the next and previous comments link.'\n\t\t\t) }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"none\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'None',\n\t\t\t\t\t'Arrow option for Comments Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"arrow\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'Arrow',\n\t\t\t\t\t'Arrow option for Comments Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"chevron\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'Chevron',\n\t\t\t\t\t'Arrow option for Comments Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { queryPagination as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { queryPaginationNext as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: __( 'Newer Comments' ),\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments-pagination-next\",\n\t\"title\": \"Comments Next Page\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/comments-pagination\" ],\n\t\"description\": \"Displays the next comment's page link.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"comments/paginationArrow\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2192',\n\tchevron: '\u00BB',\n};\n\nexport default function CommentsPaginationNextEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { 'comments/paginationArrow': paginationArrow },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#comments-pagination-next-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t<PlainText\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\ttagName=\"span\"\n\t\t\t\taria-label={ __( 'Newer comments page link' ) }\n\t\t\t\tplaceholder={ __( 'Newer Comments' ) }\n\t\t\t\tvalue={ label }\n\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-comments-pagination-next-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</a>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments-pagination-numbers\",\n\t\"title\": \"Comments Page Numbers\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/comments-pagination\" ],\n\t\"description\": \"Displays a list of page numbers for comments pagination.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t}\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nconst PaginationItem = ( { content, tag: Tag = 'a', extraClass = '' } ) =>\n\tTag === 'a' ? (\n\t\t<Tag\n\t\t\tclassName={ `page-numbers ${ extraClass }` }\n\t\t\thref=\"#comments-pagination-numbers-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t>\n\t\t\t{ content }\n\t\t</Tag>\n\t) : (\n\t\t<Tag className={ `page-numbers ${ extraClass }` }>{ content }</Tag>\n\t);\n\nexport default function CommentsPaginationNumbersEdit() {\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<PaginationItem content=\"1\" />\n\t\t\t<PaginationItem content=\"2\" />\n\t\t\t<PaginationItem content=\"3\" tag=\"span\" extraClass=\"current\" />\n\t\t\t<PaginationItem content=\"4\" />\n\t\t\t<PaginationItem content=\"5\" />\n\t\t\t<PaginationItem content=\"...\" tag=\"span\" extraClass=\"dots\" />\n\t\t\t<PaginationItem content=\"8\" />\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { queryPaginationNumbers as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/comments-title\",\n\t\"title\": \"Comments Title\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/comments\" ],\n\t\"description\": \"Displays a title with the number of comments.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"showPostTitle\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showCommentsCount\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true,\n\t\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\t\"__experimentalFontWeight\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function Edit( {\n\tattributes: {\n\t\ttextAlign,\n\t\tshowPostTitle,\n\t\tshowCommentsCount,\n\t\tlevel,\n\t\tlevelOptions,\n\t},\n\tsetAttributes,\n\tcontext: { postType, postId },\n} ) {\n\tconst TagName = 'h' + level;\n\tconst [ commentsCount, setCommentsCount ] = useState();\n\tconst [ rawTitle ] = useEntityProp( 'postType', postType, 'title', postId );\n\tconst isSiteEditor = typeof postId === 'undefined';\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst {\n\t\tthreadCommentsDepth,\n\t\tthreadComments,\n\t\tcommentsPerPage,\n\t\tpageComments,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().__experimentalDiscussionSettings ?? {};\n\t}, [] );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseEffect( () => {\n\t\tif ( isSiteEditor ) {\n\t\t\t// Match the number of comments that will be shown in the comment-template/edit.js placeholder\n\n\t\t\tconst nestedCommentsNumber = threadComments\n\t\t\t\t? Math.min( threadCommentsDepth, 3 ) - 1\n\t\t\t\t: 0;\n\t\t\tconst topLevelCommentsNumber = pageComments ? commentsPerPage : 3;\n\n\t\t\tconst commentsNumber =\n\t\t\t\tparseInt( nestedCommentsNumber ) +\n\t\t\t\tparseInt( topLevelCommentsNumber );\n\n\t\t\tsetCommentsCount( Math.min( commentsNumber, 3 ) );\n\t\t\treturn;\n\t\t}\n\t\tconst currentPostId = postId;\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\tpost: postId,\n\t\t\t\t_fields: 'id',\n\t\t\t} ),\n\t\t\tmethod: 'HEAD',\n\t\t\tparse: false,\n\t\t} )\n\t\t\t.then( ( res ) => {\n\t\t\t\t// Stale requests will have the `currentPostId` of an older closure.\n\t\t\t\tif ( currentPostId === postId ) {\n\t\t\t\t\tsetCommentsCount(\n\t\t\t\t\t\tparseInt( res.headers.get( 'X-WP-Total' ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( () => {\n\t\t\t\tsetCommentsCount( 0 );\n\t\t\t} );\n\t}, [ postId ] );\n\n\tconst blockControls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<AlignmentControl\n\t\t\t\tvalue={ textAlign }\n\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<HeadingLevelDropdown\n\t\t\t\tvalue={ level }\n\t\t\t\toptions={ levelOptions }\n\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tshowPostTitle: true,\n\t\t\t\t\t\tshowCommentsCount: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => ! showPostTitle }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { showPostTitle: true } )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\t\tchecked={ showPostTitle }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { showPostTitle: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => ! showCommentsCount }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { showCommentsCount: true } )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\t\tchecked={ showCommentsCount }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { showCommentsCount: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst postTitle = isSiteEditor ? __( 'Post Title' ) : rawTitle;\n\n\tlet placeholder;\n\tif ( showCommentsCount && commentsCount !== undefined ) {\n\t\tif ( showPostTitle ) {\n\t\t\tif ( commentsCount === 1 ) {\n\t\t\t\tplaceholder = sprintf(\n\t\t\t\t\t/* translators: %s: Post title. */\n\t\t\t\t\t__( 'One response to \"%s\"' ),\n\t\t\t\t\tpostTitle\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tplaceholder = sprintf(\n\t\t\t\t\t/* translators: 1: Number of comments, 2: Post title. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%1$s response to \"%2$s\"',\n\t\t\t\t\t\t'%1$s responses to \"%2$s\"',\n\t\t\t\t\t\tcommentsCount\n\t\t\t\t\t),\n\t\t\t\t\tcommentsCount,\n\t\t\t\t\tpostTitle\n\t\t\t\t);\n\t\t\t}\n\t\t} else if ( commentsCount === 1 ) {\n\t\t\tplaceholder = __( 'One response' );\n\t\t} else {\n\t\t\tplaceholder = sprintf(\n\t\t\t\t/* translators: %s: Number of comments. */\n\t\t\t\t_n( '%s response', '%s responses', commentsCount ),\n\t\t\t\tcommentsCount\n\t\t\t);\n\t\t}\n\t} else if ( showPostTitle ) {\n\t\tif ( commentsCount === 1 ) {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Response to \"%s\"' ), postTitle );\n\t\t} else {\n\t\t\t/* translators: %s: Post title. */\n\t\t\tplaceholder = sprintf( __( 'Responses to \"%s\"' ), postTitle );\n\t\t}\n\t} else if ( commentsCount === 1 ) {\n\t\tplaceholder = __( 'Response' );\n\t} else {\n\t\tplaceholder = __( 'Responses' );\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName { ...blockProps }>{ placeholder }</TagName>\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { attributes, supports } = metadata;\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\t...attributes,\n\t\t\tsingleCommentLabel: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tmultipleCommentsLabel: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports,\n\t\tmigrate: ( oldAttributes ) => {\n\t\t\tconst {\n\t\t\t\tsingleCommentLabel,\n\t\t\t\tmultipleCommentsLabel,\n\t\t\t\t...newAttributes\n\t\t\t} = oldAttributes;\n\t\t\treturn newAttributes;\n\t\t},\n\t\tisEligible: ( { multipleCommentsLabel, singleCommentLabel } ) =>\n\t\t\tmultipleCommentsLabel || singleCommentLabel,\n\t\tsave: () => null,\n\t},\n];\n", "/**\n * WordPress dependencies\n */\nimport { title as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcustomOverlayColor: '#065174',\n\t\t\tdimRatio: 40,\n\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg',\n\t\t\tstyle: {\n\t\t\t\ttypography: {\n\t\t\t\t\tfontSize: 48,\n\t\t\t\t},\n\t\t\t\tcolor: {\n\t\t\t\t\ttext: 'white',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: `<strong>${ __( 'Snow Patrol' ) }</strong>`,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tsave,\n\tedit,\n\tdeprecated,\n\tvariations,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'background',\n\t\t\tlabel: __( 'Background' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\t// TODO - How to support custom gradient?\n\t\t\t\t// Build it into Media, or use a custom control?\n\t\t\t\tallowedTypes: [ 'image', 'video' ],\n\t\t\t\tmultiple: false,\n\t\t\t\tuseFeaturedImage: true,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.url,\n\t\t\t\talt: item.alt,\n\t\t\t\tmediaType: item.backgroundType,\n\t\t\t\tfeaturedImage: item.useFeaturedImage,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\turl: value.url,\n\t\t\t\talt: value.alt,\n\t\t\t\tmediaType: value.backgroundType,\n\t\t\t\tuseFeaturedImage: value.featuredImage,\n\t\t\t} ),\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'background' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tRichText,\n\tgetColorClassName,\n\tInnerBlocks,\n\t__experimentalGetGradientClass,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tgetPositionClassName,\n\tisContentPositionCenter,\n\tdimRatioToClass,\n\tmediaPosition,\n} from './shared';\n\nfunction backgroundImageStyles( url ) {\n\treturn url ? { backgroundImage: `url(${ url })` } : {};\n}\n\n/**\n * Original function to determine the background opacity classname\n *\n * Used in deprecations: v1-7.\n *\n * @param {number} ratio ratio to use for opacity.\n * @return {string} background opacity class .\n */\nfunction dimRatioToClassV1( ratio ) {\n\treturn ratio === 0 || ratio === 50 || ! ratio\n\t\t? null\n\t\t: 'has-background-dim-' + 10 * Math.round( ratio / 10 );\n}\n\nfunction migrateDimRatio( attributes ) {\n\treturn {\n\t\t...attributes,\n\t\tdimRatio: ! attributes.url ? 100 : attributes.dimRatio,\n\t};\n}\n\nfunction migrateTag( attributes ) {\n\tif ( ! attributes.tagName ) {\n\t\tattributes = {\n\t\t\t...attributes,\n\t\t\ttagName: 'div',\n\t\t};\n\t}\n\treturn {\n\t\t...attributes,\n\t};\n}\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\thasParallax: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tdimRatio: {\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t},\n\toverlayColor: {\n\t\ttype: 'string',\n\t},\n\tcustomOverlayColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundType: {\n\t\ttype: 'string',\n\t\tdefault: 'image',\n\t},\n\tfocalPoint: {\n\t\ttype: 'object',\n\t},\n};\n\nconst v8ToV11BlockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\thasParallax: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tisRepeated: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tdimRatio: {\n\t\ttype: 'number',\n\t\tdefault: 100,\n\t},\n\toverlayColor: {\n\t\ttype: 'string',\n\t},\n\tcustomOverlayColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundType: {\n\t\ttype: 'string',\n\t\tdefault: 'image',\n\t},\n\tfocalPoint: {\n\t\ttype: 'object',\n\t},\n\tminHeight: {\n\t\ttype: 'number',\n\t},\n\tminHeightUnit: {\n\t\ttype: 'string',\n\t},\n\tgradient: {\n\t\ttype: 'string',\n\t},\n\tcustomGradient: {\n\t\ttype: 'string',\n\t},\n\tcontentPosition: {\n\t\ttype: 'string',\n\t},\n\tisDark: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\tallowedBlocks: {\n\t\ttype: 'array',\n\t},\n\ttemplateLock: {\n\t\ttype: [ 'string', 'boolean' ],\n\t\tenum: [ 'all', 'insert', false ],\n\t},\n};\n\nconst v12toV13BlockAttributes = {\n\t...v8ToV11BlockAttributes,\n\tuseFeaturedImage: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\ttagName: {\n\t\ttype: 'string',\n\t\tdefault: 'div',\n\t},\n};\n\nconst v14BlockAttributes = {\n\t...v12toV13BlockAttributes,\n\tisUserOverlayColor: {\n\t\ttype: 'boolean',\n\t},\n\tsizeSlug: {\n\t\ttype: 'string',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n};\n\nconst v7toV11BlockSupports = {\n\tanchor: true,\n\talign: true,\n\thtml: false,\n\tspacing: {\n\t\tpadding: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tpadding: true,\n\t\t},\n\t},\n\tcolor: {\n\t\t__experimentalDuotone:\n\t\t\t'> .wp-block-cover__image-background, > .wp-block-cover__video-background',\n\t\ttext: false,\n\t\tbackground: false,\n\t},\n};\n\nconst v12BlockSupports = {\n\t...v7toV11BlockSupports,\n\tspacing: {\n\t\tpadding: true,\n\t\tmargin: [ 'top', 'bottom' ],\n\t\tblockGap: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tpadding: true,\n\t\t\tblockGap: true,\n\t\t},\n\t},\n\t__experimentalBorder: {\n\t\tcolor: true,\n\t\tradius: true,\n\t\tstyle: true,\n\t\twidth: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t},\n\t},\n\tcolor: {\n\t\t__experimentalDuotone:\n\t\t\t'> .wp-block-cover__image-background, > .wp-block-cover__video-background',\n\t\theading: true,\n\t\ttext: true,\n\t\tbackground: false,\n\t\t__experimentalSkipSerialization: [ 'gradients' ],\n\t\tenableContrastChecker: false,\n\t},\n\ttypography: {\n\t\tfontSize: true,\n\t\tlineHeight: true,\n\t\t__experimentalFontFamily: true,\n\t\t__experimentalFontWeight: true,\n\t\t__experimentalFontStyle: true,\n\t\t__experimentalTextTransform: true,\n\t\t__experimentalTextDecoration: true,\n\t\t__experimentalLetterSpacing: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tfontSize: true,\n\t\t},\n\t},\n\tlayout: {\n\t\tallowJustification: false,\n\t},\n};\n\nconst v14BlockSupports = {\n\t...v12BlockSupports,\n\tshadow: true,\n\tdimensions: {\n\t\taspectRatio: true,\n\t},\n\tinteractivity: {\n\t\tclientNavigation: true,\n\t},\n};\n\n// Deprecation for blocks that have z-index.\nconst v14 = {\n\tattributes: v14BlockAttributes,\n\tsupports: v14BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\tuseFeaturedImage,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t\ttagName: Tag,\n\t\t\tsizeSlug,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight =\n\t\t\tminHeightProp && minHeightUnit\n\t\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t ? mediaPosition(focalPoint)\n\t\t\t\t : undefined;\n\n\t\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\t\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst imgClasses = clsx(\n\t\t\t'wp-block-cover__image-background',\n\t\t\tid ? `wp-image-${ id }` : null,\n\t\t\t{\n\t\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t}\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<Tag { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\turl &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole={ alt ? 'img' : undefined }\n\t\t\t\t\t\t\taria-label={ alt ? alt : undefined }\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\tstyle={ { backgroundPosition, backgroundImage } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</Tag>\n\t\t);\n\t},\n};\n\n// Deprecation for blocks that does not have the aria-label when the image background is fixed or repeated.\nconst v13 = {\n\tattributes: v12toV13BlockAttributes,\n\tsupports: v12BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\tuseFeaturedImage,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t\ttagName: Tag,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight =\n\t\t\tminHeightProp && minHeightUnit\n\t\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t\t ? mediaPosition(focalPoint)\n\t\t\t\t\t : undefined;\n\n\t\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\t\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst imgClasses = clsx(\n\t\t\t'wp-block-cover__image-background',\n\t\t\tid ? `wp-image-${ id }` : null,\n\t\t\t{\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t}\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<Tag { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\turl &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\tstyle={ { backgroundPosition, backgroundImage } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</Tag>\n\t\t);\n\t},\n};\n\n// Deprecation for blocks to prevent auto overlay color from overriding previously set values.\nconst v12 = {\n\tattributes: v12toV13BlockAttributes,\n\tsupports: v12BlockSupports,\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\t( attributes.customOverlayColor !== undefined ||\n\t\t\t\tattributes.overlayColor !== undefined ) &&\n\t\t\tattributes.isUserOverlayColor === undefined\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tisUserOverlayColor: true,\n\t\t};\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\tuseFeaturedImage,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t\ttagName: Tag,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight =\n\t\t\tminHeightProp && minHeightUnit\n\t\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t ? mediaPosition(focalPoint)\n\t\t\t : undefined;\n\n\t\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\t\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst imgClasses = clsx(\n\t\t\t'wp-block-cover__image-background',\n\t\t\tid ? `wp-image-${ id }` : null,\n\t\t\t{\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t}\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<Tag { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\turl &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\tstyle={ { backgroundPosition, backgroundImage } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</Tag>\n\t\t);\n\t},\n};\n\n// Deprecation for blocks that does not have a HTML tag option.\nconst v11 = {\n\tattributes: v8ToV11BlockAttributes,\n\tsupports: v7toV11BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\tuseFeaturedImage,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight =\n\t\t\tminHeightProp && minHeightUnit\n\t\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t ? mediaPosition(focalPoint)\n\t\t\t\t : undefined;\n\n\t\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\t\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst imgClasses = clsx(\n\t\t\t'wp-block-cover__image-background',\n\t\t\tid ? `wp-image-${ id }` : null,\n\t\t\t{\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t}\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\turl &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\trole=\"img\"\n\t\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\t\tstyle={ { backgroundPosition, backgroundImage } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateTag,\n};\n\n// Deprecation for blocks that renders fixed background as background from the main block container.\nconst v10 = {\n\tattributes: v8ToV11BlockAttributes,\n\tsupports: v7toV11BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\tuseFeaturedImage,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight =\n\t\t\tminHeightProp && minHeightUnit\n\t\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\t...( isImageBackground && ! isImgElement && ! useFeaturedImage\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {} ),\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t ? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round( focalPoint.y * 100 ) }%`\n\t\t\t\t : undefined;\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ ! useFeaturedImage &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\tisImgElement &&\n\t\t\t\t\turl && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background',\n\t\t\t\t\t\t\t\tid ? `wp-image-${ id }` : null\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateTag,\n};\n\n// Deprecation for blocks with `minHeightUnit` set but no `minHeight`.\nconst v9 = {\n\tattributes: v8ToV11BlockAttributes,\n\tsupports: v7toV11BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight = minHeightUnit\n\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\t...( isImageBackground && ! isImgElement\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {} ),\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t ? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round( focalPoint.y * 100 ) }%`\n\t\t\t\t : undefined;\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\tconst gradientValue = gradient || customGradient;\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ isImageBackground && isImgElement && url && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__image-background',\n\t\t\t\t\t\t\tid ? `wp-image-${ id }` : null\n\t\t\t\t\t\t) }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateTag,\n};\n\n// v8: deprecated to remove duplicated gradient classes and swap `wp-block-cover__gradient-background` for `wp-block-cover__background`.\nconst v8 = {\n\tattributes: v8ToV11BlockAttributes,\n\tsupports: v7toV11BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\tisDark,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight = minHeightUnit\n\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\t...( isImageBackground && ! isImgElement\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {} ),\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst bgStyle = {\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient ? customGradient : undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t ? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round( focalPoint.y * 100 ) }%`\n\t\t\t\t : undefined;\n\n\t\tconst classes = clsx(\n\t\t\t{\n\t\t\t\t'is-light': ! isDark,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\toverlayColorClass,\n\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\tgradientClass,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t'has-background-gradient':\n\t\t\t\t\t\t\t\tgradient || customGradient,\n\t\t\t\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ bgStyle }\n\t\t\t\t/>\n\n\t\t\t\t{ isImageBackground && isImgElement && url && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__image-background',\n\t\t\t\t\t\t\tid ? `wp-image-${ id }` : null\n\t\t\t\t\t\t) }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateTag,\n};\n\nconst v7 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tisRepeated: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tminHeight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tminHeightUnit: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomGradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcontentPosition: {\n\t\t\ttype: 'string',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t},\n\tsupports: v7toV11BlockSupports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\talt,\n\t\t\tid,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight = minHeightUnit\n\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\t\tconst style = {\n\t\t\t...( isImageBackground && ! isImgElement\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {} ),\n\t\t\tbackgroundColor: ! overlayColorClass\n\t\t\t\t? customOverlayColor\n\t\t\t\t: undefined,\n\t\t\tbackground: customGradient && ! url ? customGradient : undefined,\n\t\t\tminHeight: minHeight || undefined,\n\t\t};\n\n\t\tconst objectPosition =\n\t\t\t// prettier-ignore\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round( focalPoint.y * 100 ) }%`\n\t\t\t\t\t: undefined;\n\n\t\tconst classes = clsx(\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-background-gradient': gradient || customGradient,\n\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t{ url && ( gradient || customGradient ) && dimRatio !== 0 && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\t\tgradientClass\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tcustomGradient\n\t\t\t\t\t\t\t\t? { background: customGradient }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isImageBackground && isImgElement && url && (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__image-background',\n\t\t\t\t\t\t\tid ? `wp-image-${ id }` : null\n\t\t\t\t\t\t) }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-cover__inner-container\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: compose( migrateDimRatio, migrateTag ),\n};\n\nconst v6 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tisRepeated: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tminHeight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tminHeightUnit: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomGradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcontentPosition: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcontentPosition,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\tisRepeated,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\tminHeight: minHeightProp,\n\t\t\tminHeightUnit,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\t\tconst minHeight = minHeightUnit\n\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t: minHeightProp;\n\n\t\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\t\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\t\tconst style = isImageBackground ? backgroundImageStyles( url ) : {};\n\t\tconst videoStyle = {};\n\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\n\t\tif ( customGradient && ! url ) {\n\t\t\tstyle.background = customGradient;\n\t\t}\n\t\tstyle.minHeight = minHeight || undefined;\n\n\t\tlet positionValue;\n\n\t\tif ( focalPoint ) {\n\t\t\tpositionValue = `${ Math.round(\n\t\t\t\tfocalPoint.x * 100\n\t\t\t) }% ${ Math.round( focalPoint.y * 100 ) }%`;\n\n\t\t\tif ( isImageBackground && ! hasParallax ) {\n\t\t\t\tstyle.backgroundPosition = positionValue;\n\t\t\t}\n\n\t\t\tif ( isVideoBackground ) {\n\t\t\t\tvideoStyle.objectPosition = positionValue;\n\t\t\t}\n\t\t}\n\n\t\tconst classes = clsx(\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'is-repeated': isRepeated,\n\t\t\t\t'has-background-gradient': gradient || customGradient,\n\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t\t'has-custom-content-position':\n\t\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t\t},\n\t\t\tgetPositionClassName( contentPosition )\n\t\t);\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t\t{ url && ( gradient || customGradient ) && dimRatio !== 0 && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\t\tgradientClass\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tcustomGradient\n\t\t\t\t\t\t\t\t? { background: customGradient }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isVideoBackground && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tplaysInline\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ videoStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-cover__inner-container\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: compose( migrateDimRatio, migrateTag ),\n};\n\nconst v5 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tminHeight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomGradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\tminHeight,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\n\t\tconst style =\n\t\t\tbackgroundType === IMAGE_BACKGROUND_TYPE\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {};\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\t\tif ( focalPoint && ! hasParallax ) {\n\t\t\tstyle.backgroundPosition = `${ Math.round(\n\t\t\t\tfocalPoint.x * 100\n\t\t\t) }% ${ Math.round( focalPoint.y * 100 ) }%`;\n\t\t}\n\t\tif ( customGradient && ! url ) {\n\t\t\tstyle.background = customGradient;\n\t\t}\n\t\tstyle.minHeight = minHeight || undefined;\n\n\t\tconst classes = clsx(\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'has-background-gradient': customGradient,\n\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t{ url && ( gradient || customGradient ) && dimRatio !== 0 && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\t\tgradientClass\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tcustomGradient\n\t\t\t\t\t\t\t\t? { background: customGradient }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-cover__inner-container\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: compose( migrateDimRatio, migrateTag ),\n};\n\nconst v4 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tminHeight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomGradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tgradient,\n\t\t\tcustomGradient,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\toverlayColor,\n\t\t\turl,\n\t\t\tminHeight,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\n\t\tconst style =\n\t\t\tbackgroundType === IMAGE_BACKGROUND_TYPE\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {};\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\t\tif ( focalPoint && ! hasParallax ) {\n\t\t\tstyle.backgroundPosition = `${ focalPoint.x * 100 }% ${\n\t\t\t\tfocalPoint.y * 100\n\t\t\t}%`;\n\t\t}\n\t\tif ( customGradient && ! url ) {\n\t\t\tstyle.background = customGradient;\n\t\t}\n\t\tstyle.minHeight = minHeight || undefined;\n\n\t\tconst classes = clsx(\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t'has-background-gradient': customGradient,\n\t\t\t\t[ gradientClass ]: ! url && gradientClass,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t{ url && ( gradient || customGradient ) && dimRatio !== 0 && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__gradient-background',\n\t\t\t\t\t\t\tgradientClass\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tcustomGradient\n\t\t\t\t\t\t\t\t? { background: customGradient }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-cover__inner-container\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: compose( migrateDimRatio, migrateTag ),\n};\n\nconst v3 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'p',\n\t\t},\n\t\tcontentAlign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'center',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundType,\n\t\t\tcontentAlign,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\tfocalPoint,\n\t\t\thasParallax,\n\t\t\toverlayColor,\n\t\t\ttitle,\n\t\t\turl,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst style =\n\t\t\tbackgroundType === IMAGE_BACKGROUND_TYPE\n\t\t\t\t? backgroundImageStyles( url )\n\t\t\t\t: {};\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\t\tif ( focalPoint && ! hasParallax ) {\n\t\t\tstyle.backgroundPosition = `${ focalPoint.x * 100 }% ${\n\t\t\t\tfocalPoint.y * 100\n\t\t\t}%`;\n\t\t}\n\n\t\tconst classes = clsx(\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t[ `has-${ contentAlign }-content` ]: contentAlign !== 'center',\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && url && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( title ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tclassName=\"wp-block-cover-text\"\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\tconst newAttribs = {\n\t\t\t...attributes,\n\t\t\tdimRatio: ! attributes.url ? 100 : attributes.dimRatio,\n\t\t\ttagName: ! attributes.tagName ? 'div' : attributes.tagName,\n\t\t};\n\n\t\tconst { title, contentAlign, ...restAttributes } = newAttribs;\n\n\t\treturn [\n\t\t\trestAttributes,\n\t\t\t[\n\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: attributes.title,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\ttextAlign: attributes.contentAlign,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title\u2026' ),\n\t\t\t\t} ),\n\t\t\t],\n\t\t];\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'p',\n\t\t},\n\t\tcontentAlign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'center',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\ttitle,\n\t\t\thasParallax,\n\t\t\tdimRatio,\n\t\t\talign,\n\t\t\tcontentAlign,\n\t\t\toverlayColor,\n\t\t\tcustomOverlayColor,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\toverlayColor\n\t\t);\n\t\tconst style = backgroundImageStyles( url );\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\n\t\tconst classes = clsx(\n\t\t\t'wp-block-cover-image',\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t[ `has-${ contentAlign }-content` ]: contentAlign !== 'center',\n\t\t\t},\n\t\t\talign ? `align${ align }` : null\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t{ ! RichText.isEmpty( title ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tclassName=\"wp-block-cover-image-text\"\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\tconst newAttribs = {\n\t\t\t...attributes,\n\t\t\tdimRatio: ! attributes.url ? 100 : attributes.dimRatio,\n\t\t\ttagName: ! attributes.tagName ? 'div' : attributes.tagName,\n\t\t};\n\n\t\tconst { title, contentAlign, align, ...restAttributes } = newAttribs;\n\n\t\treturn [\n\t\t\trestAttributes,\n\t\t\t[\n\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: attributes.title,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\ttextAlign: attributes.contentAlign,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title\u2026' ),\n\t\t\t\t} ),\n\t\t\t],\n\t\t];\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'h2',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcontentAlign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'center',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, title, hasParallax, dimRatio, align } = attributes;\n\t\tconst style = backgroundImageStyles( url );\n\t\tconst classes = clsx(\n\t\t\t'wp-block-cover-image',\n\t\t\tdimRatioToClassV1( dimRatio ),\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t},\n\t\t\talign ? `align${ align }` : null\n\t\t);\n\n\t\treturn (\n\t\t\t<section className={ classes } style={ style }>\n\t\t\t\t<RichText.Content tagName=\"h2\" value={ title } />\n\t\t\t</section>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\tconst newAttribs = {\n\t\t\t...attributes,\n\t\t\tdimRatio: ! attributes.url ? 100 : attributes.dimRatio,\n\t\t\ttagName: ! attributes.tagName ? 'div' : attributes.tagName,\n\t\t};\n\t\tconst { title, contentAlign, align, ...restAttributes } = newAttribs;\n\n\t\treturn [\n\t\t\trestAttributes,\n\t\t\t[\n\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: attributes.title,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\ttextAlign: attributes.contentAlign,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title\u2026' ),\n\t\t\t\t} ),\n\t\t\t],\n\t\t];\n\t},\n};\n\nexport default [ v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { getBlobTypeByURL, isBlobURL } from '@wordpress/blob';\n\nconst POSITION_CLASSNAMES = {\n\t'top left': 'is-position-top-left',\n\t'top center': 'is-position-top-center',\n\t'top right': 'is-position-top-right',\n\t'center left': 'is-position-center-left',\n\t'center center': 'is-position-center-center',\n\tcenter: 'is-position-center-center',\n\t'center right': 'is-position-center-right',\n\t'bottom left': 'is-position-bottom-left',\n\t'bottom center': 'is-position-bottom-center',\n\t'bottom right': 'is-position-bottom-right',\n};\n\nexport const IMAGE_BACKGROUND_TYPE = 'image';\nexport const VIDEO_BACKGROUND_TYPE = 'video';\nexport const EMBED_VIDEO_BACKGROUND_TYPE = 'embed-video';\nexport const COVER_MIN_HEIGHT = 50;\nexport const COVER_MAX_HEIGHT = 1000;\nexport const COVER_DEFAULT_HEIGHT = 300;\nexport const DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };\nexport const ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\n\nexport function mediaPosition( { x, y } = DEFAULT_FOCAL_POINT ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n\nexport function dimRatioToClass( ratio ) {\n\treturn ratio === 50 || ratio === undefined\n\t\t? null\n\t\t: 'has-background-dim-' + 10 * Math.round( ratio / 10 );\n}\n\nexport function attributesFromMedia( media ) {\n\tif ( ! media || ( ! media.url && ! media.src ) ) {\n\t\treturn {\n\t\t\turl: undefined,\n\t\t\tid: undefined,\n\t\t};\n\t}\n\n\tif ( isBlobURL( media.url ) ) {\n\t\tmedia.type = getBlobTypeByURL( media.url );\n\t}\n\n\tlet mediaType;\n\t// For media selections originated from a file upload.\n\tif ( media.media_type ) {\n\t\tif ( media.media_type === IMAGE_BACKGROUND_TYPE ) {\n\t\t\tmediaType = IMAGE_BACKGROUND_TYPE;\n\t\t} else {\n\t\t\t// Only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t// Videos contain the media type of 'file' in the object returned from the rest api.\n\t\t\tmediaType = VIDEO_BACKGROUND_TYPE;\n\t\t}\n\t\t// For media selections originated from existing files in the media library.\n\t} else if (\n\t\tmedia.type &&\n\t\t( media.type === IMAGE_BACKGROUND_TYPE ||\n\t\t\tmedia.type === VIDEO_BACKGROUND_TYPE )\n\t) {\n\t\tmediaType = media.type;\n\t} else {\n\t\treturn;\n\t}\n\n\treturn {\n\t\turl: media.url || media.src,\n\t\tid: media.id,\n\t\talt: media?.alt,\n\t\tbackgroundType: mediaType,\n\t\t...( mediaType === VIDEO_BACKGROUND_TYPE\n\t\t\t? { hasParallax: undefined }\n\t\t\t: {} ),\n\t};\n}\n\n/**\n * Checks of the contentPosition is the center (default) position.\n *\n * @param {string} contentPosition The current content position.\n * @return {boolean} Whether the contentPosition is center.\n */\nexport function isContentPositionCenter( contentPosition ) {\n\treturn (\n\t\t! contentPosition ||\n\t\tcontentPosition === 'center center' ||\n\t\tcontentPosition === 'center'\n\t);\n}\n\n/**\n * Retrieves the className for the current contentPosition.\n * The default position (center) will not have a className.\n *\n * @param {string} contentPosition The current content position.\n * @return {string} The className assigned to the contentPosition.\n */\nexport function getPositionClassName( contentPosition ) {\n\t/*\n\t * Only render a className if the contentPosition is not center (the default).\n\t */\n\tif ( isContentPositionCenter( contentPosition ) ) {\n\t\treturn '';\n\t}\n\n\treturn POSITION_CLASSNAMES[ contentPosition ];\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\nimport { Placeholder, Spinner } from '@wordpress/components';\nimport { compose, useResizeObserver } from '@wordpress/compose';\nimport {\n\twithColors,\n\tColorPalette,\n\tuseBlockProps,\n\tuseSettings,\n\tuseInnerBlocksProps,\n\t__experimentalUseGradient,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport {\n\tattributesFromMedia,\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tEMBED_VIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from '../shared';\nimport CoverInspectorControls from './inspector-controls';\nimport CoverBlockControls from './block-controls';\nimport CoverPlaceholder from './cover-placeholder';\nimport ResizableCoverPopover from './resizable-cover-popover';\nimport {\n\tgetMediaColor,\n\tcompositeIsDark,\n\tDEFAULT_BACKGROUND_COLOR,\n\tDEFAULT_OVERLAY_COLOR,\n} from './color-utils';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from '../constants';\nimport { getIframeSrc, getBackgroundVideoSrc } from '../embed-video-utils';\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\tstyle: {\n\t\t\t\t\ttypography: {\n\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tplaceholder: __( 'Write title\u2026' ),\n\t\t\t\t...attributes,\n\t\t\t},\n\t\t],\n\t];\n}\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily while\n * the media (image or video) is being uploaded and will not have an id allocated yet.\n *\n * @param {number} id The id of the media.\n * @param {string} url The url of the media.\n *\n * @return {boolean} Is the URL a Blob URL.\n */\nconst isTemporaryMedia = ( id, url ) => ! id && isBlobURL( url );\n\nfunction CoverEdit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\toverlayColor,\n\tsetAttributes,\n\tsetOverlayColor,\n\ttoggleSelection,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tcontentPosition,\n\t\tid,\n\t\turl: originalUrl,\n\t\tbackgroundType: originalBackgroundType,\n\t\tuseFeaturedImage,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\tallowedBlocks,\n\t\ttemplateLock,\n\t\ttagName: TagName = 'div',\n\t\tisUserOverlayColor,\n\t\tsizeSlug,\n\t\tposter,\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { media } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage && useFeaturedImage\n\t\t\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\t\tfeaturedImage,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, useFeaturedImage ]\n\t);\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ sizeSlug ]?.source_url ??\n\t\tmedia?.source_url;\n\n\t// User can change the featured image outside of the block, but we still\n\t// need to update the block when that happens. This effect should only\n\t// run when the featured image changes in that case. All other cases are\n\t// handled in their respective callbacks.\n\tuseEffect( () => {\n\t\t( async () => {\n\t\t\tif ( ! useFeaturedImage ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst averageBackgroundColor = await getMediaColor( mediaUrl );\n\n\t\t\tlet newOverlayColor = overlayColor.color;\n\t\t\tif ( ! isUserOverlayColor ) {\n\t\t\t\tnewOverlayColor = averageBackgroundColor;\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetOverlayColor( newOverlayColor );\n\t\t\t}\n\n\t\t\tconst newIsDark = compositeIsDark(\n\t\t\t\tdimRatio,\n\t\t\t\tnewOverlayColor,\n\t\t\t\taverageBackgroundColor\n\t\t\t);\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tisDark: newIsDark,\n\t\t\t\tisUserOverlayColor: isUserOverlayColor || false,\n\t\t\t} );\n\t\t} )();\n\t\t// Update the block only when the featured image changes.\n\t}, [ mediaUrl ] );\n\n\t// instead of destructuring the attributes\n\t// we define the url and background type\n\t// depending on the value of the useFeaturedImage flag\n\t// to preview in edit the dynamic featured image\n\tconst url = useFeaturedImage\n\t\t? mediaUrl\n\t\t: // Ensure the url is not malformed due to sanitization through `wp_kses`.\n\t\t originalUrl?.replaceAll( '&', '&' );\n\tconst backgroundType = useFeaturedImage\n\t\t? IMAGE_BACKGROUND_TYPE\n\t\t: originalBackgroundType;\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\n\tconst onSelectMedia = async ( newMedia ) => {\n\t\tconst mediaAttributes = attributesFromMedia( newMedia );\n\t\tconst isImage = [ newMedia?.type, newMedia?.media_type ].includes(\n\t\t\tIMAGE_BACKGROUND_TYPE\n\t\t);\n\n\t\tconst averageBackgroundColor = await getMediaColor(\n\t\t\tisImage ? newMedia?.url : undefined\n\t\t);\n\n\t\tlet newOverlayColor = overlayColor.color;\n\t\tif ( ! isUserOverlayColor ) {\n\t\t\tnewOverlayColor = averageBackgroundColor;\n\t\t\tsetOverlayColor( newOverlayColor );\n\n\t\t\t// Make undo revert the next setAttributes and the previous setOverlayColor.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t}\n\n\t\t// Only set a new dimRatio if there was no previous media selected\n\t\t// to avoid resetting to 50 if it has been explicitly set to 100.\n\t\t// See issue #52835 for context.\n\t\tconst newDimRatio =\n\t\t\toriginalUrl === undefined && dimRatio === 100 ? 50 : dimRatio;\n\n\t\tconst newIsDark = compositeIsDark(\n\t\t\tnewDimRatio,\n\t\t\tnewOverlayColor,\n\t\t\taverageBackgroundColor\n\t\t);\n\n\t\tif ( backgroundType === IMAGE_BACKGROUND_TYPE && mediaAttributes?.id ) {\n\t\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t\t// Try to use the previous selected image size if it's available\n\t\t\t// otherwise try the default image size or fallback to full size.\n\t\t\tif (\n\t\t\t\tsizeSlug &&\n\t\t\t\t( newMedia?.sizes?.[ sizeSlug ] ||\n\t\t\t\t\tnewMedia?.media_details?.sizes?.[ sizeSlug ] )\n\t\t\t) {\n\t\t\t\tmediaAttributes.sizeSlug = sizeSlug;\n\t\t\t\tmediaAttributes.url =\n\t\t\t\t\tnewMedia?.sizes?.[ sizeSlug ]?.url ||\n\t\t\t\t\tnewMedia?.media_details?.sizes?.[ sizeSlug ]?.source_url;\n\t\t\t} else if (\n\t\t\t\tnewMedia?.sizes?.[ imageDefaultSize ] ||\n\t\t\t\tnewMedia?.media_details?.sizes?.[ imageDefaultSize ]\n\t\t\t) {\n\t\t\t\tmediaAttributes.sizeSlug = imageDefaultSize;\n\t\t\t\tmediaAttributes.url =\n\t\t\t\t\tnewMedia?.sizes?.[ imageDefaultSize ]?.url ||\n\t\t\t\t\tnewMedia?.media_details?.sizes?.[ imageDefaultSize ]\n\t\t\t\t\t\t?.source_url;\n\t\t\t} else {\n\t\t\t\tmediaAttributes.sizeSlug = DEFAULT_MEDIA_SIZE_SLUG;\n\t\t\t}\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\tfocalPoint: undefined,\n\t\t\tuseFeaturedImage: undefined,\n\t\t\tdimRatio: newDimRatio,\n\t\t\tisDark: newIsDark,\n\t\t\tisUserOverlayColor: isUserOverlayColor || false,\n\t\t} );\n\t};\n\n\tconst onClearMedia = () => {\n\t\tlet newOverlayColor = overlayColor.color;\n\t\tif ( ! isUserOverlayColor ) {\n\t\t\tnewOverlayColor = DEFAULT_OVERLAY_COLOR;\n\t\t\tsetOverlayColor( undefined );\n\n\t\t\t// Make undo revert the next setAttributes and the previous setOverlayColor.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t}\n\n\t\tconst newIsDark = compositeIsDark(\n\t\t\tdimRatio,\n\t\t\tnewOverlayColor,\n\t\t\tDEFAULT_BACKGROUND_COLOR\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tid: undefined,\n\t\t\tbackgroundType: undefined,\n\t\t\tfocalPoint: undefined,\n\t\t\thasParallax: undefined,\n\t\t\tisRepeated: undefined,\n\t\t\tuseFeaturedImage: undefined,\n\t\t\tisDark: newIsDark,\n\t\t} );\n\t};\n\n\tconst onSetOverlayColor = async ( newOverlayColor ) => {\n\t\tconst averageBackgroundColor = await getMediaColor( url );\n\t\tconst newIsDark = compositeIsDark(\n\t\t\tdimRatio,\n\t\t\tnewOverlayColor,\n\t\t\taverageBackgroundColor\n\t\t);\n\n\t\tsetOverlayColor( newOverlayColor );\n\n\t\t// Make undo revert the next setAttributes and the previous setOverlayColor.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\n\t\tsetAttributes( {\n\t\t\tisUserOverlayColor: true,\n\t\t\tisDark: newIsDark,\n\t\t} );\n\t};\n\n\tconst onUpdateDimRatio = async ( newDimRatio ) => {\n\t\tconst averageBackgroundColor = await getMediaColor( url );\n\t\tconst newIsDark = compositeIsDark(\n\t\t\tnewDimRatio,\n\t\t\toverlayColor.color,\n\t\t\taverageBackgroundColor\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\tdimRatio: newDimRatio,\n\t\t\tisDark: newIsDark,\n\t\t} );\n\t};\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onSelectEmbedUrl = ( embedUrl ) => {\n\t\t// Only set a new dimRatio if there was no previous media selected\n\t\t// to avoid resetting to 50 if it has been explicitly set to 100.\n\t\tconst newDimRatio =\n\t\t\toriginalUrl === undefined && dimRatio === 100 ? 50 : dimRatio;\n\n\t\t// Set initial attributes with URL\n\t\tsetAttributes( {\n\t\t\turl: embedUrl,\n\t\t\tbackgroundType: EMBED_VIDEO_BACKGROUND_TYPE,\n\t\t\tdimRatio: newDimRatio,\n\t\t\tid: undefined,\n\t\t\tfocalPoint: undefined,\n\t\t\thasParallax: undefined,\n\t\t\tisRepeated: undefined,\n\t\t\tuseFeaturedImage: undefined,\n\t\t} );\n\t};\n\n\t// Fetch embed preview for embed videos\n\tconst { embedPreview, isFetchingEmbed } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( backgroundType !== EMBED_VIDEO_BACKGROUND_TYPE || ! url ) {\n\t\t\t\treturn {\n\t\t\t\t\tembedPreview: undefined,\n\t\t\t\t\tisFetchingEmbed: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getEmbedPreview, isRequestingEmbedPreview } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tembedPreview: getEmbedPreview( url ),\n\t\t\t\tisFetchingEmbed: isRequestingEmbedPreview( url ),\n\t\t\t};\n\t\t},\n\t\t[ url, backgroundType ]\n\t);\n\n\t// Compute embedSrc on-the-fly from embed preview for editor display\n\tconst embedSrc = useMemo( () => {\n\t\tif (\n\t\t\tbackgroundType !== EMBED_VIDEO_BACKGROUND_TYPE ||\n\t\t\t! embedPreview?.html\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Extract iframe src from embed HTML\n\t\tconst iframeSrc = getIframeSrc( embedPreview.html );\n\t\tif ( ! iframeSrc ) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Modify the src to add background video parameters (provider auto-detected)\n\t\treturn getBackgroundVideoSrc( iframeSrc );\n\t}, [ embedPreview, backgroundType ] );\n\n\tconst isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\tconst isEmbedVideoBackground =\n\t\tEMBED_VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tconst [ resizeListener, { height, width } ] = useResizeObserver();\n\tconst resizableBoxDimensions = useMemo( () => {\n\t\treturn {\n\t\t\theight: minHeightUnit === 'px' && minHeight ? minHeight : 'auto',\n\t\t\twidth: 'auto',\n\t\t};\n\t}, [ minHeight, minHeightUnit ] );\n\n\tconst minHeightWithUnit =\n\t\tminHeight && minHeightUnit\n\t\t\t? `${ minHeight }${ minHeightUnit }`\n\t\t\t: minHeight;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\tminHeight: minHeightWithUnit || undefined,\n\t};\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\tconst bgStyle = { backgroundColor: overlayColor.color };\n\tconst mediaStyle = {\n\t\tobjectPosition:\n\t\t\tfocalPoint && isImgElement\n\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t: undefined,\n\t};\n\n\tconst hasBackground = !! ( url || overlayColor.color || gradientValue );\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlock( clientId ).innerBlocks.length >\n\t\t\t0,\n\t\t[ clientId ]\n\t);\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\t// Check for fontSize support before we pass a fontSize attribute to the innerBlocks.\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\tconst hasFontSizes = fontSizes?.length > 0;\n\tconst innerBlocksTemplate = getInnerBlocksTemplate( {\n\t\tfontSize: hasFontSizes ? 'large' : undefined,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t},\n\t\t{\n\t\t\t// Avoid template sync when the `templateLock` value is `all` or `contentOnly`.\n\t\t\t// See: https://github.com/WordPress/gutenberg/pull/45632\n\t\t\ttemplate: ! hasInnerBlocks ? innerBlocksTemplate : undefined,\n\t\t\ttemplateInsertUpdatesSelection: true,\n\t\t\tallowedBlocks,\n\t\t\ttemplateLock,\n\t\t\tdropZoneElement: ref.current,\n\t\t}\n\t);\n\n\tconst mediaElement = useRef();\n\tconst currentSettings = {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\thasInnerBlocks,\n\t\turl,\n\t\tisImgElement,\n\t\toverlayColor,\n\t};\n\n\tconst toggleUseFeaturedImage = async () => {\n\t\tconst newUseFeaturedImage = ! useFeaturedImage;\n\n\t\tconst averageBackgroundColor = newUseFeaturedImage\n\t\t\t? await getMediaColor( mediaUrl )\n\t\t\t: DEFAULT_BACKGROUND_COLOR;\n\n\t\tconst newOverlayColor = ! isUserOverlayColor\n\t\t\t? averageBackgroundColor\n\t\t\t: overlayColor.color;\n\n\t\tif ( ! isUserOverlayColor ) {\n\t\t\tif ( newUseFeaturedImage ) {\n\t\t\t\tsetOverlayColor( newOverlayColor );\n\t\t\t} else {\n\t\t\t\tsetOverlayColor( undefined );\n\t\t\t}\n\n\t\t\t// Make undo revert the next setAttributes and the previous setOverlayColor.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t}\n\n\t\tconst newDimRatio = dimRatio === 100 ? 50 : dimRatio;\n\t\tconst newIsDark = compositeIsDark(\n\t\t\tnewDimRatio,\n\t\t\tnewOverlayColor,\n\t\t\taverageBackgroundColor\n\t\t);\n\n\t\tsetAttributes( {\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tuseFeaturedImage: newUseFeaturedImage,\n\t\t\tdimRatio: newDimRatio,\n\t\t\tbackgroundType: useFeaturedImage\n\t\t\t\t? IMAGE_BACKGROUND_TYPE\n\t\t\t\t: undefined,\n\t\t\tisDark: newIsDark,\n\t\t} );\n\t};\n\n\tconst blockControls = (\n\t\t<CoverBlockControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\tonSelectEmbedUrl={ onSelectEmbedUrl }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tonClearMedia={ onClearMedia }\n\t\t\tblockEditingMode={ blockEditingMode }\n\t\t/>\n\t);\n\n\tconst inspectorControls = (\n\t\t<CoverInspectorControls\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tclientId={ clientId }\n\t\t\tsetOverlayColor={ onSetOverlayColor }\n\t\t\tcoverRef={ ref }\n\t\t\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tupdateDimRatio={ onUpdateDimRatio }\n\t\t\tonClearMedia={ onClearMedia }\n\t\t\tfeaturedImage={ media }\n\t\t/>\n\t);\n\n\tconst resizableCoverProps = {\n\t\tclassName: 'block-library-cover__resize-container',\n\t\tclientId,\n\t\theight,\n\t\tminHeight: minHeightWithUnit,\n\t\tonResizeStart: () => {\n\t\t\tsetAttributes( { minHeightUnit: 'px' } );\n\t\t\ttoggleSelection( false );\n\t\t},\n\t\tonResize: ( value ) => {\n\t\t\tsetAttributes( { minHeight: value } );\n\t\t},\n\t\tonResizeStop: ( newMinHeight ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tsetAttributes( { minHeight: newMinHeight } );\n\t\t},\n\t\t// Hide the resize handle if an aspect ratio is set, as the aspect ratio takes precedence.\n\t\tshowHandle: ! attributes.style?.dimensions?.aspectRatio,\n\t\tsize: resizableBoxDimensions,\n\t\twidth,\n\t};\n\n\tif ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\n\t\t\t\t{ inspectorControls }\n\t\t\t\t{ hasNonContentControls && isSelected && (\n\t\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t\t) }\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\tclassName={ clsx( 'is-placeholder', blockProps.className ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...blockProps.style,\n\t\t\t\t\t\tminHeight: minHeightWithUnit || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ resizeListener }\n\t\t\t\t\t<CoverPlaceholder\n\t\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wp-block-cover__placeholder-background-options\">\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t\tvalue={ overlayColor.color }\n\t\t\t\t\t\t\t\tonChange={ onSetOverlayColor }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tasButtons\n\t\t\t\t\t\t\t\taria-label={ __( 'Overlay color' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CoverPlaceholder>\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst classes = clsx(\n\t\t{\n\t\t\t'is-dark-theme': isDark,\n\t\t\t'is-light': ! isDark,\n\t\t\t'is-transient': isUploadingMedia,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\tconst showOverlay =\n\t\turl || ! useFeaturedImage || ( useFeaturedImage && ! url );\n\n\treturn (\n\t\t<>\n\t\t\t{ blockControls }\n\t\t\t{ inspectorControls }\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( classes, blockProps.className ) }\n\t\t\t\tstyle={ { ...style, ...blockProps.style } }\n\t\t\t\tdata-url={ url }\n\t\t\t>\n\t\t\t\t{ resizeListener }\n\n\t\t\t\t{ ! url && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-cover__image--placeholder-image\"\n\t\t\t\t\t\twithIllustration\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ url &&\n\t\t\t\t\tisImageBackground &&\n\t\t\t\t\t( isImgElement ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\tclassName=\"wp-block-cover__image-background\"\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\t\trole={ alt ? 'img' : undefined }\n\t\t\t\t\t\t\taria-label={ alt ? alt : undefined }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t'wp-block-cover__image-background'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tstyle={ { backgroundImage, backgroundPosition } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ url && isVideoBackground && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\tmuted\n\t\t\t\t\t\tloop\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isEmbedVideoBackground && embedSrc && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={ mediaElement }\n\t\t\t\t\t\tclassName=\"wp-block-cover__video-background wp-block-cover__embed-background\"\n\t\t\t\t\t\tstyle={ mediaStyle }\n\t\t\t\t\t>\n\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\tsrc={ embedSrc }\n\t\t\t\t\t\t\ttitle=\"Background video\"\n\t\t\t\t\t\t\tframeBorder=\"0\"\n\t\t\t\t\t\t\tallow=\"autoplay; fullscreen\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ isEmbedVideoBackground && ! embedSrc && isFetchingEmbed && (\n\t\t\t\t\t<Spinner />\n\t\t\t\t) }\n\n\t\t\t\t{ showOverlay && (\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ { backgroundImage: gradientValue, ...bgStyle } }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\n\n\t\t\t\t<CoverPlaceholder\n\t\t\t\t\tdisableMediaButtons\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</TagName>\n\t\t\t{ hasNonContentControls && isSelected && (\n\t\t\t\t<ResizableCoverPopover { ...resizableCoverProps } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( CoverEdit );\n", "/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\tExternalLink,\n\tFocalPointPicker,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tuseSettings,\n\tstore as blockEditorStore,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\nimport { unlock } from '../../lock-unlock';\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from '../constants';\nimport PosterImage from '../../utils/poster-image';\n\nconst { cleanEmptyObject, ResolutionTool, HTMLElementControl } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction CoverHeightInput( {\n\tonChange,\n\tonUnitChange,\n\tunit = 'px',\n\tvalue = '',\n} ) {\n\tconst instanceId = useInstanceId( UnitControl );\n\tconst inputId = `block-cover-height-input-${ instanceId }`;\n\tconst isPx = unit === 'px';\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem', 'vw', 'vh' ],\n\t\tdefaultValues: { px: 430, '%': 20, em: 20, rem: 20, vw: 20, vh: 50 },\n\t} );\n\n\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== ''\n\t\t\t\t? parseFloat( unprocessedValue )\n\t\t\t\t: undefined;\n\n\t\tif ( isNaN( inputValue ) && inputValue !== undefined ) {\n\t\t\treturn;\n\t\t}\n\t\tonChange( inputValue );\n\t};\n\n\tconst computedValue = useMemo( () => {\n\t\tconst [ parsedQuantity ] = parseQuantityAndUnitFromRawValue( value );\n\t\treturn [ parsedQuantity, unit ].join( '' );\n\t}, [ unit, value ] );\n\n\tconst min = isPx ? COVER_MIN_HEIGHT : 0;\n\n\treturn (\n\t\t<UnitControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\tid={ inputId }\n\t\t\tisResetValueOnUnitChange\n\t\t\tmin={ min }\n\t\t\tonChange={ handleOnChange }\n\t\t\tonUnitChange={ onUnitChange }\n\t\t\tunits={ units }\n\t\t\tvalue={ computedValue }\n\t\t/>\n\t);\n}\nexport default function CoverInspectorControls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tsetOverlayColor,\n\tcoverRef,\n\tcurrentSettings,\n\tupdateDimRatio,\n\tfeaturedImage,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\n\t\tid,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\thasParallax,\n\t\tisRepeated,\n\t\tminHeight,\n\t\tminHeightUnit,\n\t\talt,\n\t\ttagName,\n\t\tposter,\n\t} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst sizeSlug = attributes.sizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst imageSizes = getSettings()?.imageSizes;\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isImageBackground\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t )\n\t\t\t\t: null,\n\t\t[ id, isImageBackground ]\n\t);\n\n\tconst currentBackgroundImage = useFeaturedImage ? featuredImage : image;\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl =\n\t\t\tcurrentBackgroundImage?.media_details?.sizes?.[ newSizeSlug ]\n\t\t\t\t?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tconst imageSizeOptions = imageSizes\n\t\t?.filter(\n\t\t\t( { slug } ) =>\n\t\t\t\tcurrentBackgroundImage?.media_details?.sizes?.[ slug ]\n\t\t\t\t\t?.source_url\n\t\t)\n\t\t?.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\tconst toggleParallax = () => {\n\t\tsetAttributes( {\n\t\t\thasParallax: ! hasParallax,\n\t\t\t...( ! hasParallax ? { focalPoint: undefined } : {} ),\n\t\t} );\n\t};\n\n\tconst toggleIsRepeated = () => {\n\t\tsetAttributes( {\n\t\t\tisRepeated: ! isRepeated,\n\t\t} );\n\t};\n\n\tconst showFocalPointPicker =\n\t\tisVideoBackground ||\n\t\t( isImageBackground && ( ! hasParallax || isRepeated ) );\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst [ styleOfRef, property ] = mediaElement.current\n\t\t\t? [ mediaElement.current.style, 'objectPosition' ]\n\t\t\t: [ coverRef.current.style, 'backgroundPosition' ];\n\t\tstyleOfRef[ property ] = mediaPosition( value );\n\t};\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ ( !! url || useFeaturedImage ) && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\thasParallax: false,\n\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\tisRepeated: false,\n\t\t\t\t\t\t\t\talt: '',\n\t\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tupdateImage( DEFAULT_MEDIA_SIZE_SLUG );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isImageBackground && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t\thasValue={ () => !! hasParallax }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\thasParallax: false,\n\t\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t\t\t\t} )\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\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ !! hasParallax }\n\t\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t\thasValue={ () => isRepeated }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tisRepeated: false,\n\t\t\t\t\t\t\t\t\t\t} )\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\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => !! focalPoint }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: undefined,\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\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\n\t\t\t\t\t\t\t\t\t\t} )\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isVideoBackground && (\n\t\t\t\t\t\t\t<PosterImage\n\t\t\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tposter: posterImage?.url,\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) }\n\t\t\t\t\t\t{ ! useFeaturedImage && url && ! isVideoBackground && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { alt: '' } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\t\t\tonChange={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! imageSizeOptions?.length && (\n\t\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => {\n\t\t\t\t\t\t\t// If there's a media background the dimRatio will be\n\t\t\t\t\t\t\t// defaulted to 50 whereas it will be 100 for colors.\n\t\t\t\t\t\t\treturn dimRatio === undefined\n\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t: dimRatio !== ( url ? 50 : 100 );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\tonDeselect={ () => updateDimRatio( url ? 50 : 100 ) }\n\t\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\t\tdimRatio: url ? 50 : 100,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\t\tonChange={ ( newDimRatio ) =>\n\t\t\t\t\t\t\t\tupdateDimRatio( newDimRatio )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"dimensions\">\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\thasValue={ () => !! minHeight }\n\t\t\t\t\tlabel={ __( 'Minimum height' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<CoverHeightInput\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tattributes?.style?.dimensions?.aspectRatio\n\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t: minHeight\n\t\t\t\t\t\t}\n\t\t\t\t\t\tunit={ minHeightUnit }\n\t\t\t\t\t\tonChange={ ( newMinHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeight: newMinHeight,\n\t\t\t\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\t\t\t\tdimensions: {\n\t\t\t\t\t\t\t\t\t\t...attributes?.style?.dimensions,\n\t\t\t\t\t\t\t\t\t\taspectRatio: undefined, // Reset aspect ratio when minHeight is set.\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}\n\t\t\t\t\t\tonUnitChange={ ( nextUnit ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tminHeightUnit: nextUnit,\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</ToolsPanelItem>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n", "export const DEFAULT_MEDIA_SIZE_SLUG = 'full';\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tBaseControl,\n\tDropZone,\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst POSTER_IMAGE_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction PosterImage( { poster, onChange } ) {\n\tconst posterButtonRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst descriptionId = useInstanceId(\n\t\tPosterImage,\n\t\t'block-library-poster-image-description'\n\t);\n\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onDropFiles = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: POSTER_IMAGE_ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange: ( [ image ] ) => {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonChange( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError: ( message ) => {\n\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\tid: 'poster-image-upload-notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst getPosterButtonContent = () => {\n\t\tif ( ! poster && isLoading ) {\n\t\t\treturn <Spinner />;\n\t\t}\n\n\t\treturn ! poster ? __( 'Set poster image' ) : __( 'Replace' );\n\t};\n\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Poster image' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! poster }\n\t\t\t\tonDeselect={ () => onChange( undefined ) }\n\t\t\t>\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t<MediaUpload\n\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\tonSelect={ onChange }\n\t\t\t\t\tallowedTypes={ POSTER_IMAGE_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t<div className=\"block-library-poster-image__container\">\n\t\t\t\t\t\t\t{ poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t'Edit or replace the poster image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview\"\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\tsrc={ poster }\n\t\t\t\t\t\t\t\t\t\talt={ __( 'Poster image preview' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__preview-image\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'block-library-poster-image__actions-select':\n\t\t\t\t\t\t\t\t\t\t\t! poster,\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\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\tref={ posterButtonRef }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t! poster ? 'secondary' : undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ getPosterButtonContent() }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<p id={ descriptionId } hidden>\n\t\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'The current poster image url is %s.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'There is no poster image currently selected.'\n\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\n\t\t\t\t\t\t\t\t\t\t\t// Move focus back to the Media Upload button.\n\t\t\t\t\t\t\t\t\t\t\tposterButtonRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-poster-image__action\"\n\t\t\t\t\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</MediaUploadCheck>\n\t);\n}\n\nexport default PosterImage;\n", "/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\nimport {\n\tBlockControls,\n\tMediaReplaceFlow,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { link } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\nimport { unlock } from '../../lock-unlock';\nimport EmbedVideoUrlInput from './embed-video-url-input';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport default function CoverBlockControls( {\n\tattributes,\n\tsetAttributes,\n\tonSelectMedia,\n\tcurrentSettings,\n\ttoggleUseFeaturedImage,\n\tonClearMedia,\n\tonSelectEmbedUrl,\n\tblockEditingMode,\n} ) {\n\tconst { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } =\n\t\tattributes;\n\tconst { hasInnerBlocks, url } = currentSettings;\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] =\n\t\tuseState( minHeightUnit );\n\tconst [ isEmbedUrlInputOpen, setIsEmbedUrlInputOpen ] = useState( false );\n\tconst isMinFullHeight =\n\t\tminHeightUnit === 'vh' &&\n\t\tminHeight === 100 &&\n\t\t! attributes?.style?.dimensions?.aspectRatio;\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height, and clear any aspect ratio value.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...attributes?.style,\n\t\t\t\tdimensions: {\n\t\t\t\t\t...attributes?.style?.dimensions,\n\t\t\t\t\taspectRatio: undefined, // Reset aspect ratio when minHeight is set.\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isContentOnlyMode && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\t\tname={ ! url ? __( 'Add media' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ onClearMedia }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEmbedUrlInputOpen( true );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Embed video from URL' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t</BlockControls>\n\t\t\t{ isEmbedUrlInputOpen && (\n\t\t\t\t<EmbedVideoUrlInput\n\t\t\t\t\tonSubmit={ ( embedUrl ) => {\n\t\t\t\t\t\tonSelectEmbedUrl( embedUrl );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => setIsEmbedUrlInputOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tNotice,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isValidVideoEmbedUrl } from '../embed-video-utils';\n\nexport default function EmbedVideoUrlInput( { onSubmit, onClose } ) {\n\tconst [ url, setUrl ] = useState( '' );\n\tconst [ error, setError ] = useState( '' );\n\n\tconst handleConfirm = () => {\n\t\tif ( ! url ) {\n\t\t\tsetError( __( 'Please enter a URL.' ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isValidVideoEmbedUrl( url ) ) {\n\t\t\tsetError(\n\t\t\t\t__(\n\t\t\t\t\t'This URL is not supported. Please enter a valid video link from a supported provider.'\n\t\t\t\t)\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tonSubmit( url );\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tonCancel={ onClose }\n\t\t\tconfirmButtonText={ __( 'Add video' ) }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t{ error && (\n\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t{ error }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Video URL' ) }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetUrl( value );\n\t\t\t\t\t\tsetError( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t'Enter YouTube, Vimeo, or other video URL'\n\t\t\t\t\t) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Add a background video to the cover block that will autoplay in a loop.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</ConfirmDialog>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { getBlockVariations } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { matchesPatterns } from '../embed/util';\n\nconst DEFAULT_EMBED_BLOCK = 'core/embed';\n\n// List of supported video providers for cover block backgrounds\nconst VIDEO_PROVIDERS = [\n\t'youtube',\n\t'vimeo',\n\t'videopress',\n\t'animoto',\n\t'tiktok',\n\t'wordpress-tv',\n];\n\n/**\n * Checks if a URL is a valid video embed URL from supported providers.\n *\n * @param {string} url The URL to validate.\n * @return {boolean} True if the URL matches a supported video provider pattern.\n */\nexport function isValidVideoEmbedUrl( url ) {\n\tif ( ! url ) {\n\t\treturn false;\n\t}\n\n\tconst embedBlock = findVideoEmbedProvider( url );\n\treturn embedBlock !== null;\n}\n\n/**\n * Finds the embed provider for a given URL if it's a supported video provider.\n *\n * @param {string} url The URL to check.\n * @return {string|null} The provider name slug (e.g., 'youtube') or null if not found.\n */\nexport function getVideoEmbedProvider( url ) {\n\tconst embedBlock = findVideoEmbedProvider( url );\n\treturn embedBlock ? embedBlock.name : null;\n}\n\n/**\n * Finds a matching video embed block variation for the given URL.\n *\n * @param {string} url The URL to match against provider patterns.\n * @return {Object|null} The matching block variation or null if not found.\n */\nfunction findVideoEmbedProvider( url ) {\n\tconst embedVariations = getBlockVariations( DEFAULT_EMBED_BLOCK );\n\n\tif ( ! embedVariations ) {\n\t\treturn null;\n\t}\n\n\tconst matchingVariation = embedVariations.find( ( { patterns } ) =>\n\t\tmatchesPatterns( url, patterns )\n\t);\n\n\tif (\n\t\t! matchingVariation ||\n\t\t! VIDEO_PROVIDERS.includes( matchingVariation.name )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn matchingVariation;\n}\n\n/**\n * Extracts iframe src from embed HTML.\n *\n * @param {string} html The embed HTML.\n * @return {string|null} The iframe src URL or null if not found.\n */\nexport function getIframeSrc( html ) {\n\tif ( ! html ) {\n\t\treturn null;\n\t}\n\n\tconst srcMatch = html.match( /src=[\"']([^\"']+)[\"']/ );\n\treturn srcMatch ? srcMatch[ 1 ] : null;\n}\n\n/**\n * Detects the video provider from an iframe src URL.\n *\n * @param {string} src The iframe src URL.\n * @return {string|null} The provider name slug or null if not recognized.\n */\nexport function detectProviderFromSrc( src ) {\n\tif ( ! src ) {\n\t\treturn null;\n\t}\n\n\tconst lowerSrc = src.toLowerCase();\n\n\tif (\n\t\tlowerSrc.includes( 'youtube.com' ) ||\n\t\tlowerSrc.includes( 'youtu.be' )\n\t) {\n\t\treturn 'youtube';\n\t}\n\tif ( lowerSrc.includes( 'vimeo.com' ) ) {\n\t\treturn 'vimeo';\n\t}\n\tif ( lowerSrc.includes( 'videopress.com' ) ) {\n\t\treturn 'videopress';\n\t}\n\tif ( lowerSrc.includes( 'animoto.com' ) ) {\n\t\treturn 'animoto';\n\t}\n\tif ( lowerSrc.includes( 'tiktok.com' ) ) {\n\t\treturn 'tiktok';\n\t}\n\tif ( lowerSrc.includes( 'wordpress.tv' ) ) {\n\t\treturn 'wordpress-tv';\n\t}\n\n\treturn null;\n}\n\n/**\n * Modifies an iframe src URL to add background video parameters.\n * Automatically detects the provider from the URL.\n *\n * @param {string} src The iframe src URL.\n * @return {string} The modified URL.\n */\nexport function getBackgroundVideoSrc( src ) {\n\tif ( ! src ) {\n\t\treturn src;\n\t}\n\n\ttry {\n\t\tconst url = new URL( src );\n\n\t\t// Detect provider from the iframe src URL\n\t\tconst provider = detectProviderFromSrc( src );\n\n\t\t// Add provider-specific parameters for background video behavior\n\t\tswitch ( provider ) {\n\t\t\tcase 'youtube':\n\t\t\t\t// YouTube parameters for background video\n\t\t\t\turl.searchParams.set( 'autoplay', '1' );\n\t\t\t\turl.searchParams.set( 'mute', '1' );\n\t\t\t\turl.searchParams.set( 'loop', '1' );\n\t\t\t\turl.searchParams.set( 'controls', '0' );\n\t\t\t\turl.searchParams.set( 'showinfo', '0' );\n\t\t\t\turl.searchParams.set( 'modestbranding', '1' );\n\t\t\t\turl.searchParams.set( 'playsinline', '1' );\n\t\t\t\turl.searchParams.set( 'rel', '0' );\n\t\t\t\t// For loop to work, we need the playlist parameter\n\t\t\t\tconst videoId = url.pathname.split( '/' ).pop();\n\t\t\t\tif ( videoId ) {\n\t\t\t\t\turl.searchParams.set( 'playlist', videoId );\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'vimeo':\n\t\t\t\t// Vimeo parameters for background video\n\t\t\t\turl.searchParams.set( 'autoplay', '1' );\n\t\t\t\turl.searchParams.set( 'muted', '1' );\n\t\t\t\turl.searchParams.set( 'loop', '1' );\n\t\t\t\turl.searchParams.set( 'background', '1' );\n\t\t\t\turl.searchParams.set( 'controls', '0' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'videopress':\n\t\t\tcase 'wordpress-tv':\n\t\t\t\t// VideoPress parameters\n\t\t\t\turl.searchParams.set( 'autoplay', '1' );\n\t\t\t\turl.searchParams.set( 'loop', '1' );\n\t\t\t\turl.searchParams.set( 'muted', '1' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\t// Generic parameters that might work for other providers\n\t\t\t\turl.searchParams.set( 'autoplay', '1' );\n\t\t\t\turl.searchParams.set( 'muted', '1' );\n\t\t\t\turl.searchParams.set( 'loop', '1' );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn url.toString();\n\t} catch ( error ) {\n\t\t// If URL parsing fails, return original src\n\t\treturn src;\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { BlockIcon, MediaPlaceholder } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\n\nexport default function CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tonSelectMedia,\n\tonError,\n\tstyle,\n\ttoggleUseFeaturedImage,\n} ) {\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tonError={ onError }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nconst { ResizableBoxPopover } = unlock( blockEditorPrivateApis );\n\nexport default function ResizableCoverPopover( {\n\tclassName,\n\theight,\n\tminHeight,\n\tonResize,\n\tonResizeStart,\n\tonResizeStop,\n\tshowHandle,\n\tsize,\n\twidth,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\n\tconst resizableBoxProps = {\n\t\tclassName: clsx( className, { 'is-resizing': isResizing } ),\n\t\tenable: RESIZABLE_BOX_ENABLE_OPTION,\n\t\tonResizeStart: ( _event, _direction, elt ) => {\n\t\t\tonResizeStart( elt.clientHeight );\n\t\t\tonResize( elt.clientHeight );\n\t\t},\n\t\tonResize: ( _event, _direction, elt ) => {\n\t\t\tonResize( elt.clientHeight );\n\t\t\tif ( ! isResizing ) {\n\t\t\t\tsetIsResizing( true );\n\t\t\t}\n\t\t},\n\t\tonResizeStop: ( _event, _direction, elt ) => {\n\t\t\tonResizeStop( elt.clientHeight );\n\t\t\tsetIsResizing( false );\n\t\t},\n\t\tshowHandle,\n\t\tsize,\n\t\t__experimentalShowTooltip: true,\n\t\t__experimentalTooltipProps: {\n\t\t\taxis: 'y',\n\t\t\tposition: 'bottom',\n\t\t\tisVisible: isResizing,\n\t\t},\n\t};\n\n\treturn (\n\t\t<ResizableBoxPopover\n\t\t\tclassName=\"block-library-cover__resizable-box-popover\"\n\t\t\tresizableBoxProps={ resizableBoxProps }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?\"0\"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,p=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s+([+-]?\\d*\\.?\\d+)%\\s+([+-]?\\d*\\.?\\d+)%\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,v=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,m=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},\"hex\"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},\"rgb\"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u=\"deg\"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},\"hsl\"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},\"rgb\"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},\"hsl\"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},\"hsv\"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return\"string\"==typeof r?N(r.trim(),y.string):\"object\"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):\"\",\"#\"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?\"rgba(\"+t+\", \"+n+\", \"+e+\", \"+u+\")\":\"rgb(\"+t+\", \"+n+\", \"+e+\")\";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?\"hsla(\"+t+\", \"+n+\"%, \"+e+\"%, \"+u+\")\":\"hsl(\"+t+\", \"+n+\"%, \"+e+\"%)\";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return\"number\"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return\"number\"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};export{j as Colord,w as colord,k as extend,I as getFormat,E as random};\n", "export default function(e,f){var a={white:\"#ffffff\",bisque:\"#ffe4c4\",blue:\"#0000ff\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",azure:\"#f0ffff\",whitesmoke:\"#f5f5f5\",papayawhip:\"#ffefd5\",plum:\"#dda0dd\",blanchedalmond:\"#ffebcd\",black:\"#000000\",gold:\"#ffd700\",goldenrod:\"#daa520\",gainsboro:\"#dcdcdc\",cornsilk:\"#fff8dc\",cornflowerblue:\"#6495ed\",burlywood:\"#deb887\",aquamarine:\"#7fffd4\",beige:\"#f5f5dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkkhaki:\"#bdb76b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",peachpuff:\"#ffdab9\",darkmagenta:\"#8b008b\",darkred:\"#8b0000\",darkorchid:\"#9932cc\",darkorange:\"#ff8c00\",darkslateblue:\"#483d8b\",gray:\"#808080\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",wheat:\"#f5deb3\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",ghostwhite:\"#f8f8ff\",darkviolet:\"#9400d3\",magenta:\"#ff00ff\",green:\"#008000\",dodgerblue:\"#1e90ff\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",blueviolet:\"#8a2be2\",forestgreen:\"#228b22\",lawngreen:\"#7cfc00\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",fuchsia:\"#ff00ff\",brown:\"#a52a2a\",maroon:\"#800000\",mediumblue:\"#0000cd\",lightcoral:\"#f08080\",darkturquoise:\"#00ced1\",lightcyan:\"#e0ffff\",ivory:\"#fffff0\",lightyellow:\"#ffffe0\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",linen:\"#faf0e6\",mediumaquamarine:\"#66cdaa\",lemonchiffon:\"#fffacd\",lime:\"#00ff00\",khaki:\"#f0e68c\",mediumseagreen:\"#3cb371\",limegreen:\"#32cd32\",mediumspringgreen:\"#00fa9a\",lightskyblue:\"#87cefa\",lightblue:\"#add8e6\",midnightblue:\"#191970\",lightpink:\"#ffb6c1\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",mintcream:\"#f5fffa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",navajowhite:\"#ffdead\",navy:\"#000080\",mediumvioletred:\"#c71585\",powderblue:\"#b0e0e6\",palegoldenrod:\"#eee8aa\",oldlace:\"#fdf5e6\",paleturquoise:\"#afeeee\",mediumturquoise:\"#48d1cc\",mediumorchid:\"#ba55d3\",rebeccapurple:\"#663399\",lightsteelblue:\"#b0c4de\",mediumslateblue:\"#7b68ee\",thistle:\"#d8bfd8\",tan:\"#d2b48c\",orchid:\"#da70d6\",mediumpurple:\"#9370db\",purple:\"#800080\",pink:\"#ffc0cb\",skyblue:\"#87ceeb\",springgreen:\"#00ff7f\",palegreen:\"#98fb98\",red:\"#ff0000\",yellow:\"#ffff00\",slateblue:\"#6a5acd\",lavenderblush:\"#fff0f5\",peru:\"#cd853f\",palevioletred:\"#db7093\",violet:\"#ee82ee\",teal:\"#008080\",slategray:\"#708090\",slategrey:\"#708090\",aliceblue:\"#f0f8ff\",darkseagreen:\"#8fbc8f\",darkolivegreen:\"#556b2f\",greenyellow:\"#adff2f\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",tomato:\"#ff6347\",silver:\"#c0c0c0\",sienna:\"#a0522d\",lavender:\"#e6e6fa\",lightgreen:\"#90ee90\",orange:\"#ffa500\",orangered:\"#ff4500\",steelblue:\"#4682b4\",royalblue:\"#4169e1\",turquoise:\"#40e0d0\",yellowgreen:\"#9acd32\",salmon:\"#fa8072\",saddlebrown:\"#8b4513\",sandybrown:\"#f4a460\",rosybrown:\"#bc8f8f\",darksalmon:\"#e9967a\",lightgoldenrodyellow:\"#fafad2\",snow:\"#fffafa\",lightgrey:\"#d3d3d3\",lightgray:\"#d3d3d3\",dimgray:\"#696969\",dimgrey:\"#696969\",olivedrab:\"#6b8e23\",olive:\"#808000\"},r={};for(var d in a)r[a[d]]=d;var l={};e.prototype.toName=function(f){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return\"transparent\";var d,i,n=r[this.toHex()];if(n)return n;if(null==f?void 0:f.closest){var o=this.toRgb(),t=1/0,b=\"black\";if(!l.length)for(var c in a)l[c]=new e(a[c]).toRgb();for(var g in a){var u=(d=o,i=l[g],Math.pow(d.r-i.r,2)+Math.pow(d.g-i.g,2)+Math.pow(d.b-i.b,2));u<t&&(t=u,b=g)}return b}};f.string.push([function(f){var r=f.toLowerCase(),d=\"transparent\"===r?\"#0000\":a[r];return d?new e(d).toRgb():null},\"name\"])}\n", "/*! Fast Average Color | \u00A9 2022 Denis Seleznev | MIT License | https://github.com/fast-average-color/fast-average-color */\nfunction toHex(num) {\n var str = num.toString(16);\n return str.length === 1 ? '0' + str : str;\n}\nfunction arrayToHex(arr) {\n return '#' + arr.map(toHex).join('');\n}\nfunction isDark(color) {\n // http://www.w3.org/TR/AERT#color-contrast\n var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;\n return result < 128;\n}\nfunction prepareIgnoredColor(color) {\n if (!color) {\n return [];\n }\n return isRGBArray(color) ? color : [color];\n}\nfunction isRGBArray(value) {\n return Array.isArray(value[0]);\n}\nfunction isIgnoredColor(data, index, ignoredColor) {\n for (var i = 0; i < ignoredColor.length; i++) {\n if (isIgnoredColorAsNumbers(data, index, ignoredColor[i])) {\n return true;\n }\n }\n return false;\n}\nfunction isIgnoredColorAsNumbers(data, index, ignoredColor) {\n switch (ignoredColor.length) {\n case 3:\n // [red, green, blue]\n if (isIgnoredRGBColor(data, index, ignoredColor)) {\n return true;\n }\n break;\n case 4:\n // [red, green, blue, alpha]\n if (isIgnoredRGBAColor(data, index, ignoredColor)) {\n return true;\n }\n break;\n case 5:\n // [red, green, blue, alpha, threshold]\n if (isIgnoredRGBAColorWithThreshold(data, index, ignoredColor)) {\n return true;\n }\n break;\n default:\n return false;\n }\n}\nfunction isIgnoredRGBColor(data, index, ignoredColor) {\n // Ignore if the pixel are transparent.\n if (data[index + 3] !== 255) {\n return true;\n }\n if (data[index] === ignoredColor[0] &&\n data[index + 1] === ignoredColor[1] &&\n data[index + 2] === ignoredColor[2]) {\n return true;\n }\n return false;\n}\nfunction isIgnoredRGBAColor(data, index, ignoredColor) {\n if (data[index + 3] && ignoredColor[3]) {\n return data[index] === ignoredColor[0] &&\n data[index + 1] === ignoredColor[1] &&\n data[index + 2] === ignoredColor[2] &&\n data[index + 3] === ignoredColor[3];\n }\n // Ignore rgb components if the pixel are fully transparent.\n return data[index + 3] === ignoredColor[3];\n}\nfunction inRange(colorComponent, ignoredColorComponent, value) {\n return colorComponent >= (ignoredColorComponent - value) &&\n colorComponent <= (ignoredColorComponent + value);\n}\nfunction isIgnoredRGBAColorWithThreshold(data, index, ignoredColor) {\n var redIgnored = ignoredColor[0];\n var greenIgnored = ignoredColor[1];\n var blueIgnored = ignoredColor[2];\n var alphaIgnored = ignoredColor[3];\n var threshold = ignoredColor[4];\n var alphaData = data[index + 3];\n var alphaInRange = inRange(alphaData, alphaIgnored, threshold);\n if (!alphaIgnored) {\n return alphaInRange;\n }\n if (!alphaData && alphaInRange) {\n return true;\n }\n if (inRange(data[index], redIgnored, threshold) &&\n inRange(data[index + 1], greenIgnored, threshold) &&\n inRange(data[index + 2], blueIgnored, threshold) &&\n alphaInRange) {\n return true;\n }\n return false;\n}\n\nfunction dominantAlgorithm(arr, len, options) {\n var colorHash = {};\n var divider = 24;\n var ignoredColor = options.ignoredColor;\n var step = options.step;\n var max = [0, 0, 0, 0, 0];\n for (var i = 0; i < len; i += step) {\n var red = arr[i];\n var green = arr[i + 1];\n var blue = arr[i + 2];\n var alpha = arr[i + 3];\n if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {\n continue;\n }\n var key = Math.round(red / divider) + ',' +\n Math.round(green / divider) + ',' +\n Math.round(blue / divider);\n if (colorHash[key]) {\n colorHash[key] = [\n colorHash[key][0] + red * alpha,\n colorHash[key][1] + green * alpha,\n colorHash[key][2] + blue * alpha,\n colorHash[key][3] + alpha,\n colorHash[key][4] + 1\n ];\n }\n else {\n colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];\n }\n if (max[4] < colorHash[key][4]) {\n max = colorHash[key];\n }\n }\n var redTotal = max[0];\n var greenTotal = max[1];\n var blueTotal = max[2];\n var alphaTotal = max[3];\n var count = max[4];\n return alphaTotal ? [\n Math.round(redTotal / alphaTotal),\n Math.round(greenTotal / alphaTotal),\n Math.round(blueTotal / alphaTotal),\n Math.round(alphaTotal / count)\n ] : options.defaultColor;\n}\n\nfunction simpleAlgorithm(arr, len, options) {\n var redTotal = 0;\n var greenTotal = 0;\n var blueTotal = 0;\n var alphaTotal = 0;\n var count = 0;\n var ignoredColor = options.ignoredColor;\n var step = options.step;\n for (var i = 0; i < len; i += step) {\n var alpha = arr[i + 3];\n var red = arr[i] * alpha;\n var green = arr[i + 1] * alpha;\n var blue = arr[i + 2] * alpha;\n if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {\n continue;\n }\n redTotal += red;\n greenTotal += green;\n blueTotal += blue;\n alphaTotal += alpha;\n count++;\n }\n return alphaTotal ? [\n Math.round(redTotal / alphaTotal),\n Math.round(greenTotal / alphaTotal),\n Math.round(blueTotal / alphaTotal),\n Math.round(alphaTotal / count)\n ] : options.defaultColor;\n}\n\nfunction sqrtAlgorithm(arr, len, options) {\n var redTotal = 0;\n var greenTotal = 0;\n var blueTotal = 0;\n var alphaTotal = 0;\n var count = 0;\n var ignoredColor = options.ignoredColor;\n var step = options.step;\n for (var i = 0; i < len; i += step) {\n var red = arr[i];\n var green = arr[i + 1];\n var blue = arr[i + 2];\n var alpha = arr[i + 3];\n if (ignoredColor && isIgnoredColor(arr, i, ignoredColor)) {\n continue;\n }\n redTotal += red * red * alpha;\n greenTotal += green * green * alpha;\n blueTotal += blue * blue * alpha;\n alphaTotal += alpha;\n count++;\n }\n return alphaTotal ? [\n Math.round(Math.sqrt(redTotal / alphaTotal)),\n Math.round(Math.sqrt(greenTotal / alphaTotal)),\n Math.round(Math.sqrt(blueTotal / alphaTotal)),\n Math.round(alphaTotal / count)\n ] : options.defaultColor;\n}\n\nfunction getDefaultColor(options) {\n return getOption(options, 'defaultColor', [0, 0, 0, 0]);\n}\nfunction getOption(options, name, defaultValue) {\n return (options[name] === undefined ? defaultValue : options[name]);\n}\n\nvar MIN_SIZE = 10;\nvar MAX_SIZE = 100;\nfunction isSvg(filename) {\n return filename.search(/\\.svg(\\?|$)/i) !== -1;\n}\nfunction getOriginalSize(resource) {\n if (isInstanceOfHTMLImageElement(resource)) {\n var width = resource.naturalWidth;\n var height = resource.naturalHeight;\n // For SVG images with only viewBox attribute\n if (!resource.naturalWidth && isSvg(resource.src)) {\n width = height = MAX_SIZE;\n }\n return {\n width: width,\n height: height,\n };\n }\n if (isInstanceOfHTMLVideoElement(resource)) {\n return {\n width: resource.videoWidth,\n height: resource.videoHeight\n };\n }\n return {\n width: resource.width,\n height: resource.height\n };\n}\nfunction getSrc(resource) {\n if (isInstanceOfHTMLCanvasElement(resource)) {\n return 'canvas';\n }\n if (isInstanceOfOffscreenCanvas(resource)) {\n return 'offscreencanvas';\n }\n if (isInstanceOfImageBitmap(resource)) {\n return 'imagebitmap';\n }\n return resource.src;\n}\nfunction isInstanceOfHTMLImageElement(resource) {\n return typeof HTMLImageElement !== 'undefined' && resource instanceof HTMLImageElement;\n}\nfunction isInstanceOfOffscreenCanvas(resource) {\n return typeof OffscreenCanvas !== 'undefined' && resource instanceof OffscreenCanvas;\n}\nfunction isInstanceOfHTMLVideoElement(resource) {\n return typeof HTMLVideoElement !== 'undefined' && resource instanceof HTMLVideoElement;\n}\nfunction isInstanceOfHTMLCanvasElement(resource) {\n return typeof HTMLCanvasElement !== 'undefined' && resource instanceof HTMLCanvasElement;\n}\nfunction isInstanceOfImageBitmap(resource) {\n return typeof ImageBitmap !== 'undefined' && resource instanceof ImageBitmap;\n}\nfunction prepareSizeAndPosition(originalSize, options) {\n var srcLeft = getOption(options, 'left', 0);\n var srcTop = getOption(options, 'top', 0);\n var srcWidth = getOption(options, 'width', originalSize.width);\n var srcHeight = getOption(options, 'height', originalSize.height);\n var destWidth = srcWidth;\n var destHeight = srcHeight;\n if (options.mode === 'precision') {\n return {\n srcLeft: srcLeft,\n srcTop: srcTop,\n srcWidth: srcWidth,\n srcHeight: srcHeight,\n destWidth: destWidth,\n destHeight: destHeight\n };\n }\n var factor;\n if (srcWidth > srcHeight) {\n factor = srcWidth / srcHeight;\n destWidth = MAX_SIZE;\n destHeight = Math.round(destWidth / factor);\n }\n else {\n factor = srcHeight / srcWidth;\n destHeight = MAX_SIZE;\n destWidth = Math.round(destHeight / factor);\n }\n if (destWidth > srcWidth || destHeight > srcHeight ||\n destWidth < MIN_SIZE || destHeight < MIN_SIZE) {\n destWidth = srcWidth;\n destHeight = srcHeight;\n }\n return {\n srcLeft: srcLeft,\n srcTop: srcTop,\n srcWidth: srcWidth,\n srcHeight: srcHeight,\n destWidth: destWidth,\n destHeight: destHeight\n };\n}\nvar isWebWorkers = typeof window === 'undefined';\nfunction makeCanvas() {\n return isWebWorkers ?\n new OffscreenCanvas(1, 1) :\n document.createElement('canvas');\n}\n\nvar ERROR_PREFIX = 'FastAverageColor: ';\nfunction outputError(message, silent, error) {\n if (!silent) {\n console.error(ERROR_PREFIX + message);\n if (error) {\n console.error(error);\n }\n }\n}\nfunction getError(text) {\n return Error(ERROR_PREFIX + text);\n}\n\nvar FastAverageColor = /** @class */ (function () {\n function FastAverageColor() {\n this.canvas = null;\n this.ctx = null;\n }\n /**\n * Get asynchronously the average color from not loaded image.\n */\n FastAverageColor.prototype.getColorAsync = function (resource, options) {\n if (!resource) {\n return Promise.reject(getError('call .getColorAsync() without resource.'));\n }\n if (typeof resource === 'string') {\n // Web workers\n if (typeof Image === 'undefined') {\n return Promise.reject(getError('resource as string is not supported in this environment'));\n }\n var img = new Image();\n img.crossOrigin = options && options.crossOrigin || '';\n img.src = resource;\n return this.bindImageEvents(img, options);\n }\n else if (isInstanceOfHTMLImageElement(resource) && !resource.complete) {\n return this.bindImageEvents(resource, options);\n }\n else {\n var result = this.getColor(resource, options);\n return result.error ? Promise.reject(result.error) : Promise.resolve(result);\n }\n };\n /**\n * Get the average color from images, videos and canvas.\n */\n FastAverageColor.prototype.getColor = function (resource, options) {\n options = options || {};\n var defaultColor = getDefaultColor(options);\n if (!resource) {\n outputError('call .getColor(null) without resource', options.silent);\n return this.prepareResult(defaultColor);\n }\n var originalSize = getOriginalSize(resource);\n var size = prepareSizeAndPosition(originalSize, options);\n if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {\n outputError(\"incorrect sizes for resource \\\"\".concat(getSrc(resource), \"\\\"\"), options.silent);\n return this.prepareResult(defaultColor);\n }\n if (!this.canvas) {\n this.canvas = makeCanvas();\n }\n if (!this.ctx) {\n this.ctx = this.canvas.getContext && this.canvas.getContext('2d');\n if (!this.ctx) {\n outputError('Canvas Context 2D is not supported in this browser', options.silent);\n return this.prepareResult(defaultColor);\n }\n }\n this.canvas.width = size.destWidth;\n this.canvas.height = size.destHeight;\n var value = defaultColor;\n try {\n this.ctx.clearRect(0, 0, size.destWidth, size.destHeight);\n this.ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);\n var bitmapData = this.ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;\n value = this.getColorFromArray4(bitmapData, options);\n }\n catch (e) {\n outputError(\"security error (CORS) for resource \".concat(getSrc(resource), \".\\nDetails: https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image\"), options.silent, e);\n }\n return this.prepareResult(value);\n };\n /**\n * Get the average color from a array when 1 pixel is 4 bytes.\n */\n FastAverageColor.prototype.getColorFromArray4 = function (arr, options) {\n options = options || {};\n var bytesPerPixel = 4;\n var arrLength = arr.length;\n var defaultColor = getDefaultColor(options);\n if (arrLength < bytesPerPixel) {\n return defaultColor;\n }\n var len = arrLength - arrLength % bytesPerPixel;\n var step = (options.step || 1) * bytesPerPixel;\n var algorithm;\n switch (options.algorithm || 'sqrt') {\n case 'simple':\n algorithm = simpleAlgorithm;\n break;\n case 'sqrt':\n algorithm = sqrtAlgorithm;\n break;\n case 'dominant':\n algorithm = dominantAlgorithm;\n break;\n default:\n throw getError(\"\".concat(options.algorithm, \" is unknown algorithm\"));\n }\n return algorithm(arr, len, {\n defaultColor: defaultColor,\n ignoredColor: prepareIgnoredColor(options.ignoredColor),\n step: step\n });\n };\n /**\n * Get color data from value ([r, g, b, a]).\n */\n FastAverageColor.prototype.prepareResult = function (value) {\n var rgb = value.slice(0, 3);\n var rgba = [value[0], value[1], value[2], value[3] / 255];\n var isDarkColor = isDark(value);\n return {\n value: [value[0], value[1], value[2], value[3]],\n rgb: 'rgb(' + rgb.join(',') + ')',\n rgba: 'rgba(' + rgba.join(',') + ')',\n hex: arrayToHex(rgb),\n hexa: arrayToHex(value),\n isDark: isDarkColor,\n isLight: !isDarkColor\n };\n };\n /**\n * Destroy the instance.\n */\n FastAverageColor.prototype.destroy = function () {\n if (this.canvas) {\n this.canvas.width = 1;\n this.canvas.height = 1;\n this.canvas = null;\n }\n this.ctx = null;\n };\n FastAverageColor.prototype.bindImageEvents = function (resource, options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var onload = function () {\n unbindEvents();\n var result = _this.getColor(resource, options);\n if (result.error) {\n reject(result.error);\n }\n else {\n resolve(result);\n }\n };\n var onerror = function () {\n unbindEvents();\n reject(getError(\"Error loading image \\\"\".concat(resource.src, \"\\\".\")));\n };\n var onabort = function () {\n unbindEvents();\n reject(getError(\"Image \\\"\".concat(resource.src, \"\\\" loading aborted\")));\n };\n var unbindEvents = function () {\n resource.removeEventListener('load', onload);\n resource.removeEventListener('error', onerror);\n resource.removeEventListener('abort', onabort);\n };\n resource.addEventListener('load', onload);\n resource.addEventListener('error', onerror);\n resource.addEventListener('abort', onabort);\n });\n };\n return FastAverageColor;\n}());\n\nexport { FastAverageColor };\n", "/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport { FastAverageColor } from 'fast-average-color';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * @typedef {import('colord').RgbaColor} RgbaColor\n */\n\nextend( [ namesPlugin ] );\n\n/**\n * Fallback color when the average color can't be computed. The image may be\n * rendering as transparent, and most sites have a light color background.\n */\nexport const DEFAULT_BACKGROUND_COLOR = '#FFF';\n\n/**\n * Default dim color specified in style.css.\n */\nexport const DEFAULT_OVERLAY_COLOR = '#000';\n\n/**\n * Performs a Porter Duff composite source over operation on two rgba colors.\n *\n * @see {@link https://www.w3.org/TR/compositing-1/#porterduffcompositingoperators_srcover}\n *\n * @param {RgbaColor} source Source color.\n * @param {RgbaColor} dest Destination color.\n *\n * @return {RgbaColor} Composite color.\n */\nexport function compositeSourceOver( source, dest ) {\n\treturn {\n\t\tr: source.r * source.a + dest.r * dest.a * ( 1 - source.a ),\n\t\tg: source.g * source.a + dest.g * dest.a * ( 1 - source.a ),\n\t\tb: source.b * source.a + dest.b * dest.a * ( 1 - source.a ),\n\t\ta: source.a + dest.a * ( 1 - source.a ),\n\t};\n}\n\n/**\n * Retrieves the FastAverageColor singleton.\n *\n * @return {FastAverageColor} The FastAverageColor singleton.\n */\nexport function retrieveFastAverageColor() {\n\tif ( ! retrieveFastAverageColor.fastAverageColor ) {\n\t\tretrieveFastAverageColor.fastAverageColor = new FastAverageColor();\n\t}\n\treturn retrieveFastAverageColor.fastAverageColor;\n}\n\n/**\n * Computes the average color of an image.\n *\n * @param {string} url The url of the image.\n *\n * @return {Promise<string>} Promise of an average color as a hex string.\n */\nexport const getMediaColor = memoize( async ( url ) => {\n\tif ( ! url ) {\n\t\treturn DEFAULT_BACKGROUND_COLOR;\n\t}\n\n\t// making the default color rgb for compat with FAC\n\tconst { r, g, b, a } = colord( DEFAULT_BACKGROUND_COLOR ).toRgb();\n\n\ttry {\n\t\tconst imgCrossOrigin = applyFilters(\n\t\t\t'media.crossOrigin',\n\t\t\tundefined,\n\t\t\turl\n\t\t);\n\t\tconst color = await retrieveFastAverageColor().getColorAsync( url, {\n\t\t\t// The default color is white, which is the color\n\t\t\t// that is returned if there's an error.\n\t\t\t// colord returns alpga 0-1, FAC needs 0-255\n\t\t\tdefaultColor: [ r, g, b, a * 255 ],\n\t\t\t// Errors that come up don't reject the promise,\n\t\t\t// so error logging has to be silenced\n\t\t\t// with this option.\n\t\t\tsilent: process.env.NODE_ENV === 'production',\n\t\t\tcrossOrigin: imgCrossOrigin,\n\t\t} );\n\t\treturn color.hex;\n\t} catch ( error ) {\n\t\t// If there's an error return the fallback color.\n\t\treturn DEFAULT_BACKGROUND_COLOR;\n\t}\n} );\n\n/**\n * Computes if the color combination of the overlay and background color is dark.\n *\n * @param {number} dimRatio Opacity of the overlay between 0 and 100.\n * @param {string} overlayColor CSS color string for the overlay.\n * @param {string} backgroundColor CSS color string for the background.\n *\n * @return {boolean} true if the color combination composite result is dark.\n */\nexport function compositeIsDark( dimRatio, overlayColor, backgroundColor ) {\n\t// Opacity doesn't matter if you're overlaying the same color on top of itself.\n\t// And background doesn't matter when overlay is fully opaque.\n\tif ( overlayColor === backgroundColor || dimRatio === 100 ) {\n\t\treturn colord( overlayColor ).isDark();\n\t}\n\tconst overlay = colord( overlayColor )\n\t\t.alpha( dimRatio / 100 )\n\t\t.toRgb();\n\tconst background = colord( backgroundColor ).toRgb();\n\tconst composite = compositeSourceOver( overlay, background );\n\treturn colord( composite ).isDark();\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/cover\",\n\t\"title\": \"Cover\",\n\t\"category\": \"media\",\n\t\"description\": \"Add an image or video with a text overlay.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"useFeaturedImage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"alt\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\"\n\t\t},\n\t\t\"hasParallax\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"isRepeated\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"dimRatio\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 100\n\t\t},\n\t\t\"overlayColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customOverlayColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isUserOverlayColor\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"backgroundType\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"image\"\n\t\t},\n\t\t\"focalPoint\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"minHeight\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"minHeightUnit\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"gradient\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customGradient\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"contentPosition\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isDark\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ]\n\t\t},\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t},\n\t\t\"sizeSlug\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"poster\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"poster\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"shadow\": true,\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"blockGap\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true,\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"heading\": true,\n\t\t\t\"text\": true,\n\t\t\t\"background\": false,\n\t\t\t\"__experimentalSkipSerialization\": [ \"gradients\" ],\n\t\t\t\"enableContrastChecker\": false\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"aspectRatio\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowJustification\": false\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t},\n\t\"selectors\": {\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-cover > .wp-block-cover__image-background, .wp-block-cover > .wp-block-cover__video-background\"\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-cover-editor\",\n\t\"style\": \"wp-block-cover\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\t__experimentalGetGradientClass,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tIMAGE_BACKGROUND_TYPE,\n\tVIDEO_BACKGROUND_TYPE,\n\tEMBED_VIDEO_BACKGROUND_TYPE,\n\tdimRatioToClass,\n\tisContentPositionCenter,\n\tgetPositionClassName,\n\tmediaPosition,\n} from './shared';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tbackgroundType,\n\t\tgradient,\n\t\tcontentPosition,\n\t\tcustomGradient,\n\t\tcustomOverlayColor,\n\t\tdimRatio,\n\t\tfocalPoint,\n\t\tuseFeaturedImage,\n\t\thasParallax,\n\t\tisDark,\n\t\tisRepeated,\n\t\toverlayColor,\n\t\turl,\n\t\talt,\n\t\tid,\n\t\tminHeight: minHeightProp,\n\t\tminHeightUnit,\n\t\ttagName: Tag,\n\t\tsizeSlug,\n\t\tposter,\n\t} = attributes;\n\tconst overlayColorClass = getColorClassName(\n\t\t'background-color',\n\t\toverlayColor\n\t);\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst minHeight =\n\t\tminHeightProp && minHeightUnit\n\t\t\t? `${ minHeightProp }${ minHeightUnit }`\n\t\t\t: minHeightProp;\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\tconst isEmbedVideoBackground =\n\t\tEMBED_VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst isImgElement = ! ( hasParallax || isRepeated );\n\n\tconst style = {\n\t\tminHeight: minHeight || undefined,\n\t};\n\n\tconst bgStyle = {\n\t\tbackgroundColor: ! overlayColorClass ? customOverlayColor : undefined,\n\t\tbackground: customGradient ? customGradient : undefined,\n\t};\n\n\tconst objectPosition =\n\t\t// prettier-ignore\n\t\tfocalPoint && isImgElement\n\t\t\t ? mediaPosition(focalPoint)\n\t\t\t : undefined;\n\n\tconst backgroundImage = url ? `url(${ url })` : undefined;\n\n\tconst backgroundPosition = mediaPosition( focalPoint );\n\n\tconst classes = clsx(\n\t\t{\n\t\t\t'is-light': ! isDark,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t\t'has-custom-content-position':\n\t\t\t\t! isContentPositionCenter( contentPosition ),\n\t\t},\n\t\tgetPositionClassName( contentPosition )\n\t);\n\n\tconst imgClasses = clsx(\n\t\t'wp-block-cover__image-background',\n\t\tid ? `wp-image-${ id }` : null,\n\t\t{\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'has-parallax': hasParallax,\n\t\t\t'is-repeated': isRepeated,\n\t\t}\n\t);\n\n\tconst gradientValue = gradient || customGradient;\n\n\treturn (\n\t\t<Tag { ...useBlockProps.save( { className: classes, style } ) }>\n\t\t\t{ ! useFeaturedImage &&\n\t\t\t\tisImageBackground &&\n\t\t\t\turl &&\n\t\t\t\t( isImgElement ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole={ alt ? 'img' : undefined }\n\t\t\t\t\t\taria-label={ alt ? alt : undefined }\n\t\t\t\t\t\tclassName={ imgClasses }\n\t\t\t\t\t\tstyle={ { backgroundPosition, backgroundImage } }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t{ isVideoBackground && url && (\n\t\t\t\t<video\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t'intrinsic-ignore'\n\t\t\t\t\t) }\n\t\t\t\t\tautoPlay\n\t\t\t\t\tmuted\n\t\t\t\t\tloop\n\t\t\t\t\tplaysInline\n\t\t\t\t\tsrc={ url }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tstyle={ { objectPosition } }\n\t\t\t\t\tdata-object-fit=\"cover\"\n\t\t\t\t\tdata-object-position={ objectPosition }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEmbedVideoBackground && url && (\n\t\t\t\t<figure\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'wp-block-cover__video-background',\n\t\t\t\t\t\t'wp-block-cover__embed-background',\n\t\t\t\t\t\t'wp-block-embed'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-embed__wrapper\">{ url }</div>\n\t\t\t\t</figure>\n\t\t\t) }\n\n\t\t\t{ /* The `wp-block-cover__background` needs to be immediately before\n\t\t\tthe `wp-block-cover__inner-container`, so the exclusion CSS selector\n\t\t\t`.wp-block-cover__background + .wp-block-cover__inner-container`\n\t\t\tworks properly. If it needs to be changed in the future, the\n\t\t\tselector for the backward compatibility for v14 deprecation also\n\t\t\tneeds change. */ }\n\t\t\t<span\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'wp-block-cover__background',\n\t\t\t\t\toverlayColorClass,\n\t\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t\t{\n\t\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t\t// For backwards compatibility. Former versions of the Cover Block applied\n\t\t\t\t\t\t// `.wp-block-cover__gradient-background` in the presence of\n\t\t\t\t\t\t// media, a gradient and a dim.\n\t\t\t\t\t\t'wp-block-cover__gradient-background':\n\t\t\t\t\t\t\turl && gradientValue && dimRatio !== 0,\n\t\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tstyle={ bgStyle }\n\t\t\t/>\n\n\t\t\t<div\n\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\tclassName: 'wp-block-cover__inner-container',\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</Tag>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE } from './shared';\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { caption, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talt,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tduotone: style?.color?.duotone,\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\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\ttextAlign: 'center',\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},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { caption, src, align, id, anchor } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\t{\n\t\t\t\t\t\tdimRatio: 50,\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t},\n\t\t\t\t\t[\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: caption,\n\t\t\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\ttextAlign: 'center',\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},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst { align, anchor, backgroundColor, gradient, style } =\n\t\t\t\t\tattributes;\n\n\t\t\t\t// If the Group block being transformed has a Cover block as its\n\t\t\t\t// only child return that Cover block.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/cover'\n\t\t\t\t) {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes,\n\t\t\t\t\t\tinnerBlocks[ 0 ].innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// If no background or gradient color is provided, default to 50% opacity.\n\t\t\t\t// This matches the styling of a Cover block with a background image,\n\t\t\t\t// in the state where a background image has been removed.\n\t\t\t\tconst dimRatio =\n\t\t\t\t\tbackgroundColor ||\n\t\t\t\t\tgradient ||\n\t\t\t\t\tstyle?.color?.background ||\n\t\t\t\t\tstyle?.color?.gradient\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: 50;\n\n\t\t\t\t// Move the background or gradient color to the parent Cover block.\n\t\t\t\tconst parentAttributes = {\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t\tdimRatio,\n\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\tcustomOverlayColor: style?.color?.background,\n\t\t\t\t\tgradient,\n\t\t\t\t\tcustomGradient: style?.color?.gradient,\n\t\t\t\t};\n\n\t\t\t\tconst attributesWithoutBackgroundColors = {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tbackgroundColor: undefined,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor: style?.color\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...style?.color,\n\t\t\t\t\t\t\t\t\tbackground: undefined,\n\t\t\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// Preserve the block by nesting it within the Cover block,\n\t\t\t\t// instead of converting the Group block directly to the Cover block.\n\t\t\t\treturn createBlock( 'core/cover', parentAttributes, [\n\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\tattributesWithoutBackgroundColors,\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t),\n\t\t\t\t] );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents an image background.\n\t\t\t\t\treturn backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, alt, align, id, anchor, style } ) =>\n\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\turl,\n\t\t\t\t\talt,\n\t\t\t\t\talign,\n\t\t\t\t\tid,\n\t\t\t\t\tanchor,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\tduotone: style?.color?.duotone,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( {\n\t\t\t\tbackgroundType,\n\t\t\t\turl,\n\t\t\t\toverlayColor,\n\t\t\t\tcustomOverlayColor,\n\t\t\t\tgradient,\n\t\t\t\tcustomGradient,\n\t\t\t} ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\t// If a url exists the transform could happen if that URL represents a video background.\n\t\t\t\t\treturn backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t}\n\t\t\t\t// If a url is not set the transform could happen if the cover has no background color or gradient;\n\t\t\t\treturn (\n\t\t\t\t\t! overlayColor &&\n\t\t\t\t\t! customOverlayColor &&\n\t\t\t\t\t! gradient &&\n\t\t\t\t\t! customGradient\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: ( { title, url, align, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\tcaption: title,\n\t\t\t\t\tsrc: url,\n\t\t\t\t\tid,\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\tisMatch: ( { url, useFeaturedImage } ) => {\n\t\t\t\t// If the Cover block uses background media, skip this transform,\n\t\t\t\t// and instead use the Group block's default transform.\n\t\t\t\tif ( url || useFeaturedImage ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\t// Convert Cover overlay colors to comparable Group background colors.\n\t\t\t\tconst transformedColorAttributes = {\n\t\t\t\t\tbackgroundColor: attributes?.overlayColor,\n\t\t\t\t\tgradient: attributes?.gradient,\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\tattributes?.customOverlayColor ||\n\t\t\t\t\t\t\tattributes?.customGradient ||\n\t\t\t\t\t\t\tattributes?.style?.color\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\tattributes?.customOverlayColor,\n\t\t\t\t\t\t\t\t\t\tgradient: attributes?.customGradient,\n\t\t\t\t\t\t\t\t\t\t...attributes?.style?.color,\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} ),\n\t\t\t\t};\n\n\t\t\t\t// If the Cover block contains only a single Group block as a direct child,\n\t\t\t\t// then attempt to merge the Cover's background colors with the child Group block,\n\t\t\t\t// and remove the Cover block as the wrapper.\n\t\t\t\tif (\n\t\t\t\t\tinnerBlocks?.length === 1 &&\n\t\t\t\t\tinnerBlocks[ 0 ]?.name === 'core/group'\n\t\t\t\t) {\n\t\t\t\t\tconst groupAttributes = cleanEmptyObject(\n\t\t\t\t\t\tinnerBlocks[ 0 ].attributes || {}\n\t\t\t\t\t);\n\n\t\t\t\t\t// If the Group block contains any kind of background color or gradient,\n\t\t\t\t\t// skip merging Cover background colors, and preserve the Group block's colors.\n\t\t\t\t\tif (\n\t\t\t\t\t\tgroupAttributes?.backgroundColor ||\n\t\t\t\t\t\tgroupAttributes?.gradient ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.background ||\n\t\t\t\t\t\tgroupAttributes?.style?.color?.gradient\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t\tgroupAttributes,\n\t\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...transformedColorAttributes,\n\t\t\t\t\t\t\t...groupAttributes,\n\t\t\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t\t\t...groupAttributes?.style,\n\t\t\t\t\t\t\t\tcolor:\n\t\t\t\t\t\t\t\t\ttransformedColorAttributes?.style?.color ||\n\t\t\t\t\t\t\t\t\tgroupAttributes?.style?.color\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...transformedColorAttributes\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.style?.color,\n\t\t\t\t\t\t\t\t\t\t\t\t...groupAttributes?.style\n\t\t\t\t\t\t\t\t\t\t\t\t\t?.color,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks[ 0 ]?.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// In all other cases, transform the Cover block directly to a Group block.\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{ ...attributes, ...transformedColorAttributes },\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { cover } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'cover',\n\t\ttitle: __( 'Cover' ),\n\t\tdescription: __( 'Add an image or video with a text overlay.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\ticon: cover,\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { details as icon } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsummary: __( 'La Mancha' ),\n\t\t\tshowContent: true,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { summary } = attributes;\n\n\t\tconst customName = attributes?.metadata?.name;\n\t\tconst hasSummary = summary?.trim().length > 0;\n\n\t\t// In the list view, use the block's summary as the label.\n\t\t// If the summary is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && ( customName || hasSummary ) ) {\n\t\t\treturn customName || summary;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn ! hasSummary\n\t\t\t\t? __( 'Details. Empty.' )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: accessibility text; summary title. */\n\t\t\t\t\t\t__( 'Details. %s' ),\n\t\t\t\t\t\tsummary\n\t\t\t\t );\n\t\t}\n\t},\n\tsave,\n\tedit,\n\ttransforms,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'summary',\n\t\t\tlabel: __( 'Summary' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'summary' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/details\",\n\t\"title\": \"Details\",\n\t\"category\": \"text\",\n\t\"description\": \"Hide and show additional content.\",\n\t\"keywords\": [ \"summary\", \"toggle\", \"disclosure\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"showContent\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"summary\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"summary\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"name\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"attribute\": \"name\",\n\t\t\t\"selector\": \".wp-block-details\"\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"__experimentalOnEnter\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowEditing\": false\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t},\n\t\"editorStyle\": \"wp-block-details-editor\",\n\t\"style\": \"wp-block-details\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { withIgnoreIMEEvents } = unlock( componentsPrivateApis );\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __( 'Type / to add a hidden block' ),\n\t\t},\n\t],\n];\n\nfunction DetailsEdit( { attributes, setAttributes, clientId } ) {\n\tconst { name, showContent, summary, allowedBlocks, placeholder } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalCaptureToolbars: true,\n\t\tallowedBlocks,\n\t} );\n\tconst [ isOpen, setIsOpen ] = useState( showContent );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Check if the inner blocks are selected.\n\tconst hasSelectedInnerBlock = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).hasSelectedInnerBlock( clientId, true ),\n\t\t[ clientId ]\n\t);\n\n\tconst handleSummaryKeyDown = ( event ) => {\n\t\tif ( event.key === 'Enter' && ! event.shiftKey ) {\n\t\t\tsetIsOpen( ( prevIsOpen ) => ! prevIsOpen );\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\t// Prevent spacebar from toggling <details> while typing.\n\tconst handleSummaryKeyUp = ( event ) => {\n\t\tif ( event.key === ' ' ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowContent: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\thasValue={ () => showContent }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowContent: false,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\t\tchecked={ showContent }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowContent: ! showContent,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Name attribute' ) }\n\t\t\t\t\tvalue={ name || '' }\n\t\t\t\t\tonChange={ ( newName ) =>\n\t\t\t\t\t\tsetAttributes( { name: newName } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Enables multiple Details blocks with the same name attribute to be connected, with only one open at a time.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<details\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t\topen={ isOpen || hasSelectedInnerBlock }\n\t\t\t\tonToggle={ ( event ) => setIsOpen( event.target.open ) }\n\t\t\t\tname={ name || '' }\n\t\t\t>\n\t\t\t\t<summary\n\t\t\t\t\tonKeyDown={ withIgnoreIMEEvents( handleSummaryKeyDown ) }\n\t\t\t\t\tonKeyUp={ handleSummaryKeyUp }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"summary\"\n\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t'Write summary. Press Enter to expand or collapse the details.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplaceholder={ placeholder || __( 'Write summary\u2026' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ summary }\n\t\t\t\t\t\tonChange={ ( newSummary ) =>\n\t\t\t\t\t\t\tsetAttributes( { summary: newSummary } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</summary>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</details>\n\t\t</>\n\t);\n}\n\nexport default DetailsEdit;\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps, InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { name, showContent } = attributes;\n\tconst summary = attributes.summary ? attributes.summary : 'Details';\n\tconst blockProps = useBlockProps.save();\n\n\treturn (\n\t\t<details\n\t\t\t{ ...blockProps }\n\t\t\tname={ name || undefined }\n\t\t\topen={ showContent }\n\t\t>\n\t\t\t<summary>\n\t\t\t\t<RichText.Content value={ summary } />\n\t\t\t</summary>\n\t\t\t<InnerBlocks.Content />\n\t\t</details>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\tisMatch( {}, blocks ) {\n\t\t\t\treturn ! (\n\t\t\t\t\tblocks.length === 1 && blocks[ 0 ].name === 'core/details'\n\t\t\t\t);\n\t\t\t},\n\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/details',\n\t\t\t\t\t{},\n\t\t\t\t\tblocks.map( ( block ) => cloneBlock( block ) )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { pencil } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction getResponsiveHelp( checked ) {\n\treturn checked\n\t\t? __(\n\t\t\t\t'This embed will preserve its aspect ratio when the browser is resized.'\n\t\t )\n\t\t: __(\n\t\t\t\t'This embed may not preserve its aspect ratio when the browser is resized.'\n\t\t );\n}\n\nconst EmbedControls = ( {\n\tblockSupportsResponsive,\n\tshowEditButton,\n\tthemeSupportsResponsive,\n\tallowResponsive,\n\ttoggleResponsive,\n\tswitchBackToURLInput,\n} ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ showEditButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\t\tonClick={ switchBackToURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ themeSupportsResponsive && blockSupportsResponsive && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Media settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\ttoggleResponsive( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Media settings' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => ! allowResponsive }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\ttoggleResponsive( ! allowResponsive );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Resize for smaller devices' ) }\n\t\t\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\t\t\thelp={ getResponsiveHelp }\n\t\t\t\t\t\t\t\tonChange={ toggleResponsive }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default EmbedControls;\n", "/**\n * WordPress dependencies\n */\nimport { G, Path, SVG } from '@wordpress/components';\n\nexport const embedContentIcon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\" />\n\t</SVG>\n);\nexport const embedAudioIcon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z\" />\n\t</SVG>\n);\nexport const embedPhotoIcon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\" />\n\t</SVG>\n);\nexport const embedVideoIcon = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\" />\n\t</SVG>\n);\nexport const embedTwitterIcon = {\n\tforeground: '#000000',\n\tsrc: (\n\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t<Path d=\"M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z\" />\n\t\t</SVG>\n\t),\n};\nexport const embedYouTubeIcon = {\n\tforeground: '#ff0000',\n\tsrc: (\n\t\t<SVG viewBox=\"0 0 24 24\">\n\t\t\t<Path d=\"M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z\" />\n\t\t</SVG>\n\t),\n};\nexport const embedFacebookIcon = {\n\tforeground: '#3b5998',\n\tsrc: (\n\t\t<SVG viewBox=\"0 0 24 24\">\n\t\t\t<Path d=\"M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z\" />\n\t\t</SVG>\n\t),\n};\nexport const embedInstagramIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<G>\n\t\t\t<Path d=\"M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z\"></Path>\n\t\t</G>\n\t</SVG>\n);\nexport const embedWordPressIcon = {\n\tforeground: '#0073AA',\n\tsrc: (\n\t\t<SVG viewBox=\"0 0 24 24\">\n\t\t\t<G>\n\t\t\t\t<Path d=\"M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z\"></Path>\n\t\t\t</G>\n\t\t</SVG>\n\t),\n};\nexport const embedSpotifyIcon = {\n\tforeground: '#1db954',\n\tsrc: (\n\t\t<SVG viewBox=\"0 0 24 24\">\n\t\t\t<Path d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325\" />\n\t\t</SVG>\n\t),\n};\nexport const embedFlickrIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z\" />\n\t</SVG>\n);\nexport const embedVimeoIcon = {\n\tforeground: '#1ab7ea',\n\tsrc: (\n\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t<G>\n\t\t\t\t<Path d=\"M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z\"></Path>\n\t\t\t</G>\n\t\t</SVG>\n\t),\n};\nexport const embedRedditIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M22 12.068a2.184 2.184 0 0 0-2.186-2.186c-.592 0-1.13.233-1.524.609-1.505-1.075-3.566-1.774-5.86-1.864l1.004-4.695 3.261.699A1.56 1.56 0 1 0 18.255 3c-.61-.001-1.147.357-1.398.877l-3.638-.77a.382.382 0 0 0-.287.053.348.348 0 0 0-.161.251l-1.112 5.233c-2.33.072-4.426.77-5.95 1.864a2.201 2.201 0 0 0-1.523-.61 2.184 2.184 0 0 0-.896 4.176c-.036.215-.053.43-.053.663 0 3.37 3.924 6.111 8.763 6.111s8.763-2.724 8.763-6.11c0-.216-.017-.449-.053-.664A2.207 2.207 0 0 0 22 12.068Zm-15.018 1.56a1.56 1.56 0 0 1 3.118 0c0 .86-.699 1.558-1.559 1.558-.86.018-1.559-.699-1.559-1.559Zm8.728 4.139c-1.076 1.075-3.119 1.147-3.71 1.147-.61 0-2.652-.09-3.71-1.147a.4.4 0 0 1 0-.573.4.4 0 0 1 .574 0c.68.68 2.114.914 3.136.914 1.022 0 2.473-.233 3.136-.914a.4.4 0 0 1 .574 0 .436.436 0 0 1 0 .573Zm-.287-2.563a1.56 1.56 0 0 1 0-3.118c.86 0 1.56.699 1.56 1.56 0 .841-.7 1.558-1.56 1.558Z\" />\n\t</SVG>\n);\nexport const embedTumblrIcon = {\n\tforeground: '#35465c',\n\tsrc: (\n\t\t<SVG viewBox=\"0 0 24 24\">\n\t\t\t<Path d=\"M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z\" />\n\t\t</SVG>\n\t),\n};\nexport const embedAmazonIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z\" />\n\t\t<Path d=\"M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z\" />\n\t\t<Path d=\"M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z\" />\n\t</SVG>\n);\nexport const embedAnimotoIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\td=\"m.0206909 21 19.8160091-13.07806 3.5831 6.20826z\"\n\t\t\tfill=\"#4bc7ee\"\n\t\t/>\n\t\t<Path\n\t\t\td=\"m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z\"\n\t\t\tfill=\"#d4cdcb\"\n\t\t/>\n\t\t<Path\n\t\t\td=\"m.0206909 21 15.2439091-16.38571 4.3029 7.32271z\"\n\t\t\tfill=\"#c3d82e\"\n\t\t/>\n\t\t<Path\n\t\t\td=\"m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z\"\n\t\t\tfill=\"#e4ecb0\"\n\t\t/>\n\t\t<Path d=\"m.0206909 21 19.5468091-9.063 1.6621 2.8344z\" fill=\"#209dbd\" />\n\t\t<Path\n\t\t\td=\"m.0206909 21 17.9209091-11.82623 1.6259 2.76323z\"\n\t\t\tfill=\"#7cb3c9\"\n\t\t/>\n\t</SVG>\n);\nexport const embedDailymotionIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\td=\"M11.903 16.568c-1.82 0-3.124-1.281-3.124-2.967a2.987 2.987 0 0 1 2.989-2.989c1.663 0 2.944 1.304 2.944 3.034 0 1.663-1.281 2.922-2.81 2.922ZM17.997 3l-3.308.73v5.107c-.809-1.034-2.045-1.37-3.505-1.37-1.529 0-2.9.561-4.023 1.662-1.259 1.214-1.933 2.764-1.933 4.495 0 1.888.72 3.506 2.113 4.742 1.056.944 2.314 1.415 3.775 1.415 1.438 0 2.517-.382 3.573-1.415v1.415h3.308V3Z\"\n\t\t\tfill=\"#333436\"\n\t\t/>\n\t</SVG>\n);\nexport const embedPinterestIcon = (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2\" />\n\t</SVG>\n);\n\nexport const embedWolframIcon = (\n\t<SVG viewBox=\"0 0 44 44\">\n\t\t<Path d=\"M32.59521,22.001l4.31885-4.84473-6.34131-1.38379.646-6.459-5.94336,2.61035L22,6.31934l-3.27344,5.60351L12.78418,9.3125l.645,6.458L7.08643,17.15234,11.40479,21.999,7.08594,26.84375l6.34131,1.38379-.64551,6.458,5.94287-2.60938L22,37.68066l3.27344-5.60351,5.94287,2.61035-.64551-6.458,6.34277-1.38183Zm.44385,2.75244L30.772,23.97827l-1.59558-2.07391,1.97888.735Zm-8.82147,6.1579L22.75,33.424V30.88977l1.52228-2.22168ZM18.56226,13.48816,19.819,15.09534l-2.49219-.88642L15.94037,12.337Zm6.87719.00116,2.62043-1.15027-1.38654,1.86981L24.183,15.0946Zm3.59357,2.6029-1.22546,1.7381.07525-2.73486,1.44507-1.94867ZM22,29.33008l-2.16406-3.15686L22,23.23688l2.16406,2.93634Zm-4.25458-9.582-.10528-3.836,3.60986,1.284v3.73242Zm5.00458-2.552,3.60986-1.284-.10528,3.836L22.75,20.92853Zm-7.78174-1.10559-.29352-2.94263,1.44245,1.94739.07519,2.73321Zm2.30982,5.08319,3.50817,1.18164-2.16247,2.9342-3.678-1.08447Zm2.4486,7.49285L21.25,30.88977v2.53485L19.78052,30.91Zm3.48707-6.31121,3.50817-1.18164,2.33228,3.03137-3.678,1.08447Zm10.87219-4.28113-2.714,3.04529L28.16418,19.928l1.92176-2.72565ZM24.06036,12.81769l-2.06012,2.6322-2.059-2.63318L22,9.292ZM9.91455,18.07227l4.00079-.87195,1.921,2.72735-3.20794,1.19019Zm2.93024,4.565,1.9801-.73462L13.228,23.97827l-2.26838.77429Zm-1.55591,3.58819L13.701,25.4021l2.64935.78058-2.14447.67853Zm3.64868,1.977L18.19,27.17334l.08313,3.46332L14.52979,32.2793Zm10.7876,2.43549.08447-3.464,3.25165,1.03052.407,4.07684Zm4.06824-3.77478-2.14545-.68,2.65063-.781,2.41266.825Z\" />\n\t</SVG>\n);\n\nexport const embedPocketCastsIcon = {\n\tforeground: '#f43e37',\n\tsrc: (\n\t\t<SVG\n\t\t\twidth=\"24\"\n\t\t\theight=\"24\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<Path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M24,12A12,12,0,1,1,12,0,12,12,0,0,1,24,12Z\"\n\t\t\t/>\n\t\t\t<Path\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\td=\"M2.67,12a9.33,9.33,0,0,1,18.66,0H19a7,7,0,1,0-7,7v2.33A9.33,9.33,0,0,1,2.67,12ZM12,17.6A5.6,5.6,0,1,1,17.6,12h-2A3.56,3.56,0,1,0,12,15.56Z\"\n\t\t\t\tfill=\"#fff\"\n\t\t\t/>\n\t\t</SVG>\n\t),\n};\n\nexport const embedBlueskyIcon = (\n\t<SVG viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfill=\"#0a7aff\"\n\t\t\td=\"M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z\"\n\t\t/>\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Spinner } from '@wordpress/components';\n\nconst EmbedLoading = () => (\n\t<div className=\"wp-block-embed is-loading\">\n\t\t<Spinner />\n\t</div>\n);\n\nexport default EmbedLoading;\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPlaceholder,\n\tExternalLink,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\n\nconst EmbedPlaceholder = ( {\n\ticon,\n\tlabel,\n\tvalue,\n\tonSubmit,\n\tonChange,\n\tcannotEmbed,\n\tfallback,\n\ttryAgain,\n} ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\tlabel={ label }\n\t\t\tclassName=\"wp-block-embed\"\n\t\t\tinstructions={ __(\n\t\t\t\t'Paste a link to the content you want to display on your site.'\n\t\t\t) }\n\t\t>\n\t\t\t<form onSubmit={ onSubmit }>\n\t\t\t\t<InputControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\ttype=\"url\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tclassName=\"wp-block-embed__placeholder-input\"\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here\u2026' ) }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<Button __next40pxDefaultSize variant=\"primary\" type=\"submit\">\n\t\t\t\t\t{ _x( 'Embed', 'button label' ) }\n\t\t\t\t</Button>\n\t\t\t</form>\n\t\t\t<div className=\"wp-block-embed__learn-more\">\n\t\t\t\t<ExternalLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/documentation/article/embeds/'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Learn more about embeds' ) }\n\t\t\t\t</ExternalLink>\n\t\t\t</div>\n\t\t\t{ cannotEmbed && (\n\t\t\t\t<VStack spacing={ 3 } className=\"components-placeholder__error\">\n\t\t\t\t\t<div className=\"components-placeholder__instructions\">\n\t\t\t\t\t\t{ __( 'Sorry, this content could not be embedded.' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ tryAgain }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Try again', 'button label' ) }\n\t\t\t\t\t\t</Button>{ ' ' }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ fallback }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ _x( 'Convert to link', 'button label' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n};\n\nexport default EmbedPlaceholder;\n", "/**\n * Internal dependencies\n */\nimport { getPhotoHtml } from './util';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, SandBox } from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { getAuthority } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport WpEmbedPreview from './wp-embed-preview';\n\nexport default function EmbedPreview( {\n\tpreview,\n\tpreviewable,\n\turl,\n\ttype,\n\tisSelected,\n\tclassName,\n\ticon,\n\tlabel,\n} ) {\n\tconst [ interactive, setInteractive ] = useState( false );\n\n\tif ( ! isSelected && interactive ) {\n\t\t// We only want to change this when the block is not selected, because changing it when\n\t\t// the block becomes selected makes the overlap disappear too early. Hiding the overlay\n\t\t// happens on mouseup when the overlay is clicked.\n\t\tsetInteractive( false );\n\t}\n\n\tconst hideOverlay = () => {\n\t\t// This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop\n\t\t// changing, because that happens on mouse down, and the overlay immediately disappears,\n\t\t// and the mouse event can end up in the preview content. We can't use onClick on\n\t\t// the overlay to hide it either, because then the editor misses the mouseup event, and\n\t\t// thinks we're multi-selecting blocks.\n\t\tsetInteractive( true );\n\t};\n\n\tconst { scripts } = preview;\n\n\tconst html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;\n\tconst embedSourceUrl = getAuthority( url );\n\tconst iframeTitle = sprintf(\n\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t__( 'Embedded content from %s' ),\n\t\tembedSourceUrl\n\t);\n\tconst sandboxClassnames = clsx(\n\t\ttype,\n\t\tclassName,\n\t\t'wp-block-embed__wrapper'\n\t);\n\n\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t// as far as the user is concerned. We're just catching the first click so that\n\t// the block can be selected without interacting with the embed preview that the overlay covers.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\tconst embedWrapper =\n\t\t'wp-embed' === type ? (\n\t\t\t<WpEmbedPreview html={ html } />\n\t\t) : (\n\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t<SandBox\n\t\t\t\t\thtml={ html }\n\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\tonFocus={ hideOverlay }\n\t\t\t\t/>\n\t\t\t\t{ ! interactive && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-library-embed__interactive-overlay\"\n\t\t\t\t\t\tonMouseUp={ hideOverlay }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\n\treturn (\n\t\t<>\n\t\t\t{ previewable ? (\n\t\t\t\tembedWrapper\n\t\t\t) : (\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t>\n\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t<a href={ url }>{ url }</a>\n\t\t\t\t\t</p>\n\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: host providing embed content e.g: www.youtube.com */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\"Embedded content from %s can't be previewed in the editor.\"\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tembedSourceUrl\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useFocusableIframe } from '@wordpress/compose';\nimport { useRef, useEffect, useMemo } from '@wordpress/element';\n\n/** @typedef {import('react').SyntheticEvent} SyntheticEvent */\n\nconst attributeMap = {\n\tclass: 'className',\n\tframeborder: 'frameBorder',\n\tmarginheight: 'marginHeight',\n\tmarginwidth: 'marginWidth',\n};\n\nexport default function WpEmbedPreview( { html } ) {\n\tconst ref = useRef();\n\tconst props = useMemo( () => {\n\t\tconst doc = new window.DOMParser().parseFromString( html, 'text/html' );\n\t\tconst iframe = doc.querySelector( 'iframe' );\n\t\tconst iframeProps = {};\n\n\t\tif ( ! iframe ) {\n\t\t\treturn iframeProps;\n\t\t}\n\n\t\tArray.from( iframe.attributes ).forEach( ( { name, value } ) => {\n\t\t\tif ( name === 'style' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tiframeProps[ attributeMap[ name ] || name ] = value;\n\t\t} );\n\n\t\treturn iframeProps;\n\t}, [ html ] );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\n\t\t/**\n\t\t * Checks for WordPress embed events signaling the height change when\n\t\t * iframe content loads or iframe's window is resized. The event is\n\t\t * sent from WordPress core via the window.postMessage API.\n\t\t *\n\t\t * References:\n\t\t * window.postMessage:\n\t\t * https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage\n\t\t * WordPress core embed-template on load:\n\t\t * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L143\n\t\t * WordPress core embed-template on resize:\n\t\t * https://github.com/WordPress/WordPress/blob/HEAD/wp-includes/js/wp-embed-template.js#L187\n\t\t *\n\t\t * @param {MessageEvent} event Message event.\n\t\t */\n\t\tfunction resizeWPembeds( { data: { secret, message, value } = {} } ) {\n\t\t\tif ( message !== 'height' || secret !== props[ 'data-secret' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tref.current.height = value;\n\t\t}\n\n\t\tdefaultView.addEventListener( 'message', resizeWPembeds );\n\t\treturn () => {\n\t\t\tdefaultView.removeEventListener( 'message', resizeWPembeds );\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t<iframe\n\t\t\t\tref={ useMergeRefs( [ ref, useFocusableIframe() ] ) }\n\t\t\t\ttitle={ props.title }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport {\n\tcreateUpgradedEmbedBlock,\n\tgetClassNames,\n\tremoveAspectRatioClasses,\n\tfallback,\n\tgetEmbedInfoByProvider,\n\tgetMergedAttributesWithPreview,\n} from './util';\nimport EmbedControls from './embed-controls';\nimport { embedContentIcon } from './icons';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { View } from '@wordpress/primitives';\nimport { getAuthority } from '@wordpress/url';\nimport { Caption } from '../utils/caption';\n\nconst EmbedEdit = ( props ) => {\n\tconst {\n\t\tattributes: {\n\t\t\tproviderNameSlug,\n\t\t\tpreviewable,\n\t\t\tresponsive,\n\t\t\turl: attributesUrl,\n\t\t},\n\t\tattributes,\n\t\tisSelected,\n\t\tonReplace,\n\t\tsetAttributes,\n\t\tinsertBlocksAfter,\n\t\tonFocus,\n\t} = props;\n\n\tconst defaultEmbedInfo = {\n\t\ttitle: _x( 'Embed', 'block title' ),\n\t\ticon: embedContentIcon,\n\t};\n\tconst { icon, title } =\n\t\tgetEmbedInfoByProvider( providerNameSlug ) || defaultEmbedInfo;\n\n\tconst [ url, setURL ] = useState( attributesUrl );\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst { invalidateResolution } = useDispatch( coreStore );\n\n\tconst {\n\t\tpreview,\n\t\tfetching,\n\t\tthemeSupportsResponsive,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEmbedPreview,\n\t\t\t\tisPreviewEmbedFallback,\n\t\t\t\tisRequestingEmbedPreview,\n\t\t\t\tgetThemeSupports,\n\t\t\t\thasFinishedResolution,\n\t\t\t} = select( coreStore );\n\t\t\tif ( ! attributesUrl ) {\n\t\t\t\treturn { fetching: false, cannotEmbed: false };\n\t\t\t}\n\n\t\t\tconst embedPreview = getEmbedPreview( attributesUrl );\n\t\t\tconst previewIsFallback = isPreviewEmbedFallback( attributesUrl );\n\n\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\tconst badEmbedProvider =\n\t\t\t\tembedPreview?.html === false &&\n\t\t\t\tembedPreview?.type === undefined;\n\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t// than generating a fallback response as other embeds do.\n\t\t\tconst wordpressCantEmbed = embedPreview?.data?.status === 404;\n\t\t\tconst validPreview =\n\t\t\t\t!! embedPreview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\treturn {\n\t\t\t\tpreview: validPreview ? embedPreview : undefined,\n\t\t\t\tfetching: isRequestingEmbedPreview( attributesUrl ),\n\t\t\t\tthemeSupportsResponsive:\n\t\t\t\t\tgetThemeSupports()[ 'responsive-embeds' ],\n\t\t\t\tcannotEmbed: ! validPreview || previewIsFallback,\n\t\t\t\thasResolved: hasFinishedResolution( 'getEmbedPreview', [\n\t\t\t\t\tattributesUrl,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ attributesUrl ]\n\t);\n\n\t/**\n\t * Returns the attributes derived from the preview, merged with the current attributes.\n\t *\n\t * @return {Object} Merged attributes.\n\t */\n\tconst getMergedAttributes = () =>\n\t\tgetMergedAttributesWithPreview(\n\t\t\tattributes,\n\t\t\tpreview,\n\t\t\ttitle,\n\t\t\tresponsive\n\t\t);\n\n\tfunction toggleResponsive( newAllowResponsive ) {\n\t\tconst { className } = attributes;\n\t\tconst { html } = preview;\n\t\tsetAttributes( {\n\t\t\tallowResponsive: newAllowResponsive,\n\t\t\tclassName: getClassNames(\n\t\t\t\thtml,\n\t\t\t\tclassName,\n\t\t\t\tresponsive && newAllowResponsive\n\t\t\t),\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( preview?.html || ! cannotEmbed || ! hasResolved ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// At this stage, we're not fetching the preview and know it can't be embedded,\n\t\t// so try removing any trailing slash, and resubmit.\n\t\tconst newURL = attributesUrl.replace( /\\/$/, '' );\n\t\tsetURL( newURL );\n\t\tsetIsEditingURL( false );\n\t\tsetAttributes( { url: newURL } );\n\t}, [\n\t\tpreview?.html,\n\t\tattributesUrl,\n\t\tcannotEmbed,\n\t\thasResolved,\n\t\tsetAttributes,\n\t] );\n\n\t// Try a different provider in case the embed url is not supported.\n\tuseEffect( () => {\n\t\tif ( ! cannotEmbed || fetching || ! url ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Until X provider is supported in WordPress, as a workaround we use Twitter provider.\n\t\tif ( getAuthority( url ) === 'x.com' ) {\n\t\t\tconst newURL = new URL( url );\n\t\t\tnewURL.host = 'twitter.com';\n\t\t\tsetAttributes( { url: newURL.toString() } );\n\t\t}\n\t}, [ url, cannotEmbed, fetching, setAttributes ] );\n\n\t// Handle incoming preview.\n\tuseEffect( () => {\n\t\tif ( preview && ! isEditingURL ) {\n\t\t\t// When obtaining an incoming preview,\n\t\t\t// we set the attributes derived from the preview data.\n\t\t\tconst mergedAttributes = getMergedAttributes();\n\t\t\tconst hasChanges = Object.keys( mergedAttributes ).some(\n\t\t\t\t( key ) => mergedAttributes[ key ] !== attributes[ key ]\n\t\t\t);\n\n\t\t\tif ( hasChanges ) {\n\t\t\t\tsetAttributes( mergedAttributes );\n\t\t\t}\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\t\tprops,\n\t\t\t\t\tmergedAttributes\n\t\t\t\t);\n\n\t\t\t\tif ( upgradedBlock ) {\n\t\t\t\t\tonReplace( upgradedBlock );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ preview, isEditingURL ] );\n\n\tconst blockProps = useBlockProps();\n\n\tif ( fetching ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedLoading />\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\tconst label = sprintf( __( '%s URL' ), title );\n\n\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\n\tconst showEmbedPlaceholder = ! preview || cannotEmbed || isEditingURL;\n\n\tif ( showEmbedPlaceholder ) {\n\t\treturn (\n\t\t\t<View { ...blockProps }>\n\t\t\t\t<EmbedPlaceholder\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\tif ( event ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If the embed URL was changed, we need to reset the aspect ratio class.\n\t\t\t\t\t\t// To do this we have to remove the existing ratio class so it can be recalculated.\n\t\t\t\t\t\tconst blockClass = removeAspectRatioClasses(\n\t\t\t\t\t\t\tattributes.className\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\tsetAttributes( { url, className: blockClass } );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\tonChange={ ( value ) => setURL( value ) }\n\t\t\t\t\tfallback={ () => fallback( url, onReplace ) }\n\t\t\t\t\ttryAgain={ () => {\n\t\t\t\t\t\tinvalidateResolution( 'getEmbedPreview', [ url ] );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n\n\t// Even though we set attributes that get derived from the preview,\n\t// we don't access them directly because for the initial render,\n\t// the `setAttributes` call will not have taken effect. If we're\n\t// rendering responsive content, setting the responsive classes\n\t// after the preview has been rendered can result in unwanted\n\t// clipping or scrollbars. The `getAttributesFromPreview` function\n\t// that `getMergedAttributes` uses is memoized so that we're not\n\t// calculating them on every render.\n\tconst {\n\t\tcaption,\n\t\ttype,\n\t\tallowResponsive,\n\t\tclassName: classFromPreview,\n\t} = getMergedAttributes();\n\tconst className = clsx( classFromPreview, props.className );\n\n\treturn (\n\t\t<>\n\t\t\t<EmbedControls\n\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\ttoggleResponsive={ toggleResponsive }\n\t\t\t\tswitchBackToURLInput={ () => setIsEditingURL( true ) }\n\t\t\t/>\n\t\t\t<figure\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ clsx( blockProps.className, className, {\n\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]:\n\t\t\t\t\t\tproviderNameSlug,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<EmbedPreview\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tpreviewable={ previewable }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\turl={ url }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcaption={ caption }\n\t\t\t\t\tonCaptionChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Embed caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n};\n\nexport default EmbedEdit;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\tif ( ! url ) {\n\t\treturn null;\n\t}\n\n\tconst className = clsx( 'wp-block-embed', {\n\t\t[ `is-type-${ type }` ]: type,\n\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t[ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,\n\t} );\n\n\treturn (\n\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t</div>\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport { removeAspectRatioClasses } from './util';\n\nconst { name: EMBED_BLOCK } = metadata;\n\n/**\n * Default transforms for generic embeds.\n */\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\t/^\\s*(https?:\\/\\/\\S+)\\s*$/i.test( node.textContent ) &&\n\t\t\t\tnode.textContent?.match( /https/gi )?.length === 1,\n\t\t\ttransform: ( node ) => {\n\t\t\t\treturn createBlock( EMBED_BLOCK, {\n\t\t\t\t\turl: node.textContent.trim(),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\tisMatch: ( { url } ) => !! url,\n\t\t\ttransform: ( { url, caption, className } ) => {\n\t\t\t\tlet value = `<a href=\"${ url }\">${ url }</a>`;\n\t\t\t\tif ( caption?.trim() ) {\n\t\t\t\t\tvalue += `<br />${ caption }`;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\tcontent: value,\n\t\t\t\t\tclassName: removeAspectRatioClasses( className ),\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tembedContentIcon,\n\tembedAudioIcon,\n\tembedPhotoIcon,\n\tembedVideoIcon,\n\tembedTwitterIcon,\n\tembedYouTubeIcon,\n\tembedFacebookIcon,\n\tembedInstagramIcon,\n\tembedWordPressIcon,\n\tembedSpotifyIcon,\n\tembedFlickrIcon,\n\tembedVimeoIcon,\n\tembedRedditIcon,\n\tembedTumblrIcon,\n\tembedAmazonIcon,\n\tembedAnimotoIcon,\n\tembedDailymotionIcon,\n\tembedPinterestIcon,\n\tembedWolframIcon,\n\tembedPocketCastsIcon,\n\tembedBlueskyIcon,\n} from './icons';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\nfunction getTitle( providerName ) {\n\treturn sprintf(\n\t\t/* translators: %s: provider name */\n\t\t__( '%s Embed' ),\n\t\tproviderName\n\t);\n}\n\n/**\n * The embed provider services.\n *\n * @type {WPBlockVariation[]}\n */\nconst variations = [\n\t{\n\t\tname: 'twitter',\n\t\ttitle: getTitle( 'X' ),\n\t\ticon: embedTwitterIcon,\n\t\tkeywords: [ 'x', 'twitter', 'tweet', __( 'social' ) ],\n\t\tdescription: __( 'Embed an X post.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?twitter\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'twitter', responsive: true },\n\t},\n\t{\n\t\tname: 'youtube',\n\t\ttitle: getTitle( 'YouTube' ),\n\t\ticon: embedYouTubeIcon,\n\t\tkeywords: [ __( 'music' ), __( 'video' ) ],\n\t\tdescription: __( 'Embed a YouTube video.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/((m|www)\\.)?youtube\\.com\\/.+/i,\n\t\t\t/^https?:\\/\\/youtu\\.be\\/.+/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'youtube', responsive: true },\n\t},\n\t{\n\t\t// Deprecate Facebook Embed per FB policy\n\t\t// See: https://developers.facebook.com/docs/plugins/oembed-legacy\n\t\tname: 'facebook',\n\t\ttitle: getTitle( 'Facebook' ),\n\t\ticon: embedFacebookIcon,\n\t\tkeywords: [ __( 'social' ) ],\n\t\tdescription: __( 'Embed a Facebook post.' ),\n\t\tscope: [ 'block' ],\n\t\tpatterns: [],\n\t\tattributes: {\n\t\t\tproviderNameSlug: 'facebook',\n\t\t\tpreviewable: false,\n\t\t\tresponsive: true,\n\t\t},\n\t},\n\t{\n\t\t// Deprecate Instagram per FB policy\n\t\t// See: https://developers.facebook.com/docs/instagram/oembed-legacy\n\t\tname: 'instagram',\n\t\ttitle: getTitle( 'Instagram' ),\n\t\ticon: embedInstagramIcon,\n\t\tkeywords: [ __( 'image' ), __( 'social' ) ],\n\t\tdescription: __( 'Embed an Instagram post.' ),\n\t\tscope: [ 'block' ],\n\t\tpatterns: [],\n\t\tattributes: { providerNameSlug: 'instagram', responsive: true },\n\t},\n\t{\n\t\tname: 'wordpress',\n\t\ttitle: getTitle( 'WordPress' ),\n\t\ticon: embedWordPressIcon,\n\t\tkeywords: [ __( 'post' ), __( 'blog' ) ],\n\t\tdescription: __( 'Embed a WordPress post.' ),\n\t\tattributes: {\n\t\t\tproviderNameSlug: 'wordpress',\n\t\t},\n\t},\n\t{\n\t\tname: 'soundcloud',\n\t\ttitle: getTitle( 'SoundCloud' ),\n\t\ticon: embedAudioIcon,\n\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\tdescription: __( 'Embed SoundCloud content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?soundcloud\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'soundcloud', responsive: true },\n\t},\n\t{\n\t\tname: 'spotify',\n\t\ttitle: getTitle( 'Spotify' ),\n\t\ticon: embedSpotifyIcon,\n\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\tdescription: __( 'Embed Spotify content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(open|play)\\.spotify\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'spotify', responsive: true },\n\t},\n\t{\n\t\tname: 'flickr',\n\t\ttitle: getTitle( 'Flickr' ),\n\t\ticon: embedFlickrIcon,\n\t\tkeywords: [ __( 'image' ) ],\n\t\tdescription: __( 'Embed Flickr content.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/(www\\.)?flickr\\.com\\/.+/i,\n\t\t\t/^https?:\\/\\/flic\\.kr\\/.+/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'flickr', responsive: true },\n\t},\n\t{\n\t\tname: 'vimeo',\n\t\ttitle: getTitle( 'Vimeo' ),\n\t\ticon: embedVimeoIcon,\n\t\tkeywords: [ __( 'video' ) ],\n\t\tdescription: __( 'Embed a Vimeo video.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?vimeo\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'vimeo', responsive: true },\n\t},\n\t{\n\t\tname: 'animoto',\n\t\ttitle: getTitle( 'Animoto' ),\n\t\ticon: embedAnimotoIcon,\n\t\tdescription: __( 'Embed an Animoto video.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?(animoto|video214)\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'animoto', responsive: true },\n\t},\n\t{\n\t\tname: 'cloudup',\n\t\ttitle: getTitle( 'Cloudup' ),\n\t\ticon: embedContentIcon,\n\t\tdescription: __( 'Embed Cloudup content.' ),\n\t\tpatterns: [ /^https?:\\/\\/cloudup\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'cloudup', responsive: true },\n\t},\n\t{\n\t\t// Deprecated since CollegeHumor content is now powered by YouTube.\n\t\tname: 'collegehumor',\n\t\ttitle: getTitle( 'CollegeHumor' ),\n\t\ticon: embedVideoIcon,\n\t\tdescription: __( 'Embed CollegeHumor content.' ),\n\t\tscope: [ 'block' ],\n\t\tpatterns: [],\n\t\tattributes: { providerNameSlug: 'collegehumor', responsive: true },\n\t},\n\t{\n\t\tname: 'crowdsignal',\n\t\ttitle: getTitle( 'Crowdsignal' ),\n\t\ticon: embedContentIcon,\n\t\tkeywords: [ 'polldaddy', __( 'survey' ) ],\n\t\tdescription: __( 'Embed Crowdsignal (formerly Polldaddy) content.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/((.+\\.)?polldaddy\\.com|poll\\.fm|.+\\.crowdsignal\\.net|.+\\.survey\\.fm)\\/.+/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'crowdsignal', responsive: true },\n\t},\n\t{\n\t\tname: 'dailymotion',\n\t\ttitle: getTitle( 'Dailymotion' ),\n\t\ticon: embedDailymotionIcon,\n\t\tkeywords: [ __( 'video' ) ],\n\t\tdescription: __( 'Embed a Dailymotion video.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?dailymotion\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'dailymotion', responsive: true },\n\t},\n\t{\n\t\tname: 'imgur',\n\t\ttitle: getTitle( 'Imgur' ),\n\t\ticon: embedPhotoIcon,\n\t\tdescription: __( 'Embed Imgur content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(.+\\.)?imgur\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'imgur', responsive: true },\n\t},\n\t{\n\t\tname: 'issuu',\n\t\ttitle: getTitle( 'Issuu' ),\n\t\ticon: embedContentIcon,\n\t\tdescription: __( 'Embed Issuu content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?issuu\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'issuu', responsive: true },\n\t},\n\t{\n\t\tname: 'kickstarter',\n\t\ttitle: getTitle( 'Kickstarter' ),\n\t\ticon: embedContentIcon,\n\t\tdescription: __( 'Embed Kickstarter content.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/(www\\.)?kickstarter\\.com\\/.+/i,\n\t\t\t/^https?:\\/\\/kck\\.st\\/.+/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'kickstarter', responsive: true },\n\t},\n\t{\n\t\tname: 'mixcloud',\n\t\ttitle: getTitle( 'Mixcloud' ),\n\t\ticon: embedAudioIcon,\n\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\tdescription: __( 'Embed Mixcloud content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?mixcloud\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'mixcloud', responsive: true },\n\t},\n\t{\n\t\tname: 'pocket-casts',\n\t\ttitle: getTitle( 'Pocket Casts' ),\n\t\ticon: embedPocketCastsIcon,\n\t\tkeywords: [ __( 'podcast' ), __( 'audio' ) ],\n\t\tdescription: __( 'Embed a podcast player from Pocket Casts.' ),\n\t\tpatterns: [ /^https:\\/\\/pca.st\\/\\w+/i ],\n\t\tattributes: { providerNameSlug: 'pocket-casts', responsive: true },\n\t},\n\t{\n\t\tname: 'reddit',\n\t\ttitle: getTitle( 'Reddit' ),\n\t\ticon: embedRedditIcon,\n\t\tdescription: __( 'Embed a Reddit thread.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reddit\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'reddit', responsive: true },\n\t},\n\t{\n\t\tname: 'reverbnation',\n\t\ttitle: getTitle( 'ReverbNation' ),\n\t\ticon: embedAudioIcon,\n\t\tdescription: __( 'Embed ReverbNation content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reverbnation\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'reverbnation', responsive: true },\n\t},\n\t{\n\t\tname: 'scribd',\n\t\ttitle: getTitle( 'Scribd' ),\n\t\ticon: embedContentIcon,\n\t\tdescription: __( 'Embed Scribd content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?scribd\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'scribd', responsive: true },\n\t},\n\t{\n\t\tname: 'smugmug',\n\t\ttitle: getTitle( 'SmugMug' ),\n\t\ticon: embedPhotoIcon,\n\t\tdescription: __( 'Embed SmugMug content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(.+\\.)?smugmug\\.com\\/.*/i ],\n\t\tattributes: {\n\t\t\tproviderNameSlug: 'smugmug',\n\t\t\tpreviewable: false,\n\t\t\tresponsive: true,\n\t\t},\n\t},\n\t{\n\t\tname: 'speaker-deck',\n\t\ttitle: getTitle( 'Speaker Deck' ),\n\t\ticon: embedContentIcon,\n\t\tdescription: __( 'Embed Speaker Deck content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?speakerdeck\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'speaker-deck', responsive: true },\n\t},\n\t{\n\t\tname: 'tiktok',\n\t\ttitle: getTitle( 'TikTok' ),\n\t\ticon: embedVideoIcon,\n\t\tkeywords: [ __( 'video' ) ],\n\t\tdescription: __( 'Embed a TikTok video.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?tiktok\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'tiktok', responsive: true },\n\t},\n\t{\n\t\tname: 'ted',\n\t\ttitle: getTitle( 'TED' ),\n\t\ticon: embedVideoIcon,\n\t\tdescription: __( 'Embed a TED video.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.|embed\\.)?ted\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'ted', responsive: true },\n\t},\n\t{\n\t\tname: 'tumblr',\n\t\ttitle: getTitle( 'Tumblr' ),\n\t\ticon: embedTumblrIcon,\n\t\tkeywords: [ __( 'social' ) ],\n\t\tdescription: __( 'Embed a Tumblr post.' ),\n\t\tpatterns: [ /^https?:\\/\\/(.+)\\.tumblr\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'tumblr', responsive: true },\n\t},\n\t{\n\t\tname: 'videopress',\n\t\ttitle: getTitle( 'VideoPress' ),\n\t\ticon: embedVideoIcon,\n\t\tkeywords: [ __( 'video' ) ],\n\t\tdescription: __( 'Embed a VideoPress video.' ),\n\t\tpatterns: [ /^https?:\\/\\/videopress\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'videopress', responsive: true },\n\t},\n\t{\n\t\tname: 'wordpress-tv',\n\t\ttitle: getTitle( 'WordPress.tv' ),\n\t\ticon: embedVideoIcon,\n\t\tdescription: __( 'Embed a WordPress.tv video.' ),\n\t\tpatterns: [ /^https?:\\/\\/wordpress\\.tv\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'wordpress-tv', responsive: true },\n\t},\n\t{\n\t\tname: 'amazon-kindle',\n\t\ttitle: getTitle( 'Amazon Kindle' ),\n\t\ticon: embedAmazonIcon,\n\t\tkeywords: [ __( 'ebook' ) ],\n\t\tdescription: __( 'Embed Amazon Kindle content.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/([a-z0-9-]+\\.)?(amazon|amzn)(\\.[a-z]{2,4})+\\/.+/i,\n\t\t\t/^https?:\\/\\/(www\\.)?(a\\.co|z\\.cn)\\/.+/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'amazon-kindle' },\n\t},\n\t{\n\t\tname: 'pinterest',\n\t\ttitle: getTitle( 'Pinterest' ),\n\t\ticon: embedPinterestIcon,\n\t\tkeywords: [ __( 'social' ), __( 'bookmark' ) ],\n\t\tdescription: __( 'Embed Pinterest pins, boards, and profiles.' ),\n\t\tpatterns: [\n\t\t\t/^https?:\\/\\/([a-z]{2}|www)\\.pinterest\\.com(\\.(au|mx))?\\/.*/i,\n\t\t],\n\t\tattributes: { providerNameSlug: 'pinterest' },\n\t},\n\t{\n\t\tname: 'wolfram-cloud',\n\t\ttitle: getTitle( 'Wolfram' ),\n\t\ticon: embedWolframIcon,\n\t\tdescription: __( 'Embed Wolfram notebook content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?wolframcloud\\.com\\/obj\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'wolfram-cloud', responsive: true },\n\t},\n\t{\n\t\tname: 'bluesky',\n\t\ttitle: getTitle( 'Bluesky' ),\n\t\ticon: embedBlueskyIcon,\n\t\tdescription: __( 'Embed a Bluesky post.' ),\n\t\tpatterns: [ /^https?:\\/\\/bsky\\.app\\/profile\\/.+\\/post\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'bluesky' },\n\t},\n];\n\n/**\n * Add `isActive` function to all `embed` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.providerNameSlug ===\n\t\tvariationAttributes.providerNameSlug;\n} );\n\nexport default variations;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the embed figcaption element.\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst className = clsx( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t[ `wp-block-embed-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t</div>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes: { url, caption, type, providerNameSlug } } ) {\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst embedClassName = clsx( 'wp-block-embed', {\n\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t} );\n\n\t\treturn (\n\t\t\t<figure className={ embedClassName }>\n\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport transforms from './transforms';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport { embedContentIcon } from './icons';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: embedContentIcon,\n\tedit,\n\tsave,\n\ttransforms,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\thref: 'https://upload.wikimedia.org/wikipedia/commons/d/dd/Armstrong_Small_Step.ogg',\n\t\t\tfileName: _x( 'Armstrong_Small_Step', 'Name of the file' ),\n\t\t},\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'file',\n\t\t\tlabel: __( 'File' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.href,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\thref: value.url,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'fileName',\n\t\t\tlabel: __( 'Filename' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'downloadButtonText',\n\t\t\tlabel: __( 'Button Text' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'file', 'fileName', 'downloadButtonText' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGetElementClassName,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\n\n// Version of the file block without PR#43050 removing the translated aria-label.\nconst v3 = {\n\tattributes: {\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfileId: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'id',\n\t\t},\n\t\tfileName: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a:not([download])',\n\t\t},\n\t\ttextLinkHref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttextLinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'target',\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdownloadButtonText: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t},\n\t\tdisplayPreview: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tpreviewHeight: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 600,\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\thref,\n\t\t\tfileId,\n\t\t\tfileName,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t\tdisplayPreview,\n\t\t\tpreviewHeight,\n\t\t} = attributes;\n\n\t\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t\t? __( 'PDF embed' )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %s: filename. */\n\t\t\t\t\t__( 'Embed of %s.' ),\n\t\t\t\t\tfileName\n\t\t\t );\n\n\t\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t\t// Only output an `aria-describedby` when the element it's referring to is\n\t\t// actually rendered.\n\t\tconst describedById = hasFilename ? fileId : undefined;\n\n\t\treturn (\n\t\t\thref && (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t{ displayPreview && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<object\n\t\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\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\t{ hasFilename && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\ttextLinkTarget\n\t\t\t\t\t\t\t\t\t? 'noreferrer noopener'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tdownload\n\t\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t},\n};\n\n// In #41239 the button was made an element button which added a `wp-element-button` classname\n// to the download link element.\nconst v2 = {\n\tattributes: {\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfileId: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'id',\n\t\t},\n\t\tfileName: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a:not([download])',\n\t\t},\n\t\ttextLinkHref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttextLinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'target',\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdownloadButtonText: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t},\n\t\tdisplayPreview: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tpreviewHeight: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 600,\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\thref,\n\t\t\tfileId,\n\t\t\tfileName,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t\tdisplayPreview,\n\t\t\tpreviewHeight,\n\t\t} = attributes;\n\n\t\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t\t? __( 'PDF embed' )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %s: filename. */\n\t\t\t\t\t__( 'Embed of %s.' ),\n\t\t\t\t\tfileName\n\t\t\t );\n\n\t\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t\t// Only output an `aria-describedby` when the element it's referring to is\n\t\t// actually rendered.\n\t\tconst describedById = hasFilename ? fileId : undefined;\n\n\t\treturn (\n\t\t\thref && (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t{ displayPreview && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<object\n\t\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\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\t{ hasFilename && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\ttextLinkTarget\n\t\t\t\t\t\t\t\t\t? 'noreferrer noopener'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\tclassName=\"wp-block-file__button\"\n\t\t\t\t\t\t\tdownload\n\t\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t},\n};\n\n// Version of the file block without PR#28062 accessibility fix.\nconst v1 = {\n\tattributes: {\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfileName: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a:not([download])',\n\t\t},\n\t\ttextLinkHref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'href',\n\t\t},\n\t\ttextLinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'target',\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdownloadButtonText: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t},\n\t\tdisplayPreview: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tpreviewHeight: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 600,\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\thref,\n\t\t\tfileName,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t\tdisplayPreview,\n\t\t\tpreviewHeight,\n\t\t} = attributes;\n\n\t\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t\t? __( 'PDF embed' )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %s: filename. */\n\t\t\t\t\t__( 'Embed of %s.' ),\n\t\t\t\t\tfileName\n\t\t\t );\n\n\t\treturn (\n\t\t\thref && (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t{ displayPreview && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<object\n\t\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\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\t{ ! RichText.isEmpty( fileName ) && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\t\trel={\n\t\t\t\t\t\t\t\ttextLinkTarget\n\t\t\t\t\t\t\t\t\t? 'noreferrer noopener'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\t\tclassName=\"wp-block-file__button\"\n\t\t\t\t\t\t\tdownload\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t},\n};\n\nconst deprecated = [ v3, v2, v1 ];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tResizableBox,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\nimport { browserSupportsPdfs } from './utils';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nexport const MIN_PREVIEW_HEIGHT = 200;\nexport const MAX_PREVIEW_HEIGHT = 2000;\n\nfunction ClipboardToolbarButton( { text, disabled } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tclassName=\"components-clipboard-toolbar-button\"\n\t\t\tref={ ref }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ __( 'Copy URL' ) }\n\t\t</ToolbarButton>\n\t);\n}\n\nfunction FileEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tid,\n\t\tfileName,\n\t\thref,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst { media } = useSelect(\n\t\t( select ) => ( {\n\t\t\tmedia:\n\t\t\t\tid === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\tid\n\t\t\t\t\t ),\n\t\t} ),\n\t\t[ id ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tonChange: onSelectFile,\n\t\tonError: onUploadError,\n\t} );\n\n\t// Note: Handle setting a default value for `downloadButtonText` via HTML API\n\t// when it supports replacing text content for HTML tags.\n\tuseEffect( () => {\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\t\t// This effect should only run on mount.\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\n\t\t\t// Reset attributes.\n\t\t\tsetAttributes( {\n\t\t\t\thref: undefined,\n\t\t\t\tfileName: undefined,\n\t\t\t\ttextLinkHref: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tfileId: undefined,\n\t\t\t\tdisplayPreview: undefined,\n\t\t\t\tpreviewHeight: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( newMedia.url ) ) {\n\t\t\tsetTemporaryURL( newMedia.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPdf =\n\t\t\t// Media Library and REST API use different properties for mime type.\n\t\t\t( newMedia.mime || newMedia.mime_type ) === 'application/pdf' ||\n\t\t\tgetFilename( newMedia.url ).toLowerCase().endsWith( '.pdf' );\n\t\tconst pdfAttributes = {\n\t\t\tdisplayPreview: isPdf\n\t\t\t\t? attributes.displayPreview ?? true\n\t\t\t\t: undefined,\n\t\t\tpreviewHeight: isPdf ? attributes.previewHeight ?? 600 : undefined,\n\t\t};\n\n\t\tsetAttributes( {\n\t\t\thref: newMedia.url,\n\t\t\tfileName: newMedia.title,\n\t\t\ttextLinkHref: newMedia.url,\n\t\t\tid: newMedia.id,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\n\t\t\t...pdfAttributes,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tsetAttributes( { href: undefined } );\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction changeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library).\n\t\tsetAttributes( { textLinkHref: newHref } );\n\t}\n\n\tfunction changeOpenInNewWindow( newValue ) {\n\t\tsetAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tfunction changeShowDownloadButton( newValue ) {\n\t\tsetAttributes( { showDownloadButton: newValue } );\n\t}\n\n\tfunction changeDisplayPreview( newValue ) {\n\t\tsetAttributes( { displayPreview: newValue } );\n\t}\n\n\tfunction handleOnResizeStop( event, direction, elt, delta ) {\n\t\ttoggleSelection( true );\n\n\t\tconst newHeight = parseInt( previewHeight + delta.height, 10 );\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tfunction changePreviewHeight( newValue ) {\n\t\tconst newHeight = Math.max(\n\t\t\tparseInt( newValue, 10 ),\n\t\t\tMIN_PREVIEW_HEIGHT\n\t\t);\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tconst attachmentPage = media && media.link;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t!! temporaryURL && getAnimateClassName( { type: 'loading' } ),\n\t\t\t{\n\t\t\t\t'is-transient': !! temporaryURL,\n\t\t\t}\n\t\t),\n\t} );\n\n\tconst displayPreviewInEditor = browserSupportsPdfs() && displayPreview;\n\n\tif ( ! href && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Drag and drop a file, upload, or choose from your library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FileBlockInspector\n\t\t\t\threfs={ {\n\t\t\t\t\thref: href || temporaryURL,\n\t\t\t\t\ttextLinkHref,\n\t\t\t\t\tattachmentPage,\n\t\t\t\t} }\n\t\t\t\t{ ...{\n\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\tchangeLinkDestinationOption,\n\t\t\t\t\tchangeOpenInNewWindow,\n\t\t\t\t\tchangeShowDownloadButton,\n\t\t\t\t\tdisplayPreview,\n\t\t\t\t\tchangeDisplayPreview,\n\t\t\t\t\tpreviewHeight,\n\t\t\t\t\tchangePreviewHeight,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ href }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tonReset={ () => onSelectFile( undefined ) }\n\t\t\t\t/>\n\t\t\t\t<ClipboardToolbarButton\n\t\t\t\t\ttext={ href }\n\t\t\t\t\tdisabled={ isBlobURL( href ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ displayPreviewInEditor && (\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tsize={ { height: previewHeight, width: '100%' } }\n\t\t\t\t\t\tminHeight={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\tmaxHeight={ MAX_PREVIEW_HEIGHT }\n\t\t\t\t\t\t// The horizontal grid value must be 1 or else the width may snap during a\n\t\t\t\t\t\t// resize even though only vertical resizing is enabled.\n\t\t\t\t\t\tgrid={ [ 1, 10 ] }\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => toggleSelection( false ) }\n\t\t\t\t\t\tonResizeStop={ handleOnResizeStop }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__preview\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Embed of the selected PDF file.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isSelected && (\n\t\t\t\t\t\t\t<div className=\"wp-block-file__preview-overlay\" />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ResizableBox>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-file__content-wrapper\">\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"fileName\"\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\tplaceholder={ __( 'Write file name\u2026' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfileName: removeAnchorTag( text ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<div className=\"wp-block-file__button-richtext-wrapper\">\n\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button. */ }\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tidentifier=\"downloadButtonText\"\n\t\t\t\t\t\t\t\ttagName=\"div\" // Must be block-level or else cursor disappears.\n\t\t\t\t\t\t\t\taria-label={ __( 'Download button text' ) }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t\t__experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t\t\t'button'\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\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text\u2026' ) }\n\t\t\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdownloadButtonText:\n\t\t\t\t\t\t\t\t\t\t\tremoveAnchorTag( text ),\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</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default FileEdit;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRangeControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { MIN_PREVIEW_HEIGHT, MAX_PREVIEW_HEIGHT } from './edit';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function FileBlockInspector( {\n\threfs,\n\topenInNewWindow,\n\tshowDownloadButton,\n\tchangeLinkDestinationOption,\n\tchangeOpenInNewWindow,\n\tchangeShowDownloadButton,\n\tdisplayPreview,\n\tchangeDisplayPreview,\n\tpreviewHeight,\n\tchangePreviewHeight,\n} ) {\n\tconst { href, textLinkHref, attachmentPage } = hrefs;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\tif ( attachmentPage ) {\n\t\tlinkDestinationOptions = [\n\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t];\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ href.endsWith( '.pdf' ) && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'PDF settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tchangeDisplayPreview( true );\n\t\t\t\t\t\t\tchangePreviewHeight( 600 );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Show inline embed' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => ! displayPreview }\n\t\t\t\t\t\t\tonDeselect={ () => changeDisplayPreview( true ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show inline embed' ) }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tdisplayPreview\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\"Note: Most phone and tablet browsers won't display embedded PDFs.\"\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ !! displayPreview }\n\t\t\t\t\t\t\t\tonChange={ changeDisplayPreview }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t{ displayPreview && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Height in pixels' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => previewHeight !== 600 }\n\t\t\t\t\t\t\t\tonDeselect={ () => changePreviewHeight( 600 ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Height in pixels' ) }\n\t\t\t\t\t\t\t\t\tmin={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\t\t\t\tmax={ Math.max(\n\t\t\t\t\t\t\t\t\t\tMAX_PREVIEW_HEIGHT,\n\t\t\t\t\t\t\t\t\t\tpreviewHeight\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ previewHeight }\n\t\t\t\t\t\t\t\t\tonChange={ changePreviewHeight }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t) }\n\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tchangeLinkDestinationOption( href );\n\t\t\t\t\t\tchangeOpenInNewWindow( false );\n\t\t\t\t\t\tchangeShowDownloadButton( true );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => textLinkHref !== href }\n\t\t\t\t\t\tonDeselect={ () => changeLinkDestinationOption( href ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\t\tonChange={ changeLinkDestinationOption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! openInNewWindow }\n\t\t\t\t\t\tonDeselect={ () => changeOpenInNewWindow( false ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ openInNewWindow }\n\t\t\t\t\t\t\tonChange={ changeOpenInNewWindow }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showDownloadButton }\n\t\t\t\t\t\tonDeselect={ () => changeShowDownloadButton( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ changeShowDownloadButton }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n", "/**\n * Uses a combination of user agent matching and feature detection to determine whether\n * the current browser supports rendering PDFs inline.\n *\n * @return {boolean} Whether or not the browser supports inline PDFs.\n */\nexport const browserSupportsPdfs = () => {\n\t// Use native feature detection if available.\n\tif ( window.navigator.pdfViewerEnabled ) {\n\t\treturn true;\n\t}\n\n\t// Most mobile devices include \"Mobi\" in their UA.\n\tif ( window.navigator.userAgent.indexOf( 'Mobi' ) > -1 ) {\n\t\treturn false;\n\t}\n\n\t// Android tablets are the notable exception.\n\tif ( window.navigator.userAgent.indexOf( 'Android' ) > -1 ) {\n\t\treturn false;\n\t}\n\n\t// iPad pretends to be a Mac.\n\tif (\n\t\twindow.navigator.userAgent.indexOf( 'Macintosh' ) > -1 &&\n\t\twindow.navigator.maxTouchPoints &&\n\t\twindow.navigator.maxTouchPoints > 2\n\t) {\n\t\treturn false;\n\t}\n\n\t// IE only supports PDFs when there's an ActiveX object available for it.\n\tif (\n\t\t!! ( window.ActiveXObject || 'ActiveXObject' in window ) &&\n\t\t! (\n\t\t\tcreateActiveXObject( 'AcroPDF.PDF' ) ||\n\t\t\tcreateActiveXObject( 'PDF.PdfCtrl' )\n\t\t)\n\t) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n/**\n * Helper function for creating ActiveX objects, catching any errors that are thrown\n * when it's generated.\n *\n * @param {string} type The name of the ActiveX object to create.\n * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.\n */\nconst createActiveXObject = ( type ) => {\n\tlet ax;\n\ttry {\n\t\tax = new window.ActiveXObject( type );\n\t} catch ( e ) {\n\t\tax = undefined;\n\t}\n\treturn ax;\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/file\",\n\t\"title\": \"File\",\n\t\"category\": \"media\",\n\t\"description\": \"Add a link to a downloadable file.\",\n\t\"keywords\": [ \"document\", \"pdf\", \"download\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"id\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"blob\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"local\"\n\t\t},\n\t\t\"href\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"fileId\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a:not([download])\",\n\t\t\t\"attribute\": \"id\"\n\t\t},\n\t\t\"fileName\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"a:not([download])\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textLinkHref\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a:not([download])\",\n\t\t\t\"attribute\": \"href\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textLinkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"a:not([download])\",\n\t\t\t\"attribute\": \"target\"\n\t\t},\n\t\t\"showDownloadButton\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"downloadButtonText\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"a[download]\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"displayPreview\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"previewHeight\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 600\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": true\n\t},\n\t\"editorStyle\": \"wp-block-file-editor\",\n\t\"style\": \"wp-block-file\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\thref,\n\t\tfileId,\n\t\tfileName,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\n\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t? 'PDF embed'\n\t\t: // To do: use toPlainText, but we need ensure it's RichTextData. See\n\t\t // https://github.com/WordPress/gutenberg/pull/56710.\n\t\t fileName.toString();\n\n\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t// Only output an `aria-describedby` when the element it's referring to is\n\t// actually rendered.\n\tconst describedById = hasFilename ? fileId : undefined;\n\n\treturn (\n\t\thref && (\n\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t{ displayPreview && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ hasFilename && (\n\t\t\t\t\t<a\n\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={\n\t\t\t\t\t\t\ttextLinkTarget ? 'noreferrer noopener' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdownload\n\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t)\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { getFilename } from '@wordpress/url';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn files.length > 0;\n\t\t\t},\n\t\t\t// We define a lower priority (higher number) than the default of 10. This\n\t\t\t// ensures that the File block is only created as a fallback.\n\t\t\tpriority: 15,\n\t\t\ttransform: ( files ) => {\n\t\t\t\tconst blocks = [];\n\n\t\t\t\tfiles.forEach( ( file ) => {\n\t\t\t\t\tconst blobURL = createBlobURL( file );\n\n\t\t\t\t\t// File will be uploaded in componentDidMount()\n\t\t\t\t\tif ( file.type.startsWith( 'video/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( file.type.startsWith( 'image/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( file.type.startsWith( 'audio/' ) ) {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/audio', {\n\t\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tblocks.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/file', {\n\t\t\t\t\t\t\t\tblob: blobURL,\n\t\t\t\t\t\t\t\tfileName: file.name,\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\n\t\t\t\treturn blocks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/audio' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.src,\n\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.src,\n\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\thref: attributes.url,\n\t\t\t\t\tfileName:\n\t\t\t\t\t\tattributes.caption || getFilename( attributes.url ),\n\t\t\t\t\ttextLinkHref: attributes.url,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/audio' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'audio' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/audio', {\n\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'video' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/video', {\n\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( { id } ) => {\n\t\t\t\tif ( ! id ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t\tconst media = getEntityRecord( 'postType', 'attachment', id );\n\t\t\t\treturn !! media && media.mime_type.includes( 'image' );\n\t\t\t},\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl: attributes.href,\n\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\tid: attributes.id,\n\t\t\t\t\tanchor: attributes.anchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport { icon } from './icons';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n\texample: {},\n};\n\nexport const init = () => {\n\t// Prevent adding forms inside forms.\n\tconst DISALLOWED_PARENTS = [ 'core/form' ];\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/block-library/preventInsertingFormIntoAnotherForm',\n\t\t(\n\t\t\tcanInsert,\n\t\t\tblockType,\n\t\t\trootClientId,\n\t\t\t{ getBlock, getBlockParentsByBlockName }\n\t\t) => {\n\t\t\tif ( blockType.name !== 'core/form' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\t\tconst hasDisallowedParent =\n\t\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tdisallowedParentType\n\t\t\t\t\t).length;\n\t\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tSelectControl,\n\tTextControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport {\n\tformSubmissionNotificationSuccess,\n\tformSubmissionNotificationError,\n} from './utils.js';\n\nconst TEMPLATE = [\n\tformSubmissionNotificationSuccess,\n\tformSubmissionNotificationError,\n\t[\n\t\t'core/form-input',\n\t\t{\n\t\t\ttype: 'text',\n\t\t\tlabel: __( 'Name' ),\n\t\t\trequired: true,\n\t\t},\n\t],\n\t[\n\t\t'core/form-input',\n\t\t{\n\t\t\ttype: 'email',\n\t\t\tlabel: __( 'Email' ),\n\t\t\trequired: true,\n\t\t},\n\t],\n\t[\n\t\t'core/form-input',\n\t\t{\n\t\t\ttype: 'textarea',\n\t\t\tlabel: __( 'Comment' ),\n\t\t\trequired: true,\n\t\t},\n\t],\n\t[ 'core/form-submit-button', {} ],\n];\n\nconst Edit = ( { attributes, setAttributes, clientId } ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst resetAllSettings = () => {\n\t\tsetAttributes( {\n\t\t\tsubmissionMethod: 'email',\n\t\t\temail: undefined,\n\t\t\taction: undefined,\n\t\t\tmethod: 'post',\n\t\t} );\n\t};\n\n\tconst { action, method, email, submissionMethod } = attributes;\n\tconst blockProps = useBlockProps();\n\n\tconst { hasInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ resetAllSettings }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => submissionMethod !== 'email' }\n\t\t\t\t\t\tlabel={ __( 'Submissions method' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsubmissionMethod: 'email',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Submissions method' ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t// TODO: Allow plugins to add their own submission methods.\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Send email' ),\n\t\t\t\t\t\t\t\t\tvalue: 'email',\n\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\t\tlabel: __( '- Custom -' ),\n\t\t\t\t\t\t\t\t\tvalue: 'custom',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tvalue={ submissionMethod }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { submissionMethod: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tsubmissionMethod === 'custom'\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'Select the method to use for form submissions. Additional options for the \"custom\" mode can be found in the \"Advanced\" section.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'Select the method to use for form submissions.'\n\t\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</ToolsPanelItem>\n\t\t\t\t\t{ submissionMethod === 'email' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! email }\n\t\t\t\t\t\t\tlabel={ __( 'Email for form submissions' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\temail: undefined,\n\t\t\t\t\t\t\t\t\taction: undefined,\n\t\t\t\t\t\t\t\t\tmethod: 'post',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Email for form submissions' ) }\n\t\t\t\t\t\t\t\tvalue={ email || '' }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { email: value } );\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\taction: `mailto:${ value }`,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetAttributes( { method: 'post' } );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'The email address where form submissions will be sent. Separate multiple email addresses with a comma.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ submissionMethod !== 'email' && (\n\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Method' ) }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: 'Get', value: 'get' },\n\t\t\t\t\t\t\t{ label: 'Post', value: 'post' },\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tvalue={ method }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { method: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Select the method to use for form submissions.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tlabel={ __( 'Form action' ) }\n\t\t\t\t\t\tvalue={ action }\n\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\taction: newVal,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The URL where the form should be submitted.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<form\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t\tencType={ submissionMethod === 'email' ? 'text/plain' : null }\n\t\t\t/>\n\t\t</>\n\t);\n};\nexport default Edit;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const formSubmissionNotificationSuccess = [\n\t'core/form-submission-notification',\n\t{\n\t\ttype: 'success',\n\t},\n\t[\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\tcontent:\n\t\t\t\t\t'<mark style=\"background-color:rgba(0, 0, 0, 0);color:#345C00\" class=\"has-inline-color\">' +\n\t\t\t\t\t__( 'Your form has been submitted successfully' ) +\n\t\t\t\t\t'</mark>',\n\t\t\t},\n\t\t],\n\t],\n];\nexport const formSubmissionNotificationError = [\n\t'core/form-submission-notification',\n\t{\n\t\ttype: 'error',\n\t},\n\t[\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\tcontent:\n\t\t\t\t\t'<mark style=\"background-color:rgba(0, 0, 0, 0);color:#CF2E2E\" class=\"has-inline-color\">' +\n\t\t\t\t\t__( 'There was an error submitting your form.' ) +\n\t\t\t\t\t'</mark>',\n\t\t\t},\n\t\t],\n\t],\n];\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": true,\n\t\"name\": \"core/form\",\n\t\"title\": \"Form\",\n\t\"category\": \"common\",\n\t\"allowedBlocks\": [\n\t\t\"core/paragraph\",\n\t\t\"core/heading\",\n\t\t\"core/form-input\",\n\t\t\"core/form-submit-button\",\n\t\t\"core/form-submission-notification\",\n\t\t\"core/group\",\n\t\t\"core/columns\"\n\t],\n\t\"description\": \"A form.\",\n\t\"keywords\": [ \"container\", \"wrapper\", \"row\", \"section\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"submissionMethod\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"email\"\n\t\t},\n\t\t\"method\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"post\"\n\t\t},\n\t\t\"action\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"email\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst { submissionMethod } = attributes;\n\n\treturn (\n\t\t<form\n\t\t\t{ ...blockProps }\n\t\t\tencType={ submissionMethod === 'email' ? 'text/plain' : null }\n\t\t>\n\t\t\t<InnerBlocks.Content />\n\t\t</form>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tformSubmissionNotificationSuccess,\n\tformSubmissionNotificationError,\n} from './utils.js';\n\nconst variations = [\n\t{\n\t\tname: 'comment-form',\n\t\ttitle: __( 'Experimental Comment form' ),\n\t\tdescription: __( 'A comment form for posts and pages.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '{SITE_URL}/wp-comments-post.php',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'comment-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tname: 'author',\n\t\t\t\t\tlabel: __( 'Name' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Email' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'textarea',\n\t\t\t\t\tname: 'comment',\n\t\t\t\t\tlabel: __( 'Comment' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'wp-privacy-form',\n\t\ttitle: __( 'Experimental Privacy Request Form' ),\n\t\tkeywords: [ 'GDPR' ],\n\t\tdescription: __( 'A form to request data exports and/or deletion.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'gdpr-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\tformSubmissionNotificationSuccess,\n\t\t\tformSubmissionNotificationError,\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Enter your email address.' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'export_personal_data',\n\t\t\t\t\tlabel: __( 'Request data export' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'remove_personal_data',\n\t\t\t\t\tlabel: __( 'Request data deletion' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-action',\n\t\t\t\t\tvalue: 'wp_privacy_send_request',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-privacy-request',\n\t\t\t\t\tvalue: '1',\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tgetTypographyClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n} from '@wordpress/block-editor';\n\nconst v1 = {\n\t// The block supports here are deliberately empty despite this\n\t// deprecated version of the block having adopted block supports.\n\t// The attributes added by these supports have been manually\n\t// added to this deprecated version's attributes definition so\n\t// that the data isn't lost on migration. All this is so that the\n\t// automatic application of block support classes doesn't occur\n\t// as this version of the block had a bug that overrode those\n\t// classes. If those block support classes are applied during the\n\t// deprecation process, this deprecation doesn't match and won't\n\t// run.\n\t// @see https://github.com/WordPress/gutenberg/pull/55755\n\tsupports: {},\n\tattributes: {\n\t\tsubmissionMethod: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'email',\n\t\t},\n\t\tmethod: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'post',\n\t\t},\n\t\taction: {\n\t\t\ttype: 'string',\n\t\t},\n\t\temail: {\n\t\t\ttype: 'string',\n\t\t},\n\t\t// The following attributes have been added to match the block\n\t\t// supports at the time of the deprecation. See above for details.\n\t\tanchor: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'id',\n\t\t\tselector: '*',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tgradient: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstyle: {\n\t\t\ttype: 'object',\n\t\t},\n\t\tfontFamily: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfontSize: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { submissionMethod } = attributes;\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst typographyProps = getTypographyClassesAndStyles( attributes );\n\t\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\t\tconst blockProps = useBlockProps.save( {\n\t\t\t// In this deprecated version, the block support is deliberately empty.\n\t\t\t// As a result, the useBlockProps.save() does not output style or id attributes,\n\t\t\t// so we apply them explicitly here.\n\t\t\tstyle: {\n\t\t\t\t...colorProps.style,\n\t\t\t\t...typographyProps.style,\n\t\t\t\t...spacingProps.style,\n\t\t\t},\n\t\t\tid: attributes.anchor,\n\t\t} );\n\n\t\treturn (\n\t\t\t<form\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName=\"wp-block-form\"\n\t\t\t\tencType={ submissionMethod === 'email' ? 'text/plain' : null }\n\t\t\t>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport const icon = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 16H6c-1.1 0-2 .9-2 2s.9 2 2 2h12c1.1 0 2-.9 2-2s-.9-2-2-2Zm0 2.5H6c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h12c.3 0 .5.2.5.5s-.2.5-.5.5ZM13 13H4v1.5h9V13Zm-7-2h12c1.1 0 2-.9 2-2s-.9-2-2-2H6c-1.1 0-2 .9-2 2s.9 2 2 2Zm0-2.5h12c.3 0 .5.2.5.5s-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5s.2-.5.5-.5ZM13 4H4v1.5h9V4Z\" />\n\t</SVG>\n);\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nconst getNameFromLabelV1 = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nconst v2 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\trole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\trole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = clsx(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tconst blockProps = useBlockProps.save();\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t\t<label\n\t\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t\t<TagName\n\t\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\t\trequired={ required }\n\t\t\t\t\t\taria-required={ required }\n\t\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t\t</div>\n\t\t);\n\t},\n};\n\n// Version without wrapper div in saved markup\n// See: https://github.com/WordPress/gutenberg/pull/56507\nconst v1 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\trole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\trole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = clsx(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\t\treturn (\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/label-has-associated-control */\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\t// Note: radio inputs aren't implemented yet.\n\tconst isCheckboxOrRadio = type === 'checkbox' || type === 'radio';\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tinlineLabel: false,\n\t\t\t\t\t\t\t\trequired: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\thasValue={ () => !! inlineLabel }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { inlineLabel: false } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t\t} );\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\thasValue={ () => !! required }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { required: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\trequired: newVal,\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</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst content = (\n\t\t<RichText\n\t\t\ttagName=\"span\"\n\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\tvalue={ label }\n\t\t\tonChange={ ( newLabel ) => setAttributes( { label: newLabel } ) }\n\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\tdata-empty={ ! label }\n\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t/>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! isCheckboxOrRadio && content }\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder\u2026' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ isCheckboxOrRadio && content }\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": true,\n\t\"name\": \"core/form-input\",\n\t\"title\": \"Input Field\",\n\t\"category\": \"common\",\n\t\"ancestor\": [ \"core/form\" ],\n\t\"description\": \"The basic building block for forms.\",\n\t\"keywords\": [ \"input\", \"form\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"text\"\n\t\t},\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"label\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"default\": \"Label\",\n\t\t\t\"selector\": \".wp-block-form-input__label-content\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"inlineLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"required\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"selector\": \".wp-block-form-input__input\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"attribute\": \"required\"\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"selector\": \".wp-block-form-input__input\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"attribute\": \"placeholder\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"value\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"selector\": \"input\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"attribute\": \"value\"\n\t\t},\n\t\t\"visibilityPermissions\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"all\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ]\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": [ \"wp-block-form-input\" ]\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = clsx(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\t// Note: radio inputs aren't implemented yet.\n\tconst isCheckboxOrRadio = type === 'checkbox' || type === 'radio';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t\t{ isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'text',\n\t\ttitle: __( 'Text Input' ),\n\t\tdescription: __( 'A generic text input.' ),\n\t\tattributes: { type: 'text' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'textarea',\n\t\ttitle: __( 'Textarea Input' ),\n\t\tdescription: __(\n\t\t\t'A textarea input to allow entering multiple lines of text.'\n\t\t),\n\t\tattributes: { type: 'textarea' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'textarea',\n\t},\n\t{\n\t\tname: 'checkbox',\n\t\ttitle: __( 'Checkbox Input' ),\n\t\tdescription: __( 'A simple checkbox input.' ),\n\t\tattributes: { type: 'checkbox', inlineLabel: true },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'checkbox',\n\t},\n\t{\n\t\tname: 'email',\n\t\ttitle: __( 'Email Input' ),\n\t\tdescription: __( 'Used for email addresses.' ),\n\t\tattributes: { type: 'email' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'email',\n\t},\n\t{\n\t\tname: 'url',\n\t\ttitle: __( 'URL Input' ),\n\t\tdescription: __( 'Used for URLs.' ),\n\t\tattributes: { type: 'url' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'url',\n\t},\n\t{\n\t\tname: 'tel',\n\t\ttitle: __( 'Telephone Input' ),\n\t\tdescription: __( 'Used for phone numbers.' ),\n\t\tattributes: { type: 'tel' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'tel',\n\t},\n\t{\n\t\tname: 'number',\n\t\ttitle: __( 'Number Input' ),\n\t\tdescription: __( 'A numeric input.' ),\n\t\tattributes: { type: 'number' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'number',\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport const icon = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M5.547 18.892A.99.99 0 0 0 6 19h.72v1H6a1.99 1.99 0 0 1-.908-.22l.455-.888ZM9.12 20H7.68v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1Zm2.587-.22c-.272.14-.58.22-.907.22h-.72v-1H18a.99.99 0 0 0 .453-.108l.454.888ZM5.108 17.547a.99.99 0 0 0 0 .906l-.89.454a1.99 1.99 0 0 1 0-1.815l.89.455Zm14.672-.455a1.99 1.99 0 0 1 0 1.815l-.888-.454a.99.99 0 0 0 0-.906l.888-.455ZM6.72 17H6a.99.99 0 0 0-.453.108l-.455-.89A1.99 1.99 0 0 1 6 16h.72v1ZM18 16c.327 0 .635.08.907.219l-.454.89A.99.99 0 0 0 18 17h-.72v-1H18Zm-8.88 1H7.68v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1Zm2.4 0h-1.44v-1h1.44v1ZM5.5 14.28H4.25v-1H5.5v1Zm2.5 0H6.5v-1H8v1Zm2.5 0H9v-1h1.5v1Zm2.25 0H11.5v-1h1.25v1ZM18 7a2 2 0 1 1 0 4H6a2 2 0 1 1 0-4h12ZM6 8.5a.5.5 0 0 0 0 1h12a.5.5 0 0 0 0-1H6Zm7-3H4V4h9v1.5Z\" />\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\nimport { icon } from './icons';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tdeprecated,\n\tedit,\n\tsave,\n\tvariations,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/buttons',\n\t\t{},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/button',\n\t\t\t\t{\n\t\t\t\t\ttext: __( 'Submit' ),\n\t\t\t\t\ttagName: 'button',\n\t\t\t\t\ttype: 'submit',\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\nconst Edit = () => {\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: 'all',\n\t} );\n\treturn (\n\t\t<div className=\"wp-block-form-submit-wrapper\" { ...innerBlocksProps } />\n\t);\n};\nexport default Edit;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": true,\n\t\"name\": \"core/form-submit-button\",\n\t\"title\": \"Form Submit Button\",\n\t\"category\": \"common\",\n\t\"icon\": \"button\",\n\t\"ancestor\": [ \"core/form\" ],\n\t\"allowedBlocks\": [ \"core/buttons\", \"core/button\" ],\n\t\"description\": \"A submission button for forms.\",\n\t\"keywords\": [ \"submit\", \"button\", \"form\" ],\n\t\"textdomain\": \"default\",\n\t\"style\": [ \"wp-block-form-submit-button\" ]\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save();\n\treturn (\n\t\t<div className=\"wp-block-form-submit-wrapper\" { ...blockProps }>\n\t\t\t<InnerBlocks.Content />\n\t\t</div>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tcontent: __(\n\t\t\t\t\"Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.\"\n\t\t\t),\n\t\t},\n\t],\n];\n\nconst Edit = ( { attributes, clientId } ) => {\n\tconst { type } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-form-submission-notification', {\n\t\t\t[ `form-notification-type-${ type }` ]: type,\n\t\t} ),\n\t} );\n\n\tconst { hasInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\t{ ...innerBlocksProps }\n\t\t\tdata-message-success={ __( 'Submission success notification' ) }\n\t\t\tdata-message-error={ __( 'Submission error notification' ) }\n\t\t/>\n\t);\n};\nexport default Edit;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": true,\n\t\"name\": \"core/form-submission-notification\",\n\t\"title\": \"Form Submission Notification\",\n\t\"category\": \"common\",\n\t\"ancestor\": [ \"core/form\" ],\n\t\"description\": \"Provide a notification message after the form has been submitted.\",\n\t\"keywords\": [ \"form\", \"feedback\", \"notification\", \"message\" ],\n\t\"textdomain\": \"default\",\n\t\"icon\": \"feedback\",\n\t\"attributes\": {\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"success\"\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\nexport default function save( { attributes } ) {\n\tconst { type } = attributes;\n\n\treturn (\n\t\t<div\n\t\t\t{ ...useInnerBlocksProps.save(\n\t\t\t\tuseBlockProps.save( {\n\t\t\t\t\tclassName: clsx( 'wp-block-form-submission-notification', {\n\t\t\t\t\t\t[ `form-notification-type-${ type }` ]: type,\n\t\t\t\t\t} ),\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'form-submission-success',\n\t\ttitle: __( 'Form Submission Success' ),\n\t\tdescription: __( 'Success message for form submissions.' ),\n\t\tattributes: {\n\t\t\ttype: 'success',\n\t\t},\n\t\tisDefault: true,\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Your form has been submitted successfully.' ),\n\t\t\t\t\tbackgroundColor: '#00D084',\n\t\t\t\t\ttextColor: '#000000',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\telements: { link: { color: { text: '#000000' } } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'success',\n\t},\n\t{\n\t\tname: 'form-submission-error',\n\t\ttitle: __( 'Form Submission Error' ),\n\t\tdescription: __( 'Error/failure message for form submissions.' ),\n\t\tattributes: {\n\t\t\ttype: 'error',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'There was an error submitting your form.' ),\n\t\t\t\t\tbackgroundColor: '#CF2E2E',\n\t\t\t\t\ttextColor: '#FFFFFF',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\telements: { link: { color: { text: '#FFFFFF' } } },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'error',\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tvariations,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\n\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\n\nconst DEPRECATED_LINK_DESTINATION_MEDIA = 'file';\nconst DEPRECATED_LINK_DESTINATION_ATTACHMENT = 'post';\n\n/**\n * Original function to determine default number of columns from a block's\n * attributes.\n *\n * Used in deprecations: v1-6, for versions of the gallery block that didn't use inner blocks.\n *\n * @param {Object} attributes Block attributes.\n * @return {number} Default number of columns for the gallery.\n */\nexport function defaultColumnsNumberV1( attributes ) {\n\treturn Math.min( 3, attributes?.images?.length );\n}\n\n/**\n * Original function to determine new href and linkDestination values for an image block from the\n * supplied Gallery link destination.\n *\n * Used in deprecations: v1-6.\n *\n * @param {Object} image Gallery image.\n * @param {string} destination Gallery's selected link destination.\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination( image, destination ) {\n\t// Need to determine the URL that the selected destination maps to.\n\t// Gutenberg and WordPress use different constants so the new link\n\t// destination also needs to be tweaked.\n\tswitch ( destination ) {\n\t\tcase DEPRECATED_LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url,\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t};\n\t\tcase DEPRECATED_LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t};\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url,\n\t\t\t\tlinkDestination: LINK_DESTINATION_MEDIA,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: LINK_DESTINATION_ATTACHMENT,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: LINK_DESTINATION_NONE,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n\nfunction runV2Migration( attributes ) {\n\tlet linkTo = attributes.linkTo ? attributes.linkTo : 'none';\n\n\tif ( linkTo === 'post' ) {\n\t\tlinkTo = 'attachment';\n\t} else if ( linkTo === 'file' ) {\n\t\tlinkTo = 'media';\n\t}\n\n\tconst imageBlocks = attributes.images.map( ( image ) => {\n\t\treturn getImageBlock( image, attributes.sizeSlug, linkTo );\n\t} );\n\n\tconst { images, ids, ...restAttributes } = attributes;\n\n\treturn [\n\t\t{\n\t\t\t...restAttributes,\n\t\t\tlinkTo,\n\t\t\tallowResize: false,\n\t\t},\n\t\timageBlocks,\n\t];\n}\n/**\n * Gets an Image block from gallery image data\n *\n * Used to migrate Galleries to nested Image InnerBlocks.\n *\n * @param {Object} image Image properties.\n * @param {string} sizeSlug Gallery sizeSlug attribute.\n * @param {string} linkTo Gallery linkTo attribute.\n * @return {Object} Image block.\n */\nexport function getImageBlock( image, sizeSlug, linkTo ) {\n\treturn createBlock( 'core/image', {\n\t\t...( image.id && { id: parseInt( image.id ) } ),\n\t\turl: image.url,\n\t\talt: image.alt,\n\t\tcaption: image.caption,\n\t\tsizeSlug,\n\t\t...getHrefAndDestination( image, linkTo ),\n\t} );\n}\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the gallery figcaption element.\nconst v7 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: '.blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\tfullUrl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-full-url',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: '.blocks-gallery-item__caption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tids: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tdefault: [],\n\t\t},\n\t\tshortCodeTransforms: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\titems: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tminimum: 1,\n\t\t\tmaximum: 8,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: '.blocks-gallery-caption',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tfixedHeight: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'large',\n\t\t},\n\t\tallowResize: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { caption, columns, imageCrop } = attributes;\n\n\t\tconst className = clsx( 'has-nested-images', {\n\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t'is-cropped': imageCrop,\n\t\t} );\n\t\tconst blockProps = useBlockProps.save( { className } );\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\t\treturn (\n\t\t\t<figure { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v6 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: '.blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\tfullUrl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-full-url',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: '.blocks-gallery-item__caption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tids: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tdefault: [],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tminimum: 1,\n\t\t\tmaximum: 8,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: '.blocks-gallery-caption',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tfixedHeight: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'large',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\timageCrop,\n\t\t\tcaption,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\t\tconst className = `columns-${ columns } ${\n\t\t\timageCrop ? 'is-cropped' : ''\n\t\t}`;\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<ul className=\"blocks-gallery-grid\">\n\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\tcase DEPRECATED_LINK_DESTINATION_MEDIA:\n\t\t\t\t\t\t\t\thref = image.fullUrl || image.url;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase DEPRECATED_LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst img = (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t\t\tdata-full-url={ image.fullUrl }\n\t\t\t\t\t\t\t\tdata-link={ image.link }\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\timage.id ? `wp-image-${ image.id }` : null\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\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t\t\t\t\t<a href={ href }>{ img }</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\timg\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! RichText.isEmpty( image.caption ) && (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item__caption\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={ image.caption }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</ul>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n};\nconst v5 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: '.blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\tfullUrl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-full-url',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: '.blocks-gallery-item__caption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tids: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\tdefault: [],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tminimum: 1,\n\t\t\tmaximum: 8,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: '.blocks-gallery-caption',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'large',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tisEligible( { linkTo } ) {\n\t\treturn ! linkTo || linkTo === 'attachment' || linkTo === 'media';\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\timageCrop,\n\t\t\tcaption,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ `columns-${ columns } ${\n\t\t\t\t\timageCrop ? 'is-cropped' : ''\n\t\t\t\t}` }\n\t\t\t>\n\t\t\t\t<ul className=\"blocks-gallery-grid\">\n\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\thref = image.fullUrl || image.url;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst img = (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t\t\tdata-full-url={ image.fullUrl }\n\t\t\t\t\t\t\t\tdata-link={ image.link }\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\timage.id ? `wp-image-${ image.id }` : null\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\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t\t\t\t\t<a href={ href }>{ img }</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\timg\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! RichText.isEmpty( image.caption ) && (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item__caption\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={ image.caption }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</ul>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v4 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: '.blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\tfullUrl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-full-url',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: '.blocks-gallery-item__caption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tids: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: '.blocks-gallery-caption',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tisEligible( { ids } ) {\n\t\treturn ids && ids.some( ( id ) => typeof id === 'string' );\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\timageCrop,\n\t\t\tcaption,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ `columns-${ columns } ${\n\t\t\t\t\timageCrop ? 'is-cropped' : ''\n\t\t\t\t}` }\n\t\t\t>\n\t\t\t\t<ul className=\"blocks-gallery-grid\">\n\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\thref = image.fullUrl || image.url;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst img = (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t\t\tdata-full-url={ image.fullUrl }\n\t\t\t\t\t\t\t\tdata-link={ image.link }\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\timage.id ? `wp-image-${ image.id }` : null\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\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t{ href ? (\n\t\t\t\t\t\t\t\t\t\t<a href={ href }>{ img }</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\timg\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ ! RichText.isEmpty( image.caption ) && (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"blocks-gallery-item__caption\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={ image.caption }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</ul>\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\nconst v3 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'ul.wp-block-gallery .blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\tfullUrl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-full-url',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: 'figcaption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tids: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\timageCrop,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\t\treturn (\n\t\t\t<ul\n\t\t\t\tclassName={ `columns-${ columns } ${\n\t\t\t\t\timageCrop ? 'is-cropped' : ''\n\t\t\t\t}` }\n\t\t\t>\n\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\tlet href;\n\n\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\thref = image.fullUrl || image.url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst img = (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t\tdata-full-url={ image.fullUrl }\n\t\t\t\t\t\t\tdata-link={ image.link }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\timage.id ? `wp-image-${ image.id }` : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\t\t\t\tvalue={ image.caption }\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</figure>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n};\nconst v2 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'ul.wp-block-gallery .blocks-gallery-item',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t\tlink: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t\tattribute: 'data-link',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: 'figcaption',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tisEligible( { images, ids } ) {\n\t\treturn (\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\t( ( ! ids && images ) ||\n\t\t\t\t( ids && images && ids.length !== images.length ) ||\n\t\t\t\timages.some( ( id, index ) => {\n\t\t\t\t\tif ( ! id && ids[ index ] !== null ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn parseInt( id, 10 ) !== ids[ index ];\n\t\t\t\t} ) )\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\timageCrop,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\t\treturn (\n\t\t\t<ul\n\t\t\t\tclassName={ `columns-${ columns } ${\n\t\t\t\t\timageCrop ? 'is-cropped' : ''\n\t\t\t\t}` }\n\t\t\t>\n\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\tlet href;\n\n\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst img = (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t\tdata-link={ image.link }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\timage.id ? `wp-image-${ image.id }` : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\t\t\t\tvalue={ image.caption }\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</figure>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\timages: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'div.wp-block-gallery figure.blocks-gallery-image img',\n\t\t\tquery: {\n\t\t\t\turl: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tdefault: '',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tattribute: 'data-id',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t},\n\t\timageCrop: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTo: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\timages,\n\t\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\t\talign,\n\t\t\timageCrop,\n\t\t\tlinkTo,\n\t\t} = attributes;\n\t\tconst className = clsx( `columns-${ columns }`, {\n\t\t\talignnone: align === 'none',\n\t\t\t'is-cropped': imageCrop,\n\t\t} );\n\t\treturn (\n\t\t\t<div className={ className }>\n\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\tlet href;\n\n\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst img = (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ image.url }\n\t\t\t\t\t\t\talt={ image.alt }\n\t\t\t\t\t\t\tdata-id={ image.id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<figure\n\t\t\t\t\t\t\tkey={ image.id || image.url }\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-image\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t</figure>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn runV2Migration( attributes );\n\t},\n};\n\nexport default [ v7, v6, v5, v4, v3, v2, v1 ];\n", "export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_LIGHTBOX = 'lightbox';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_MEDIA_WP_CORE = 'file';\nexport const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';\nexport const DEFAULT_MEDIA_SIZE_SLUG = 'large';\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToolbarDropdownMenu,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n\tfullscreen,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_LIGHTBOX,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst LINK_OPTIONS = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: fullscreen,\n\t\tlabel: __( 'Enlarge on click' ),\n\t\tvalue: LINK_DESTINATION_LIGHTBOX,\n\t\tnoticeText: __( 'Lightbox effect' ),\n\t\tinfoText: __( 'Scale images with a lightbox effect' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag and drop images, upload, or choose from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nexport default function GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst [ lightboxSetting, defaultRatios, themeRatios, showDefaultRatios ] =\n\t\tuseSettings(\n\t\t\t'blocks.core/image.lightbox',\n\t\t\t'dimensions.aspectRatios.default',\n\t\t\t'dimensions.aspectRatios.theme',\n\t\t\t'dimensions.defaultAspectRatios'\n\t\t);\n\n\tconst linkOptions = ! lightboxSetting?.allowEditing\n\t\t? LINK_OPTIONS.filter(\n\t\t\t\t( option ) => option.value !== LINK_DESTINATION_LIGHTBOX\n\t\t )\n\t\t: LINK_OPTIONS;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\trandomOrder,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tconst themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst defaultOptions = defaultRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\tconst aspectRatioOptions = [\n\t\t{\n\t\t\tlabel: _x(\n\t\t\t\t'Original',\n\t\t\t\t'Aspect ratio option for dimensions control'\n\t\t\t),\n\t\t\tvalue: 'auto',\n\t\t},\n\t\t...( showDefaultRatios ? defaultOptions || [] : [] ),\n\t\t...( themeOptions || [] ),\n\t];\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption:\n\t\t\t\timageAttributes.caption.length > 0\n\t\t\t\t\t? imageAttributes.caption\n\t\t\t\t\t: image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t\taspectRatio: aspectRatio === 'auto' ? undefined : aspectRatio,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.blob\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tblob: file.blob || createBlobURL( file ),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\tblob: image.blob,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t\tblock.attributes,\n\t\t\t\tlightboxSetting\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.noticeText\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize?.label ?? newSizeSlug\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setAspectRatio( value ) {\n\t\tsetAttributes( { aspectRatio: value } );\n\n\t\t// Update all inner image blocks with the new aspect ratio\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = {\n\t\t\t\taspectRatio: value === 'auto' ? undefined : value,\n\t\t\t};\n\t\t} );\n\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\n\t\tconst aspectRatioText = aspectRatioOptions.find(\n\t\t\t( option ) => option.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: aspect ratio setting */\n\t\t\t\t__( 'All gallery images updated to aspect ratio: %s' ),\n\t\t\t\taspectRatioText?.label || value\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-aspectRatio',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ Platform.isWeb && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tcolumns: undefined,\n\t\t\t\t\t\t\t\timageCrop: true,\n\t\t\t\t\t\t\t\trandomOrder: false,\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\tsetAspectRatio( 'auto' );\n\n\t\t\t\t\t\t\tif ( sizeSlug !== DEFAULT_MEDIA_SIZE_SLUG ) {\n\t\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( linkTarget ) {\n\t\t\t\t\t\t\t\ttoggleOpenInNewTab( false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t!! columns && columns !== images.length\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetColumnsNumber( undefined )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t\t\t: defaultColumnsNumber(\n\t\t\t\t\t\t\t\t\t\t\t\t\timages.length\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={ Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_COLUMNS,\n\t\t\t\t\t\t\t\t\t\timages.length\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\tsizeSlug !== DEFAULT_MEDIA_SIZE_SLUG\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tupdateImagesSize( DEFAULT_MEDIA_SIZE_SLUG )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\thasValue={ () => ! imageCrop }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { imageCrop: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\thasValue={ () => !! randomOrder }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { randomOrder: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\thasValue={ () => !! linkTarget }\n\t\t\t\t\t\t\t\tonDeselect={ () => toggleOpenInNewTab( false ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ aspectRatioOptions.length > 1 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t!! aspectRatio && aspectRatio !== 'auto'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () => setAspectRatio( 'auto' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Set a consistent aspect ratio for all images in the gallery.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\t\t\t\t\tonChange={ setAspectRatio }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t) }\n\t\t\t\t{ Platform.isNative && (\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ aspectRatioOptions.length > 1 && (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Aspect Ratio' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Set a consistent aspect ratio for all images in the gallery.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\t\t\t\tonChange={ setAspectRatio }\n\t\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb ? (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tinfo={ linkItem.infoText }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { BlockIcon } from '@wordpress/block-editor';\nimport { gallery as icon } from '@wordpress/icons';\n\nexport const sharedIcon = <BlockIcon icon={ icon } />;\n", "export function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ sizeSlug ]?.url ||\n\t\timage?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\timage?.url ||\n\t\timage?.source_url;\n\tconst fullUrl =\n\t\timage?.sizes?.full?.url ||\n\t\timage?.media_details?.sizes?.full?.source_url;\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n", "export const MIN_SIZE = 20;\nexport const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_CUSTOM = 'custom';\nexport const NEW_TAB_REL = [ 'noreferrer', 'noopener' ];\nexport const ALLOWED_MEDIA_TYPES = [ 'image' ];\nexport const MEDIA_ID_NO_FEATURED_IMAGE_SET = 0;\nexport const SIZED_LAYOUTS = [ 'flex', 'grid' ];\nexport const DEFAULT_MEDIA_SIZE_SLUG = 'full';\n\n/**\n * Delay in milliseconds before preloading an image after hovering.\n * This prevents unnecessary preloading during quick scrolling or mouse movements.\n */\nexport const IMAGE_PRELOAD_DELAY = 200;\n", "/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA_WP_CORE,\n\tLINK_DESTINATION_ATTACHMENT_WP_CORE,\n\tLINK_DESTINATION_LIGHTBOX,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE,\n} from '../image/constants';\n\n/**\n * Determines new href and linkDestination values for an Image block from the\n * supplied Gallery link destination, or falls back to the Image blocks link.\n *\n * @param {Object} image Gallery image.\n * @param {string} galleryDestination Gallery's selected link destination.\n * @param {Object} imageDestination Image block link destination attribute.\n * @param {Object} attributes Block attributes.\n * @param {Object} lightboxSetting Lightbox setting.\n *\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination(\n\timage,\n\tgalleryDestination,\n\timageDestination,\n\tattributes,\n\tlightboxSetting\n) {\n\t// Gutenberg and WordPress use different constants so if image_default_link_type\n\t// option is set we need to map from the WP Core values.\n\tswitch ( imageDestination ? imageDestination : galleryDestination ) {\n\t\tcase LINK_DESTINATION_MEDIA_WP_CORE:\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT_WP_CORE:\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_LIGHTBOX:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlightbox: ! lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: true }\n\t\t\t\t\t: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t\tlightbox: undefined,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n", "/**\n * Internal dependencies\n */\nimport { NEW_TAB_REL, ALLOWED_MEDIA_TYPES } from './constants';\n\n/**\n * Evaluates a CSS aspect-ratio property value as a number.\n *\n * Degenerate or invalid ratios behave as 'auto'. And 'auto' ratios return NaN.\n *\n * @see https://drafts.csswg.org/css-sizing-4/#aspect-ratio\n *\n * @param {string} value CSS aspect-ratio property value.\n * @return {number} Numerical aspect ratio or NaN if invalid.\n */\nexport function evalAspectRatio( value ) {\n\tconst [ width, height = 1 ] = value.split( '/' ).map( Number );\n\tconst aspectRatio = width / height;\n\treturn aspectRatio === Infinity || aspectRatio === 0 ? NaN : aspectRatio;\n}\n\nexport function removeNewTabRel( currentRel ) {\n\tlet newRel = currentRel;\n\n\tif ( currentRel !== undefined && newRel ) {\n\t\tNEW_TAB_REL.forEach( ( relVal ) => {\n\t\t\tconst regExp = new RegExp( '\\\\b' + relVal + '\\\\b', 'gi' );\n\t\t\tnewRel = newRel.replace( regExp, '' );\n\t\t} );\n\n\t\t// Only trim if NEW_TAB_REL values was replaced.\n\t\tif ( newRel !== currentRel ) {\n\t\t\tnewRel = newRel.trim();\n\t\t}\n\n\t\tif ( ! newRel ) {\n\t\t\tnewRel = undefined;\n\t\t}\n\t}\n\n\treturn newRel;\n}\n\n/**\n * Helper to get the link target settings to be stored.\n *\n * @param {boolean} value The new link target value.\n * @param {Object} attributes Block attributes.\n * @param {Object} attributes.rel Image block's rel attribute.\n *\n * @return {Object} Updated link target settings.\n */\nexport function getUpdatedLinkTargetSettings( value, { rel } ) {\n\tconst linkTarget = value ? '_blank' : undefined;\n\n\tlet updatedRel;\n\tif ( ! linkTarget && ! rel ) {\n\t\tupdatedRel = undefined;\n\t} else {\n\t\tupdatedRel = removeNewTabRel( rel );\n\t}\n\n\treturn {\n\t\tlinkTarget,\n\t\trel: updatedRel,\n\t};\n}\n\n/**\n * Determines new Image block attributes size selection.\n *\n * @param {Object} image Media file object for gallery image.\n * @param {string} size Selected size slug to apply.\n */\nexport function getImageSizeAttributes( image, size ) {\n\tconst url = image?.media_details?.sizes?.[ size ]?.source_url;\n\n\tif ( url ) {\n\t\treturn { url, width: undefined, height: undefined, sizeSlug: size };\n\t}\n\n\treturn {};\n}\n\n/**\n * Checks if the file has a valid file type.\n *\n * @param {File} file - The file to check.\n * @return {boolean} - Returns true if the file has a valid file type, otherwise false.\n */\nexport function isValidFileType( file ) {\n\treturn ALLOWED_MEDIA_TYPES.some(\n\t\t( mediaType ) => file.type.indexOf( mediaType ) === 0\n\t);\n}\n\nexport function mediaPosition( { x, y } = { x: 0.5, y: 0.5 } ) {\n\treturn `${ Math.round( x * 100 ) }% ${ Math.round( y * 100 ) }%`;\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { Caption } from '../utils/caption';\n\nexport default function Gallery( props ) {\n\tconst {\n\t\tattributes,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tmediaPlaceholder,\n\t\tinsertBlocksAfter,\n\t\tblockProps,\n\t\t__unstableLayoutClassNames: layoutClassNames,\n\t\tisContentLocked,\n\t\tmultiGallerySelection,\n\t} = props;\n\n\tconst { align, columns, imageCrop } = attributes;\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...blockProps }\n\t\t\tclassName={ clsx(\n\t\t\t\tblockProps.className,\n\t\t\t\tlayoutClassNames,\n\t\t\t\t'blocks-gallery-grid',\n\t\t\t\t{\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t\t\t\t[ `columns-default` ]: columns === undefined,\n\t\t\t\t\t'is-cropped': imageCrop,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ blockProps.children }\n\t\t\t{ isSelected && ! blockProps.children && (\n\t\t\t\t<View className=\"blocks-gallery-media-placeholder-wrapper\">\n\t\t\t\t\t{ mediaPlaceholder }\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\t! multiGallerySelection && ! isContentLocked\n\t\t\t\t}\n\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\tlabel={ __( 'Gallery caption text' ) }\n\t\t\t\tplaceholder={ __( 'Add gallery caption' ) }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Calculates the image sizes that are available for the current gallery images in order to\n * populate the 'Resolution' selector.\n *\n * @param {Array} images Basic image block data taken from current gallery innerBlock.\n * @param {boolean} isSelected Is the block currently selected in the editor.\n * @param {Function} getSettings Block editor store selector.\n *\n * @return {Array} An array of image size options.\n */\nexport default function useImageSizes( images, isSelected, getSettings ) {\n\treturn useMemo( () => getImageSizing(), [ images, isSelected ] );\n\n\tfunction getImageSizing() {\n\t\tif ( ! images || images.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { imageSizes } = getSettings();\n\t\tlet resizedImages = {};\n\n\t\tif ( isSelected ) {\n\t\t\tresizedImages = images.reduce( ( currentResizedImages, img ) => {\n\t\t\t\tif ( ! img.id ) {\n\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t}\n\n\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\tconst defaultUrl = img.sizes?.[ size.slug ]?.url;\n\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\timg.media_details?.sizes?.[ size.slug ]?.source_url;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t};\n\t\t\t\t}, {} );\n\t\t\t\treturn {\n\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t[ parseInt( img.id, 10 ) ]: sizes,\n\t\t\t\t};\n\t\t\t}, {} );\n\t\t}\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Keeps track of images already in the gallery to allow new innerBlocks to be identified. This\n * is required so default gallery attributes can be applied without overwriting any custom\n * attributes applied to existing images.\n *\n * @param {Array} images Basic image block data taken from current gallery innerBlock\n * @param {Array} imageData The related image data for each of the current gallery images.\n *\n * @return {Array} An array of any new images that have been added to the gallery.\n */\nexport default function useGetNewImages( images, imageData ) {\n\tconst [ currentImages, setCurrentImages ] = useState( [] );\n\n\treturn useMemo( () => getNewImages(), [ images, imageData ] );\n\n\tfunction getNewImages() {\n\t\tlet imagesUpdated = false;\n\n\t\t// First lets check if any images have been deleted.\n\t\tconst newCurrentImages = currentImages.filter( ( currentImg ) =>\n\t\t\timages.find( ( img ) => {\n\t\t\t\treturn currentImg.clientId === img.clientId;\n\t\t\t} )\n\t\t);\n\n\t\tif ( newCurrentImages.length < currentImages.length ) {\n\t\t\timagesUpdated = true;\n\t\t}\n\n\t\t// Now lets see if we have any images hydrated from saved content and if so\n\t\t// add them to currentImages state.\n\t\timages.forEach( ( image ) => {\n\t\t\tif (\n\t\t\t\timage.fromSavedContent &&\n\t\t\t\t! newCurrentImages.find(\n\t\t\t\t\t( currentImage ) => currentImage.id === image.id\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\timagesUpdated = true;\n\t\t\t\tnewCurrentImages.push( image );\n\t\t\t}\n\t\t} );\n\n\t\t// Now check for any new images that have been added to InnerBlocks and for which\n\t\t// we have the imageData we need for setting default block attributes.\n\t\tconst newImages = images.filter(\n\t\t\t( image ) =>\n\t\t\t\t! newCurrentImages.find(\n\t\t\t\t\t( currentImage ) =>\n\t\t\t\t\t\timage.clientId &&\n\t\t\t\t\t\tcurrentImage.clientId === image.clientId\n\t\t\t\t) &&\n\t\t\t\timageData?.find( ( img ) => img.id === image.id ) &&\n\t\t\t\t! image.fromSavedContent\n\t\t);\n\n\t\tif ( imagesUpdated || newImages?.length > 0 ) {\n\t\t\tsetCurrentImages( [ ...newCurrentImages, ...newImages ] );\n\t\t}\n\n\t\treturn newImages.length > 0 ? newImages : null;\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst EMPTY_IMAGE_MEDIA = [];\n\n/**\n * Retrieves the extended media info for each gallery image from the store. This is used to\n * determine which image size options are available for the current gallery.\n *\n * @param {Array} innerBlockImages An array of the innerBlock images currently in the gallery.\n *\n * @return {Array} An array of media info options for each gallery image.\n */\nexport default function useGetMedia( innerBlockImages ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst imageIds = innerBlockImages\n\t\t\t\t.map( ( imageBlock ) => imageBlock.attributes.id )\n\t\t\t\t.filter( ( id ) => id !== undefined );\n\n\t\t\tif ( imageIds.length === 0 ) {\n\t\t\t\treturn EMPTY_IMAGE_MEDIA;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'attachment',\n\t\t\t\t\t{\n\t\t\t\t\t\tinclude: imageIds.join( ',' ),\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\torderby: 'include',\n\t\t\t\t\t}\n\t\t\t\t) ?? EMPTY_IMAGE_MEDIA\n\t\t\t);\n\t\t},\n\t\t[ innerBlockImages ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tuseStyleOverride,\n} from '@wordpress/block-editor';\n\nexport default function GapStyles( { blockGap, clientId } ) {\n\t// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default\n\t// gap on the gallery.\n\tconst fallbackValue = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;\n\tlet gapValue = fallbackValue;\n\tlet column = fallbackValue;\n\tlet row;\n\n\t// Check for the possibility of split block gap values. See: https://github.com/WordPress/gutenberg/pull/37736\n\tif ( !! blockGap ) {\n\t\trow =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.top ) || fallbackValue;\n\t\tcolumn =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.left ) || fallbackValue;\n\t\tgapValue = row === column ? row : `${ row } ${ column }`;\n\t}\n\n\t// The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.\n\tconst gap = `#block-${ clientId } {\n\t\t--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column };\n\t\tgap: ${ gapValue }\n\t}`;\n\n\tuseStyleOverride( { css: gap } );\n\n\treturn null;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/gallery\",\n\t\"title\": \"Gallery\",\n\t\"category\": \"media\",\n\t\"allowedBlocks\": [ \"core/image\" ],\n\t\"description\": \"Display multiple images in a rich gallery.\",\n\t\"keywords\": [ \"images\", \"photos\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"images\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [],\n\t\t\t\"source\": \"query\",\n\t\t\t\"selector\": \".blocks-gallery-item\",\n\t\t\t\"query\": {\n\t\t\t\t\"url\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\"selector\": \"img\",\n\t\t\t\t\t\"attribute\": \"src\"\n\t\t\t\t},\n\t\t\t\t\"fullUrl\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\"selector\": \"img\",\n\t\t\t\t\t\"attribute\": \"data-full-url\"\n\t\t\t\t},\n\t\t\t\t\"link\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\"selector\": \"img\",\n\t\t\t\t\t\"attribute\": \"data-link\"\n\t\t\t\t},\n\t\t\t\t\"alt\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\"selector\": \"img\",\n\t\t\t\t\t\"attribute\": \"alt\",\n\t\t\t\t\t\"default\": \"\"\n\t\t\t\t},\n\t\t\t\t\"id\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\"selector\": \"img\",\n\t\t\t\t\t\"attribute\": \"data-id\"\n\t\t\t\t},\n\t\t\t\t\"caption\": {\n\t\t\t\t\t\"type\": \"rich-text\",\n\t\t\t\t\t\"source\": \"rich-text\",\n\t\t\t\t\t\"selector\": \".blocks-gallery-item__caption\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"ids\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"number\"\n\t\t\t},\n\t\t\t\"default\": []\n\t\t},\n\t\t\"shortCodeTransforms\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\"\n\t\t\t},\n\t\t\t\"default\": []\n\t\t},\n\t\t\"columns\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"minimum\": 1,\n\t\t\t\"maximum\": 8\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \".blocks-gallery-caption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"imageCrop\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"randomOrder\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"fixedHeight\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"linkTo\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"sizeSlug\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"large\"\n\t\t},\n\t\t\"allowResize\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"aspectRatio\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"auto\"\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"allowResize\": \"allowResize\",\n\t\t\"imageCrop\": \"imageCrop\",\n\t\t\"fixedHeight\": \"fixedHeight\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true\n\t\t\t}\n\t\t},\n\t\t\"html\": false,\n\t\t\"units\": [ \"px\", \"em\", \"rem\", \"vh\", \"vw\" ],\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"__experimentalSkipSerialization\": [ \"blockGap\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true,\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"allowEditing\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-gallery-editor\",\n\t\"style\": \"wp-block-gallery\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function saveWithInnerBlocks( { attributes } ) {\n\tconst { caption, columns, imageCrop } = attributes;\n\n\tconst className = clsx( 'has-nested-images', {\n\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t[ `columns-default` ]: columns === undefined,\n\t\t'is-cropped': imageCrop,\n\t} );\n\tconst blockProps = useBlockProps.save( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn (\n\t\t<figure { ...innerBlocksProps }>\n\t\t\t{ innerBlocksProps.children }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'blocks-gallery-caption',\n\t\t\t\t\t\t__experimentalGetElementClassName( 'caption' )\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.align === align\n\t\t\t\t)\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = attributes.every(\n\t\t\t\t\t( attribute ) => attribute.sizeSlug === sizeSlug\n\t\t\t\t)\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = attributes.filter( ( { url } ) => url );\n\n\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t// Gallery images can't currently be resized so make sure height and width are undefined.\n\t\t\t\t\timage.width = undefined;\n\t\t\t\t\timage.height = undefined;\n\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\t\t\ttransform( { named: { ids, columns = 3, link, orderby, size } } ) {\n\t\t\t\tconst imageIds = parseShortcodeIds( ids ).map( ( id ) =>\n\t\t\t\t\tparseInt( id, 10 )\n\t\t\t\t);\n\n\t\t\t\tlet linkTo = LINK_DESTINATION_NONE;\n\t\t\t\tif ( link === 'post' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t} else if ( link === 'file' ) {\n\t\t\t\t\tlinkTo = LINK_DESTINATION_MEDIA;\n\t\t\t\t}\n\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{\n\t\t\t\t\t\tcolumns: parseInt( columns, 10 ),\n\t\t\t\t\t\tlinkTo,\n\t\t\t\t\t\trandomOrder: orderby === 'rand',\n\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: imageId,\n\t\t\t\t\t\t\t...( size && { sizeSlug: size } ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn galleryBlock;\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrides the image block transformation when multiple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tfiles.every(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align }, innerBlocks ) => {\n\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t( {\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\t\t\tlinkTarget,\n\t\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { gallery as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcolumns: 2,\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/image',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tlayout: {\n\t\t\t\ttype: 'constrained',\n\t\t\t\tjustifyContent: 'center',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tpadding: {\n\t\t\t\t\t\ttop: '4em',\n\t\t\t\t\t\tright: '3em',\n\t\t\t\t\t\tbottom: '4em',\n\t\t\t\t\t\tleft: '3em',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( 'La Mancha' ),\n\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/spacer',\n\t\t\t\tattributes: {\n\t\t\t\t\theight: '10px',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/button',\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: __( 'Read more' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tviewportWidth: 600,\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tgetColorClassName,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\n\nconst migrateAttributes = ( attributes ) => {\n\tif ( ! attributes.tagName ) {\n\t\tattributes = {\n\t\t\t...attributes,\n\t\t\ttagName: 'div',\n\t\t};\n\t}\n\n\tif ( ! attributes.customTextColor && ! attributes.customBackgroundColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = { color: {} };\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\n\tconst { customTextColor, customBackgroundColor, ...restAttributes } =\n\t\tattributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t};\n};\n\nconst deprecated = [\n\t// Version with default layout.\n\t{\n\t\tattributes: {\n\t\t\ttagName: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'div',\n\t\t\t},\n\t\t\ttemplateLock: {\n\t\t\t\ttype: [ 'string', 'boolean' ],\n\t\t\t\tenum: [ 'all', 'insert', false ],\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\t__experimentalOnEnter: true,\n\t\t\t__experimentalSettings: true,\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\tariaLabel: true,\n\t\t\thtml: false,\n\t\t\tcolor: {\n\t\t\t\tgradients: true,\n\t\t\t\tlink: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tbackground: true,\n\t\t\t\t\ttext: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tspacing: {\n\t\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t\t\tpadding: true,\n\t\t\t\tblockGap: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tpadding: true,\n\t\t\t\t\tblockGap: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t__experimentalBorder: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tcolor: true,\n\t\t\t\t\tradius: true,\n\t\t\t\t\tstyle: true,\n\t\t\t\t\twidth: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t\tlineHeight: true,\n\t\t\t\t__experimentalFontStyle: true,\n\t\t\t\t__experimentalFontWeight: true,\n\t\t\t\t__experimentalLetterSpacing: true,\n\t\t\t\t__experimentalTextTransform: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tfontSize: true,\n\t\t\t\t},\n\t\t\t},\n\t\t\tlayout: true,\n\t\t},\n\t\tsave( { attributes: { tagName: Tag } } ) {\n\t\t\treturn (\n\t\t\t\t<Tag { ...useInnerBlocksProps.save( useBlockProps.save() ) } />\n\t\t\t);\n\t\t},\n\t\tisEligible: ( { layout } ) =>\n\t\t\tlayout?.inherit ||\n\t\t\t( layout?.contentSize && layout?.type !== 'constrained' ),\n\t\tmigrate: ( attributes ) => {\n\t\t\tconst { layout = null } = attributes;\n\t\t\tif ( layout?.inherit || layout?.contentSize ) {\n\t\t\t\treturn {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\ttype: 'constrained',\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t},\n\t// Version of the block with the double div.\n\t{\n\t\tattributes: {\n\t\t\ttagName: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'div',\n\t\t\t},\n\t\t\ttemplateLock: {\n\t\t\t\ttype: [ 'string', 'boolean' ],\n\t\t\t\tenum: [ 'all', 'insert', false ],\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\tcolor: {\n\t\t\t\tgradients: true,\n\t\t\t\tlink: true,\n\t\t\t},\n\t\t\tspacing: {\n\t\t\t\tpadding: true,\n\t\t\t},\n\t\t\t__experimentalBorder: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { tagName: Tag } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<Tag { ...useBlockProps.save() }>\n\t\t\t\t\t<div className=\"wp-block-group__inner-container\">\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</div>\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t},\n\t},\n\t// Version of the block without global styles support\n\t{\n\t\tattributes: {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t},\n\t\tmigrate: migrateAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst className = clsx( backgroundClass, textClass, {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div className={ className } style={ styles }>\n\t\t\t\t\t<div className=\"wp-block-group__inner-container\">\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t// Version of the group block with a bug that made text color class not applied.\n\t{\n\t\tattributes: {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate: migrateAttributes,\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\tbackgroundColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomTextColor,\n\t\t\t} = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst className = clsx( backgroundClass, {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div className={ className } style={ styles }>\n\t\t\t\t\t<div className=\"wp-block-group__inner-container\">\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n\t// v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.\n\t{\n\t\tattributes: {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t},\n\t\tmigrate: migrateAttributes,\n\t\tsave( { attributes } ) {\n\t\t\tconst { backgroundColor, customBackgroundColor } = attributes;\n\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst className = clsx( backgroundClass, {\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<div className={ className } style={ styles }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport GroupPlaceHolder, { useShouldShowPlaceHolder } from './placeholder';\nimport { unlock } from '../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\n/**\n * Render inspector controls for the Group block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n * @param {string} props.clientId The client ID of the current block.\n *\n * @return {JSX.Element} The control group.\n */\nfunction GroupEditControls( { tagName, onSelectTagName, clientId } ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction GroupEdit( { attributes, name, setAttributes, clientId } ) {\n\tconst { hasInnerBlocks, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getSettings } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t\tthemeSupportsLayout: getSettings()?.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\ttagName: TagName = 'div',\n\t\ttemplateLock,\n\t\tallowedBlocks,\n\t\tlayout = {},\n\t} = attributes;\n\n\t// Layout settings.\n\tconst { type = 'default' } = layout;\n\tconst layoutSupportEnabled =\n\t\tthemeSupportsLayout || type === 'flex' || type === 'grid';\n\n\t// Hooks.\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( { ref } );\n\n\tconst [ showPlaceholder, setShowPlaceholder ] = useShouldShowPlaceHolder( {\n\t\tattributes,\n\t\tusedLayoutType: type,\n\t\thasInnerBlocks,\n\t} );\n\n\t// Default to the regular appender being rendered.\n\tlet renderAppender;\n\tif ( showPlaceholder ) {\n\t\t// In the placeholder state, ensure the appender is not rendered.\n\t\t// This is needed because `...innerBlocksProps` is used in the placeholder\n\t\t// state so that blocks can dragged onto the placeholder area\n\t\t// from both the list view and in the editor canvas.\n\t\trenderAppender = false;\n\t} else if ( ! hasInnerBlocks ) {\n\t\t// When there is no placeholder, but the block is also empty,\n\t\t// use the larger button appender.\n\t\trenderAppender = InnerBlocks.ButtonBlockAppender;\n\t}\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\tlayoutSupportEnabled\n\t\t\t? blockProps\n\t\t\t: { className: 'wp-block-group__inner-container' },\n\t\t{\n\t\t\tdropZoneElement: ref.current,\n\t\t\ttemplateLock,\n\t\t\tallowedBlocks,\n\t\t\trenderAppender,\n\t\t}\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst selectVariation = ( nextVariation ) => {\n\t\tsetAttributes( nextVariation.attributes );\n\t\tselectBlock( clientId, -1 );\n\t\tsetShowPlaceholder( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GroupEditControls\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonSelectTagName={ ( value ) =>\n\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t}\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t{ showPlaceholder && (\n\t\t\t\t<View>\n\t\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t\t<GroupPlaceHolder\n\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\tonSelect={ selectVariation }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t\t{ layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...innerBlocksProps } />\n\t\t\t) }\n\t\t\t{ /* Ideally this is not needed but it's there for backward compatibility reason\n\t\t\t\tto keep this div for themes that might rely on its presence */ }\n\t\t\t{ ! layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t</TagName>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default GroupEdit;\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v28a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm0 17a2 2 0 0 1 2-2h44a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t\t'group-grid': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"48\"\n\t\t\t\theight=\"48\"\n\t\t\t\tviewBox=\"0 0 48 48\"\n\t\t\t>\n\t\t\t\t<Path d=\"M0 10a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V10Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V10ZM0 27a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V27Zm25 0a2 2 0 0 1 2-2h19a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H27a2 2 0 0 1-2-2V27Z\" />\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex' &&\n\t\t\tusedLayoutType !== 'grid'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst variations = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockVariations( name, 'block' ),\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( variations && variations.length === 1 ) {\n\t\t\tonSelect( variations[ 0 ] );\n\t\t}\n\t}, [ onSelect, variations ] );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 48 }\n\t\t\t\t\t\t\t\tonClick={ () => onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/group\",\n\t\"title\": \"Group\",\n\t\"category\": \"design\",\n\t\"description\": \"Gather blocks in a layout container.\",\n\t\"keywords\": [ \"container\", \"wrapper\", \"row\", \"section\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t},\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ]\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"__experimentalOnEnter\": true,\n\t\t\"__experimentalOnMerge\": true,\n\t\t\"__experimentalSettings\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"anchor\": true,\n\t\t\"ariaLabel\": true,\n\t\t\"html\": false,\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"button\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true,\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"minHeight\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"position\": {\n\t\t\t\"sticky\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSizingOnChildren\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t},\n\t\"editorStyle\": \"wp-block-group-editor\",\n\t\"style\": \"wp-block-group\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes: { tagName: Tag } } ) {\n\treturn <Tag { ...useInnerBlocksProps.save( useBlockProps.save() ) } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert( blocks ) {\n\t\t\t\tconst alignments = [ 'wide', 'full' ];\n\n\t\t\t\t// Determine the widest setting of all the blocks to be grouped\n\t\t\t\tconst widestAlignment = blocks.reduce(\n\t\t\t\t\t( accumulator, block ) => {\n\t\t\t\t\t\tconst { align } = block.attributes;\n\t\t\t\t\t\treturn alignments.indexOf( align ) >\n\t\t\t\t\t\t\talignments.indexOf( accumulator )\n\t\t\t\t\t\t\t? align\n\t\t\t\t\t\t\t: accumulator;\n\t\t\t\t\t},\n\t\t\t\t\tundefined\n\t\t\t\t);\n\n\t\t\t\t// Clone the Blocks to be Grouped\n\t\t\t\t// Failing to create new block references causes the original blocks\n\t\t\t\t// to be replaced in the switchToBlockType call thereby meaning they\n\t\t\t\t// are removed both from their original location and within the\n\t\t\t\t// new group block.\n\t\t\t\tconst groupInnerBlocks = blocks.map( ( block ) => {\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\talign: widestAlignment,\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t},\n\t\t\t\t\tgroupInnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack, grid } from '@wordpress/icons';\n\nconst example = {\n\tinnerBlocks: [\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'One.' ),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'core/paragraph',\n\t\t\tattributes: {\n\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t},\n\t\t},\n\t],\n};\n\nconst variations = [\n\t{\n\t\tname: 'group',\n\t\ttitle: __( 'Group' ),\n\t\tdescription: __( 'Gather blocks in a container.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\ticon: group,\n\t},\n\t{\n\t\tname: 'group-row',\n\t\ttitle: _x( 'Row', 'single horizontal line' ),\n\t\tdescription: __( 'Arrange blocks horizontally.' ),\n\t\tattributes: { layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: [ 'layout.type' ],\n\t\ticon: row,\n\t\texample,\n\t},\n\t{\n\t\tname: 'group-stack',\n\t\ttitle: __( 'Stack' ),\n\t\tdescription: __( 'Arrange blocks vertically.' ),\n\t\tattributes: { layout: { type: 'flex', orientation: 'vertical' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: [ 'layout.type', 'layout.orientation' ],\n\t\ticon: stack,\n\t\texample,\n\t},\n\t{\n\t\tname: 'group-grid',\n\t\ttitle: __( 'Grid' ),\n\t\tdescription: __( 'Arrange blocks in a grid.' ),\n\t\tattributes: { layout: { type: 'grid' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: [ 'layout.type' ],\n\t\ticon: grid,\n\t\texample,\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { heading as icon } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tprivateApis as blocksPrivateApis,\n\tgetBlockType,\n\tunregisterBlockVariation,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __( 'Code is Poetry' ),\n\t\t\tlevel: 2,\n\t\t\ttextAlign: 'center',\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { content, level } = attributes;\n\n\t\tconst customName = attributes?.metadata?.name;\n\t\tconst hasContent = content?.trim().length > 0;\n\n\t\t// In the list view, use the block's content as the label.\n\t\t// If the content is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && ( customName || hasContent ) ) {\n\t\t\treturn customName || content;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn ! hasContent\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: heading level. */\n\t\t\t\t\t\t__( 'Level %s. Empty.' ),\n\t\t\t\t\t\tlevel\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. 1: heading level. 2: heading content. */\n\t\t\t\t\t\t__( 'Level %1$s. %2$s' ),\n\t\t\t\t\t\tlevel,\n\t\t\t\t\t\tcontent\n\t\t\t\t );\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n\tvariations,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => {\n\tconst block = initBlock( { name, metadata, settings } );\n\n\t// Unregister heading level variations based on `levelOptions` attribute.\n\t// This is for backwards compatibility, as extenders can now unregister the\n\t// variation directly: `wp.blocks.unregisterBlockVariation( 'core/heading', 'h1' )`.\n\tconst levelOptions =\n\t\tgetBlockType( name )?.attributes?.levelOptions?.default;\n\tif ( levelOptions ) {\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tif ( ! levelOptions.includes( level ) ) {\n\t\t\t\tunregisterBlockVariation( name, `h${ level }` );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn block;\n};\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetColorClassName,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport migrateTextAlignAttributeToBlockSupport from '../utils/migrate-text-align';\n\nconst blockSupports = {\n\tclassName: false,\n\tanchor: true,\n};\n\nconst blockAttributes = {\n\talign: {\n\t\ttype: 'string',\n\t},\n\tcontent: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\tdefault: '',\n\t},\n\tlevel: {\n\t\ttype: 'number',\n\t\tdefault: 2,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n};\n\nconst migrateCustomColors = ( attributes ) => {\n\tif ( ! attributes.customTextColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = {\n\t\tcolor: {\n\t\t\ttext: attributes.customTextColor,\n\t\t},\n\t};\n\n\tconst { customTextColor, ...restAttributes } = attributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t};\n};\n\nconst TEXT_ALIGN_OPTIONS = [ 'left', 'right', 'center' ];\n\nconst migrateTextAlign = ( attributes ) => {\n\tconst { align, ...rest } = attributes;\n\treturn TEXT_ALIGN_OPTIONS.includes( align )\n\t\t? { ...rest, textAlign: align }\n\t\t: attributes;\n};\n\nconst v1 = {\n\tsupports: blockSupports,\n\tattributes: {\n\t\t...blockAttributes,\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n\tsave( { attributes } ) {\n\t\tconst { align, level, content, textColor, customTextColor } =\n\t\t\tattributes;\n\t\tconst tagName = 'h' + level;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\tconst className = clsx( {\n\t\t\t[ textClass ]: textClass,\n\t\t} );\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\ttagName={ tagName }\n\t\t\t\tstyle={ {\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\t} }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\nconst v2 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n\tsave( { attributes } ) {\n\t\tconst { align, content, customTextColor, level, textColor } =\n\t\t\tattributes;\n\t\tconst tagName = 'h' + level;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\tconst className = clsx( {\n\t\t\t[ textClass ]: textClass,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} );\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\ttagName={ tagName }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\t} }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n\tsupports: blockSupports,\n};\nconst v3 = {\n\tsupports: blockSupports,\n\tattributes: {\n\t\t...blockAttributes,\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n\tsave( { attributes } ) {\n\t\tconst { align, content, customTextColor, level, textColor } =\n\t\t\tattributes;\n\t\tconst tagName = 'h' + level;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\n\t\tconst className = clsx( {\n\t\t\t[ textClass ]: textClass,\n\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} );\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\ttagName={ tagName }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\t} }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\nconst v4 = {\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\tclassName: false,\n\t\tcolor: { link: true },\n\t\tfontSize: true,\n\t\tlineHeight: true,\n\t\t__experimentalSelector: {\n\t\t\t'core/heading/h1': 'h1',\n\t\t\t'core/heading/h2': 'h2',\n\t\t\t'core/heading/h3': 'h3',\n\t\t\t'core/heading/h4': 'h4',\n\t\t\t'core/heading/h5': 'h5',\n\t\t\t'core/heading/h6': 'h6',\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t},\n\tattributes: blockAttributes,\n\tisEligible: ( { align } ) => TEXT_ALIGN_OPTIONS.includes( align ),\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n\tsave( { attributes } ) {\n\t\tconst { align, content, level } = attributes;\n\t\tconst TagName = 'h' + level;\n\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} );\n\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<RichText.Content value={ content } />\n\t\t\t</TagName>\n\t\t);\n\t},\n};\n\n// This deprecation covers the serialization of the `wp-block-heading` class\n// into the block's markup after className support was enabled.\nconst v5 = {\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\tclassName: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t\tfontAppearance: true,\n\t\t\t\ttextTransform: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: 'h1,h2,h3,h4,h5,h6',\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSlashInserter: true,\n\t},\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { textAlign, content, level } = attributes;\n\t\tconst TagName = 'h' + level;\n\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} );\n\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<RichText.Content value={ content } />\n\t\t\t</TagName>\n\t\t);\n\t},\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n};\n\nconst v6 = {\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\tclassName: true,\n\t\tsplitting: true,\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalWritingMode: true,\n\t\t\tfitText: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSlashInserter: true,\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t},\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t\tlevelOptions: {\n\t\t\ttype: 'array',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { textAlign, content, level } = attributes;\n\t\tconst TagName = 'h' + level;\n\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} );\n\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<RichText.Content value={ content } />\n\t\t\t</TagName>\n\t\t);\n\t},\n\tmigrate: ( attributes ) =>\n\t\tmigrateTextAlignAttributeToBlockSupport(\n\t\t\tmigrateCustomColors( migrateTextAlign( attributes ) )\n\t\t),\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\t!! attributes.textAlign ||\n\t\t\t!! attributes.className?.match(\n\t\t\t\t/\\bhas-text-align-(left|center|right)\\b/\n\t\t\t)\n\t\t);\n\t},\n};\n\nconst deprecated = [ v6, v5, v4, v3, v2, v1 ];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, Platform } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\nimport useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';\n\nfunction HeadingEdit( props ) {\n\tconst { attributes, setAttributes, mergeBlocks, onReplace, clientId } =\n\t\tprops;\n\tuseDeprecatedTextAlign( props );\n\tconst { style, content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\n\tconst blockProps = useBlockProps( {\n\t\tstyle,\n\t} );\n\n\tconst { canGenerateAnchors } = useSelect( ( select ) => {\n\t\tconst { getGlobalBlockCount, getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tcanGenerateAnchors:\n\t\t\t\t!! settings.generateAnchors ||\n\t\t\t\tgetGlobalBlockCount( 'core/table-of-contents' ) > 0,\n\t\t};\n\t}, [] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Initially set anchor for headings that have content but no anchor set.\n\t// This is used when transforming a block to heading, or for legacy anchors.\n\tuseEffect( () => {\n\t\tif ( ! canGenerateAnchors ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! anchor && content ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tanchor: generateAnchor( clientId, content ),\n\t\t\t} );\n\t\t}\n\t\tsetAnchor( clientId, anchor );\n\n\t\t// Remove anchor map when block unmounts.\n\t\treturn () => setAnchor( clientId, null );\n\t}, [ anchor, content, clientId, canGenerateAnchors ] );\n\n\tconst onContentChange = ( value ) => {\n\t\tconst newAttrs = { content: value };\n\t\tif (\n\t\t\tcanGenerateAnchors &&\n\t\t\t( ! anchor ||\n\t\t\t\t! value ||\n\t\t\t\tgenerateAnchor( clientId, content ) === anchor )\n\t\t) {\n\t\t\tnewAttrs.anchor = generateAnchor( clientId, value );\n\t\t}\n\t\tsetAttributes( newAttrs );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onContentChange }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Heading' ) }\n\t\t\t\t{ ...( Platform.isNative && { deleteEnter: true } ) } // setup RichText on native mobile to delete the \"Enter\" key as it's handled by the JS/RN side\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default HeadingEdit;\n", "/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Object map tracking anchors.\n *\n * @type {Record<string, string | null>}\n */\nconst anchors = {};\n\n/**\n * Returns the text without markup.\n *\n * @param {string} text The text.\n *\n * @return {string} The text without markup.\n */\nconst getTextWithoutMarkup = ( text ) => {\n\tconst dummyElement = document.createElement( 'div' );\n\tdummyElement.innerHTML = text;\n\treturn dummyElement.innerText;\n};\n\n/**\n * Get the slug from the content.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getSlug = ( content ) => {\n\t// Get the slug.\n\treturn (\n\t\tremoveAccents( getTextWithoutMarkup( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\n/**\n * Generate the anchor for a heading.\n *\n * @param {string} clientId The block ID.\n * @param {string} content The block content.\n *\n * @return {string|null} Return the heading anchor.\n */\nexport const generateAnchor = ( clientId, content ) => {\n\tconst slug = getSlug( content );\n\t// If slug is empty, then return null.\n\t// Returning null instead of an empty string allows us to check again when the content changes.\n\tif ( '' === slug ) {\n\t\treturn null;\n\t}\n\n\tdelete anchors[ clientId ];\n\n\tlet anchor = slug;\n\tlet i = 0;\n\n\t// If the anchor already exists in another heading, append -i.\n\twhile ( Object.values( anchors ).includes( anchor ) ) {\n\t\ti += 1;\n\t\tanchor = slug + '-' + i;\n\t}\n\n\treturn anchor;\n};\n\n/**\n * Set the anchor for a heading.\n *\n * @param {string} clientId The block ID.\n * @param {string|null} anchor The block anchor.\n */\nexport const setAnchor = ( clientId, anchor ) => {\n\tanchors[ clientId ] = anchor;\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/heading\",\n\t\"title\": \"Heading\",\n\t\"category\": \"text\",\n\t\"description\": \"Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.\",\n\t\"keywords\": [ \"title\", \"subtitle\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"h1,h2,h3,h4,h5,h6\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"anchor\": true,\n\t\t\"className\": true,\n\t\t\"splitting\": true,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"textAlign\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"fitText\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__unstablePasteTextInline\": true,\n\t\t\"__experimentalSlashInserter\": true,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-heading-editor\",\n\t\"style\": \"wp-block-heading\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { content, level } = attributes;\n\tconst TagName = 'h' + level;\n\n\treturn (\n\t\t<TagName { ...useBlockProps.save() }>\n\t\t\t<RichText.Content value={ content } />\n\t\t</TagName>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { getTransformedAttributes } from '../utils/get-transformed-attributes';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( _attributes ) => {\n\t\t\t\t\tconst { content, anchor, style } = _attributes;\n\t\t\t\t\tconst textAlign = style?.typography?.textAlign;\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t...getTransformedAttributes(\n\t\t\t\t\t\t\t_attributes,\n\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t...( textAlign && {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\ttextAlign,\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},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes(\n\t\t\t\t\t'core/heading',\n\t\t\t\t\tnode.outerHTML\n\t\t\t\t);\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.style = {\n\t\t\t\t\t\t...attributes.style,\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t...attributes.style?.typography,\n\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/heading', attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform: () => createBlock( 'core/heading', { level } ),\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( _attributes ) => {\n\t\t\t\t\tconst { content, style } = _attributes;\n\t\t\t\t\tconst textAlign = style?.typography?.textAlign;\n\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\t...getTransformedAttributes(\n\t\t\t\t\t\t\t_attributes,\n\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t...( textAlign && {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t\t\ttextAlign,\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},\n\t],\n};\n\nexport default transforms;\n", "/**\n * Given a node name string for a heading node, returns its numeric level.\n *\n * @param {string} nodeName Heading node name.\n *\n * @return {number} Heading level.\n */\nexport function getLevelFromHeadingNodeName( nodeName ) {\n\treturn Number( nodeName.substr( 1 ) );\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\theadingLevel1,\n\theadingLevel2,\n\theadingLevel3,\n\theadingLevel4,\n\theadingLevel5,\n\theadingLevel6,\n} from '@wordpress/icons';\n\nconst LEVEL_ICONS = [\n\theadingLevel1,\n\theadingLevel2,\n\theadingLevel3,\n\theadingLevel4,\n\theadingLevel5,\n\theadingLevel6,\n];\n\nconst variations = [\n\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\tname: `h${ level }`,\n\t\ttitle: sprintf(\n\t\t\t/* translators: %d: heading level e.g: \"1\", \"2\", \"3\" */\n\t\t\t__( 'Heading %d' ),\n\t\t\tlevel\n\t\t),\n\t\tdescription: __(\n\t\t\t'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.'\n\t\t),\n\t\ticon: LEVEL_ICONS[ level - 1 ],\n\t\tattributes: { level },\n\t\tscope: [ 'block', 'transform' ],\n\t\tkeywords: [ `h${ level }` ],\n\t\tisActive: ( blockAttributes ) => blockAttributes.level === level,\n\t} ) ),\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { home } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: home,\n\n\tedit,\n\n\tsave,\n\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: _x( 'Home Link', 'block example' ),\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/home-link\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/navigation\" ],\n\t\"title\": \"Home Link\",\n\t\"description\": \"Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"textColor\",\n\t\t\"customTextColor\",\n\t\t\"backgroundColor\",\n\t\t\"customBackgroundColor\",\n\t\t\"fontSize\",\n\t\t\"customFontSize\",\n\t\t\"style\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-home-link-editor\",\n\t\"style\": \"wp-block-home-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst preventDefault = ( event ) => event.preventDefault();\n\nexport default function HomeEdit( { attributes, setAttributes, context } ) {\n\tconst homeUrl = useSelect( ( select ) => {\n\t\t// Site index.\n\t\treturn select( coreStore ).getEntityRecord( 'root', '__unstableBase' )\n\t\t\t?.home;\n\t}, [] );\n\n\tconst { textColor, backgroundColor, style } = context;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'has-text-color': !! textColor || !! style?.color?.text,\n\t\t\t[ `has-${ textColor }-color` ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || !! style?.color?.background,\n\t\t\t[ `has-${ backgroundColor }-background-color` ]: !! backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: style?.color?.text,\n\t\t\tbackgroundColor: style?.color?.background,\n\t\t},\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<a\n\t\t\t\tclassName=\"wp-block-home-link__content wp-block-navigation-item__content\"\n\t\t\t\thref={ homeUrl }\n\t\t\t\tonClick={ preventDefault }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\tclassName=\"wp-block-home-link__label\"\n\t\t\t\t\tvalue={ attributes.label ?? __( 'Home' ) }\n\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t} }\n\t\t\t\t\taria-label={ __( 'Home link text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add home link' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t/>\n\t\t\t</a>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { html as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent:\n\t\t\t\t'<marquee>' +\n\t\t\t\t__( 'Welcome to the wonderful world of blocks\u2026' ) +\n\t\t\t\t'</marquee>',\n\t\t},\n\t},\n\tedit,\n\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPlaceholder,\n\tButton,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { code } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\nimport HTMLEditModal from './modal';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t} );\n\n\t// Show placeholder when content is empty\n\tif ( ! attributes.content?.trim() ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ code } /> }\n\t\t\t\t\tlabel={ __( 'Custom HTML' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Add custom HTML code and preview how it looks.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit HTML' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Placeholder>\n\t\t\t\t<HTMLEditModal\n\t\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\t\tonRequestClose={ () => setIsModalOpen( false ) }\n\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit code' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"block-editor-block-inspector-edit-contents\"\n\t\t\t\t\texpanded\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-block-inspector-edit-contents__button\"\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit code' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</VStack>\n\t\t\t</InspectorControls>\n\t\t\t<Preview content={ attributes.content } isSelected={ isSelected } />\n\t\t\t<HTMLEditModal\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonRequestClose={ () => setIsModalOpen( false ) }\n\t\t\t\tcontent={ attributes.content }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\ttransformStyles,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SandBox } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n// Default styles used to unset some of the styles\n// that might be inherited from the editor style.\nconst DEFAULT_STYLES = `\n\thtml,body,:root {\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\toverflow: visible !important;\n\t\tmin-height: auto !important;\n\t}\n`;\n\nexport default function HTMLEditPreview( { content, isSelected } ) {\n\tconst settingStyles = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().styles,\n\t\t[]\n\t);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\t( settingStyles ?? [] ).filter( ( style ) => style.css )\n\t\t\t),\n\t\t],\n\t\t[ settingStyles ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<SandBox\n\t\t\t\thtml={ content }\n\t\t\t\tstyles={ styles }\n\t\t\t\ttitle={ __( 'Custom HTML Preview' ) }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t/>\n\t\t\t{ /*\n\t\t\t\tAn overlay is added when the block is not selected in order to register click events.\n\t\t\t\tSome browsers do not bubble up the clicks from the sandboxed iframe, which makes it\n\t\t\t\tdifficult to reselect the block.\n\t\t\t*/ }\n\t\t\t{ ! isSelected && (\n\t\t\t\t<div className=\"block-library-html__preview-overlay\"></div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\tFlex,\n\tNotice,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalGrid as Grid,\n} from '@wordpress/components';\nimport { PlainText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { fullscreen, square } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport Preview from './preview';\nimport { parseContent, serializeContent } from './utils';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nexport default function HTMLEditModal( {\n\tisOpen,\n\tonRequestClose,\n\tcontent,\n\tsetAttributes,\n} ) {\n\t// Parse content into separate sections and use as initial state\n\tconst { html, css, js } = parseContent( content );\n\tconst [ editedHtml, setEditedHtml ] = useState( html );\n\tconst [ editedCss, setEditedCss ] = useState( css );\n\tconst [ editedJs, setEditedJs ] = useState( js );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst [ showUnsavedWarning, setShowUnsavedWarning ] = useState( false );\n\tconst [ isFullscreen, setIsFullscreen ] = useState( false );\n\n\t// Check if user has permission to save scripts and get editor styles\n\tconst { canUserUseUnfilteredHTML } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tcanUserUseUnfilteredHTML:\n\t\t\t\tsettings.__experimentalCanUserUseUnfilteredHTML,\n\t\t};\n\t}, [] );\n\n\t// Determine if we should show a warning about CSS/JS content being stripped\n\tconst hasRestrictedContent =\n\t\t! canUserUseUnfilteredHTML && ( css.trim() || js.trim() );\n\n\tif ( ! isOpen ) {\n\t\treturn null;\n\t}\n\n\tconst handleHtmlChange = ( value ) => {\n\t\tsetEditedHtml( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleCssChange = ( value ) => {\n\t\tsetEditedCss( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleJsChange = ( value ) => {\n\t\tsetEditedJs( value );\n\t\tsetIsDirty( true );\n\t};\n\tconst handleUpdate = () => {\n\t\t// For users without unfiltered_html capability, strip CSS and JS content\n\t\t// to prevent kses from leaving broken content\n\t\tsetAttributes( {\n\t\t\tcontent: serializeContent( {\n\t\t\t\thtml: editedHtml,\n\t\t\t\tcss: canUserUseUnfilteredHTML ? editedCss : '',\n\t\t\t\tjs: canUserUseUnfilteredHTML ? editedJs : '',\n\t\t\t} ),\n\t\t} );\n\t\tsetIsDirty( false );\n\t};\n\tconst handleCancel = () => {\n\t\tsetIsDirty( false );\n\t\tonRequestClose();\n\t};\n\tconst handleRequestClose = () => {\n\t\tif ( isDirty ) {\n\t\t\tsetShowUnsavedWarning( true );\n\t\t} else {\n\t\t\tonRequestClose();\n\t\t}\n\t};\n\tconst handleDiscardChanges = () => {\n\t\tsetShowUnsavedWarning( false );\n\t\tonRequestClose();\n\t};\n\tconst handleContinueEditing = () => {\n\t\tsetShowUnsavedWarning( false );\n\t};\n\tconst handleUpdateAndClose = () => {\n\t\thandleUpdate();\n\t\tonRequestClose();\n\t};\n\tconst toggleFullscreen = () => {\n\t\tsetIsFullscreen( ( prevState ) => ! prevState );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Edit HTML' ) }\n\t\t\t\tonRequestClose={ handleRequestClose }\n\t\t\t\tclassName=\"block-library-html__modal\"\n\t\t\t\tsize=\"large\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tshouldCloseOnClickOutside={ ! isDirty }\n\t\t\t\tshouldCloseOnEsc={ ! isDirty }\n\t\t\t\tisFullScreen={ isFullscreen }\n\t\t\t\t__experimentalHideHeader\n\t\t\t>\n\t\t\t\t<Tabs orientation=\"horizontal\" defaultTabId=\"html\">\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcolumns={ 1 }\n\t\t\t\t\t\ttemplateRows=\"auto 1fr auto\"\n\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\tstyle={ { height: '100%' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"html\">HTML</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"css\">CSS</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t\t<Tabs.Tab tabId=\"js\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\ticon={ isFullscreen ? square : fullscreen }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Enable/disable fullscreen' ) }\n\t\t\t\t\t\t\t\t\tonClick={ toggleFullscreen }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ hasRestrictedContent && (\n\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-notice\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'This block contains CSS or JavaScript that will be removed when you save because you do not have permission to use unfiltered HTML.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\talignment=\"stretch\"\n\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tabs\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"block-library-html__modal-content\">\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\ttabId=\"html\"\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\tvalue={ editedHtml }\n\t\t\t\t\t\t\t\t\t\tonChange={ handleHtmlChange }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write HTML\u2026' ) }\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"css\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedCss }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleCssChange }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Write CSS\u2026' ) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'CSS' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canUserUseUnfilteredHTML && (\n\t\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\t\ttabId=\"js\"\n\t\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-tab\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\tvalue={ editedJs }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleJsChange }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Write JavaScript\u2026'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __( 'JavaScript' ) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-library-html__modal-editor\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"block-library-html__preview\">\n\t\t\t\t\t\t\t\t<Preview\n\t\t\t\t\t\t\t\t\tcontent={ serializeContent( {\n\t\t\t\t\t\t\t\t\t\thtml: editedHtml,\n\t\t\t\t\t\t\t\t\t\tcss: editedCss,\n\t\t\t\t\t\t\t\t\t\tjs: editedJs,\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</div>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\talignment=\"center\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\t\t\tclassName=\"block-library-html__modal-footer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleCancel }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ handleUpdateAndClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</Grid>\n\t\t\t\t</Tabs>\n\t\t\t</Modal>\n\n\t\t\t{ showUnsavedWarning && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Unsaved changes' ) }\n\t\t\t\t\tonRequestClose={ handleContinueEditing }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You have unsaved changes. What would you like to do?'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<Flex direction=\"row\" justify=\"flex-end\" gap={ 2 }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ handleDiscardChanges }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Discard unsaved changes' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ handleContinueEditing }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Continue editing' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ handleUpdateAndClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update and close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * Parses content string into separate HTML, CSS, and JS sections.\n *\n * Extracts CSS from <style data-wp-block-html=\"css\"> tags and\n * JavaScript from <script data-wp-block-html=\"js\"> tags.\n * Everything else is treated as HTML.\n *\n * @param {string} content - The combined content string\n * @return {Object} Object with html, css, and js properties\n */\nexport function parseContent( content = '' ) {\n\tif ( ! content || ! content.trim() ) {\n\t\treturn { html: '', css: '', js: '' };\n\t}\n\n\t// Create a temporary document to parse HTML safely\n\tconst doc = document.implementation.createHTMLDocument( '' );\n\tdoc.body.innerHTML = content;\n\n\t// Extract CSS from marked style tag\n\tconst styleTag = doc.body.querySelector(\n\t\t'style[data-wp-block-html=\"css\"]'\n\t);\n\tconst css = styleTag ? styleTag.textContent.trim() : '';\n\tif ( styleTag ) {\n\t\tstyleTag.remove();\n\t}\n\n\t// Extract JS from marked script tag\n\tconst scriptTag = doc.body.querySelector(\n\t\t'script[data-wp-block-html=\"js\"]'\n\t);\n\tconst js = scriptTag ? scriptTag.textContent.trim() : '';\n\tif ( scriptTag ) {\n\t\tscriptTag.remove();\n\t}\n\n\t// Everything else is HTML\n\tconst html = doc.body.innerHTML.trim();\n\n\treturn { html, css, js };\n}\n\n/**\n * Serializes HTML, CSS, and JS into a single content string.\n *\n * Creates marked <style> and <script> tags for CSS and JS sections,\n * then appends the HTML content.\n *\n * @param {Object} sections Object with html, css, and js properties\n * @param {string} sections.html HTML content\n * @param {string} sections.css CSS content\n * @param {string} sections.js JavaScript content\n * @return {string} Combined content string\n */\nexport function serializeContent( { html = '', css = '', js = '' } ) {\n\tconst parts = [];\n\n\t// Add CSS if present\n\tif ( css.trim() ) {\n\t\tparts.push( `<style data-wp-block-html=\"css\">\\n${ css }\\n</style>` );\n\t}\n\n\t// Add JS if present\n\tif ( js.trim() ) {\n\t\tparts.push( `<script data-wp-block-html=\"js\">\\n${ js }\\n</script>` );\n\t}\n\n\t// Add HTML\n\tif ( html.trim() ) {\n\t\tparts.push( html );\n\t}\n\n\treturn parts.join( '\\n\\n' );\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/html\",\n\t\"title\": \"Custom HTML\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Add custom HTML code and preview it as you edit.\",\n\t\"keywords\": [ \"embed\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"raw\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"customClassName\": false,\n\t\t\"className\": false,\n\t\t\"html\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-html-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save( { attributes } ) {\n\treturn <RawHTML>{ attributes.content }</RawHTML>;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { create } from '@wordpress/rich-text';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/code' ],\n\t\t\ttransform: ( { content: html } ) => {\n\t\t\t\treturn createBlock( 'core/html', {\n\t\t\t\t\t// The code block may output HTML formatting, so convert it\n\t\t\t\t\t// to plain text.\n\t\t\t\t\tcontent: create( { html } ).text,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { image as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsizeSlug: 'large',\n\t\t\turl: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',\n\t\t\t// translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.\n\t\t\tcaption: __( 'Mont Blanc appears\u2014still, snowy, and serene.' ),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\tconst { caption, alt, url } = attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn __( 'Empty' );\n\t\t\t}\n\n\t\t\tif ( ! alt ) {\n\t\t\t\treturn caption || '';\n\t\t\t}\n\n\t\t\t// This is intended to be read by a screen reader.\n\t\t\t// A period simply means a pause, no need to translate it.\n\t\t\treturn alt + ( caption ? '. ' + caption : '' );\n\t\t}\n\t},\n\tgetEditWrapperProps( attributes ) {\n\t\treturn {\n\t\t\t'data-align': attributes.align,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'image',\n\t\t\tlabel: __( 'Image' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.url,\n\t\t\t\talt: item.alt,\n\t\t\t\tcaption: item.caption,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\turl: value.url,\n\t\t\t\talt: value.alt,\n\t\t\t\tcaption: value.caption,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link', // TODO: replace with custom component\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.href,\n\t\t\t\trel: item.rel,\n\t\t\t\tlinkTarget: item.linkTarget,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\thref: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t\tlinkTarget: value.linkTarget,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'caption',\n\t\t\tlabel: __( 'Caption' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'alt',\n\t\t\tlabel: __( 'Alt text' ),\n\t\t\ttype: 'text',\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'image', 'link', 'caption', 'alt' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Deprecation for adding the `wp-image-${id}` class to the image block for\n * responsive images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/4898\n */\nconst v1 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\tlet figureStyle = {};\n\n\t\tif ( width ) {\n\t\t\tfigureStyle = { width };\n\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t}\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ align ? `align${ align }` : null }\n\t\t\t\tstyle={ figureStyle }\n\t\t\t>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding the `is-resized` class to the image block to fix\n * captions on resized images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/6496\n */\nconst v2 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ align ? `align${ align }` : null }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for image floats including a wrapping div.\n *\n * @see https://github.com/WordPress/gutenberg/pull/7721\n */\nconst v3 = {\n\tattributes: {\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'children',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } =\n\t\t\tattributes;\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for removing the outer div wrapper around aligned images.\n *\n * @see https://github.com/WordPress/gutenberg/pull/38657\n */\nconst v4 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t<figure className={ classes }>{ figure }</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for moving existing border radius styles onto the inner img\n * element where new border block support styles must be applied.\n * It will also add a new `.has-custom-border` class for existing blocks\n * with border radii set. This class is required to improve caption position\n * and styling when an image within a gallery has a custom border or\n * rounded corners.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v5 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\t__experimentalDuotone: 'img',\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalStyle: {\n\t\t\tspacing: {\n\t\t\t\tmargin: '0 0 1em 0',\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for adding width and height as style rules on the inner img.\n *\n * @see https://github.com/WordPress/gutenberg/pull/31366\n */\nconst v6 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\trole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\trole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\trole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\trole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\trole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( attributes ) {\n\t\tconst { height, width } = attributes;\n\t\treturn {\n\t\t\t...attributes,\n\t\t\twidth: typeof width === 'number' ? `${ width }px` : width,\n\t\t\theight: typeof height === 'number' ? `${ height }px` : height,\n\t\t};\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = clsx( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n/**\n * Deprecation for converting to string width and height block attributes and\n * removing the width and height img element attributes which are not needed\n * as they get added by the TODO hook.\n *\n * @see https://github.com/WordPress/gutenberg/pull/53274\n */\nconst v7 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\trole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\trole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\trole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\trole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\trole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'number',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( { width, height, ...attributes } ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\twidth: `${ width }px`,\n\t\t\theight: `${ height }px`,\n\t\t};\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = clsx( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t} }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst v8 = {\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbehaviors: {\n\t\t\ttype: 'object',\n\t\t},\n\t\turl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'src',\n\t\t\trole: 'content',\n\t\t},\n\t\talt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\trole: 'content',\n\t\t},\n\t\ttitle: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'img',\n\t\t\tattribute: 'title',\n\t\t\trole: 'content',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'href',\n\t\t\trole: 'content',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t\trole: 'content',\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'string',\n\t\t},\n\t\theight: {\n\t\t\ttype: 'string',\n\t\t},\n\t\taspectRatio: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tscale: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tsizeSlug: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure > a',\n\t\t\tattribute: 'target',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\ttext: false,\n\t\t\tbackground: false,\n\t\t},\n\t\tfilter: {\n\t\t\tduotone: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\twidth: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tradius: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t},\n\tmigrate( { width, height, ...attributes } ) {\n\t\t// We need to perform a check here because in cases\n\t\t// where attributes are added dynamically to blocks,\n\t\t// block invalidation overrides the isEligible() method\n\t\t// and forces the migration to run, so it's not guaranteed\n\t\t// that `behaviors` or `behaviors.lightbox` will be defined.\n\t\tif ( ! attributes.behaviors?.lightbox ) {\n\t\t\treturn attributes;\n\t\t}\n\t\tconst {\n\t\t\tbehaviors: {\n\t\t\t\tlightbox: { enabled },\n\t\t\t},\n\t\t} = attributes;\n\t\tconst newAttributes = {\n\t\t\t...attributes,\n\t\t\tlightbox: {\n\t\t\t\tenabled,\n\t\t\t},\n\t\t};\n\t\tdelete newAttributes.behaviors;\n\t\treturn newAttributes;\n\t},\n\tisEligible( attributes ) {\n\t\treturn !! attributes.behaviors;\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\talt,\n\t\t\tcaption,\n\t\t\talign,\n\t\t\thref,\n\t\t\trel,\n\t\t\tlinkClass,\n\t\t\twidth,\n\t\t\theight,\n\t\t\taspectRatio,\n\t\t\tscale,\n\t\t\tid,\n\t\t\tlinkTarget,\n\t\t\tsizeSlug,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\tconst newRel = ! rel ? undefined : rel;\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = clsx( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t\t'is-resized': width || height,\n\t\t\t'has-custom-border':\n\t\t\t\t!! borderProps.className ||\n\t\t\t\t( borderProps.style &&\n\t\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t\t} );\n\n\t\tconst imageClasses = clsx( borderProps.className, {\n\t\t\t[ `wp-image-${ id }` ]: !! id,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ imageClasses || undefined }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\taspectRatio,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t} }\n\t\t\t\ttitle={ title }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<>\n\t\t\t\t{ href ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ newRel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nexport default [ v8, v7, v6, v5, v4, v3, v2, v1 ];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL, createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockBindingsSource } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tuseBlockProps,\n\tMediaPlaceholder,\n\tstore as blockEditorStore,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { image as icon, plugins as pluginsIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\nimport { isValidFileType } from './utils';\nimport { useMaxWidthObserver } from './use-max-width-observer';\n\n/**\n * Module constants\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tALLOWED_MEDIA_TYPES,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\n\nexport const pickRelevantMediaFiles = ( image, size ) => {\n\tconst imageProps = Object.fromEntries(\n\t\tObject.entries( image ?? {} ).filter( ( [ key ] ) =>\n\t\t\t[ 'alt', 'id', 'link', 'caption' ].includes( key )\n\t\t)\n\t);\n\n\timageProps.url =\n\t\timage?.sizes?.[ size ]?.url ||\n\t\timage?.media_details?.sizes?.[ size ]?.source_url ||\n\t\timage.url;\n\treturn imageProps;\n};\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nexport const isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\n/**\n * Checks if WP generated the specified image size. Size generation is skipped\n * when the image is smaller than the said size.\n *\n * @param {Object} image\n * @param {string} size\n *\n * @return {boolean} Whether or not it has default image size.\n */\nfunction hasSize( image, size ) {\n\treturn (\n\t\t'url' in ( image?.sizes?.[ size ] ?? {} ) ||\n\t\t'source_url' in ( image?.media_details?.sizes?.[ size ] ?? {} )\n\t);\n}\n\nexport function ImageEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected: isSingleSelected,\n\tclassName,\n\tinsertBlocksAfter,\n\tonReplace,\n\tcontext,\n\tclientId,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst {\n\t\turl = '',\n\t\tcaption,\n\t\tid,\n\t\twidth,\n\t\theight,\n\t\tsizeSlug,\n\t\taspectRatio,\n\t\tscale,\n\t\talign,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst containerRef = useRef();\n\t// Only observe the max width from the parent container when the parent layout is not flex nor grid.\n\t// This won't work for them because the container width changes with the image.\n\t// TODO: Find a way to observe the container width for flex and grid layouts.\n\tconst layoutType = parentLayout?.type || parentLayout?.default?.type;\n\tconst isMaxWidthContainerWidth =\n\t\t! layoutType || ( layoutType !== 'flex' && layoutType !== 'grid' );\n\tconst [ maxWidthObserver, maxContentWidth ] = useMaxWidthObserver();\n\n\tconst [ placeholderResizeListener, { width: placeholderWidth } ] =\n\t\tuseResizeObserver();\n\n\tconst isSmallContainer = placeholderWidth && placeholderWidth < 160;\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ __unstableMarkNextChangeAsNotPersistent, align, setAttributes ] );\n\n\tconst {\n\t\tgetSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetAttributes( {\n\t\t\tsrc: undefined,\n\t\t\tid: undefined,\n\t\t\turl: undefined,\n\t\t\tblob: undefined,\n\t\t} );\n\t}\n\n\tfunction onSelectImagesList( images ) {\n\t\tconst win = containerRef.current?.ownerDocument.defaultView;\n\n\t\tif ( images.every( ( file ) => file instanceof win.File ) ) {\n\t\t\t/** @type {File[]} */\n\t\t\tconst files = images;\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\tif ( files.some( ( file ) => ! isValidFileType( file ) ) ) {\n\t\t\t\t// Copied from the same notice in the gallery block.\n\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t),\n\t\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst imageBlocks = files\n\t\t\t\t.filter( ( file ) => isValidFileType( file ) )\n\t\t\t\t.map( ( file ) =>\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\tif ( getBlockName( rootClientId ) === 'core/gallery' ) {\n\t\t\t\treplaceBlock( clientId, imageBlocks );\n\t\t\t} else if ( canInsertBlockType( 'core/gallery', rootClientId ) ) {\n\t\t\t\tconst galleryBlock = createBlock(\n\t\t\t\t\t'core/gallery',\n\t\t\t\t\t{},\n\t\t\t\t\timageBlocks\n\t\t\t\t);\n\n\t\t\t\treplaceBlock( clientId, galleryBlock );\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction onSelectImage( media ) {\n\t\tif ( Array.isArray( media ) ) {\n\t\t\tonSelectImagesList( media );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\ttitle: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst { imageDefaultSize } = getSettings();\n\n\t\t// Try to use the previous selected image size if its available\n\t\t// otherwise try the default image size or fallback to \"full\"\n\t\tlet newSize = DEFAULT_MEDIA_SIZE_SLUG;\n\t\tif ( sizeSlug && hasSize( media, sizeSlug ) ) {\n\t\t\tnewSize = sizeSlug;\n\t\t} else if ( hasSize( media, imageDefaultSize ) ) {\n\t\t\tnewSize = imageDefaultSize;\n\t\t}\n\n\t\tlet mediaAttributes = pickRelevantMediaFiles( media, newSize );\n\n\t\t// Normalize newline characters in caption to <br />\n\t\t// to preserve line breaks in both editor and frontend.\n\t\tif (\n\t\t\ttypeof mediaAttributes.caption === 'string' &&\n\t\t\tmediaAttributes.caption.includes( '\\n' )\n\t\t) {\n\t\t\tmediaAttributes.caption = mediaAttributes.caption.replace(\n\t\t\t\t/\\n/g,\n\t\t\t\t'<br>'\n\t\t\t);\n\t\t}\n\n\t\t// If a caption text was meanwhile written by the user,\n\t\t// make sure the text is not overwritten by empty captions.\n\t\tif ( captionRef.current && ! mediaAttributes.caption ) {\n\t\t\tconst { caption: omittedCaption, ...restMediaAttributes } =\n\t\t\t\tmediaAttributes;\n\t\t\tmediaAttributes = restMediaAttributes;\n\t\t}\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\tsizeSlug: newSize,\n\t\t\t};\n\t\t}\n\n\t\t// Check if default link setting should be used.\n\t\tlet linkDestination = attributes.linkDestination;\n\t\tif ( ! linkDestination ) {\n\t\t\t// Use the WordPress option to determine the proper default.\n\t\t\t// The constants used in Gutenberg do not match WP options so a little more complicated than ideal.\n\t\t\t// TODO: fix this in a follow up PR, requires updating media-text and ui component.\n\t\t\tswitch (\n\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\tLINK_DESTINATION_NONE\n\t\t\t) {\n\t\t\t\tcase 'file':\n\t\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'post':\n\t\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\t\tbreak;\n\t\t\t\tcase LINK_DESTINATION_NONE:\n\t\t\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Check if the image is linked to it's media.\n\t\tlet href;\n\t\tswitch ( linkDestination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t\tlinkDestination,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newURL ) {\n\t\tif ( newURL !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t\tsizeSlug: getSettings().imageDefaultSize,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectImage,\n\t\tonError: onUploadError,\n\t} );\n\n\tconst isExternal = isExternalImage( id, url );\n\tconst src = isExternal ? url : undefined;\n\tconst mediaPreview = !! url && (\n\t\t<img\n\t\t\talt={ __( 'Edit image' ) }\n\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\tclassName=\"edit-image-preview\"\n\t\t\tsrc={ url }\n\t\t/>\n\t);\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t\t'is-resized': !! width || !! height,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: containerRef,\n\t\tclassName: classes,\n\t} );\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst { lockUrlControls = false, lockUrlControlsMessage } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = getBlockBindingsSource(\n\t\t\t\tmetadata?.bindings?.url?.source\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t! blockBindingsSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: metadata?.bindings?.url?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockUrlControlsMessage: blockBindingsSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\tblockBindingsSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[ context, isSingleSelected, metadata?.bindings?.url ]\n\t);\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx( 'block-editor-media-placeholder', {\n\t\t\t\t\t[ borderProps.className ]:\n\t\t\t\t\t\t!! borderProps.className && ! isSingleSelected,\n\t\t\t\t} ) }\n\t\t\t\ticon={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t( lockUrlControls ? pluginsIcon : icon )\n\t\t\t\t}\n\t\t\t\twithIllustration={ ! isSingleSelected || isSmallContainer }\n\t\t\t\tlabel={ ! isSmallContainer && __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Drag and drop an image, upload, or choose from your library.'\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tstyle={ {\n\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t! ( width && height ) && aspectRatio\n\t\t\t\t\t\t\t? aspectRatio\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\twidth: height && aspectRatio ? '100%' : width,\n\t\t\t\t\theight: width && aspectRatio ? '100%' : height,\n\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ lockUrlControls &&\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\tlockUrlControlsMessage }\n\n\t\t\t\t{ ! lockUrlControls && ! isSmallContainer && content }\n\t\t\t\t{ placeholderResizeListener }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t<Image\n\t\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\tparentLayoutType={ layoutType }\n\t\t\t\t\tmaxContentWidth={ maxContentWidth }\n\t\t\t\t/>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\thandleUpload={ ( files ) => files.length === 1 }\n\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t\t{\n\t\t\t\t// The listener cannot be placed as the first element as it will break the in-between inserter.\n\t\t\t\t// See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120\n\t\t\t\tisSingleSelected && isMaxWidthContainerWidth && maxWidthObserver\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default ImageEdit;\n", "/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tFocalPointPicker,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n\tMenuItem,\n\tToolbarItem,\n\tDropdownMenu,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tuseMergeRefs,\n\tuseResizeObserver,\n\tuseViewportMatch,\n} from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tuseSettings,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockSettingsMenuControls,\n} from '@wordpress/block-editor';\nimport { useCallback, useEffect, useMemo, useState } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport { getBlockBindingsSource, switchToBlockType } from '@wordpress/blocks';\nimport { crop, overlayText, upload, chevronDown } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { isExternalImage } from './edit';\nimport { Caption } from '../utils/caption';\nimport { MediaControl } from '../utils/media-control';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport {\n\tMIN_SIZE,\n\tALLOWED_MEDIA_TYPES,\n\tSIZED_LAYOUTS,\n\tDEFAULT_MEDIA_SIZE_SLUG,\n} from './constants';\nimport { evalAspectRatio, mediaPosition } from './utils';\n\nconst { DimensionsTool, ResolutionTool } = unlock( blockEditorPrivateApis );\n\nconst scaleOptions = [\n\t{\n\t\tvalue: 'cover',\n\t\tlabel: _x( 'Cover', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image covers the space evenly.' ),\n\t},\n\t{\n\t\tvalue: 'contain',\n\t\tlabel: _x( 'Contain', 'Scale option for dimensions control' ),\n\t\thelp: __( 'Image is contained without distortion.' ),\n\t},\n];\n\nconst WRITEMODE_POPOVER_PROPS = {\n\tplacement: 'bottom-start',\n};\n\n// If the image has a href, wrap in an <a /> tag to trigger any inherited link element styles.\nconst ImageWrapper = ( { href, children } ) => {\n\tif ( ! href ) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<a\n\t\t\thref={ href }\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\taria-disabled\n\t\t\tstyle={ {\n\t\t\t\t// When the Image block is linked,\n\t\t\t\t// it's wrapped with a disabled <a /> tag.\n\t\t\t\t// Restore cursor style so it doesn't appear 'clickable'\n\t\t\t\t// and remove pointer events. Safari needs the display property.\n\t\t\t\tpointerEvents: 'none',\n\t\t\t\tcursor: 'default',\n\t\t\t\tdisplay: 'inline',\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</a>\n\t);\n};\n\nfunction ContentOnlyControls( {\n\tattributes,\n\tsetAttributes,\n\tlockAltControls,\n\tlockAltControlsMessage,\n\tlockTitleControls,\n\tlockTitleControlsMessage,\n} ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst [ isAltDialogOpen, setIsAltDialogOpen ] = useState( false );\n\tconst [ isTitleDialogOpen, setIsTitleDialogOpen ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<ToolbarItem ref={ setPopoverAnchor }>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'More' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t...toggleProps,\n\t\t\t\t\t\t\tdescription: __( 'Displays more controls.' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tpopoverProps={ WRITEMODE_POPOVER_PROPS }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsAltDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ _x(\n\t\t\t\t\t\t\t\t\t\t'Alternative text',\n\t\t\t\t\t\t\t\t\t\t'Alternative text for an image. Block toolbar label, a low character count is preferred.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsTitleDialogOpen( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Title text' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t\t{ isAltDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsAltDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tvalue={ attributes.alt || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockAltControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\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/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t{ isTitleDialogOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tonClose={ () => setIsTitleDialogOpen( false ) }\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-image__toolbar_content_textarea__container\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\tvalue={ attributes.title || '' }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\ttitle: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\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/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSingleSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontext,\n\tclientId,\n\tblockEditingMode,\n\tparentLayoutType,\n\tmaxContentWidth,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tfocalPoint,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\tconst [ imageElement, setImageElement ] = useState();\n\tconst [ resizeDelta, setResizeDelta ] = useState( null );\n\tconst [ pixelSize, setPixelSize ] = useState( {} );\n\tconst [ offsetTop, setOffsetTop ] = useState( 0 );\n\tconst setResizeObserved = useResizeObserver( ( [ entry ] ) => {\n\t\tif ( ! resizeDelta ) {\n\t\t\tconst [ box ] = entry.borderBoxSize;\n\t\t\tsetPixelSize( { width: box.inlineSize, height: box.blockSize } );\n\t\t}\n\t\t// This is usually 0 unless the image height is less than the line-height.\n\t\tsetOffsetTop( entry.target.offsetTop );\n\t} );\n\tconst effectResizeableBoxPlacement = useCallback( () => {\n\t\tsetOffsetTop( imageElement?.offsetTop ?? 0 );\n\t}, [ imageElement ] );\n\tconst setRefs = useMergeRefs( [ setImageElement, setResizeObserved ] );\n\tconst { allowResize = true } = context;\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\tid,\n\t\t\t\t\t\t{ context: 'view' }\n\t\t\t\t )\n\t\t\t\t: null,\n\t\t[ id, isSingleSelected ]\n\t);\n\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst [ hasImageErrored, setHasImageErrored ] = useState( false );\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\tconst isResizable =\n\t\tallowResize &&\n\t\thasNonContentControls &&\n\t\t! isWideAligned &&\n\t\tisLargeViewport;\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! isExternalImage( id, url ) ||\n\t\t\t! isSingleSelected ||\n\t\t\t! getSettings().mediaUpload\n\t\t) {\n\t\t\tsetExternalBlob();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t// Avoid cache, which seems to help avoid CORS problems.\n\t\t\t.fetch( url.includes( '?' ) ? url : url + '?' )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSingleSelected, externalBlob, getSettings ] );\n\n\t// Get naturalWidth and naturalHeight from image, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageElement?.naturalWidth || loadedNaturalWidth || undefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageElement?.naturalHeight || loadedNaturalHeight || undefined,\n\t\t};\n\t}, [ loadedNaturalWidth, loadedNaturalHeight, imageElement?.complete ] );\n\n\tfunction onImageError() {\n\t\tsetHasImageErrored( true );\n\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onImageLoad( event ) {\n\t\tsetHasImageErrored( false );\n\t\tsetLoadedNaturalSize( {\n\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t} );\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetLightbox( enable ) {\n\t\tif ( enable && ! lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: true },\n\t\t\t} );\n\t\t} else if ( ! enable && lightboxSetting?.enabled ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction resetLightbox() {\n\t\t// When deleting a link from an image while lightbox settings\n\t\t// are enabled by default, we should disable the lightbox,\n\t\t// otherwise the resulting UX looks like a mistake.\n\t\t// See https://github.com/WordPress/gutenberg/pull/59890/files#r1532286123.\n\t\tif ( lightboxSetting?.enabled && lightboxSetting?.allowEditing ) {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: { enabled: false },\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( {\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tif ( imageElement ) {\n\t\t\timageElement.style.setProperty(\n\t\t\t\t'object-position',\n\t\t\t\tmediaPosition( value )\n\t\t\t);\n\t\t}\n\t};\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = image?.media_details?.sizes?.[ newSizeSlug ]?.source_url;\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop =\n\t\tisSingleSelected &&\n\t\tcanEditImage &&\n\t\t! isEditingImage &&\n\t\t! isContentOnlyMode;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\t// TODO: Can allow more units after figuring out how they should interact\n\t// with the ResizableBox and ImageEditor components. Calculations later on\n\t// for those components are currently assuming px units.\n\tconst dimensionsUnitsOptions = useCustomUnits( {\n\t\tavailableUnits: [ 'px' ],\n\t} );\n\n\tconst [ lightboxSetting ] = useSettings( 'lightbox' );\n\n\tconst showLightboxSetting =\n\t\t// If a block-level override is set, we should give users the option to\n\t\t// remove that override, even if the lightbox UI is disabled in the settings.\n\t\t( !! lightbox && lightbox?.enabled !== lightboxSetting?.enabled ) ||\n\t\tlightboxSetting?.allowEditing;\n\n\tconst lightboxChecked =\n\t\t!! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst dimensionsControl =\n\t\tisResizable &&\n\t\t( SIZED_LAYOUTS.includes( parentLayoutType ) ? (\n\t\t\t<DimensionsTool\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tvalue={ { aspectRatio } }\n\t\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t\tscale: 'cover',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t\t/>\n\t\t) : (\n\t\t\t<DimensionsTool\n\t\t\t\tpanelId={ clientId }\n\t\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\t\tonChange={ ( {\n\t\t\t\t\twidth: newWidth,\n\t\t\t\t\theight: newHeight,\n\t\t\t\t\tscale: newScale,\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t} ) => {\n\t\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : newWidth,\n\t\t\t\t\t\theight: newHeight,\n\t\t\t\t\t\tscale: newScale,\n\t\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdefaultScale=\"cover\"\n\t\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\t\tscaleOptions={ scaleOptions }\n\t\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t\t/>\n\t\t) );\n\n\tconst resetSettings = () => {\n\t\tsetAttributes( {\n\t\t\tlightbox: undefined,\n\t\t} );\n\t\tupdateImage( DEFAULT_MEDIA_SIZE_SLUG );\n\t};\n\n\tconst arePatternOverridesEnabled =\n\t\tmetadata?.bindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst {\n\t\tlockUrlControls = false,\n\t\tlockHrefControls = false,\n\t\tlockAltControls = false,\n\t\tlockAltControlsMessage,\n\t\tlockTitleControls = false,\n\t\tlockTitleControlsMessage,\n\t\thideCaptionControls = false,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSingleSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\turl: urlBinding,\n\t\t\t\talt: altBinding,\n\t\t\t\ttitle: titleBinding,\n\t\t\t\tcaption: captionBinding,\n\t\t\t} = metadata?.bindings || {};\n\t\t\tconst hasParentPattern = !! context[ 'pattern/overrides' ];\n\t\t\tconst urlBindingSource = getBlockBindingsSource(\n\t\t\t\turlBinding?.source\n\t\t\t);\n\t\t\tconst altBindingSource = getBlockBindingsSource(\n\t\t\t\taltBinding?.source\n\t\t\t);\n\t\t\tconst titleBindingSource = getBlockBindingsSource(\n\t\t\t\ttitleBinding?.source\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! urlBinding &&\n\t\t\t\t\t! urlBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: urlBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockHrefControls:\n\t\t\t\t\t// Disable editing the link of the URL if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the link on the frontend.\n\t\t\t\t\thasParentPattern || arePatternOverridesEnabled,\n\t\t\t\thideCaptionControls: !! captionBinding,\n\t\t\t\tlockAltControls:\n\t\t\t\t\t!! altBinding &&\n\t\t\t\t\t! altBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: altBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockAltControlsMessage: altBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\taltBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t\tlockTitleControls:\n\t\t\t\t\t!! titleBinding &&\n\t\t\t\t\t! titleBindingSource?.canUserEditValue?.( {\n\t\t\t\t\t\tselect,\n\t\t\t\t\t\tcontext,\n\t\t\t\t\t\targs: titleBinding?.args,\n\t\t\t\t\t} ),\n\t\t\t\tlockTitleControlsMessage: titleBindingSource?.label\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the bindings source. */\n\t\t\t\t\t\t\t__( 'Connected to %s' ),\n\t\t\t\t\t\t\ttitleBindingSource.label\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Connected to dynamic data' ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tarePatternOverridesEnabled,\n\t\t\tcontext,\n\t\t\tisSingleSelected,\n\t\t\tmetadata?.bindings,\n\t\t]\n\t);\n\n\tconst showUrlInput =\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockHrefControls &&\n\t\t! lockUrlControls;\n\n\tconst showCoverControls =\n\t\tisSingleSelected && canInsertCover && ! isContentOnlyMode;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\n\n\tconst mediaReplaceFlow = isSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! lockUrlControls && (\n\t\t\t// For contentOnly mode, put this button in its own area so it has borders around it.\n\t\t\t<BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tname={ ! url ? __( 'Add image' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t);\n\n\tconst hasDataFormBlockFields =\n\t\twindow?.__experimentalContentOnlyInspectorFields;\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ showBlockControls && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t{ showUrlInput && (\n\t\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\t\tshowLightboxSetting={ showLightboxSetting }\n\t\t\t\t\t\t\tlightboxEnabled={ lightboxChecked }\n\t\t\t\t\t\t\tonSetLightbox={ onSetLightbox }\n\t\t\t\t\t\t\tresetLightbox={ resetLightbox }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ allowCrop && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showCoverControls && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && externalBlob && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tlabel={ __( 'Upload to Media Library' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isContentOnlyMode && (\n\t\t\t\t// Add some extra controls for content attributes when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit these attributes.\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ContentOnlyControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tlockAltControls={ lockAltControls }\n\t\t\t\t\t\tlockAltControlsMessage={ lockAltControlsMessage }\n\t\t\t\t\t\tlockTitleControls={ lockTitleControls }\n\t\t\t\t\t\tlockTitleControlsMessage={ lockTitleControlsMessage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ ! hasDataFormBlockFields && isSingleSelected && (\n\t\t\t\t<InspectorControls group=\"content\">\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Media' ) }\n\t\t\t\t\t\tresetAll={ () => onSelectImage( undefined ) }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! lockUrlControls && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\t\t\t\t\thasValue={ () => !! url }\n\t\t\t\t\t\t\t\tonDeselect={ () => onSelectImage( undefined ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaControl\n\t\t\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\t\t\tmediaUrl={ url }\n\t\t\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\t\t\tfilename={\n\t\t\t\t\t\t\t\t\t\timage?.media_details?.sizes?.full\n\t\t\t\t\t\t\t\t\t\t\t?.file ||\n\t\t\t\t\t\t\t\t\t\timage?.slug ||\n\t\t\t\t\t\t\t\t\t\tgetFilename( url )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\t\t\tonReset={ () => onSelectImage( undefined ) }\n\t\t\t\t\t\t\t\t\tisUploading={ !! temporaryURL }\n\t\t\t\t\t\t\t\t\temptyLabel={ __( 'Add image' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! alt }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { alt: undefined } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t\t\tvalue={ alt || '' }\n\t\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\t\treadOnly={ lockAltControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockAltControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockAltControlsMessage }</>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Leave empty if decorative.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</>\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</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls\n\t\t\t\tgroup=\"dimensions\"\n\t\t\t\tresetAllFilter={ ( attrs ) => ( {\n\t\t\t\t\t...attrs,\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\twidth: undefined,\n\t\t\t\t\theight: undefined,\n\t\t\t\t\tscale: undefined,\n\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ dimensionsControl }\n\t\t\t\t{ url && scale && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! focalPoint }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\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</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ resetSettings }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\treadOnly={ lockTitleControls }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\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</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\n\tconst { postType, postId, queryId } = context;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\n\tlet img =\n\t\ttemporaryURL && hasImageErrored ? (\n\t\t\t// Show a placeholder during upload when the blob URL can't be loaded. This can\n\t\t\t// happen when the user uploads a HEIC image in a browser that doesn't support them.\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"wp-block-image__placeholder\"\n\t\t\t\twithIllustration\n\t\t\t>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t) : (\n\t\t\t<>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\t\talt={ defaultedAlt }\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t\tonLoad={ onImageLoad }\n\t\t\t\t\tref={ setRefs }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\twidth={ naturalWidth }\n\t\t\t\t\theight={ naturalHeight }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\taspectRatio,\n\t\t\t\t\t\t...( resizeDelta\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\twidth: pixelSize.width + resizeDelta.width,\n\t\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\t\tpixelSize.height + resizeDelta.height,\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: { width, height } ),\n\t\t\t\t\t\tobjectFit: scale,\n\t\t\t\t\t\tobjectPosition:\n\t\t\t\t\t\t\tfocalPoint && scale\n\t\t\t\t\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t</>\n\t\t);\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageWrapper href={ href }>\n\t\t\t\t<ImageEditor\n\t\t\t\t\tid={ id }\n\t\t\t\t\turl={ url }\n\t\t\t\t\t{ ...pixelSize }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t\t}\n\t\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t\t} }\n\t\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t\t/>\n\t\t\t</ImageWrapper>\n\t\t);\n\t} else {\n\t\timg = <ImageWrapper href={ href }>{ img }</ImageWrapper>;\n\t}\n\n\tlet resizableBox;\n\tif (\n\t\tisResizable &&\n\t\tisSingleSelected &&\n\t\t! isEditingImage &&\n\t\t! SIZED_LAYOUTS.includes( parentLayoutType )\n\t) {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = pixelSize.width / pixelSize.height;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\t\tconst maxResizeWidth = maxContentWidth || maxWidthBuffer;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\t\tresizableBox = (\n\t\t\t<ResizableBox\n\t\t\t\tref={ effectResizeableBoxPlacement }\n\t\t\t\tstyle={ {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t// To match the vertical-align: bottom of the img (from style.scss)\n\t\t\t\t\t// syncs the top with the img. This matters when the img height is\n\t\t\t\t\t// less than the line-height.\n\t\t\t\t\tinset: `${ offsetTop }px 0 0 0`,\n\t\t\t\t} }\n\t\t\t\tsize={ pixelSize }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxResizeWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxResizeWidth / ratio }\n\t\t\t\tlockAspectRatio={ ratio }\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResize={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetResizeDelta( delta );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\tsetResizeDelta( null );\n\t\t\t\t\tsetPixelSize( ( current ) => ( {\n\t\t\t\t\t\twidth: current.width + delta.width,\n\t\t\t\t\t\theight: current.height + delta.height,\n\t\t\t\t\t} ) );\n\n\t\t\t\t\t// Clear hardcoded width if the resized width is close to the max-content width.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmaxContentWidth &&\n\t\t\t\t\t\t// Only do this if the image is bigger than the container to prevent it from being squished.\n\t\t\t\t\t\t// TODO: Remove this check if the image support setting 100% width.\n\t\t\t\t\t\tnaturalWidth >= maxContentWidth &&\n\t\t\t\t\t\tMath.abs( elt.offsetWidth - maxContentWidth ) < 10\n\t\t\t\t\t) {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Since the aspect ratio is locked when resizing, we can\n\t\t\t\t\t// use the width of the resized element to calculate the\n\t\t\t\t\t// height in CSS to prevent stretching when the max-width\n\t\t\t\t\t// is reached.\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: `${ elt.offsetWidth }px`,\n\t\t\t\t\t\theight: 'auto',\n\t\t\t\t\t\taspectRatio:\n\t\t\t\t\t\t\tratio === naturalRatio\n\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t: String( ratio ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ mediaReplaceFlow }\n\t\t\t\t{ controls }\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Set the post's featured image with the current image.\n\t */\n\tconst setPostFeatureImage = () => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tfeatured_media: id,\n\t\t} );\n\t\tcreateSuccessNotice( __( 'Post featured image updated.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst featuredImageControl = (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds } ) =>\n\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t! isDescendentOfQueryLoop &&\n\t\t\t\tpostId &&\n\t\t\t\tid &&\n\t\t\t\tclientId === selectedClientIds[ 0 ] && (\n\t\t\t\t\t<MenuItem onClick={ setPostFeatureImage }>\n\t\t\t\t\t\t{ __( 'Set as featured image' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockSettingsMenuControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ mediaReplaceFlow }\n\t\t\t{ controls }\n\t\t\t{ featuredImageControl }\n\t\t\t{ img }\n\t\t\t{ resizableBox }\n\n\t\t\t<Caption\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tlabel={ __( 'Image caption text' ) }\n\t\t\t\tshowToolbarButton={\n\t\t\t\t\tisSingleSelected &&\n\t\t\t\t\t( hasNonContentControls || isContentOnlyMode ) &&\n\t\t\t\t\t! hideCaptionControls\n\t\t\t\t}\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tDropZone,\n\tFlexItem,\n\tSpinner,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport {\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * MediaControlPreview - Preview component showing media thumbnail and filename\n *\n * @param {Object} props\n * @param {string} props.url Media URL for thumbnail\n * @param {string} props.alt Alt text for image\n * @param {string} props.filename Filename to display\n * @param {Object} props.itemGroupProps Optional props to pass to ItemGroup\n * @param {string} props.className Optional className for Truncate\n * @return {Element} Preview component\n */\nexport function MediaControlPreview( {\n\turl,\n\talt,\n\tfilename,\n\titemGroupProps,\n\tclassName,\n} ) {\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ url } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate numberOfLines={ 1 } className={ className }>\n\t\t\t\t\t\t{ filename }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n}\n\n/**\n * MediaControl - Complete media selection control for inspector panels\n *\n * @param {Object} props\n * @param {number} props.mediaId Media attachment ID\n * @param {string} props.mediaUrl Media URL\n * @param {string} props.alt Alt text for preview\n * @param {string} props.filename Filename to display\n * @param {Array} props.allowedTypes Allowed media types\n * @param {Function} props.onSelect Callback when media selected\n * @param {Function} props.onSelectURL Callback when URL entered\n * @param {Function} props.onError Error callback\n * @param {Function} props.onReset Reset/remove callback\n * @param {boolean} props.isUploading Whether upload in progress\n * @param {string} props.emptyLabel Label when no media (default: 'Add media')\n * @return {Element} Media control component\n */\nexport function MediaControl( {\n\tmediaId,\n\tmediaUrl,\n\talt = '',\n\tfilename,\n\tallowedTypes,\n\tonSelect,\n\tonSelectURL,\n\tonError,\n\tonReset,\n\tisUploading = false,\n\temptyLabel = __( 'Add media' ),\n} ) {\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst onFilesDrop = ( filesList ) => {\n\t\tconst { mediaUpload } = getSettings();\n\t\tif ( ! mediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ media ] ) {\n\t\t\t\tonSelect( media );\n\t\t\t},\n\t\t\tonError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<div className=\"block-library-utils__media-control\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onError }\n\t\t\t\tname={\n\t\t\t\t\tmediaUrl ? (\n\t\t\t\t\t\t<MediaControlPreview\n\t\t\t\t\t\t\turl={ mediaUrl }\n\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\temptyLabel\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize>\n\t\t\t\t\t\t{ isUploading ? <Spinner /> : props.children }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\tonReset={ onReset }\n\t\t\t/>\n\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\n\nfunction useMaxWidthObserver() {\n\tconst [ contentResizeListener, { width } ] = useResizeObserver();\n\tconst observerRef = useRef();\n\n\tconst maxWidthObserver = (\n\t\t<div\n\t\t\t// Some themes set max-width on blocks.\n\t\t\tclassName=\"wp-block\"\n\t\t\taria-hidden=\"true\"\n\t\t\tstyle={ {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tinset: 0,\n\t\t\t\twidth: '100%',\n\t\t\t\theight: 0,\n\t\t\t\tmargin: 0,\n\t\t\t} }\n\t\t\tref={ observerRef }\n\t\t>\n\t\t\t{ contentResizeListener }\n\t\t</div>\n\t);\n\n\treturn [ maxWidthObserver, width ];\n}\n\nexport { useMaxWidthObserver };\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/image\",\n\t\"title\": \"Image\",\n\t\"category\": \"media\",\n\t\"usesContext\": [\n\t\t\"allowResize\",\n\t\t\"imageCrop\",\n\t\t\"fixedHeight\",\n\t\t\"postId\",\n\t\t\"postType\",\n\t\t\"queryId\"\n\t],\n\t\"description\": \"Insert an image to make a visual statement.\",\n\t\"keywords\": [ \"img\", \"photo\", \"picture\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"blob\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"local\"\n\t\t},\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"img\",\n\t\t\t\"attribute\": \"src\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"alt\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"img\",\n\t\t\t\"attribute\": \"alt\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"figcaption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"lightbox\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"enabled\": {\n\t\t\t\t\"type\": \"boolean\"\n\t\t\t}\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"img\",\n\t\t\t\"attribute\": \"title\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"href\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure > a\",\n\t\t\t\"attribute\": \"href\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure > a\",\n\t\t\t\"attribute\": \"rel\"\n\t\t},\n\t\t\"linkClass\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure > a\",\n\t\t\t\"attribute\": \"class\"\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"height\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"aspectRatio\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"scale\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"focalPoint\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"sizeSlug\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"linkDestination\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure > a\",\n\t\t\t\"attribute\": \"target\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"interactivity\": true,\n\t\t\"align\": [ \"left\", \"center\", \"right\", \"wide\", \"full\" ],\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": false\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"shadow\": {\n\t\t\t\"__experimentalSkipSerialization\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"border\": \".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder\",\n\t\t\"shadow\": \".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder\",\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-image img, .wp-block-image .components-placeholder\"\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{\n\t\t\t\"name\": \"default\",\n\t\t\t\"label\": \"Default\",\n\t\t\t\"isDefault\": true\n\t\t},\n\t\t{ \"name\": \"rounded\", \"label\": \"Rounded\" }\n\t],\n\t\"editorStyle\": \"wp-block-image-editor\",\n\t\"style\": \"wp-block-image\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { mediaPosition } from './utils';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\turl,\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\twidth,\n\t\theight,\n\t\taspectRatio,\n\t\tscale,\n\t\tfocalPoint,\n\t\tid,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\ttitle,\n\t\tmetadata: { bindings = {} } = {},\n\t} = attributes;\n\n\tconst newRel = ! rel ? undefined : rel;\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\n\tconst classes = clsx( {\n\t\t// All other align classes are handled by block supports.\n\t\t// `{ align: 'none' }` is unique to transforms for the image block.\n\t\talignnone: 'none' === align,\n\t\t[ `size-${ sizeSlug }` ]: sizeSlug,\n\t\t'is-resized': width || height,\n\t\t'has-custom-border':\n\t\t\t!! borderProps.className ||\n\t\t\t( borderProps.style &&\n\t\t\t\tObject.keys( borderProps.style ).length > 0 ),\n\t} );\n\n\tconst imageClasses = clsx( borderProps.className, {\n\t\t[ `wp-image-${ id }` ]: !! id,\n\t} );\n\n\tconst image = (\n\t\t<img\n\t\t\tsrc={ url }\n\t\t\talt={ alt }\n\t\t\tclassName={ imageClasses || undefined }\n\t\t\tstyle={ {\n\t\t\t\t...borderProps.style,\n\t\t\t\t...shadowProps.style,\n\t\t\t\taspectRatio,\n\t\t\t\tobjectFit: scale,\n\t\t\t\tobjectPosition:\n\t\t\t\t\tfocalPoint && scale\n\t\t\t\t\t\t? mediaPosition( focalPoint )\n\t\t\t\t\t\t: undefined,\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\ttitle={ title }\n\t\t/>\n\t);\n\n\tconst displayCaption =\n\t\t! RichText.isEmpty( caption ) ||\n\t\tbindings.caption ||\n\t\tbindings?.__default?.source === 'core/pattern-overrides';\n\n\tconst figure = (\n\t\t<>\n\t\t\t{ href ? (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\timage\n\t\t\t) }\n\t\t\t{ displayCaption && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<figure { ...useBlockProps.save( { className: classes } ) }>\n\t\t\t{ figure }\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlobURL, isBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\nexport function stripFirstImage( attributes, { shortcode } ) {\n\tconst { body } = document.implementation.createHTMLDocument( '' );\n\n\tbody.innerHTML = shortcode.content;\n\n\tlet nodeToRemove = body.querySelector( 'img' );\n\n\t// If an image has parents, find the topmost node to remove.\n\twhile (\n\t\tnodeToRemove &&\n\t\tnodeToRemove.parentNode &&\n\t\tnodeToRemove.parentNode !== body\n\t) {\n\t\tnodeToRemove = nodeToRemove.parentNode;\n\t}\n\n\tif ( nodeToRemove ) {\n\t\tnodeToRemove.parentNode.removeChild( nodeToRemove );\n\t}\n\n\treturn body.innerHTML.trim();\n}\n\nfunction getFirstAnchorAttributeFormHTML( html, attributeName ) {\n\tconst { body } = document.implementation.createHTMLDocument( '' );\n\n\tbody.innerHTML = html;\n\n\tconst { firstElementChild } = body;\n\n\tif ( firstElementChild && firstElementChild.nodeName === 'A' ) {\n\t\treturn firstElementChild.getAttribute( attributeName ) || undefined;\n\t}\n}\n\nconst imageSchema = {\n\timg: {\n\t\tattributes: [ 'src', 'alt', 'title' ],\n\t\tclasses: [\n\t\t\t'alignleft',\n\t\t\t'aligncenter',\n\t\t\t'alignright',\n\t\t\t'alignnone',\n\t\t\t/^wp-image-\\d+$/,\n\t\t],\n\t},\n};\n\nconst schema = ( { phrasingContentSchema } ) => ( {\n\tfigure: {\n\t\trequire: [ 'img' ],\n\t\tchildren: {\n\t\t\t...imageSchema,\n\t\t\ta: {\n\t\t\t\tattributes: [ 'href', 'rel', 'target' ],\n\t\t\t\tclasses: [ '*' ],\n\t\t\t\tchildren: imageSchema,\n\t\t\t},\n\t\t\tfigcaption: {\n\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t},\n\t\t},\n\t},\n} );\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'FIGURE' && !! node.querySelector( 'img' ),\n\t\t\tschema,\n\t\t\ttransform: ( node ) => {\n\t\t\t\t// Search both figure and image classes. Alignment could be\n\t\t\t\t// set on either. ID is set on the image.\n\t\t\t\tconst className =\n\t\t\t\t\tnode.className +\n\t\t\t\t\t' ' +\n\t\t\t\t\tnode.querySelector( 'img' ).className;\n\t\t\t\tconst alignMatches =\n\t\t\t\t\t/(?:^|\\s)align(left|center|right)(?:$|\\s)/.exec(\n\t\t\t\t\t\tclassName\n\t\t\t\t\t);\n\t\t\t\tconst anchor = node.id === '' ? undefined : node.id;\n\t\t\t\tconst align = alignMatches ? alignMatches[ 1 ] : undefined;\n\t\t\t\tconst idMatches = /(?:^|\\s)wp-image-(\\d+)(?:$|\\s)/.exec(\n\t\t\t\t\tclassName\n\t\t\t\t);\n\t\t\t\tconst id = idMatches ? Number( idMatches[ 1 ] ) : undefined;\n\t\t\t\tconst anchorElement = node.querySelector( 'a' );\n\t\t\t\tconst linkDestination =\n\t\t\t\t\tanchorElement && anchorElement.href ? 'custom' : undefined;\n\t\t\t\tconst href =\n\t\t\t\t\tanchorElement && anchorElement.href\n\t\t\t\t\t\t? anchorElement.href\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst rel =\n\t\t\t\t\tanchorElement && anchorElement.rel\n\t\t\t\t\t\t? anchorElement.rel\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst linkClass =\n\t\t\t\t\tanchorElement && anchorElement.className\n\t\t\t\t\t\t? anchorElement.className\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst attributes = getBlockAttributes(\n\t\t\t\t\t'core/image',\n\t\t\t\t\tnode.outerHTML,\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tlinkDestination,\n\t\t\t\t\t\thref,\n\t\t\t\t\t\trel,\n\t\t\t\t\t\tlinkClass,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tif ( isBlobURL( attributes.url ) ) {\n\t\t\t\t\tattributes.blob = attributes.url;\n\t\t\t\t\tdelete attributes.url;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/image', attributes );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// Note: when dragging and dropping multiple files onto a gallery this overrides the\n\t\t\t// gallery transform in order to add new images to the gallery instead of\n\t\t\t// creating a new gallery.\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn files.every(\n\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst blocks = files.map( ( file ) => {\n\t\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\treturn blocks;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'caption',\n\t\t\tattributes: {\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tattribute: 'src',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t},\n\t\t\t\talt: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\tselector: 'img',\n\t\t\t\t},\n\t\t\t\tcaption: {\n\t\t\t\t\tshortcode: stripFirstImage,\n\t\t\t\t},\n\t\t\t\thref: {\n\t\t\t\t\tshortcode: ( attributes, { shortcode } ) => {\n\t\t\t\t\t\treturn getFirstAnchorAttributeFormHTML(\n\t\t\t\t\t\t\tshortcode.content,\n\t\t\t\t\t\t\t'href'\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trel: {\n\t\t\t\t\tshortcode: ( attributes, { shortcode } ) => {\n\t\t\t\t\t\treturn getFirstAnchorAttributeFormHTML(\n\t\t\t\t\t\t\tshortcode.content,\n\t\t\t\t\t\t\t'rel'\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlinkClass: {\n\t\t\t\t\tshortcode: ( attributes, { shortcode } ) => {\n\t\t\t\t\t\treturn getFirstAnchorAttributeFormHTML(\n\t\t\t\t\t\t\tshortcode.content,\n\t\t\t\t\t\t\t'class'\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tshortcode: ( { named: { id } } ) => {\n\t\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn parseInt( id.replace( 'attachment_', '' ), 10 );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\talign: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { align = 'alignnone' } } ) => {\n\t\t\t\t\t\treturn align.replace( 'align', '' );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/latest-comments\",\n\t\"title\": \"Latest Comments\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display a list of your most recent comments.\",\n\t\"keywords\": [ \"recent comments\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"commentsToShow\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5,\n\t\t\t\"minimum\": 1,\n\t\t\t\"maximum\": 100\n\t\t},\n\t\t\"displayAvatar\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"displayDate\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"displayContent\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"excerpt\",\n\t\t\t\"enum\": [ \"none\", \"excerpt\", \"full\" ]\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-latest-comments\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tRangeControl,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_COMMENTS = 100;\n\nexport default function LatestComments( { attributes, setAttributes, name } ) {\n\tconst { commentsToShow, displayAvatar, displayDate, displayContent } =\n\t\tattributes;\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t\turlQueryArgs: {\n\t\t\t// The preview uses the site's locale to make it more true to how\n\t\t\t// the block appears on the frontend. Setting the locale\n\t\t\t// explicitly prevents any middleware from setting it to 'user'.\n\t\t\t_locale: 'site',\n\t\t},\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcommentsToShow: 5,\n\t\t\t\t\t\t\tdisplayAvatar: true,\n\t\t\t\t\t\t\tdisplayDate: true,\n\t\t\t\t\t\t\tdisplayContent: 'excerpt',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => ! displayAvatar }\n\t\t\t\t\t\tlabel={ __( 'Display avatar' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display avatar' ) }\n\t\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAvatar: ! displayAvatar,\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</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => ! displayDate }\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayDate: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { displayDate: ! displayDate } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => displayContent !== 'excerpt' }\n\t\t\t\t\t\tlabel={ __( 'Display content' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayContent: 'excerpt' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Display content' ) }\n\t\t\t\t\t\t\tvalue={ displayContent }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'No content' ), value: 'none' },\n\t\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t\t{ label: __( 'Full content' ), value: 'full' },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayContent: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => commentsToShow !== 5 }\n\t\t\t\t\t\tlabel={ __( 'Number of comments' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { commentsToShow: 5 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Number of comments' ) }\n\t\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { commentsToShow: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\t\tmax={ MAX_COMMENTS }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\n\nconst v1 = {\n\tattributes: {\n\t\tcommentsToShow: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 5,\n\t\t\tminimum: 1,\n\t\t\tmaximum: 100,\n\t\t},\n\t\tdisplayAvatar: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdisplayDate: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdisplayExcerpt: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tisEligible( attributes ) {\n\t\treturn attributes?.displayExcerpt === false;\n\t},\n\tmigrate( attributes ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tdisplayContent: attributes.displayExcerpt ? 'excerpt' : 'none',\n\t\t};\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { comment as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/latest-posts\",\n\t\"title\": \"Latest Posts\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display a list of your most recent posts.\",\n\t\"keywords\": [ \"recent posts\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"categories\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\"\n\t\t\t}\n\t\t},\n\t\t\"selectedAuthor\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"postsToShow\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5\n\t\t},\n\t\t\"displayPostContent\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"displayPostContentRadio\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"excerpt\"\n\t\t},\n\t\t\"excerptLength\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 55\n\t\t},\n\t\t\"displayAuthor\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"displayPostDate\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"postLayout\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"list\"\n\t\t},\n\t\t\"columns\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 3\n\t\t},\n\t\t\"order\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"desc\"\n\t\t},\n\t\t\"orderBy\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"date\"\n\t\t},\n\t\t\"displayFeaturedImage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"featuredImageAlign\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"left\", \"center\", \"right\" ]\n\t\t},\n\t\t\"featuredImageSizeSlug\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"thumbnail\"\n\t\t},\n\t\t\"featuredImageSizeWidth\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": null\n\t\t},\n\t\t\"featuredImageSizeHeight\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": null\n\t\t},\n\t\t\"addLinkToFeaturedImage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-latest-posts-editor\",\n\t\"style\": \"wp-block-latest-posts\"\n}\n", "/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { attributes } = metadata;\n\nexport default [\n\t{\n\t\tattributes: {\n\t\t\t...attributes,\n\t\t\tcategories: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\thtml: false,\n\t\t},\n\t\tmigrate: ( oldAttributes ) => {\n\t\t\t// This needs the full category object, not just the ID.\n\t\t\treturn {\n\t\t\t\t...oldAttributes,\n\t\t\t\tcategories: [ { id: Number( oldAttributes.categories ) } ],\n\t\t\t};\n\t\t},\n\t\tisEligible: ( { categories } ) =>\n\t\t\tcategories && 'string' === typeof categories,\n\t\tsave: () => null,\n\t},\n];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tpin,\n\tlist,\n\tgrid,\n\talignNone,\n\tpositionLeft,\n\tpositionCenter,\n\tpositionRight,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n\tDEFAULT_EXCERPT_LENGTH,\n} from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\nconst imageAlignmentOptions = [\n\t{\n\t\tvalue: 'none',\n\t\ticon: alignNone,\n\t\tlabel: __( 'None' ),\n\t},\n\t{\n\t\tvalue: 'left',\n\t\ticon: positionLeft,\n\t\tlabel: __( 'Left' ),\n\t},\n\t{\n\t\tvalue: 'center',\n\t\ticon: positionCenter,\n\t\tlabel: __( 'Center' ),\n\t},\n\t{\n\t\tvalue: 'right',\n\t\ticon: positionRight,\n\t\tlabel: __( 'Right' ),\n\t},\n];\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nfunction getCurrentAuthor( post ) {\n\treturn post._embedded?.author?.[ 0 ];\n}\n\nfunction Controls( { attributes, setAttributes, postCount } ) {\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[ featuredImageSizeSlug ]\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayPostContent: false,\n\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\texcerptLength: DEFAULT_EXCERPT_LENGTH,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! displayPostContent }\n\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post content' ) }\n\t\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => displayPostContentRadio !== 'excerpt' }\n\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: 'excerpt',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\tlabel={ __( 'Content length' ) }\n\t\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\texcerptLength !== DEFAULT_EXCERPT_LENGTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\texcerptLength: DEFAULT_EXCERPT_LENGTH,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Post meta' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayAuthor: false,\n\t\t\t\t\t\tdisplayPostDate: false,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! displayAuthor }\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! displayPostDate }\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tdisplayFeaturedImage: false,\n\t\t\t\t\t\tfeaturedImageAlign: undefined,\n\t\t\t\t\t\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\taddLinkToFeaturedImage: false,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! displayFeaturedImage }\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tfeaturedImageSizeSlug !== 'thumbnail' ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeWidth !== null ||\n\t\t\t\t\t\t\t\tfeaturedImageSizeHeight !== null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: 'thumbnail',\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: null,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: null,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\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</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! featuredImageAlign }\n\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageAlign: undefined,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tclassName=\"editor-latest-posts-image-alignment-control\"\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign || 'none' }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign:\n\t\t\t\t\t\t\t\t\t\t\tvalue !== 'none'\n\t\t\t\t\t\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\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\t\t{ imageAlignmentOptions.map(\n\t\t\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\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</ToggleGroupControl>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! addLinkToFeaturedImage }\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: false,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\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</ToolsPanelItem>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Sorting and filtering' ) }\n\t\t\t\tresetAll={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\tselectedAuthor: undefined,\n\t\t\t\t\t\tcolumns: 3,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\torder !== 'desc' ||\n\t\t\t\t\t\torderBy !== 'date' ||\n\t\t\t\t\t\tpostsToShow !== 5 ||\n\t\t\t\t\t\tcategories?.length > 0 ||\n\t\t\t\t\t\t!! selectedAuthor\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Sort and filter' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tpostsToShow: 5,\n\t\t\t\t\t\t\tcategories: undefined,\n\t\t\t\t\t\t\tselectedAuthor: undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => columns !== 3 }\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tcolumns: 3,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t! postCount\n\t\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t\t: Math.min( MAX_POSTS_COLUMNS, postCount )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</>\n\t);\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst { latestPosts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'author,wp:featuredmedia',\n\t\t\t\t\tignore_sticky: true,\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ postsToShow, order, orderBy, categories, selectedAuthor ]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/latest-posts/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<Controls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tpostCount={ latestPosts?.length ?? 0 }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Latest posts block display setting' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = getCurrentAuthor( post );\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = clsx( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Hidden accessibility text: Post title */\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'\u2026 <a>Read more<span>: %1$s</span></a>'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\ttitleTrimmed || __( '(no title)' )\n\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\t\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__read-more\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tspan: (\n\t\t\t\t\t\t\t\t\t\t<span className=\"screen-reader-text\" />\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</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\n\t\t\t\t\t\t\t\t\t\t} }\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n", "export const MIN_EXCERPT_LENGTH = 10;\nexport const MAX_EXCERPT_LENGTH = 100;\nexport const MAX_POSTS_COLUMNS = 6;\nexport const DEFAULT_EXCERPT_LENGTH = 55;\n", "/**\n * WordPress dependencies\n */\nimport { postList as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { list as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nconst settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/list-item',\n\t\t\t\tattributes: { content: __( 'Alice.' ) },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/list-item',\n\t\t\t\tattributes: { content: __( 'The White Rabbit.' ) },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/list-item',\n\t\t\t\tattributes: { content: __( 'The Cheshire Cat.' ) },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/list-item',\n\t\t\t\tattributes: { content: __( 'The Mad Hatter.' ) },\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/list-item',\n\t\t\t\tattributes: { content: __( 'The Queen of Hearts.' ) },\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport { settings };\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { RichText, InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\nimport { migrateToListV2, migrateTypeToInlineStyle } from './utils';\n\nconst v0 = {\n\tattributes: {\n\t\tordered: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tvalues: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'ol,ul',\n\t\t\tmultiline: 'li',\n\t\t\t__unstableMultilineWrapperTags: [ 'ol', 'ul' ],\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstart: {\n\t\t\ttype: 'number',\n\t\t},\n\t\treversed: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tclassName: false,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSelector: 'ol,ul',\n\t\t__experimentalSlashInserter: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { ordered, values, type, reversed, start } = attributes;\n\t\tconst TagName = ordered ? 'ol' : 'ul';\n\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { type, reversed, start } ) }>\n\t\t\t\t<RichText.Content value={ values } multiline=\"li\" />\n\t\t\t</TagName>\n\t\t);\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\tordered: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tvalues: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'ol,ul',\n\t\t\tmultiline: 'li',\n\t\t\t__unstableMultilineWrapperTags: [ 'ol', 'ul' ],\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstart: {\n\t\t\ttype: 'number',\n\t\t},\n\t\treversed: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tclassName: false,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSelector: 'ol,ul',\n\t\t__experimentalSlashInserter: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { ordered, values, type, reversed, start } = attributes;\n\t\tconst TagName = ordered ? 'ol' : 'ul';\n\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { type, reversed, start } ) }>\n\t\t\t\t<RichText.Content value={ values } multiline=\"li\" />\n\t\t\t</TagName>\n\t\t);\n\t},\n\tmigrate: migrateToListV2,\n};\n\n// In #53301 changed to use the inline style instead of type attribute.\nconst v2 = {\n\tattributes: {\n\t\tordered: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tvalues: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'ol,ul',\n\t\t\tmultiline: 'li',\n\t\t\t__unstableMultilineWrapperTags: [ 'ol', 'ul' ],\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstart: {\n\t\t\ttype: 'number',\n\t\t},\n\t\treversed: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tclassName: false,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tmargin: false,\n\t\t\t\tpadding: false,\n\t\t\t},\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSelector: 'ol,ul',\n\t\t__experimentalSlashInserter: true,\n\t},\n\tisEligible( { type } ) {\n\t\treturn !! type;\n\t},\n\tsave( { attributes } ) {\n\t\tconst { ordered, type, reversed, start } = attributes;\n\t\tconst TagName = ordered ? 'ol' : 'ul';\n\t\treturn (\n\t\t\t<TagName { ...useBlockProps.save( { type, reversed, start } ) }>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</TagName>\n\t\t);\n\t},\n\tmigrate: migrateTypeToInlineStyle,\n};\n\n// Version without block support 'className: true'.\nconst v3 = {\n\tattributes: {\n\t\tordered: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tvalues: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'ol,ul',\n\t\t\tmultiline: 'li',\n\t\t\t__unstableMultilineWrapperTags: [ 'ol', 'ul' ],\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstart: {\n\t\t\ttype: 'number',\n\t\t},\n\t\treversed: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tclassName: false,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tmargin: false,\n\t\t\t\tpadding: false,\n\t\t\t},\n\t\t},\n\t\t__unstablePasteTextInline: true,\n\t\t__experimentalSelector: 'ol,ul',\n\t\t__experimentalOnMerge: 'true',\n\t\t__experimentalSlashInserter: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { ordered, type, reversed, start } = attributes;\n\t\tconst TagName = ordered ? 'ol' : 'ul';\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...useBlockProps.save( {\n\t\t\t\t\treversed,\n\t\t\t\t\tstart,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlistStyleType:\n\t\t\t\t\t\t\tordered && type !== 'decimal' ? type : undefined,\n\t\t\t\t\t},\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</TagName>\n\t\t);\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v3, v2, v1, v0 ];\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, rawHandler } from '@wordpress/blocks';\n\nconst LIST_STYLES = {\n\tA: 'upper-alpha',\n\ta: 'lower-alpha',\n\tI: 'upper-roman',\n\ti: 'lower-roman',\n};\n\nexport function createListBlockFromDOMElement( listElement ) {\n\tconst type = listElement.getAttribute( 'type' );\n\tconst listAttributes = {\n\t\tordered: 'OL' === listElement.tagName,\n\t\tanchor: listElement.id ? listElement.id : undefined,\n\t\tstart: listElement.getAttribute( 'start' )\n\t\t\t? parseInt( listElement.getAttribute( 'start' ), 10 )\n\t\t\t: undefined,\n\t\treversed: listElement.hasAttribute( 'reversed' ) ? true : undefined,\n\t\ttype: type && LIST_STYLES[ type ] ? LIST_STYLES[ type ] : undefined,\n\t};\n\n\tconst innerBlocks = Array.from( listElement.children ).map(\n\t\t( listItem ) => {\n\t\t\tconst children = Array.from( listItem.childNodes ).filter(\n\t\t\t\t( node ) =>\n\t\t\t\t\tnode.nodeType !== node.TEXT_NODE ||\n\t\t\t\t\tnode.textContent.trim().length !== 0\n\t\t\t);\n\t\t\tchildren.reverse();\n\t\t\tconst [ nestedList, ...nodes ] = children;\n\n\t\t\tconst hasNestedList =\n\t\t\t\tnestedList?.tagName === 'UL' || nestedList?.tagName === 'OL';\n\t\t\tif ( ! hasNestedList ) {\n\t\t\t\treturn createBlock( 'core/list-item', {\n\t\t\t\t\tcontent: listItem.innerHTML,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tconst htmlNodes = nodes.map( ( node ) => {\n\t\t\t\tif ( node.nodeType === node.TEXT_NODE ) {\n\t\t\t\t\treturn node.textContent;\n\t\t\t\t}\n\t\t\t\treturn node.outerHTML;\n\t\t\t} );\n\t\t\thtmlNodes.reverse();\n\t\t\tconst childAttributes = {\n\t\t\t\tcontent: htmlNodes.join( '' ).trim(),\n\t\t\t};\n\t\t\tconst childInnerBlocks = [\n\t\t\t\tcreateListBlockFromDOMElement( nestedList ),\n\t\t\t];\n\t\t\treturn createBlock(\n\t\t\t\t'core/list-item',\n\t\t\t\tchildAttributes,\n\t\t\t\tchildInnerBlocks\n\t\t\t);\n\t\t}\n\t);\n\n\treturn createBlock( 'core/list', listAttributes, innerBlocks );\n}\n\nexport function migrateToListV2( attributes ) {\n\tconst { values, start, reversed, ordered, type, ...otherAttributes } =\n\t\tattributes;\n\n\tconst list = document.createElement( ordered ? 'ol' : 'ul' );\n\tlist.innerHTML = values;\n\tif ( start ) {\n\t\tlist.setAttribute( 'start', start );\n\t}\n\tif ( reversed ) {\n\t\tlist.setAttribute( 'reversed', true );\n\t}\n\tif ( type ) {\n\t\tlist.setAttribute( 'type', type );\n\t}\n\n\tconst [ listBlock ] = rawHandler( { HTML: list.outerHTML } );\n\n\treturn [\n\t\t{ ...otherAttributes, ...listBlock.attributes },\n\t\tlistBlock.innerBlocks,\n\t];\n}\n\nexport function migrateTypeToInlineStyle( attributes ) {\n\tconst { type } = attributes;\n\n\tif ( type && LIST_STYLES[ type ] ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\ttype: LIST_STYLES[ type ],\n\t\t};\n\t}\n\n\treturn attributes;\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport {\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n\tformatOutdent,\n\tformatOutdentRTL,\n} from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback, useEffect, Platform } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport OrderedListSettings from './ordered-list-settings';\nimport { migrateToListV2 } from './utils';\nimport TagName from './tag-name';\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/list-item',\n};\nconst TEMPLATE = [ [ 'core/list-item' ] ];\nconst NATIVE_MARGIN_SPACING = 8;\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old list block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nfunction useMigrateOnLoad( attributes, clientId ) {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.values ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] = migrateToListV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the list block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.values ] );\n}\n\nfunction useOutdentList( clientId ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockAttributes, getBlock } =\n\t\tuseSelect( blockEditorStore );\n\n\treturn useCallback( () => {\n\t\tconst parentBlockId = getBlockRootClientId( clientId );\n\t\tconst parentBlockAttributes = getBlockAttributes( parentBlockId );\n\t\t// Create a new parent block without the inner blocks.\n\t\tconst newParentBlock = createBlock(\n\t\t\t'core/list-item',\n\t\t\tparentBlockAttributes\n\t\t);\n\t\tconst { innerBlocks } = getBlock( clientId );\n\t\t// Replace the parent block with a new parent block without inner blocks,\n\t\t// and make the inner blocks siblings of the parent.\n\t\treplaceBlocks( [ parentBlockId ], [ newParentBlock, ...innerBlocks ] );\n\t\t// Select the last child of the list being outdent.\n\t\tselectionChange( innerBlocks[ innerBlocks.length - 1 ].clientId );\n\t}, [ clientId ] );\n}\n\nfunction IndentUI( { clientId } ) {\n\tconst outdentList = useOutdentList( clientId );\n\tconst canOutdent = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t'core/list-item'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ outdentList }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Edit( { attributes, setAttributes, clientId, style } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tstyle: {\n\t\t\t...( Platform.isNative && style ),\n\t\t\tlistStyleType: ordered && type !== 'decimal' ? type : undefined,\n\t\t},\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplate: TEMPLATE,\n\t\ttemplateLock: false,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t...( Platform.isNative && {\n\t\t\tmarginVertical: NATIVE_MARGIN_SPACING,\n\t\t\tmarginHorizontal: NATIVE_MARGIN_SPACING,\n\t\t\trenderAppender: false,\n\t\t} ),\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst controls = (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\tisActive={ ordered === false }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: false } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatListNumberedRTL : formatListNumbered }\n\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\tisActive={ ordered === true }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetAttributes( { ordered: true } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<IndentUI clientId={ clientId } />\n\t\t</BlockControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TagName\n\t\t\t\tordered={ ordered }\n\t\t\t\treversed={ reversed }\n\t\t\t\tstart={ start }\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t/>\n\t\t\t{ controls }\n\t\t\t{ ordered && (\n\t\t\t\t<OrderedListSettings\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\treversed,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst LIST_STYLE_OPTIONS = [\n\t{\n\t\tlabel: __( 'Numbers' ),\n\t\tvalue: 'decimal',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase letters' ),\n\t\tvalue: 'upper-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase letters' ),\n\t\tvalue: 'lower-alpha',\n\t},\n\t{\n\t\tlabel: __( 'Uppercase Roman numerals' ),\n\t\tvalue: 'upper-roman',\n\t},\n\t{\n\t\tlabel: __( 'Lowercase Roman numerals' ),\n\t\tvalue: 'lower-roman',\n\t},\n];\n\nconst OrderedListSettings = ( { setAttributes, reversed, start, type } ) => {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t{ Platform.isNative ? (\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\toptions={ LIST_STYLE_OPTIONS }\n\t\t\t\t\t\tvalue={ type }\n\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { type: newValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\tNumber.isInteger( start )\n\t\t\t\t\t\t\t\t? start.toString( 10 )\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\tchecked={ reversed || false }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\t\t\treversed: value || undefined,\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</PanelBody>\n\t\t\t) : (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\tstart: undefined,\n\t\t\t\t\t\t\treversed: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! type }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\ttype: undefined,\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\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'List style' ) }\n\t\t\t\t\t\t\toptions={ LIST_STYLE_OPTIONS }\n\t\t\t\t\t\t\tvalue={ type || 'decimal' }\n\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { type: newValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! start }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tstart: undefined,\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\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tNumber.isInteger( start )\n\t\t\t\t\t\t\t\t\t? start.toString( 10 )\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! reversed }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\treversed: undefined,\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\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Reverse order' ) }\n\t\t\t\t\t\t\tchecked={ reversed || false }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\t\t\t\treversed: value || undefined,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</InspectorControls>\n\t);\n};\n\nexport default OrderedListSettings;\n", "/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\nfunction TagName( props, ref ) {\n\tconst { ordered, ...extraProps } = props;\n\tconst Tag = ordered ? 'ol' : 'ul';\n\n\treturn <Tag ref={ ref } { ...extraProps } />;\n}\n\nexport default forwardRef( TagName );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/list\",\n\t\"title\": \"List\",\n\t\"category\": \"text\",\n\t\"allowedBlocks\": [ \"core/list-item\" ],\n\t\"description\": \"An organized collection of items displayed in a specific order.\",\n\t\"keywords\": [ \"bullet list\", \"ordered list\", \"numbered list\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"ordered\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"values\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"html\",\n\t\t\t\"selector\": \"ol,ul\",\n\t\t\t\"multiline\": \"li\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"start\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"reversed\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"__unstablePasteTextInline\": true,\n\t\t\"__experimentalOnMerge\": true,\n\t\t\"__experimentalSlashInserter\": true,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"listView\": true\n\t},\n\t\"selectors\": {\n\t\t\"border\": \".wp-block-list:not(.wp-block-list .wp-block-list)\"\n\t},\n\t\"editorStyle\": \"wp-block-list-editor\",\n\t\"style\": \"wp-block-list\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { ordered, type, reversed, start } = attributes;\n\tconst TagName = ordered ? 'ol' : 'ul';\n\treturn (\n\t\t<TagName\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\treversed,\n\t\t\t\tstart,\n\t\t\t\tstyle: {\n\t\t\t\t\tlistStyleType:\n\t\t\t\t\t\tordered && type !== 'decimal' ? type : undefined,\n\t\t\t\t},\n\t\t\t} ) }\n\t\t>\n\t\t\t<InnerBlocks.Content />\n\t\t</TagName>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { create, split, toHTMLString } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { createListBlockFromDOMElement } from './utils';\n\nfunction getListContentSchema( { phrasingContentSchema } ) {\n\tconst listContentSchema = {\n\t\t...phrasingContentSchema,\n\t\tul: {},\n\t\tol: { attributes: [ 'type', 'start', 'reversed' ] },\n\t};\n\n\t// Recursion is needed.\n\t// Possible: ul > li > ul.\n\t// Impossible: ul > ul.\n\t[ 'ul', 'ol' ].forEach( ( tag ) => {\n\t\tlistContentSchema[ tag ].children = {\n\t\t\tli: {\n\t\t\t\tchildren: listContentSchema,\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn listContentSchema;\n}\n\nfunction getListContentFlat( blocks ) {\n\treturn blocks.flatMap( ( { name, attributes, innerBlocks = [] } ) => {\n\t\tif ( name === 'core/list-item' ) {\n\t\t\treturn [ attributes.content, ...getListContentFlat( innerBlocks ) ];\n\t\t}\n\t\treturn getListContentFlat( innerBlocks );\n\t} );\n}\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph', 'core/heading' ],\n\t\t\ttransform: ( blockAttributes ) => {\n\t\t\t\tlet childBlocks = [];\n\t\t\t\tif ( blockAttributes.length > 1 ) {\n\t\t\t\t\tchildBlocks = blockAttributes.map( ( { content } ) => {\n\t\t\t\t\t\treturn createBlock( 'core/list-item', { content } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( blockAttributes.length === 1 ) {\n\t\t\t\t\tconst value = create( {\n\t\t\t\t\t\thtml: blockAttributes[ 0 ].content,\n\t\t\t\t\t} );\n\t\t\t\t\tchildBlocks = split( value, '\\n' ).map( ( result ) => {\n\t\t\t\t\t\treturn createBlock( 'core/list-item', {\n\t\t\t\t\t\t\tcontent: toHTMLString( { value: result } ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/list',\n\t\t\t\t\t{\n\t\t\t\t\t\tanchor: blockAttributes.anchor,\n\t\t\t\t\t},\n\t\t\t\t\tchildBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'ol,ul',\n\t\t\tschema: ( args ) => ( {\n\t\t\t\tol: getListContentSchema( args ).ol,\n\t\t\t\tul: getListContentSchema( args ).ul,\n\t\t\t} ),\n\t\t\ttransform: createListBlockFromDOMElement,\n\t\t},\n\t\t...[ '*', '-' ].map( ( prefix ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix,\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( 'core/list', {}, [\n\t\t\t\t\tcreateBlock( 'core/list-item', { content } ),\n\t\t\t\t] );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ '1.', '1)' ].map( ( prefix ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix,\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/list',\n\t\t\t\t\t{\n\t\t\t\t\t\tordered: true,\n\t\t\t\t\t},\n\t\t\t\t\t[ createBlock( 'core/list-item', { content } ) ]\n\t\t\t\t);\n\t\t\t},\n\t\t} ) ),\n\t],\n\tto: [\n\t\t...[ 'core/paragraph', 'core/heading' ].map( ( block ) => ( {\n\t\t\ttype: 'block',\n\t\t\tblocks: [ block ],\n\t\t\ttransform: ( _attributes, childBlocks ) => {\n\t\t\t\treturn getListContentFlat( childBlocks ).map( ( content ) =>\n\t\t\t\t\tcreateBlock( block, {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t} ) ),\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tTextareaControl,\n\tPopover,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nexport default function MathEdit( { attributes, setAttributes, isSelected } ) {\n\tconst { latex, mathML } = attributes;\n\tconst [ blockRef, setBlockRef ] = useState();\n\tconst [ error, setError ] = useState( null );\n\tconst [ latexToMathML, setLatexToMathML ] = useState();\n\tconst initialLatex = useRef( latex );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\timport( '@wordpress/latex-to-mathml' ).then( ( module ) => {\n\t\t\tsetLatexToMathML( () => module.default );\n\t\t\tif ( initialLatex.current ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tmathML: module.default( initialLatex.current, {\n\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tinitialLatex,\n\t\tsetAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tref: setBlockRef,\n\t\tposition: 'relative',\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ mathML ? (\n\t\t\t\t<math\n\t\t\t\t\t// We can't spread block props on the math element because\n\t\t\t\t\t// it only supports a limited amount of global attributes.\n\t\t\t\t\t// For example, draggable will have no effect.\n\t\t\t\t\tdisplay=\"block\"\n\t\t\t\t\tdangerouslySetInnerHTML={ { __html: mathML } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t'\\u200B'\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom-start\"\n\t\t\t\t\toffset={ 8 }\n\t\t\t\t\tanchor={ blockRef }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\t__unstableSlotName=\"__unstable-block-tools-after\"\n\t\t\t\t>\n\t\t\t\t\t<div style={ { padding: '4px', minWidth: '300px' } }>\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'LaTeX math syntax' ) }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\tvalue={ latex }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-math__textarea-control\"\n\t\t\t\t\t\t\t\tonChange={ ( newLatex ) => {\n\t\t\t\t\t\t\t\t\tif ( ! latexToMathML ) {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { latex: newLatex } );\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tlet newMathML = '';\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tnewMathML = latexToMathML( newLatex, {\n\t\t\t\t\t\t\t\t\t\t\tdisplayMode: true,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\tsetError( null );\n\t\t\t\t\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\t\t\t\t\tsetError( err.message );\n\t\t\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: error message returned when parsing LaTeX. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Error parsing mathematical expression: %s'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\terr.message\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tmathML: newMathML,\n\t\t\t\t\t\t\t\t\t\tlatex: newLatex,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'e.g., x^2, \\\\frac{a}{b}' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ error && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\t\tintent=\"error\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-math__error\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: error message returned when parsing LaTeX. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t\t\t<style children=\".wp-block-math__error .components-badge__content{white-space:normal}\" />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/math\",\n\t\"title\": \"Math\",\n\t\"category\": \"text\",\n\t\"description\": \"Display mathematical notation using LaTeX.\",\n\t\"keywords\": [ \"equation\", \"formula\", \"latex\", \"mathematics\" ],\n\t\"textdomain\": \"default\",\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"attributes\": {\n\t\t\"latex\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"mathML\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"html\",\n\t\t\t\"selector\": \"math\"\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { latex, mathML } = attributes;\n\n\tif ( ! latex ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps.save() }>\n\t\t\t<math\n\t\t\t\tdisplay=\"block\"\n\t\t\t\tdangerouslySetInnerHTML={ { __html: mathML } }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\n// v1: Add a wrapper div around the math element.\nconst v1 = {\n\tattributes: {\n\t\tlatex: {\n\t\t\ttype: 'string',\n\t\t\trole: 'content',\n\t\t},\n\t\tmathML: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'math',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { latex, mathML } = attributes;\n\n\t\tif ( ! latex ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<math\n\t\t\t\t{ ...useBlockProps.save() }\n\t\t\t\tdisplay=\"block\"\n\t\t\t\tdangerouslySetInnerHTML={ { __html: mathML } }\n\t\t\t/>\n\t\t);\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { math as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tlatex: 'x = \\\\frac{-b \\\\pm \\\\sqrt{b^2-4ac}}{2a}',\n\t\t\tmathML: '<semantics><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo lspace=\"0em\" rspace=\"0em\">\u2212</mo><mi>b</mi><mo>\u00B1</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>\u2212</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow><annotation encoding=\"application/x-tex\">x = \\\\frac{-b \\\\pm \\\\sqrt{b^2-4ac}}{2a}</annotation></semantics>',\n\t\t},\n\t\tviewportWidth: 300,\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { listItem as icon } from '@wordpress/icons';\nimport { privateApis } from '@wordpress/block-editor';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\t[ unlock( privateApis ).requiresWrapperOnCopy ]: true,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/list-item\",\n\t\"title\": \"List Item\",\n\t\"category\": \"text\",\n\t\"parent\": [ \"core/list\" ],\n\t\"allowedBlocks\": [ \"core/list\" ],\n\t\"description\": \"An individual item within a list.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"li\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"className\": false,\n\t\t\"splitting\": true,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"background\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"root\": \".wp-block-list > li\",\n\t\t\"border\": \".wp-block-list:not(.wp-block-list .wp-block-list) > li\"\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport {\n\tformatOutdent,\n\tformatOutdentRTL,\n\tformatIndentRTL,\n\tformatIndent,\n} from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseEnter,\n\tuseSpace,\n\tuseIndentListItem,\n\tuseOutdentListItem,\n\tuseMerge,\n} from './hooks';\n\nexport function IndentUI( { clientId } ) {\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\tconst { canIndent, canOutdent } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockIndex, getBlockRootClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanIndent: getBlockIndex( clientId ) > 0,\n\t\t\t\tcanOutdent:\n\t\t\t\t\tgetBlockName(\n\t\t\t\t\t\tgetBlockRootClientId( getBlockRootClientId( clientId ) )\n\t\t\t\t\t) === 'core/list-item',\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatOutdentRTL : formatOutdent }\n\t\t\t\ttitle={ __( 'Outdent' ) }\n\t\t\t\tshortcut={ displayShortcut.shift( 'Tab' ) }\n\t\t\t\tdescription={ __( 'Outdent list item' ) }\n\t\t\t\tdisabled={ ! canOutdent }\n\t\t\t\tonClick={ () => outdentListItem() }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ isRTL() ? formatIndentRTL : formatIndent }\n\t\t\t\ttitle={ __( 'Indent' ) }\n\t\t\t\tshortcut=\"Tab\"\n\t\t\t\tdescription={ __( 'Indent list item' ) }\n\t\t\t\tdisabled={ ! canIndent }\n\t\t\t\tonClick={ () => indentListItem() }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function ListItemEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tmergeBlocks,\n} ) {\n\tconst { placeholder, content } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t} );\n\tconst useEnterRef = useEnter( { content, clientId } );\n\tconst useSpaceRef = useSpace( clientId );\n\tconst onMerge = useMerge( clientId, mergeBlocks );\n\treturn (\n\t\t<>\n\t\t\t<li { ...innerBlocksProps }>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ useMergeRefs( [ useEnterRef, useSpaceRef ] ) }\n\t\t\t\t\tidentifier=\"content\"\n\t\t\t\t\ttagName=\"div\"\n\t\t\t\t\tonChange={ ( nextContent ) =>\n\t\t\t\t\t\tsetAttributes( { content: nextContent } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\taria-label={ __( 'List text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'List' ) }\n\t\t\t\t\tonMerge={ onMerge }\n\t\t\t\t/>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t</li>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<IndentUI clientId={ clientId } />\n\t\t\t</BlockControls>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { cloneBlock } from '@wordpress/blocks';\n\nexport default function useOutdentListItem() {\n\tconst registry = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tinsertBlock,\n\t\tupdateBlockListSettings,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlockOrder,\n\t\tgetBlockIndex,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlock,\n\t\tgetBlockListSettings,\n\t} = useSelect( blockEditorStore );\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) {\n\t\t\treturn;\n\t\t}\n\t\treturn parentListItemId;\n\t}\n\n\treturn useCallback( ( clientIds = getSelectedBlockClientIds() ) => {\n\t\tif ( ! Array.isArray( clientIds ) ) {\n\t\t\tclientIds = [ clientIds ];\n\t\t}\n\n\t\tif ( ! clientIds.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst firstClientId = clientIds[ 0 ];\n\n\t\t// Can't outdent if it's not a list item.\n\t\tif ( getBlockName( firstClientId ) !== 'core/list-item' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst parentListItemId = getParentListItemId( firstClientId );\n\n\t\t// Can't outdent if it's at the top level.\n\t\tif ( ! parentListItemId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst parentListId = getBlockRootClientId( firstClientId );\n\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\tconst order = getBlockOrder( parentListId );\n\t\tconst followingListItems = order.slice(\n\t\t\tgetBlockIndex( lastClientId ) + 1\n\t\t);\n\n\t\tregistry.batch( () => {\n\t\t\tif ( followingListItems.length ) {\n\t\t\t\tlet nestedListId = getBlockOrder( firstClientId )[ 0 ];\n\n\t\t\t\tif ( ! nestedListId ) {\n\t\t\t\t\tconst nestedListBlock = cloneBlock(\n\t\t\t\t\t\tgetBlock( parentListId ),\n\t\t\t\t\t\t{},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnestedListId = nestedListBlock.clientId;\n\t\t\t\t\tinsertBlock( nestedListBlock, 0, firstClientId, false );\n\t\t\t\t\t// Immediately update the block list settings, otherwise\n\t\t\t\t\t// blocks can't be moved here due to canInsert checks.\n\t\t\t\t\tupdateBlockListSettings(\n\t\t\t\t\t\tnestedListId,\n\t\t\t\t\t\tgetBlockListSettings( parentListId )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\tfollowingListItems,\n\t\t\t\t\tparentListId,\n\t\t\t\t\tnestedListId\n\t\t\t\t);\n\t\t\t}\n\t\t\tmoveBlocksToPosition(\n\t\t\t\tclientIds,\n\t\t\t\tparentListId,\n\t\t\t\tgetBlockRootClientId( parentListItemId ),\n\t\t\t\tgetBlockIndex( parentListItemId ) + 1\n\t\t\t);\n\t\t\tif ( ! getBlockOrder( parentListId ).length ) {\n\t\t\t\tconst shouldSelectParent = false;\n\t\t\t\tremoveBlock( parentListId, shouldSelectParent );\n\t\t\t}\n\t\t} );\n\n\t\treturn true;\n\t}, [] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nexport default function useIndentListItem( clientId ) {\n\tconst { replaceBlocks, selectionChange, multiSelect } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlock,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectionStart,\n\t\tgetSelectionEnd,\n\t\thasMultiSelection,\n\t\tgetMultiSelectedBlockClientIds,\n\t} = useSelect( blockEditorStore );\n\treturn useCallback( () => {\n\t\tconst _hasMultiSelection = hasMultiSelection();\n\t\tconst clientIds = _hasMultiSelection\n\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t: [ clientId ];\n\t\tconst clonedBlocks = clientIds.map( ( _clientId ) =>\n\t\t\tcloneBlock( getBlock( _clientId ) )\n\t\t);\n\t\tconst previousSiblingId = getPreviousBlockClientId( clientId );\n\t\tconst newListItem = cloneBlock( getBlock( previousSiblingId ) );\n\t\t// If the sibling has no innerBlocks, create a new `list` block.\n\t\tif ( ! newListItem.innerBlocks?.length ) {\n\t\t\tnewListItem.innerBlocks = [ createBlock( 'core/list' ) ];\n\t\t}\n\t\t// A list item usually has one `list`, but it's possible to have\n\t\t// more. So we need to preserve the previous `list` blocks and\n\t\t// merge the new blocks to the last `list`.\n\t\tnewListItem.innerBlocks[\n\t\t\tnewListItem.innerBlocks.length - 1\n\t\t].innerBlocks.push( ...clonedBlocks );\n\n\t\t// We get the selection start/end here, because when\n\t\t// we replace blocks, the selection is updated too.\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\t// Replace the previous sibling of the block being indented and the indented blocks,\n\t\t// with a new block whose attributes are equal to the ones of the previous sibling and\n\t\t// whose descendants are the children of the previous sibling, followed by the indented blocks.\n\t\treplaceBlocks( [ previousSiblingId, ...clientIds ], [ newListItem ] );\n\t\tif ( ! _hasMultiSelection ) {\n\t\t\tselectionChange(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tselectionEnd.attributeKey,\n\t\t\t\tselectionEnd.clientId === selectionStart.clientId\n\t\t\t\t\t? selectionStart.offset\n\t\t\t\t\t: selectionEnd.offset,\n\t\t\t\tselectionEnd.offset\n\t\t\t);\n\t\t} else {\n\t\t\tmultiSelect(\n\t\t\t\tclonedBlocks[ 0 ].clientId,\n\t\t\t\tclonedBlocks[ clonedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\n\t\treturn true;\n\t}, [ clientId ] );\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tcloneBlock,\n} from '@wordpress/blocks';\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex, getBlockName } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\tconst outdentListItem = useOutdentListItem();\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst canOutdent =\n\t\t\t\tgetBlockName(\n\t\t\t\t\tgetBlockRootClientId(\n\t\t\t\t\t\tgetBlockRootClientId( propsRef.current.clientId )\n\t\t\t\t\t)\n\t\t\t\t) === 'core/list-item';\n\t\t\tif ( canOutdent ) {\n\t\t\t\toutdentListItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Here we are in top level list so we need to split.\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\t// Last list item might contain a `list` block innerBlock\n\t\t\t// In that case append remaining innerBlocks blocks.\n\t\t\tconst after = [\n\t\t\t\t...( topParentListBlock.innerBlocks[ blockIndex ]\n\t\t\t\t\t.innerBlocks[ 0 ]?.innerBlocks || [] ),\n\t\t\t\t...topParentListBlock.innerBlocks.slice( blockIndex + 1 ),\n\t\t\t];\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { SPACE, TAB } from '@wordpress/keycodes';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport useIndentListItem from './use-indent-list-item';\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useSpace( clientId ) {\n\tconst { getSelectionStart, getSelectionEnd, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst indentListItem = useIndentListItem( clientId );\n\tconst outdentListItem = useOutdentListItem();\n\n\treturn useRefEffect(\n\t\t( element ) => {\n\t\t\tfunction onKeyDown( event ) {\n\t\t\t\tconst { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;\n\n\t\t\t\tif (\n\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t( keyCode !== SPACE && keyCode !== TAB ) ||\n\t\t\t\t\t// Only override when no modifiers are pressed.\n\t\t\t\t\taltKey ||\n\t\t\t\t\tmetaKey ||\n\t\t\t\t\tctrlKey\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst selectionStart = getSelectionStart();\n\t\t\t\tconst selectionEnd = getSelectionEnd();\n\t\t\t\tif (\n\t\t\t\t\tselectionStart.offset === 0 &&\n\t\t\t\t\tselectionEnd.offset === 0\n\t\t\t\t) {\n\t\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\t\t// Note that backspace behaviour in defined in onMerge.\n\t\t\t\t\t\tif ( keyCode === TAB ) {\n\t\t\t\t\t\t\tif ( outdentListItem() ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ( getBlockIndex( clientId ) !== 0 ) {\n\t\t\t\t\t\tif ( indentListItem() ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\t\treturn () => {\n\t\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, indentListItem ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { isUnmodifiedBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useOutdentListItem from './use-outdent-list-item';\n\nexport default function useMerge( clientId, onMerge ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlockName,\n\t\tgetBlock,\n\t} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition, removeBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst outdentListItem = useOutdentListItem();\n\n\tfunction getTrailingId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn id;\n\t\t}\n\n\t\treturn getTrailingId( order[ order.length - 1 ] );\n\t}\n\n\tfunction getParentListItemId( id ) {\n\t\tconst listId = getBlockRootClientId( id );\n\t\tconst parentListItemId = getBlockRootClientId( listId );\n\t\tif ( ! parentListItemId ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( getBlockName( parentListItemId ) !== 'core/list-item' ) {\n\t\t\treturn;\n\t\t}\n\t\treturn parentListItemId;\n\t}\n\n\t/**\n\t * Return the next list item with respect to the given list item. If none,\n\t * return the next list item of the parent list item if it exists.\n\t *\n\t * @param {string} id A list item client ID.\n\t * @return {?string} The client ID of the next list item.\n\t */\n\tfunction _getNextId( id ) {\n\t\tconst next = getNextBlockClientId( id );\n\t\tif ( next ) {\n\t\t\treturn next;\n\t\t}\n\t\tconst parentListItemId = getParentListItemId( id );\n\t\tif ( ! parentListItemId ) {\n\t\t\treturn;\n\t\t}\n\t\treturn _getNextId( parentListItemId );\n\t}\n\n\t/**\n\t * Given a client ID, return the client ID of the list item on the next\n\t * line, regardless of indentation level.\n\t *\n\t * @param {string} id The client ID of the current list item.\n\t * @return {?string} The client ID of the next list item.\n\t */\n\tfunction getNextId( id ) {\n\t\tconst order = getBlockOrder( id );\n\n\t\t// If the list item does not have a nested list, return the next list\n\t\t// item.\n\t\tif ( ! order.length ) {\n\t\t\treturn _getNextId( id );\n\t\t}\n\n\t\t// Get the first list item in the nested list.\n\t\treturn getBlockOrder( order[ 0 ] )[ 0 ];\n\t}\n\n\treturn ( forward ) => {\n\t\tfunction mergeWithNested( clientIdA, clientIdB ) {\n\t\t\tregistry.batch( () => {\n\t\t\t\t// When merging a sub list item with a higher next list item, we\n\t\t\t\t// also need to move any nested list items. Check if there's a\n\t\t\t\t// listed list, and append its nested list items to the current\n\t\t\t\t// list.\n\t\t\t\tconst [ nestedListClientId ] = getBlockOrder( clientIdB );\n\t\t\t\tif ( nestedListClientId ) {\n\t\t\t\t\t// If we are merging with the previous list item, and the\n\t\t\t\t\t// previous list item does not have nested list, move the\n\t\t\t\t\t// nested list to the previous list item.\n\t\t\t\t\tif (\n\t\t\t\t\t\tgetPreviousBlockClientId( clientIdB ) === clientIdA &&\n\t\t\t\t\t\t! getBlockOrder( clientIdA ).length\n\t\t\t\t\t) {\n\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t[ nestedListClientId ],\n\t\t\t\t\t\t\tclientIdB,\n\t\t\t\t\t\t\tclientIdA\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\tgetBlockOrder( nestedListClientId ),\n\t\t\t\t\t\t\tnestedListClientId,\n\t\t\t\t\t\t\tgetBlockRootClientId( clientIdA )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmergeBlocks( clientIdA, clientIdB );\n\t\t\t} );\n\t\t}\n\n\t\tif ( forward ) {\n\t\t\tconst nextBlockClientId = getNextId( clientId );\n\n\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\tonMerge( forward );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( getParentListItemId( nextBlockClientId ) ) {\n\t\t\t\toutdentListItem( nextBlockClientId );\n\t\t\t} else {\n\t\t\t\tmergeWithNested( clientId, nextBlockClientId );\n\t\t\t}\n\t\t} else {\n\t\t\t// Merging is only done from the top level. For lowel levels, the\n\t\t\t// list item is outdented instead.\n\t\t\tif ( getParentListItemId( clientId ) ) {\n\t\t\t\toutdentListItem( clientId );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst previousBlockClientId = getPreviousBlockClientId( clientId );\n\t\t\tif ( previousBlockClientId ) {\n\t\t\t\tconst trailingId = getTrailingId( previousBlockClientId );\n\t\t\t\tmergeWithNested( trailingId, clientId );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blockOrder = getBlockOrder( clientId );\n\t\t\tif (\n\t\t\t\tisUnmodifiedBlock( getBlock( clientId ), 'content' ) &&\n\t\t\t\tblockOrder.length > 0\n\t\t\t) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\toutdentListItem( getBlockOrder( blockOrder[ 0 ] ) );\n\t\t\t\t\tremoveBlock( clientId, true );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tonMerge( forward );\n\t\t\t}\n\t\t}\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\treturn (\n\t\t<li { ...useBlockProps.save() }>\n\t\t\t<RichText.Content value={ attributes.content } />\n\t\t\t<InnerBlocks.Content />\n\t\t</li>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, cloneBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes, innerBlocks = [] ) => [\n\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t\t...innerBlocks.map( ( block ) => cloneBlock( block ) ),\n\t\t\t],\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function LoginOutEdit( { attributes, setAttributes } ) {\n\tconst { displayLoginAsForm, redirectToCurrent } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdisplayLoginAsForm: false,\n\t\t\t\t\t\t\tredirectToCurrent: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display login as form' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => displayLoginAsForm }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayLoginAsForm: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display login as form' ) }\n\t\t\t\t\t\t\tchecked={ displayLoginAsForm }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayLoginAsForm: ! displayLoginAsForm,\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</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Redirect to current URL' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! redirectToCurrent }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { redirectToCurrent: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Redirect to current URL' ) }\n\t\t\t\t\t\t\tchecked={ redirectToCurrent }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tredirectToCurrent: ! redirectToCurrent,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: 'logged-in',\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<a href=\"#login-pseudo-link\">{ __( 'Log out' ) }</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/loginout\",\n\t\"title\": \"Login/out\",\n\t\"category\": \"theme\",\n\t\"description\": \"Show login & logout links.\",\n\t\"keywords\": [ \"login\", \"logout\", \"form\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"displayLoginAsForm\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"redirectToCurrent\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"className\": true,\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"text\": false,\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-loginout\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { login as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { mediaAndText as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tviewportWidth: 601, // Columns collapse \"@media (max-width: 600px)\".\n\t\tattributes: {\n\t\t\tmediaType: 'image',\n\t\t\tmediaUrl:\n\t\t\t\t'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'The wren<br>Earns his living<br>Noiselessly.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( '\u2014 Kobayashi Issa (\u4E00\u8336)' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'media',\n\t\t\tlabel: __( 'Media' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'image', 'video' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.mediaId,\n\t\t\t\turl: item.mediaUrl,\n\t\t\t\tmediaType: item.mediaType,\n\t\t\t\tlink: item.mediaLink,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tmediaId: value.id,\n\t\t\t\tmediaUrl: value.url,\n\t\t\t\tmediaType: value.mediaType,\n\t\t\t\tmediaLink: value.link,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link', // TODO: replace with custom component\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.href,\n\t\t\t\trel: item.rel,\n\t\t\t\tlinkTarget: item.linkTarget,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\thref: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t\tlinkTarget: value.linkTarget,\n\t\t\t} ),\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'media', 'link' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tInnerBlocks,\n\tgetColorClassName,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\nconst v1ToV5ImageFillStyles = ( url, focalPoint ) => {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n};\n\nconst v6ToV7ImageFillStyles = ( url, focalPoint ) => {\n\treturn url\n\t\t? {\n\t\t\t\tbackgroundImage: `url(${ url })`,\n\t\t\t\tbackgroundPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n};\n\nconst DEFAULT_MEDIA_WIDTH = 50;\nconst noop = () => {};\n\nconst migrateCustomColors = ( attributes ) => {\n\tif ( ! attributes.customBackgroundColor ) {\n\t\treturn attributes;\n\t}\n\tconst style = {\n\t\tcolor: {\n\t\t\tbackground: attributes.customBackgroundColor,\n\t\t},\n\t};\n\tconst { customBackgroundColor, ...restAttributes } = attributes;\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t};\n};\n\n// After align attribute's default was updated this function explicitly sets\n// the align value for deprecated blocks to the `wide` value which was default\n// for their versions of this block.\nconst migrateDefaultAlign = ( attributes ) => {\n\tif ( attributes.align ) {\n\t\treturn attributes;\n\t}\n\n\treturn {\n\t\t...attributes,\n\t\talign: 'wide',\n\t};\n};\n\nconst v0Attributes = {\n\talign: {\n\t\ttype: 'string',\n\t\tdefault: 'wide',\n\t},\n\tmediaAlt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tmediaPosition: {\n\t\ttype: 'string',\n\t\tdefault: 'left',\n\t},\n\tmediaId: {\n\t\ttype: 'number',\n\t},\n\tmediaType: {\n\t\ttype: 'string',\n\t},\n\tmediaWidth: {\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t},\n\tisStackedOnMobile: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n};\n\nconst v4ToV5BlockAttributes = {\n\t...v0Attributes,\n\tisStackedOnMobile: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\tmediaUrl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure video,figure img',\n\t\tattribute: 'src',\n\t},\n\tmediaLink: {\n\t\ttype: 'string',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t},\n\tlinkTarget: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'target',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'href',\n\t},\n\trel: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'rel',\n\t},\n\tlinkClass: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'class',\n\t},\n\tmediaSizeSlug: {\n\t\ttype: 'string',\n\t},\n\tverticalAlignment: {\n\t\ttype: 'string',\n\t},\n\timageFill: {\n\t\ttype: 'boolean',\n\t},\n\tfocalPoint: {\n\t\ttype: 'object',\n\t},\n};\n\nconst v6Attributes = {\n\t...v4ToV5BlockAttributes,\n\tmediaAlt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t\trole: 'content',\n\t},\n\tmediaId: {\n\t\ttype: 'number',\n\t\trole: 'content',\n\t},\n\tmediaUrl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure video,figure img',\n\t\tattribute: 'src',\n\t\trole: 'content',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'href',\n\t\trole: 'content',\n\t},\n\tmediaType: {\n\t\ttype: 'string',\n\t\trole: 'content',\n\t},\n};\n\nconst v7Attributes = {\n\t...v6Attributes,\n\talign: {\n\t\ttype: 'string',\n\t\t// v7 changed the default for the `align` attribute.\n\t\tdefault: 'none',\n\t},\n\t// New attribute.\n\tuseFeaturedImage: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n};\n\nconst v4ToV5Supports = {\n\tanchor: true,\n\talign: [ 'wide', 'full' ],\n\thtml: false,\n\tcolor: {\n\t\tgradients: true,\n\t\tlink: true,\n\t},\n};\n\nconst v6Supports = {\n\t...v4ToV5Supports,\n\tcolor: {\n\t\tgradients: true,\n\t\tlink: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tbackground: true,\n\t\t\ttext: true,\n\t\t},\n\t},\n\tspacing: {\n\t\tmargin: true,\n\t\tpadding: true,\n\t},\n\ttypography: {\n\t\tfontSize: true,\n\t\tlineHeight: true,\n\t\t__experimentalFontFamily: true,\n\t\t__experimentalFontWeight: true,\n\t\t__experimentalFontStyle: true,\n\t\t__experimentalTextTransform: true,\n\t\t__experimentalTextDecoration: true,\n\t\t__experimentalLetterSpacing: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tfontSize: true,\n\t\t},\n\t},\n};\n\nconst v7Supports = {\n\t...v6Supports,\n\t__experimentalBorder: {\n\t\tcolor: true,\n\t\tradius: true,\n\t\tstyle: true,\n\t\twidth: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tcolor: true,\n\t\t\tradius: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t},\n\t},\n\tcolor: {\n\t\tgradients: true,\n\t\theading: true,\n\t\tlink: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tbackground: true,\n\t\t\ttext: true,\n\t\t},\n\t},\n\tinteractivity: {\n\t\tclientNavigation: true,\n\t},\n};\n\n// Version with 'none' as the default alignment.\n// See: https://github.com/WordPress/gutenberg/pull/64981\nconst v7 = {\n\tattributes: v7Attributes,\n\tsupports: v7Supports,\n\tusesContext: [ 'postId', 'postType' ],\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t\tlinkClass,\n\t\t\thref,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t} = attributes;\n\t\tconst mediaSizeSlug =\n\t\t\tattributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst imageClasses = clsx( {\n\t\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t\t} );\n\n\t\tlet image = mediaUrl ? (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={ mediaAlt }\n\t\t\t\tclassName={ imageClasses || null }\n\t\t\t/>\n\t\t) : null;\n\n\t\tif ( href ) {\n\t\t\timage = (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => image,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v6ToV7ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateColumns,\n\t\t};\n\n\t\tif ( 'right' === mediaPosition ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t\t<div\n\t\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<figure\n\t\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t\t</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\n// Version with wide as the default alignment.\n// See: https://github.com/WordPress/gutenberg/pull/48404\nconst v6 = {\n\tattributes: v6Attributes,\n\tsupports: v6Supports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t\tlinkClass,\n\t\t\thref,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t} = attributes;\n\t\tconst mediaSizeSlug =\n\t\t\tattributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst imageClasses = clsx( {\n\t\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t\t} );\n\n\t\tlet image = (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={ mediaAlt }\n\t\t\t\tclassName={ imageClasses || null }\n\t\t\t/>\n\t\t);\n\n\t\tif ( href ) {\n\t\t\timage = (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => image,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v6ToV7ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateColumns,\n\t\t};\n\n\t\tif ( 'right' === mediaPosition ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t\t<div\n\t\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<figure\n\t\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t\t</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateDefaultAlign,\n\tisEligible( attributes, innerBlocks, { block } ) {\n\t\tconst { attributes: finalizedAttributes } = block;\n\t\t// When the align attribute defaults to none, valid block markup should\n\t\t// not contain any alignment CSS class. Unfortunately, this\n\t\t// deprecation's version of the block won't be invalidated due to the\n\t\t// alignwide class still being in the markup. That is because the custom\n\t\t// CSS classname support picks it up and adds it to the className\n\t\t// attribute. At the time of parsing, the className attribute won't\n\t\t// contain the alignwide class, hence the need to check the finalized\n\t\t// block attributes.\n\t\treturn (\n\t\t\tattributes.align === undefined &&\n\t\t\t!! finalizedAttributes.className?.includes( 'alignwide' )\n\t\t);\n\t},\n};\n\n// Version with non-rounded background position attribute for focal point.\n// See: https://github.com/WordPress/gutenberg/pull/33915\nconst v5 = {\n\tattributes: v4ToV5BlockAttributes,\n\tsupports: v4ToV5Supports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t\tlinkClass,\n\t\t\thref,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t} = attributes;\n\t\tconst mediaSizeSlug =\n\t\t\tattributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst imageClasses = clsx( {\n\t\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t\t} );\n\n\t\tlet image = (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={ mediaAlt }\n\t\t\t\tclassName={ imageClasses || null }\n\t\t\t/>\n\t\t);\n\n\t\tif ( href ) {\n\t\t\timage = (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => image,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v1ToV5ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateColumns,\n\t\t};\n\n\t\tif ( 'right' === mediaPosition ) {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t\t<div\n\t\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<figure\n\t\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t\t</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateDefaultAlign,\n};\n\n// Version with CSS grid\n// See: https://github.com/WordPress/gutenberg/pull/40806\nconst v4 = {\n\tattributes: v4ToV5BlockAttributes,\n\tsupports: v4ToV5Supports,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t\tlinkClass,\n\t\t\thref,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t} = attributes;\n\t\tconst mediaSizeSlug =\n\t\t\tattributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tconst imageClasses = clsx( {\n\t\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t\t} );\n\n\t\tlet image = (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={ mediaAlt }\n\t\t\t\tclassName={ imageClasses || null }\n\t\t\t/>\n\t\t);\n\n\t\tif ( href ) {\n\t\t\timage = (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => image,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v1ToV5ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tgridTemplateColumns,\n\t\t};\n\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\tmigrate: migrateDefaultAlign,\n};\n\n// Version with ad-hoc color attributes\n// See: https://github.com/WordPress/gutenberg/pull/21169\nconst v3 = {\n\tattributes: {\n\t\t...v0Attributes,\n\t\tisStackedOnMobile: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tmediaLink: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkDestination: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure a',\n\t\t\tattribute: 'target',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure a',\n\t\t\tattribute: 'href',\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure a',\n\t\t\tattribute: 'rel',\n\t\t},\n\t\tlinkClass: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure a',\n\t\t\tattribute: 'class',\n\t\t},\n\t\tverticalAlignment: {\n\t\t\ttype: 'string',\n\t\t},\n\t\timageFill: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tfocalPoint: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tmigrate: compose( migrateCustomColors, migrateDefaultAlign ),\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t\tlinkClass,\n\t\t\thref,\n\t\t\tlinkTarget,\n\t\t\trel,\n\t\t} = attributes;\n\t\tconst newRel = ! rel ? undefined : rel;\n\n\t\tlet image = (\n\t\t\t<img\n\t\t\t\tsrc={ mediaUrl }\n\t\t\t\talt={ mediaAlt }\n\t\t\t\tclassName={\n\t\t\t\t\tmediaId && mediaType === 'image'\n\t\t\t\t\t\t? `wp-image-${ mediaId }`\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\n\t\tif ( href ) {\n\t\t\timage = (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\thref={ href }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ newRel }\n\t\t\t\t>\n\t\t\t\t\t{ image }\n\t\t\t\t</a>\n\t\t\t);\n\t\t}\n\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => image,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'has-background': backgroundClass || customBackgroundColor,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v1ToV5ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t? undefined\n\t\t\t\t: customBackgroundColor,\n\t\t\tgridTemplateColumns,\n\t\t};\n\t\treturn (\n\t\t\t<div className={ className } style={ style }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div className=\"wp-block-media-text__content\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\n// Version with stack on mobile off by default\n// See: https://github.com/WordPress/gutenberg/pull/14364\nconst v2 = {\n\tattributes: {\n\t\t...v0Attributes,\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tmediaUrl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure video,figure img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\tverticalAlignment: {\n\t\t\ttype: 'string',\n\t\t},\n\t\timageFill: {\n\t\t\ttype: 'boolean',\n\t\t},\n\t\tfocalPoint: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tmigrate: compose( migrateCustomColors, migrateDefaultAlign ),\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t\tmediaId,\n\t\t\tverticalAlignment,\n\t\t\timageFill,\n\t\t\tfocalPoint,\n\t\t} = attributes;\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ mediaUrl }\n\t\t\t\t\talt={ mediaAlt }\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tmediaId && mediaType === 'image'\n\t\t\t\t\t\t\t? `wp-image-${ mediaId }`\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]:\n\t\t\t\tverticalAlignment,\n\t\t\t'is-image-fill': imageFill,\n\t\t} );\n\t\tconst backgroundStyles = imageFill\n\t\t\t? v1ToV5ImageFillStyles( mediaUrl, focalPoint )\n\t\t\t: {};\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t? undefined\n\t\t\t\t: customBackgroundColor,\n\t\t\tgridTemplateColumns,\n\t\t};\n\t\treturn (\n\t\t\t<div className={ className } style={ style }>\n\t\t\t\t<figure\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tstyle={ backgroundStyles }\n\t\t\t\t>\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div className=\"wp-block-media-text__content\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\n// Version without the wp-image-#### class on image\n// See: https://github.com/WordPress/gutenberg/pull/11922\nconst v1 = {\n\tattributes: {\n\t\t...v0Attributes,\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tmediaUrl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure video,figure img',\n\t\t\tattribute: 'src',\n\t\t},\n\t},\n\tmigrate: migrateDefaultAlign,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t} = attributes;\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => <img src={ mediaUrl } alt={ mediaAlt } />,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\t\tconst className = clsx( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t} );\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns =\n\t\t\t\t'right' === mediaPosition\n\t\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t\t: `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t? undefined\n\t\t\t\t: customBackgroundColor,\n\t\t\tgridTemplateColumns,\n\t\t};\n\t\treturn (\n\t\t\t<div className={ className } style={ style }>\n\t\t\t\t<figure className=\"wp-block-media-text__media\">\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div className=\"wp-block-media-text__content\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n};\n\nexport default [ v7, v6, v5, v4, v3, v2, v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\nexport const DEFAULT_MEDIA_SIZE_SLUG = 'full';\nexport const WIDTH_CONSTRAINT_PERCENTAGE = 15;\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: _x( 'Content\u2026', 'content placeholder' ),\n\t\t},\n\t],\n];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockVerticalAlignmentControl,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tToolbarButton,\n\tExternalLink,\n\tFocalPointPicker,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { isBlobURL, getBlobTypeByURL } from '@wordpress/blob';\nimport { pullLeft, pullRight } from '@wordpress/icons';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\nimport {\n\tDEFAULT_MEDIA_SIZE_SLUG,\n\tWIDTH_CONSTRAINT_PERCENTAGE,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_ATTACHMENT,\n\tTEMPLATE,\n} from './constants';\nimport { unlock } from '../lock-unlock';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst { ResolutionTool } = unlock( blockEditorPrivateApis );\n\n// this limits the resize to a safe zone to avoid making broken layouts\nconst applyWidthConstraints = ( width ) =>\n\tMath.max(\n\t\tWIDTH_CONSTRAINT_PERCENTAGE,\n\t\tMath.min( width, 100 - WIDTH_CONSTRAINT_PERCENTAGE )\n\t);\n\nfunction getImageSourceUrlBySizeSlug( image, slug ) {\n\treturn image?.media_details?.sizes?.[ slug ]?.source_url;\n}\n\nfunction attributesFromMedia( {\n\tattributes: { linkDestination, href },\n\tsetAttributes,\n} ) {\n\treturn ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tsetAttributes( {\n\t\t\t\tmediaAlt: undefined,\n\t\t\t\tmediaId: undefined,\n\t\t\t\tmediaType: undefined,\n\t\t\t\tmediaUrl: undefined,\n\t\t\t\tmediaLink: undefined,\n\t\t\t\thref: undefined,\n\t\t\t\tfocalPoint: undefined,\n\t\t\t\tuseFeaturedImage: false,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tmedia.type = getBlobTypeByURL( media.url );\n\t\t}\n\n\t\tlet mediaType;\n\t\tlet src;\n\t\t// For media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else {\n\t\t\t// For media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tif ( mediaType === 'image' ) {\n\t\t\t// Try the \"large\" size URL, falling back to the \"full\" size URL below.\n\t\t\tsrc =\n\t\t\t\tmedia.sizes?.large?.url ||\n\t\t\t\tmedia.media_details?.sizes?.large?.source_url;\n\t\t}\n\n\t\tlet newHref = href;\n\t\tif ( linkDestination === LINK_DESTINATION_MEDIA ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.url;\n\t\t}\n\n\t\t// Check if the image is linked to the attachment page.\n\t\tif ( linkDestination === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\t// Update the media link.\n\t\t\tnewHref = media.link;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: src || media.url,\n\t\t\tmediaLink: media.link || undefined,\n\t\t\thref: newHref,\n\t\t\tfocalPoint: undefined,\n\t\t\tuseFeaturedImage: false,\n\t\t} );\n\t};\n}\n\nfunction MediaTextResolutionTool( { image, value, onChange } ) {\n\tconst { imageSizes } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\timageSizes: getSettings().imageSizes,\n\t\t};\n\t}, [] );\n\n\tif ( ! imageSizes?.length ) {\n\t\treturn null;\n\t}\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\treturn (\n\t\t<ResolutionTool\n\t\t\tvalue={ value }\n\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\toptions={ imageSizeOptions }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nfunction MediaTextEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tcontext: { postId, postType },\n} ) {\n\tconst {\n\t\tfocalPoint,\n\t\thref,\n\t\timageFill,\n\t\tisStackedOnMobile,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\tlinkTarget,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tmediaSizeSlug,\n\t\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t\tuseFeaturedImage,\n\t} = attributes;\n\n\tconst [ featuredImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst { featuredImageMedia } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tfeaturedImageMedia:\n\t\t\t\t\tfeaturedImage && useFeaturedImage\n\t\t\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\t\tfeaturedImage,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, useFeaturedImage ]\n\t);\n\n\tconst { image } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tmediaId && isSelected\n\t\t\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst featuredImageURL = useFeaturedImage\n\t\t? featuredImageMedia?.source_url\n\t\t: '';\n\tconst featuredImageAlt = useFeaturedImage\n\t\t? featuredImageMedia?.alt_text\n\t\t: '';\n\n\tconst toggleUseFeaturedImage = () => {\n\t\tsetAttributes( {\n\t\t\timageFill: false,\n\t\t\tmediaType: 'image',\n\t\t\tmediaId: undefined,\n\t\t\tmediaUrl: undefined,\n\t\t\tmediaAlt: undefined,\n\t\t\tmediaLink: undefined,\n\t\t\tlinkDestination: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\tlinkClass: undefined,\n\t\t\trel: undefined,\n\t\t\thref: undefined,\n\t\t\tuseFeaturedImage: ! useFeaturedImage,\n\t\t} );\n\t};\n\n\tconst refMedia = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMedia.current;\n\t\tconst { x, y } = value;\n\t\tstyle.objectPosition = `${ x * 100 }% ${ y * 100 }%`;\n\t};\n\n\tconst [ temporaryMediaWidth, setTemporaryMediaWidth ] = useState( null );\n\n\tconst onSelectMedia = attributesFromMedia( { attributes, setAttributes } );\n\n\tconst onSetHref = ( props ) => {\n\t\tsetAttributes( props );\n\t};\n\n\tconst onWidthChange = ( width ) => {\n\t\tsetTemporaryMediaWidth( applyWidthConstraints( width ) );\n\t};\n\tconst commitWidthChange = ( width ) => {\n\t\tsetAttributes( {\n\t\t\tmediaWidth: applyWidthConstraints( width ),\n\t\t} );\n\t\tsetTemporaryMediaWidth( null );\n\t};\n\n\tconst classNames = clsx( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-selected': isSelected,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill-element': imageFill,\n\t} );\n\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\tconst gridTemplateColumns =\n\t\t'right' === mediaPosition\n\t\t\t? `1fr ${ widthString }`\n\t\t\t: `${ widthString } 1fr`;\n\tconst style = {\n\t\tgridTemplateColumns,\n\t\tmsGridColumns: gridTemplateColumns,\n\t};\n\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t};\n\tconst onVerticalAlignmentChange = ( alignment ) => {\n\t\tsetAttributes( { verticalAlignment: alignment } );\n\t};\n\tconst updateImage = ( newMediaSizeSlug ) => {\n\t\tconst newUrl = getImageSourceUrlBySizeSlug( image, newMediaSizeSlug );\n\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaUrl: newUrl,\n\t\t\tmediaSizeSlug: newMediaSizeSlug,\n\t\t} );\n\t};\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst mediaTextGeneralSettings = (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisStackedOnMobile: true,\n\t\t\t\t\timageFill: false,\n\t\t\t\t\tmediaAlt: '',\n\t\t\t\t\tfocalPoint: undefined,\n\t\t\t\t\tmediaWidth: 50,\n\t\t\t\t} );\n\t\t\t\tupdateImage( DEFAULT_MEDIA_SIZE_SLUG );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => mediaWidth !== 50 }\n\t\t\t\tonDeselect={ () => setAttributes( { mediaWidth: 50 } ) }\n\t\t\t>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Media width' ) }\n\t\t\t\t\tvalue={ temporaryMediaWidth || mediaWidth }\n\t\t\t\t\tonChange={ commitWidthChange }\n\t\t\t\t\tmin={ WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t\tmax={ 100 - WIDTH_CONSTRAINT_PERCENTAGE }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! isStackedOnMobile }\n\t\t\t\tonDeselect={ () =>\n\t\t\t\t\tsetAttributes( { isStackedOnMobile: true } )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ mediaType === 'image' && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => !! imageFill }\n\t\t\t\t\tonDeselect={ () => setAttributes( { imageFill: false } ) }\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Crop image to fill' ) }\n\t\t\t\t\t\tchecked={ !! imageFill }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\timageFill: ! imageFill,\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</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ imageFill &&\n\t\t\t\t( mediaUrl || featuredImageURL ) &&\n\t\t\t\tmediaType === 'image' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! focalPoint }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { focalPoint: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\t\turl={\n\t\t\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t\t\t: mediaUrl\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { focalPoint: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t{ mediaType === 'image' && mediaUrl && ! useFeaturedImage && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\thasValue={ () => !! mediaAlt }\n\t\t\t\t\tonDeselect={ () => setAttributes( { mediaAlt: '' } ) }\n\t\t\t\t>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t)\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\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\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</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ mediaType === 'image' && ! useFeaturedImage && (\n\t\t\t\t<MediaTextResolutionTool\n\t\t\t\t\timage={ image }\n\t\t\t\t\tvalue={ mediaSizeSlug }\n\t\t\t\t\tonChange={ updateImage }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classNames,\n\t\tstyle,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: 'wp-block-media-text__content' },\n\t\t{ template: TEMPLATE, allowedBlocks }\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>{ mediaTextGeneralSettings }</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockVerticalAlignmentControl\n\t\t\t\t\t\t\tonChange={ onVerticalAlignmentChange }\n\t\t\t\t\t\t\tvalue={ verticalAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullLeft }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on left' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'left' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'left' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ticon={ pullRight }\n\t\t\t\t\t\t\ttitle={ __( 'Show media on right' ) }\n\t\t\t\t\t\t\tisActive={ mediaPosition === 'right' }\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { mediaPosition: 'right' } )\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\n\t\t\t\t{ mediaType === 'image' && ! useFeaturedImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaType={ mediaType }\n\t\t\t\t\t\tmediaUrl={ image && image.source_url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ mediaPosition === 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tonWidthChange={ onWidthChange }\n\t\t\t\t\tcommitWidthChange={ commitWidthChange }\n\t\t\t\t\trefMedia={ refMedia }\n\t\t\t\t\tenableResize={ blockEditingMode === 'default' }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tfocalPoint,\n\t\t\t\t\t\timageFill,\n\t\t\t\t\t\tisSelected,\n\t\t\t\t\t\tisStackedOnMobile,\n\t\t\t\t\t\tmediaAlt,\n\t\t\t\t\t\tmediaId,\n\t\t\t\t\t\tmediaPosition,\n\t\t\t\t\t\tmediaType,\n\t\t\t\t\t\tmediaUrl,\n\t\t\t\t\t\tmediaWidth,\n\t\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t\t\tfeaturedImageURL,\n\t\t\t\t\t\tfeaturedImageAlt,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ mediaPosition !== 'right' && <div { ...innerBlocksProps } /> }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default MediaTextEdit;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { ResizableBox, Spinner, Placeholder } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { isBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { media as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './image-fill';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nconst ResizableBoxContainer = forwardRef(\n\t( { isSelected, isStackedOnMobile, ...props }, ref ) => {\n\t\tconst isMobile = useViewportMatch( 'small', '<' );\n\t\treturn (\n\t\t\t<ResizableBox\n\t\t\t\tref={ ref }\n\t\t\t\tshowHandle={\n\t\t\t\t\tisSelected && ( ! isMobile || ! isStackedOnMobile )\n\t\t\t\t}\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nfunction ToolbarEditButton( {\n\tmediaId,\n\tmediaUrl,\n\tonSelectMedia,\n\ttoggleUseFeaturedImage,\n\tuseFeaturedImage,\n} ) {\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ mediaId }\n\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\tonReset={ () => onSelectMedia( undefined ) }\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n}\n\nfunction PlaceholderContainer( {\n\tclassName,\n\tmediaUrl,\n\tonSelectMedia,\n\ttoggleUseFeaturedImage,\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t} }\n\t\t\tclassName={ className }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tonError={ onUploadError }\n\t\t\tdisableMediaButtons={ mediaUrl }\n\t\t/>\n\t);\n}\n\nfunction MediaContainer( props, ref ) {\n\tconst {\n\t\tclassName,\n\t\tcommitWidthChange,\n\t\tfocalPoint,\n\t\timageFill,\n\t\tisSelected,\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaId,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tonSelectMedia,\n\t\tonWidthChange,\n\t\tenableResize,\n\t\ttoggleUseFeaturedImage,\n\t\tuseFeaturedImage,\n\t\tfeaturedImageURL,\n\t\tfeaturedImageAlt,\n\t\trefMedia,\n\t} = props;\n\n\tconst isTemporaryMedia = ! mediaId && isBlobURL( mediaUrl );\n\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\n\tif ( mediaUrl || featuredImageURL || useFeaturedImage ) {\n\t\tconst onResizeStart = () => {\n\t\t\ttoggleSelection( false );\n\t\t};\n\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\ttoggleSelection( true );\n\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t};\n\t\tconst enablePositions = {\n\t\t\tright: enableResize && mediaPosition === 'left',\n\t\t\tleft: enableResize && mediaPosition === 'right',\n\t\t};\n\n\t\tconst positionStyles =\n\t\t\tmediaType === 'image' && imageFill\n\t\t\t\t? imageFillStyles( mediaUrl || featuredImageURL, focalPoint )\n\t\t\t\t: {};\n\n\t\tconst mediaTypeRenderers = {\n\t\t\timage: () =>\n\t\t\t\tuseFeaturedImage && featuredImageURL ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tref={ refMedia }\n\t\t\t\t\t\tsrc={ featuredImageURL }\n\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\tstyle={ positionStyles }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\tmediaUrl && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ refMedia }\n\t\t\t\t\t\t\tsrc={ mediaUrl }\n\t\t\t\t\t\t\talt={ mediaAlt }\n\t\t\t\t\t\t\tstyle={ positionStyles }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\tvideo: () => <video controls ref={ refMedia } src={ mediaUrl } />,\n\t\t};\n\n\t\treturn (\n\t\t\t<ResizableBoxContainer\n\t\t\t\tas=\"figure\"\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'editor-media-container__resizer',\n\t\t\t\t\t{ 'is-transient': isTemporaryMedia }\n\t\t\t\t) }\n\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\tminWidth=\"10%\"\n\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\tenable={ enablePositions }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResize={ onResize }\n\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\taxis=\"x\"\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tisStackedOnMobile={ isStackedOnMobile }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t<ToolbarEditButton\n\t\t\t\t\tonSelectMedia={ onSelectMedia }\n\t\t\t\t\tmediaUrl={\n\t\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t\t: mediaUrl\n\t\t\t\t\t}\n\t\t\t\t\tmediaId={ mediaId }\n\t\t\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\t/>\n\t\t\t\t{ ( mediaTypeRenderers[ mediaType ] || noop )() }\n\t\t\t\t{ isTemporaryMedia && <Spinner /> }\n\t\t\t\t{ ! useFeaturedImage && <PlaceholderContainer { ...props } /> }\n\t\t\t\t{ ! featuredImageURL && useFeaturedImage && (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\tclassName=\"wp-block-media-text--placeholder-image\"\n\t\t\t\t\t\tstyle={ positionStyles }\n\t\t\t\t\t\twithIllustration\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ResizableBoxContainer>\n\t\t);\n\t}\n\n\treturn <PlaceholderContainer { ...props } />;\n}\n\nexport default forwardRef( MediaContainer );\n", "export function imageFillStyles( url, focalPoint ) {\n\treturn url\n\t\t? {\n\t\t\t\tobjectPosition: focalPoint\n\t\t\t\t\t? `${ Math.round( focalPoint.x * 100 ) }% ${ Math.round(\n\t\t\t\t\t\t\tfocalPoint.y * 100\n\t\t\t\t\t ) }%`\n\t\t\t\t\t: `50% 50%`,\n\t\t }\n\t\t: {};\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/media-text\",\n\t\"title\": \"Media & Text\",\n\t\"category\": \"media\",\n\t\"description\": \"Set media and words side-by-side for a richer layout.\",\n\t\"keywords\": [ \"image\", \"video\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"align\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"none\"\n\t\t},\n\t\t\"mediaAlt\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure img\",\n\t\t\t\"attribute\": \"alt\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"mediaPosition\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"left\"\n\t\t},\n\t\t\"mediaId\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"mediaUrl\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure video,figure img\",\n\t\t\t\"attribute\": \"src\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"mediaLink\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"linkDestination\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure a\",\n\t\t\t\"attribute\": \"target\"\n\t\t},\n\t\t\"href\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure a\",\n\t\t\t\"attribute\": \"href\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure a\",\n\t\t\t\"attribute\": \"rel\"\n\t\t},\n\t\t\"linkClass\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"figure a\",\n\t\t\t\"attribute\": \"class\"\n\t\t},\n\t\t\"mediaType\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"mediaWidth\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 50\n\t\t},\n\t\t\"mediaSizeSlug\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isStackedOnMobile\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"verticalAlignment\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"imageFill\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"focalPoint\": {\n\t\t\t\"type\": \"object\"\n\t\t},\n\t\t\"useFeaturedImage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t},\n\t\"editorStyle\": \"wp-block-media-text-editor\",\n\t\"style\": \"wp-block-media-text\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './image-fill';\nimport { DEFAULT_MEDIA_SIZE_SLUG } from './constants';\n\nconst DEFAULT_MEDIA_WIDTH = 50;\nconst noop = () => {};\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tisStackedOnMobile,\n\t\tmediaAlt,\n\t\tmediaPosition,\n\t\tmediaType,\n\t\tmediaUrl,\n\t\tmediaWidth,\n\t\tmediaId,\n\t\tverticalAlignment,\n\t\timageFill,\n\t\tfocalPoint,\n\t\tlinkClass,\n\t\thref,\n\t\tlinkTarget,\n\t\trel,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\n\tconst newRel = ! rel ? undefined : rel;\n\n\tconst imageClasses = clsx( {\n\t\t[ `wp-image-${ mediaId }` ]: mediaId && mediaType === 'image',\n\t\t[ `size-${ mediaSizeSlug }` ]: mediaId && mediaType === 'image',\n\t} );\n\n\tconst positionStyles = imageFill\n\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\t: {};\n\n\tlet image = mediaUrl ? (\n\t\t<img\n\t\t\tsrc={ mediaUrl }\n\t\t\talt={ mediaAlt }\n\t\t\tclassName={ imageClasses || null }\n\t\t\tstyle={ positionStyles }\n\t\t/>\n\t) : null;\n\n\tif ( href ) {\n\t\timage = (\n\t\t\t<a\n\t\t\t\tclassName={ linkClass }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ linkTarget }\n\t\t\t\trel={ newRel }\n\t\t\t>\n\t\t\t\t{ image }\n\t\t\t</a>\n\t\t);\n\t}\n\n\tconst mediaTypeRenders = {\n\t\timage: () => image,\n\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t};\n\tconst className = clsx( {\n\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t'is-stacked-on-mobile': isStackedOnMobile,\n\t\t[ `is-vertically-aligned-${ verticalAlignment }` ]: verticalAlignment,\n\t\t'is-image-fill-element': imageFill,\n\t} );\n\n\tlet gridTemplateColumns;\n\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\tgridTemplateColumns =\n\t\t\t'right' === mediaPosition\n\t\t\t\t? `auto ${ mediaWidth }%`\n\t\t\t\t: `${ mediaWidth }% auto`;\n\t}\n\tconst style = {\n\t\tgridTemplateColumns,\n\t};\n\n\tif ( 'right' === mediaPosition ) {\n\t\treturn (\n\t\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t<div\n\t\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t<figure className=\"wp-block-media-text__media\">\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t<figure className=\"wp-block-media-text__media\">\n\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t</figure>\n\t\t\t<div\n\t\t\t\t{ ...useInnerBlocksProps.save( {\n\t\t\t\t\tclassName: 'wp-block-media-text__content',\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { alt, url, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/media-text', {\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaType: 'image',\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\ttransform: ( { src, id, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/media-text', {\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaUrl: src,\n\t\t\t\t\tmediaType: 'video',\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/cover' ],\n\t\t\ttransform: (\n\t\t\t\t{\n\t\t\t\t\talign,\n\t\t\t\t\talt,\n\t\t\t\t\tanchor,\n\t\t\t\t\tbackgroundType,\n\t\t\t\t\tcustomGradient,\n\t\t\t\t\tcustomOverlayColor,\n\t\t\t\t\tgradient,\n\t\t\t\t\tid,\n\t\t\t\t\toverlayColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\ttextColor,\n\t\t\t\t\turl,\n\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t},\n\t\t\t\tinnerBlocks\n\t\t\t) => {\n\t\t\t\tlet additionalAttributes = {};\n\n\t\t\t\tif ( customGradient ) {\n\t\t\t\t\tadditionalAttributes = {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tgradient: customGradient,\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} else if ( customOverlayColor ) {\n\t\t\t\t\tadditionalAttributes = {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t\tbackground: customOverlayColor,\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\n\t\t\t\t// Maintain custom text color block support value.\n\t\t\t\tif ( style?.color?.text ) {\n\t\t\t\t\tadditionalAttributes.style = {\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\t...additionalAttributes.style?.color,\n\t\t\t\t\t\t\ttext: style.color.text,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/media-text',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tbackgroundColor: overlayColor,\n\t\t\t\t\t\tgradient,\n\t\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\t\tmediaId: id,\n\t\t\t\t\t\tmediaType: backgroundType,\n\t\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t\t\t...additionalAttributes,\n\t\t\t\t\t},\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\tisMatch: ( { mediaType, mediaUrl } ) => {\n\t\t\t\treturn ! mediaUrl || mediaType === 'image';\n\t\t\t},\n\t\t\ttransform: ( { mediaAlt, mediaId, mediaUrl, anchor } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\talt: mediaAlt,\n\t\t\t\t\tid: mediaId,\n\t\t\t\t\turl: mediaUrl,\n\t\t\t\t\tanchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/video' ],\n\t\t\tisMatch: ( { mediaType, mediaUrl } ) => {\n\t\t\t\treturn ! mediaUrl || mediaType === 'video';\n\t\t\t},\n\t\t\ttransform: ( { mediaId, mediaUrl, anchor } ) => {\n\t\t\t\treturn createBlock( 'core/video', {\n\t\t\t\t\tid: mediaId,\n\t\t\t\t\tsrc: mediaUrl,\n\t\t\t\t\tanchor,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/cover' ],\n\t\t\ttransform: (\n\t\t\t\t{\n\t\t\t\t\talign,\n\t\t\t\t\tanchor,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\tfocalPoint,\n\t\t\t\t\tgradient,\n\t\t\t\t\tmediaAlt,\n\t\t\t\t\tmediaId,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl,\n\t\t\t\t\tstyle,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t},\n\t\t\t\tinnerBlocks\n\t\t\t) => {\n\t\t\t\tconst additionalAttributes = {};\n\n\t\t\t\t// Migrate the background styles or gradient to Cover's custom\n\t\t\t\t// gradient and overlay properties.\n\t\t\t\tif ( style?.color?.gradient ) {\n\t\t\t\t\tadditionalAttributes.customGradient = style.color.gradient;\n\t\t\t\t} else if ( style?.color?.background ) {\n\t\t\t\t\tadditionalAttributes.customOverlayColor =\n\t\t\t\t\t\tstyle.color.background;\n\t\t\t\t}\n\n\t\t\t\t// Maintain custom text color support style.\n\t\t\t\tif ( style?.color?.text ) {\n\t\t\t\t\tadditionalAttributes.style = {\n\t\t\t\t\t\tcolor: { text: style.color.text },\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst coverAttributes = {\n\t\t\t\t\talign,\n\t\t\t\t\talt: mediaAlt,\n\t\t\t\t\tanchor,\n\t\t\t\t\tbackgroundType: mediaType,\n\t\t\t\t\tdimRatio: !! mediaUrl || useFeaturedImage ? 50 : 100,\n\t\t\t\t\tfocalPoint,\n\t\t\t\t\tgradient,\n\t\t\t\t\tid: mediaId,\n\t\t\t\t\toverlayColor: backgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\turl: mediaUrl,\n\t\t\t\t\tuseFeaturedImage,\n\t\t\t\t\t...additionalAttributes,\n\t\t\t\t};\n\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/cover',\n\t\t\t\t\tcoverAttributes,\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tname,\n\t__experimentalLabel( attributes, { context } ) {\n\t\tif ( context === 'accessibility' ) {\n\t\t\tconst { originalName } = attributes;\n\n\t\t\tconst originalBlockType = originalName\n\t\t\t\t? getBlockType( originalName )\n\t\t\t\t: undefined;\n\n\t\t\tif ( originalBlockType ) {\n\t\t\t\treturn originalBlockType.settings.title || originalName;\n\t\t\t}\n\n\t\t\treturn '';\n\t\t}\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { safeHTML } from '@wordpress/dom';\n\nexport default function MissingEdit( { attributes, clientId } ) {\n\tconst { originalName, originalUndelimitedContent } = attributes;\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst { hasFreeformBlock, hasHTMLBlock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canInsertBlockType, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasFreeformBlock: canInsertBlockType(\n\t\t\t\t\t'core/freeform',\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t\thasHTMLBlock: canInsertBlockType(\n\t\t\t\t\t'core/html',\n\t\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tfunction convertToHTML() {\n\t\treplaceBlock(\n\t\t\tclientId,\n\t\t\tcreateBlock( 'core/html', {\n\t\t\t\tcontent: originalUndelimitedContent,\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst actions = [];\n\tlet messageHTML;\n\n\tconst convertToHtmlButton = (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tkey=\"convert\"\n\t\t\tonClick={ convertToHTML }\n\t\t\tvariant=\"primary\"\n\t\t>\n\t\t\t{ __( 'Keep as HTML' ) }\n\t\t</Button>\n\t);\n\n\tif (\n\t\thasContent &&\n\t\t! hasFreeformBlock &&\n\t\t( ! originalName || originalName === 'core/freeform' )\n\t) {\n\t\tif ( hasHTMLBlock ) {\n\t\t\tmessageHTML = __(\n\t\t\t\t'It appears you are trying to use the deprecated Classic block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely. Alternatively, if you have unsaved changes, you can save them and refresh to use the Classic block.'\n\t\t\t);\n\t\t\tactions.push( convertToHtmlButton );\n\t\t} else {\n\t\t\tmessageHTML = __(\n\t\t\t\t'It appears you are trying to use the deprecated Classic block. You can leave this block intact, or remove it entirely. Alternatively, if you have unsaved changes, you can save them and refresh to use the Classic block.'\n\t\t\t);\n\t\t}\n\t} else if ( 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 leave it as-is, convert it to custom HTML, or remove it.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t\tactions.push( convertToHtmlButton );\n\t} else {\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 leave it as-is or remove it.'\n\t\t\t),\n\t\t\toriginalName\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...useBlockProps( { className: 'has-warning' } ) }>\n\t\t\t<Warning actions={ actions }>{ messageHTML }</Warning>\n\t\t\t<RawHTML>{ safeHTML( originalUndelimitedContent ) }</RawHTML>\n\t\t</div>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/missing\",\n\t\"title\": \"Unsupported\",\n\t\"category\": \"text\",\n\t\"description\": \"Your site doesn\u2019t include support for this block.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"originalName\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"originalUndelimitedContent\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"originalContent\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"raw\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"className\": false,\n\t\t\"customClassName\": false,\n\t\t\"inserter\": false,\n\t\t\"html\": false,\n\t\t\"lock\": false,\n\t\t\"reusable\": false,\n\t\t\"renaming\": false,\n\t\t\"visibility\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save( { attributes } ) {\n\t// Preserve the missing block's content.\n\treturn <RawHTML>{ attributes.originalContent }</RawHTML>;\n}\n", "/**\n * WordPress dependencies\n */\nimport { more as icon } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\treturn attributes.customText;\n\t\t}\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'customText',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'customText' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tPlainText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tnoTeaser: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Hide excerpt' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => noTeaser }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { noTeaser: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { noTeaser: ! noTeaser } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thelp={ ( checked ) =>\n\t\t\t\t\t\t\t\tchecked\n\t\t\t\t\t\t\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t\t\t\t\t\t\t: __( 'The excerpt is visible.' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<PlainText\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\taria-label={ __( '\"Read more\" text' ) }\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { customText: value } )\n\t\t\t\t\t}\n\t\t\t\t\tdisableLineBreaks\n\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/more\",\n\t\"title\": \"More\",\n\t\"category\": \"design\",\n\t\"description\": \"Content before this block will be shown in the excerpt on your archives page.\",\n\t\"keywords\": [ \"read more\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"customText\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"noTeaser\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"customClassName\": false,\n\t\t\"className\": false,\n\t\t\"html\": false,\n\t\t\"multiple\": false,\n\t\t\"visibility\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-more-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save( { attributes: { customText, noTeaser } } ) {\n\tconst moreTag = customText ? `<!--more ${ customText }-->` : '<!--more-->';\n\n\tconst noTeaserTag = noTeaser ? '<!--noteaser-->' : '';\n\n\treturn (\n\t\t<RawHTML>\n\t\t\t{ [ moreTag, noTeaserTag ].filter( Boolean ).join( '\\n' ) }\n\t\t</RawHTML>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tschema: {\n\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t},\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.dataset && node.dataset.block === 'core/more',\n\t\t\ttransform( node ) {\n\t\t\t\tconst { customText, noTeaser } = node.dataset;\n\t\t\t\tconst attrs = {};\n\t\t\t\t// Don't copy unless defined and not an empty string.\n\t\t\t\tif ( customText ) {\n\t\t\t\t\tattrs.customText = customText;\n\t\t\t\t}\n\t\t\t\t// Special handling for boolean.\n\t\t\t\tif ( noTeaser === '' ) {\n\t\t\t\t\tattrs.noTeaser = true;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/more', attrs );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\nimport { select } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\toverlayMenu: 'never',\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\t__experimentalLabel: ( { ref } ) => {\n\t\tif ( ! ref ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigation = select( coreStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_navigation',\n\t\t\tref\n\t\t);\n\n\t\tif ( ! navigation?.title ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn decodeEntities( navigation.title );\n\t},\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/navigation\",\n\t\"title\": \"Navigation\",\n\t\"category\": \"theme\",\n\t\"allowedBlocks\": [\n\t\t\"core/navigation-link\",\n\t\t\"core/search\",\n\t\t\"core/social-links\",\n\t\t\"core/page-list\",\n\t\t\"core/spacer\",\n\t\t\"core/home-link\",\n\t\t\"core/site-title\",\n\t\t\"core/site-logo\",\n\t\t\"core/navigation-submenu\",\n\t\t\"core/loginout\",\n\t\t\"core/buttons\"\n\t],\n\t\"description\": \"A collection of blocks that allow visitors to get around your site.\",\n\t\"keywords\": [ \"menu\", \"navigation\", \"links\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"ref\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"textColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"rgbTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"backgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"rgbBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"showSubmenuIcon\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"openSubmenusOnClick\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"overlayMenu\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"mobile\"\n\t\t},\n\t\t\"overlay\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"icon\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"handle\"\n\t\t},\n\t\t\"hasIcon\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"__unstableLocation\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"overlayBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customOverlayBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"overlayTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customOverlayTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"maxNestingLevel\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5\n\t\t},\n\t\t\"templateLock\": {\n\t\t\t\"type\": [ \"string\", \"boolean\" ],\n\t\t\t\"enum\": [ \"all\", \"insert\", \"contentOnly\", false ]\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"textColor\": \"textColor\",\n\t\t\"customTextColor\": \"customTextColor\",\n\t\t\"backgroundColor\": \"backgroundColor\",\n\t\t\"customBackgroundColor\": \"customBackgroundColor\",\n\t\t\"overlayTextColor\": \"overlayTextColor\",\n\t\t\"customOverlayTextColor\": \"customOverlayTextColor\",\n\t\t\"overlayBackgroundColor\": \"overlayBackgroundColor\",\n\t\t\"customOverlayBackgroundColor\": \"customOverlayBackgroundColor\",\n\t\t\"fontSize\": \"fontSize\",\n\t\t\"customFontSize\": \"customFontSize\",\n\t\t\"showSubmenuIcon\": \"showSubmenuIcon\",\n\t\t\"openSubmenusOnClick\": \"openSubmenusOnClick\",\n\t\t\"style\": \"style\",\n\t\t\"maxNestingLevel\": \"maxNestingLevel\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"ariaLabel\": true,\n\t\t\"contentRole\": true,\n\t\t\"html\": false,\n\t\t\"inserter\": true,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalSkipSerialization\": [ \"textDecoration\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": true,\n\t\t\t\"units\": [ \"px\", \"em\", \"rem\", \"vh\", \"vw\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"allowVerticalAlignment\": false,\n\t\t\t\"allowSizingOnChildren\": true,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": true,\n\t\t\"renaming\": false\n\t},\n\t\"editorStyle\": \"wp-block-navigation-editor\",\n\t\"style\": \"wp-block-navigation\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tPlatform,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tstore as blockEditorStore,\n\twithColors,\n\tContrastChecker,\n\tgetColorClassName,\n\tWarning,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tuseBlockEditingMode,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\tSpinner,\n\tNotice,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { page } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\nimport Placeholder from './placeholder';\nimport ResponsiveWrapper from './responsive-wrapper';\nimport NavigationInnerBlocks from './inner-blocks';\nimport NavigationMenuNameControl from './navigation-menu-name-control';\nimport UnsavedInnerBlocks from './unsaved-inner-blocks';\nimport NavigationMenuDeleteControl from './navigation-menu-delete-control';\nimport useNavigationNotice from './use-navigation-notice';\nimport OverlayMenuPreview from './overlay-menu-preview';\nimport OverlayPanel from './overlay-panel';\nimport OverlayVisibilityControl from './overlay-visibility-control';\nimport OverlayMenuPreviewButton from './overlay-menu-preview-button';\nimport useConvertClassicToBlockMenu, {\n\tCLASSIC_MENU_CONVERSION_ERROR,\n\tCLASSIC_MENU_CONVERSION_PENDING,\n\tCLASSIC_MENU_CONVERSION_SUCCESS,\n} from './use-convert-classic-menu-to-block-menu';\nimport useCreateNavigationMenu from './use-create-navigation-menu';\nimport { useInnerBlocks } from './use-inner-blocks';\nimport { detectColors } from './utils';\nimport ManageMenusButton from './manage-menus-button';\nimport MenuInspectorControls from './menu-inspector-controls';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport AccessibleDescription from './accessible-description';\nimport AccessibleMenuDescription from './accessible-menu-description';\nimport { unlock } from '../../lock-unlock';\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport { DEFAULT_BLOCK } from '../constants';\n\n/**\n * Component that renders the Add page button for the Navigation block.\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Block client ID.\n * @return {JSX.Element|null} The Add page button component or null if not applicable.\n */\nfunction NavigationAddPageButton( { clientId } ) {\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\tconst { getBlockCount } = useSelect( blockEditorStore );\n\n\tconst onAddPage = useCallback( () => {\n\t\t// Get the current number of blocks to insert at the end\n\t\tconst blockCount = getBlockCount( clientId );\n\n\t\t// Create a new navigation link block (default block)\n\t\tconst newBlock = createBlock( DEFAULT_BLOCK.name, {\n\t\t\tkind: DEFAULT_BLOCK.attributes.kind,\n\t\t\ttype: DEFAULT_BLOCK.attributes.type,\n\t\t} );\n\n\t\t// Insert the block at the end of the navigation\n\t\tinsertBlock( newBlock, blockCount, clientId );\n\t}, [ clientId, insertBlock, getBlockCount ] );\n\n\treturn (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tname=\"add-page\"\n\t\t\t\t\ticon={ page }\n\t\t\t\t\tonClick={ onAddPage }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add page' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction ColorTools( {\n\ttextColor,\n\tsetTextColor,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\tclientId,\n\tnavRef,\n\thasCustomOverlay,\n} ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst [\n\t\tdetectedOverlayBackgroundColor,\n\t\tsetDetectedOverlayBackgroundColor,\n\t] = useState();\n\tconst [ detectedOverlayColor, setDetectedOverlayColor ] = useState();\n\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\tconst enableContrastChecking = Platform.OS === 'web';\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\t\tdetectColors(\n\t\t\tnavRef.current,\n\t\t\tsetDetectedColor,\n\t\t\tsetDetectedBackgroundColor\n\t\t);\n\n\t\tconst subMenuElement = navRef.current?.querySelector(\n\t\t\t'[data-type=\"core/navigation-submenu\"] [data-type=\"core/navigation-link\"]'\n\t\t);\n\n\t\tif ( ! subMenuElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only detect submenu overlay colors if they have previously been explicitly set.\n\t\t// This avoids the contrast checker from reporting on inherited submenu colors and\n\t\t// showing the contrast warning twice.\n\t\tif ( overlayTextColor.color || overlayBackgroundColor.color ) {\n\t\t\tdetectColors(\n\t\t\t\tsubMenuElement,\n\t\t\t\tsetDetectedOverlayColor,\n\t\t\t\tsetDetectedOverlayBackgroundColor\n\t\t\t);\n\t\t}\n\t}, [\n\t\tenableContrastChecking,\n\t\toverlayTextColor.color,\n\t\toverlayBackgroundColor.color,\n\t\tnavRef,\n\t] );\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tif ( ! colorGradientSettings.hasColorsOrGradients ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\tsettings={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: textColor.color,\n\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\tonColorChange: setTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: backgroundColor.color,\n\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\tonColorChange: setBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\tlabel: hasCustomOverlay\n\t\t\t\t\t\t\t? __( 'Submenu text' )\n\t\t\t\t\t\t\t: __( 'Submenu & overlay text' ),\n\t\t\t\t\t\tonColorChange: setOverlayTextColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayTextColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\tlabel: hasCustomOverlay\n\t\t\t\t\t\t\t? __( 'Submenu background' )\n\t\t\t\t\t\t\t: __( 'Submenu & overlay background' ),\n\t\t\t\t\t\tonColorChange: setOverlayBackgroundColor,\n\t\t\t\t\t\tresetAllFilter: () => setOverlayBackgroundColor(),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\tgradients={ [] }\n\t\t\t\tdisableCustomGradients\n\t\t\t/>\n\t\t\t{ enableContrastChecking && (\n\t\t\t\t<>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t/>\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedOverlayBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedOverlayColor }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction Navigation( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tisSelected,\n\tclassName,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\ttextColor,\n\tsetTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\n\t// These props are used by the navigation editor to override specific\n\t// navigation block settings.\n\tcustomPlaceholder: CustomPlaceholder = null,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\n\t\toverlay,\n\t\tshowSubmenuIcon,\n\t\ttemplateLock,\n\t\tlayout: {\n\t\t\tjustifyContent,\n\t\t\torientation = 'horizontal',\n\t\t\tflexWrap = 'wrap',\n\t\t} = {},\n\t\thasIcon,\n\t\ticon = 'handle',\n\t} = attributes;\n\n\tconst ref = attributes.ref;\n\n\tconst setRef = useCallback(\n\t\t( postId ) => {\n\t\t\tsetAttributes( { ref: postId } );\n\t\t},\n\t\t[ setAttributes ]\n\t);\n\n\tconst recursionId = `navigationMenu/${ ref }`;\n\tconst hasAlreadyRendered = useHasRecursion( recursionId );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { onNavigateToEntityRecord } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\tonNavigateToEntityRecord: settings?.onNavigateToEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst isOverlayExperimentEnabled =\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__experimentalNavigationOverlays === true;\n\n\t// Preload classic menus, so that they don't suddenly pop-in when viewing\n\t// the Select Menu dropdown.\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/status',\n\t\t} );\n\n\tconst [ showClassicMenuConversionNotice, hideClassicMenuConversionNotice ] =\n\t\tuseNavigationNotice( {\n\t\t\tname: 'block-library/core/navigation/classic-menu-conversion',\n\t\t} );\n\n\tconst [\n\t\tshowNavigationMenuPermissionsNotice,\n\t\thideNavigationMenuPermissionsNotice,\n\t] = useNavigationNotice( {\n\t\tname: 'block-library/core/navigation/permissions/update',\n\t} );\n\n\tconst {\n\t\tcreate: createNavigationMenu,\n\t\tstatus: createNavigationMenuStatus,\n\t\terror: createNavigationMenuError,\n\t\tvalue: createNavigationMenuPost,\n\t\tisPending: isCreatingNavigationMenu,\n\t\tisSuccess: createNavigationMenuIsSuccess,\n\t\tisError: createNavigationMenuIsError,\n\t} = useCreateNavigationMenu( clientId );\n\n\tconst createUntitledEmptyNavigationMenu = async () => {\n\t\tawait createNavigationMenu( '' );\n\t};\n\n\tconst {\n\t\thasUncontrolledInnerBlocks,\n\t\tuncontrolledInnerBlocks,\n\t\tisInnerBlockSelected,\n\t\tinnerBlocks,\n\t} = useInnerBlocks( clientId );\n\n\tconst hasSubmenus = !! innerBlocks.find(\n\t\t( block ) => block.name === 'core/navigation-submenu'\n\t);\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\tselectBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst [ isResponsiveMenuOpen, setResponsiveMenuVisibility ] =\n\t\tuseState( false );\n\n\tconst [ overlayMenuPreview, setOverlayMenuPreview ] = useState( false );\n\n\tconst {\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t} = useNavigationMenu( ref );\n\n\tconst navMenuResolvedButMissing =\n\t\thasResolvedNavigationMenus && isNavigationMenuMissing;\n\n\tconst {\n\t\tconvert: convertClassicMenu,\n\t\tstatus: classicMenuConversionStatus,\n\t\terror: classicMenuConversionError,\n\t} = useConvertClassicToBlockMenu( createNavigationMenu );\n\n\tconst isConvertingClassicMenu =\n\t\tclassicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING;\n\n\tconst handleUpdateMenu = useCallback(\n\t\t( menuId, options = { focusNavigationBlock: false } ) => {\n\t\t\tconst { focusNavigationBlock } = options;\n\t\t\tsetRef( menuId );\n\t\t\tif ( focusNavigationBlock ) {\n\t\t\t\tselectBlock( clientId );\n\t\t\t}\n\t\t},\n\t\t[ selectBlock, clientId, setRef ]\n\t);\n\n\tconst isEntityAvailable =\n\t\t! isNavigationMenuMissing && isNavigationMenuResolved;\n\n\t// If the block has inner blocks, but no menu id, then these blocks are either:\n\t// - inserted via a pattern.\n\t// - inserted directly via Code View (or otherwise).\n\t// - from an older version of navigation block added before the block used a wp_navigation entity.\n\t// Consider this state as 'unsaved' and offer an uncontrolled version of inner blocks,\n\t// that automatically saves the menu as an entity when changes are made to the inner blocks.\n\tconst hasUnsavedBlocks = hasUncontrolledInnerBlocks && ! isEntityAvailable;\n\n\tconst { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst navigationFallbackId = ! ( ref || hasUnsavedBlocks )\n\t\t? getNavigationFallbackId()\n\t\t: null;\n\n\tuseEffect( () => {\n\t\t// If:\n\t\t// - there is an existing menu, OR\n\t\t// - there are existing (uncontrolled) inner blocks\n\t\t// ...then don't request a fallback menu.\n\t\tif ( ref || hasUnsavedBlocks || ! navigationFallbackId ) {\n\t\t\treturn;\n\t\t}\n\n\t\t/**\n\t\t * This fallback displays (both in editor and on front)\n\t\t * The fallback should not request a save (entity dirty state)\n\t\t * nor to be undoable, hence why it is marked as non persistent\n\t\t */\n\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetRef( navigationFallbackId );\n\t}, [\n\t\tref,\n\t\tsetRef,\n\t\thasUnsavedBlocks,\n\t\tnavigationFallbackId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst navRef = useRef();\n\n\t// The standard HTML5 tag for the block wrapper.\n\tconst TagName = 'nav';\n\n\t// \"placeholder\" shown if:\n\t// - there is no ref attribute pointing to a Navigation Post.\n\t// - there is no classic menu conversion process in progress.\n\t// - there is no menu creation process in progress.\n\t// - there are no uncontrolled blocks.\n\tconst isPlaceholder =\n\t\t! ref &&\n\t\t! isCreatingNavigationMenu &&\n\t\t! isConvertingClassicMenu &&\n\t\thasResolvedNavigationMenus &&\n\t\tclassicMenus?.length === 0 &&\n\t\t! hasUncontrolledInnerBlocks;\n\n\t// \"loading\" state:\n\t// - there is a menu creation process in progress.\n\t// - there is a classic menu conversion process in progress.\n\t// OR:\n\t// - there is a ref attribute pointing to a Navigation Post\n\t// - the Navigation Post isn't available (hasn't resolved) yet.\n\tconst isLoading =\n\t\t! hasResolvedNavigationMenus ||\n\t\tisCreatingNavigationMenu ||\n\t\tisConvertingClassicMenu ||\n\t\t!! ( ref && ! isEntityAvailable && ! isConvertingClassicMenu );\n\n\tconst textDecoration = attributes.style?.typography?.textDecoration;\n\n\tconst hasBlockOverlay = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableHasActiveBlockOverlayActive(\n\t\t\t\tclientId\n\t\t\t),\n\t\t[ clientId ]\n\t);\n\tconst isResponsive = 'never' !== overlayMenu;\n\tconst blockProps = useBlockProps( {\n\t\tref: navRef,\n\t\tclassName: clsx(\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'items-justified-right': justifyContent === 'right',\n\t\t\t\t'items-justified-space-between':\n\t\t\t\t\tjustifyContent === 'space-between',\n\t\t\t\t'items-justified-left': justifyContent === 'left',\n\t\t\t\t'items-justified-center': justifyContent === 'center',\n\t\t\t\t'is-vertical': orientation === 'vertical',\n\t\t\t\t'no-wrap': flexWrap === 'nowrap',\n\t\t\t\t'is-responsive': isResponsive,\n\t\t\t\t'has-text-color': !! textColor.color || !! textColor?.class,\n\t\t\t\t[ getColorClassName( 'color', textColor?.slug ) ]:\n\t\t\t\t\t!! textColor?.slug,\n\t\t\t\t'has-background':\n\t\t\t\t\t!! backgroundColor.color || backgroundColor.class,\n\t\t\t\t[ getColorClassName(\n\t\t\t\t\t'background-color',\n\t\t\t\t\tbackgroundColor?.slug\n\t\t\t\t) ]: !! backgroundColor?.slug,\n\t\t\t\t[ `has-text-decoration-${ textDecoration }` ]: textDecoration,\n\t\t\t\t'block-editor-block-content-overlay': hasBlockOverlay,\n\t\t\t},\n\t\t\tlayoutClassNames\n\t\t),\n\t\tstyle: {\n\t\t\tcolor: ! textColor?.slug && textColor?.color,\n\t\t\tbackgroundColor: ! backgroundColor?.slug && backgroundColor?.color,\n\t\t},\n\t} );\n\n\tconst onSelectClassicMenu = async ( classicMenu ) => {\n\t\treturn convertClassicMenu( classicMenu.id, classicMenu.name, 'draft' );\n\t};\n\n\tconst onSelectNavigationMenu = ( menuId ) => {\n\t\thandleUpdateMenu( menuId );\n\t};\n\n\tuseEffect( () => {\n\t\thideNavigationMenuStatusNotice();\n\n\t\tif ( isCreatingNavigationMenu ) {\n\t\t\tspeak( __( `Creating Navigation Menu.` ) );\n\t\t}\n\n\t\tif ( createNavigationMenuIsSuccess ) {\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( `Navigation Menu successfully created.` )\n\t\t\t);\n\t\t}\n\n\t\tif ( createNavigationMenuIsError ) {\n\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t__( 'Failed to create Navigation Menu.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tcreateNavigationMenuStatus,\n\t\tcreateNavigationMenuError,\n\t\tcreateNavigationMenuPost?.id,\n\t\tcreateNavigationMenuIsError,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisCreatingNavigationMenu,\n\t\thandleUpdateMenu,\n\t\thideNavigationMenuStatusNotice,\n\t\tshowNavigationMenuStatusNotice,\n\t] );\n\n\tuseEffect( () => {\n\t\thideClassicMenuConversionNotice();\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_PENDING ) {\n\t\t\tspeak( __( 'Classic menu importing.' ) );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_SUCCESS ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu imported successfully.' )\n\t\t\t);\n\t\t\thandleUpdateMenu( createNavigationMenuPost?.id, {\n\t\t\t\tfocusNavigationBlock: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( classicMenuConversionStatus === CLASSIC_MENU_CONVERSION_ERROR ) {\n\t\t\tshowClassicMenuConversionNotice(\n\t\t\t\t__( 'Classic menu import failed.' )\n\t\t\t);\n\t\t}\n\t}, [\n\t\tclassicMenuConversionStatus,\n\t\tclassicMenuConversionError,\n\t\thideClassicMenuConversionNotice,\n\t\tshowClassicMenuConversionNotice,\n\t\tcreateNavigationMenuPost?.id,\n\t\thandleUpdateMenu,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! isInnerBlockSelected ) {\n\t\t\thideNavigationMenuPermissionsNotice();\n\t\t}\n\n\t\tif ( isSelected || isInnerBlockSelected ) {\n\t\t\tif (\n\t\t\t\tref &&\n\t\t\t\t! navMenuResolvedButMissing &&\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t! canUserUpdateNavigationMenu\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to edit this Menu. Any changes made will not be saved.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t! ref &&\n\t\t\t\thasResolvedCanUserCreateNavigationMenus &&\n\t\t\t\t! canUserCreateNavigationMenus\n\t\t\t) {\n\t\t\t\tshowNavigationMenuPermissionsNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'You do not have permission to create Navigation Menus.'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\tisInnerBlockSelected,\n\t\tcanUserUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu,\n\t\tcanUserCreateNavigationMenus,\n\t\thasResolvedCanUserCreateNavigationMenus,\n\t\tref,\n\t\thideNavigationMenuPermissionsNotice,\n\t\tshowNavigationMenuPermissionsNotice,\n\t\tnavMenuResolvedButMissing,\n\t] );\n\n\tconst hasManagePermissions =\n\t\tcanUserCreateNavigationMenus || canUserUpdateNavigationMenu;\n\n\tconst overlayMenuPreviewClasses = clsx(\n\t\t'wp-block-navigation__overlay-menu-preview',\n\t\t{ open: overlayMenuPreview }\n\t);\n\n\tconst submenuAccessibilityNotice =\n\t\t! showSubmenuIcon && ! openSubmenusOnClick\n\t\t\t? __(\n\t\t\t\t\t'The current menu options offer reduced accessibility for users and are not recommended. Enabling either \"Open on Click\" or \"Show arrow\" offers enhanced accessibility by allowing keyboard users to browse submenus selectively.'\n\t\t\t )\n\t\t\t: '';\n\n\tconst isFirstRender = useRef( true ); // Don't speak on first render.\n\tuseEffect( () => {\n\t\tif ( ! isFirstRender.current && submenuAccessibilityNotice ) {\n\t\t\tspeak( submenuAccessibilityNotice );\n\t\t}\n\t\tisFirstRender.current = false;\n\t}, [ submenuAccessibilityNotice ] );\n\n\tconst overlayMenuPreviewId = useInstanceId(\n\t\tOverlayMenuPreview,\n\t\t`overlay-menu-preview`\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ ( ! isOverlayExperimentEnabled || hasSubmenus ) && (\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\n\t\t\t\t\t\t\t\thasIcon: true,\n\t\t\t\t\t\t\t\ticon: 'handle',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isOverlayExperimentEnabled && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ isResponsive && (\n\t\t\t\t\t\t\t\t\t<OverlayMenuPreviewButton\n\t\t\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview={\n\t\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewClasses\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId={\n\t\t\t\t\t\t\t\t\t\t\toverlayMenuPreviewId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcontainerStyle={ {\n\t\t\t\t\t\t\t\t\t\t\tgridColumn: 'span 2',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => overlayMenu !== 'mobile' }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Overlay Visibility' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\toverlayMenu: 'mobile',\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<OverlayVisibilityControl\n\t\t\t\t\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ hasSubmenus && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<h3 className=\"wp-block-navigation__submenu-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Submenus' ) }\n\t\t\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: false,\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\t\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t\t\t} ), // Make sure arrows are shown when we toggle this on.\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\thasValue={ () => ! showSubmenuIcon }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: true,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisDisabled={\n\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tshowSubmenuIcon: value,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tattributes.openSubmenusOnClick\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu-accessibility-notice\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t</Notice>\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</ToolsPanel>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t{ isOverlayExperimentEnabled && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<OverlayPanel\n\t\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t\t\toverlayMenuPreview={ overlayMenuPreview }\n\t\t\t\t\t\tsetOverlayMenuPreview={ setOverlayMenuPreview }\n\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\toverlayMenuPreviewClasses={ overlayMenuPreviewClasses }\n\t\t\t\t\t\toverlayMenuPreviewId={ overlayMenuPreviewId }\n\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ /*\n\t\t\t\t * Avoid useMultipleOriginColorsAndGradients and detectColors\n\t\t\t\t * on block mount. InspectorControls only mounts this component\n\t\t\t\t * when the block is selected.\n\t\t\t\t * */ }\n\t\t\t\t<ColorTools\n\t\t\t\t\ttextColor={ textColor }\n\t\t\t\t\tsetTextColor={ setTextColor }\n\t\t\t\t\tbackgroundColor={ backgroundColor }\n\t\t\t\t\tsetBackgroundColor={ setBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\tsetOverlayTextColor={ setOverlayTextColor }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\tsetOverlayBackgroundColor={ setOverlayBackgroundColor }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tnavRef={ navRef }\n\t\t\t\t\thasCustomOverlay={ !! overlay }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst accessibleDescriptionId = `${ clientId }-desc`;\n\tconst isHiddenByDefault = 'always' === overlayMenu;\n\tconst isManageMenusButtonDisabled =\n\t\t! hasManagePermissions || ! hasResolvedNavigationMenus;\n\n\tif ( hasUnsavedBlocks && ! isCreatingNavigationMenu ) {\n\t\treturn (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\taria-describedby={\n\t\t\t\t\t! isPlaceholder ? accessibleDescriptionId : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<AccessibleDescription id={ accessibleDescriptionId }>\n\t\t\t\t\t{ __( 'Unsaved Navigation Menu.' ) }\n\t\t\t\t</AccessibleDescription>\n\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t>\n\t\t\t\t\t<UnsavedInnerBlocks\n\t\t\t\t\t\tcreateNavigationMenu={ createNavigationMenu }\n\t\t\t\t\t\tblocks={ uncontrolledInnerBlocks }\n\t\t\t\t\t\thasSelection={ isSelected || isInnerBlockSelected }\n\t\t\t\t\t/>\n\t\t\t\t</ResponsiveWrapper>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\t// Show a warning if the selected menu is no longer available.\n\t// TODO - the user should be able to select a new one?\n\tif ( ref && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t<DeletedNavigationWarning\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst PlaceholderComponent = CustomPlaceholder\n\t\t? CustomPlaceholder\n\t\t: Placeholder;\n\n\t/**\n\t * Historically the navigation block has supported custom placeholders.\n\t * Even though the current UX tries as hard as possible not to\n\t * end up in a placeholder state, the block continues to support\n\t * this extensibility point, via a CustomPlaceholder.\n\t * When CustomPlaceholder is present it becomes the default fallback\n\t * for an empty navigation block, instead of the default fallbacks.\n\t *\n\t */\n\n\tif ( isPlaceholder && CustomPlaceholder ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlaceholderComponent\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcanUserCreateNavigationMenus={\n\t\t\t\t\t\tcanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tisResolvingCanUserCreateNavigationMenus={\n\t\t\t\t\t\tisResolvingCanUserCreateNavigationMenus\n\t\t\t\t\t}\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonCreateEmpty={ createUntitledEmptyNavigationMenu }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"postType\" type=\"wp_navigation\" id={ ref }>\n\t\t\t<RecursionProvider uniqueId={ recursionId }>\n\t\t\t\t<MenuInspectorControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t}\n\t\t\t\t\tcreateNavigationMenuIsError={ createNavigationMenuIsError }\n\t\t\t\t\tcurrentMenuId={ ref }\n\t\t\t\t\tisNavigationMenuMissing={ isNavigationMenuMissing }\n\t\t\t\t\tisManageMenusButtonDisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\tonCreateNew={ createUntitledEmptyNavigationMenu }\n\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t/>\n\t\t\t\t{ blockEditingMode === 'default' && stylingInspectorControls }\n\t\t\t\t{ blockEditingMode === 'contentOnly' && isEntityAvailable && (\n\t\t\t\t\t<NavigationAddPageButton clientId={ clientId } />\n\t\t\t\t) }\n\t\t\t\t{ blockEditingMode === 'default' && isEntityAvailable && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t{ hasResolvedCanUserUpdateNavigationMenu &&\n\t\t\t\t\t\t\tcanUserUpdateNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuNameControl />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasResolvedCanUserDeleteNavigationMenu &&\n\t\t\t\t\t\t\tcanUserDeleteNavigationMenu && (\n\t\t\t\t\t\t\t\t<NavigationMenuDeleteControl\n\t\t\t\t\t\t\t\t\tonDelete={ () => {\n\t\t\t\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [] );\n\t\t\t\t\t\t\t\t\t\tshowNavigationMenuStatusNotice(\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Navigation Menu successfully deleted.'\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\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<ManageMenusButton\n\t\t\t\t\t\t\tdisabled={ isManageMenusButtonDisabled }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-manage-menus-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\n\t\t\t\t<TagName\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t! isPlaceholder && ! isLoading\n\t\t\t\t\t\t\t? accessibleDescriptionId\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isLoading && ! isHiddenByDefault && (\n\t\t\t\t\t\t<div className=\"wp-block-navigation__loading-indicator-container\">\n\t\t\t\t\t\t\t<Spinner className=\"wp-block-navigation__loading-indicator\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( ! isLoading || isHiddenByDefault ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<AccessibleMenuDescription\n\t\t\t\t\t\t\t\tid={ accessibleDescriptionId }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\tid={ clientId }\n\t\t\t\t\t\t\t\tonToggle={ setResponsiveMenuVisibility }\n\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\tisOpen={ isResponsiveMenuOpen }\n\t\t\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\t\t\tisHiddenByDefault={ isHiddenByDefault }\n\t\t\t\t\t\t\t\toverlayBackgroundColor={\n\t\t\t\t\t\t\t\t\toverlayBackgroundColor\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toverlayTextColor={ overlayTextColor }\n\t\t\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\t\t\tonNavigateToEntityRecord={\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t\t\t\t\t<NavigationInnerBlocks\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t\thasCustomPlaceholder={\n\t\t\t\t\t\t\t\t\t\t\t!! CustomPlaceholder\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ttemplateLock={ templateLock }\n\t\t\t\t\t\t\t\t\t\torientation={ orientation }\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</ResponsiveWrapper>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</TagName>\n\t\t\t</RecursionProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withColors(\n\t{ textColor: 'color' },\n\t{ backgroundColor: 'color' },\n\t{ overlayBackgroundColor: 'color' },\n\t{ overlayTextColor: 'color' }\n)( Navigation );\n", "/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( {\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t\tid: ref,\n\t} );\n\n\tconst {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\treturn selectExistingMenu( select, ref );\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst {\n\t\t// Can the user create navigation menus?\n\t\tcanCreate: canCreateNavigationMenus,\n\n\t\t// Can the user update the specific navigation menu with the given post ID?\n\t\tcanUpdate: canUpdateNavigationMenu,\n\n\t\t// Can the user delete the specific navigation menu with the given post ID?\n\t\tcanDelete: canDeleteNavigationMenu,\n\t\tisResolving: isResolvingPermissions,\n\t\thasResolved: hasResolvedPermissions,\n\t} = permissions;\n\n\tconst {\n\t\trecords: navigationMenus,\n\t\tisResolving: isResolvingNavigationMenus,\n\t\thasResolved: hasResolvedNavigationMenus,\n\t} = useEntityRecords(\n\t\t'postType',\n\t\t`wp_navigation`,\n\t\tPRELOADED_NAVIGATION_MENUS_QUERY\n\t);\n\n\tconst canSwitchNavigationMenu = ref\n\t\t? navigationMenus?.length > 1\n\t\t: navigationMenus?.length > 0;\n\n\treturn {\n\t\tnavigationMenu,\n\t\tisNavigationMenuResolved,\n\t\tisNavigationMenuMissing,\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tcanUserCreateNavigationMenus: canCreateNavigationMenus,\n\t\tisResolvingCanUserCreateNavigationMenus: isResolvingPermissions,\n\t\thasResolvedCanUserCreateNavigationMenus: hasResolvedPermissions,\n\t\tcanUserUpdateNavigationMenu: canUpdateNavigationMenu,\n\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\n\t\tcanUserDeleteNavigationMenu: canDeleteNavigationMenu,\n\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t? hasResolvedPermissions\n\t\t\t: undefined,\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\t// Only published Navigation posts are considered valid.\n\t// Draft Navigation posts are valid only on the editor,\n\t// requiring a post update to publish to show in frontend.\n\t// To achieve that, index.php must reflect this validation only for published.\n\tconst isNavigationMenuPublishedOrDraft =\n\t\teditedNavigationMenu.status === 'publish' ||\n\t\teditedNavigationMenu.status === 'draft';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublishedOrDraft ),\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu: isNavigationMenuPublishedOrDraft\n\t\t\t? editedNavigationMenu\n\t\t\t: null,\n\t};\n}\n", "export const DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\n\tattributes: {\n\t\tkind: 'post-type',\n\t\ttype: 'page',\n\t},\n};\n\nexport const PRIORITIZED_INSERTER_BLOCKS = [\n\t'core/navigation-link/page',\n\t'core/navigation-link',\n];\n\n// These parameters must be kept aligned with those in\n// lib/compat/wordpress-6.3/navigation-block-preloading.php\n// and\n// edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js\nexport const PRELOADED_NAVIGATION_MENUS_QUERY = {\n\tper_page: 100,\n\tstatus: [ 'publish', 'draft' ],\n\torder: 'desc',\n\torderby: 'date',\n};\n\nexport const SELECT_NAVIGATION_MENUS_ARGS = [\n\t'postType',\n\t'wp_navigation',\n\tPRELOADED_NAVIGATION_MENUS_QUERY,\n];\n\n/**\n * Template part area identifier for navigation overlays.\n * This constant defines the area name used when registering and filtering\n * template parts that are specifically designed for navigation overlay layouts.\n *\n * @type {string}\n */\nexport const NAVIGATION_OVERLAY_TEMPLATE_PART_AREA = 'navigation-overlay';\n", "/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * @typedef {Object} NavigationEntitiesData\n * @property {Array|undefined} pages - a collection of WP Post entity objects of post type \"Page\".\n * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving.\n * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving.\n * @property {Array|undefined} menus - a collection of Menu entity objects.\n * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving.\n * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving.\n * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId.\n * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.\n * @property {boolean} hasPages - indicates whether there is currently any data for pages.\n * @property {boolean} hasMenus - indicates whether there is currently any data for menus.\n */\n\n/**\n * Manages fetching and resolution state for all entities required\n * for the Navigation block.\n *\n * @param {number} menuId the menu for which to retrieve menuItem data.\n * @return { NavigationEntitiesData } the entity data.\n */\nexport default function useNavigationEntities( menuId ) {\n\tconst {\n\t\trecords: menus,\n\t\tisResolving: isResolvingMenus,\n\t\thasResolved: hasResolvedMenus,\n\t} = useEntityRecords( 'root', 'menu', { per_page: -1, context: 'view' } );\n\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isResolvingPages,\n\t\thasResolved: hasResolvedPages,\n\t} = useEntityRecords( 'postType', 'page', {\n\t\tparent: 0,\n\t\torder: 'asc',\n\t\torderby: 'id',\n\t\tper_page: -1,\n\t\tcontext: 'view',\n\t} );\n\n\tconst { records: menuItems, hasResolved: hasResolvedMenuItems } =\n\t\tuseEntityRecords(\n\t\t\t'root',\n\t\t\t'menuItem',\n\t\t\t{\n\t\t\t\tmenus: menuId,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t},\n\t\t\t{ enabled: !! menuId }\n\t\t);\n\n\treturn {\n\t\tpages,\n\t\tisResolvingPages,\n\t\thasResolvedPages,\n\t\thasPages: !! ( hasResolvedPages && pages?.length ),\n\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasResolvedMenus,\n\t\thasMenus: !! ( hasResolvedMenus && menus?.length ),\n\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tisSelected,\n\tcurrentMenuId,\n\tclientId,\n\tcanUserCreateNavigationMenus = false,\n\tisResolvingCanUserCreateNavigationMenus,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateEmpty,\n} ) {\n\tconst { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isResolvingMenus ) {\n\t\t\tspeak( __( 'Loading navigation block setup options\u2026' ) );\n\t\t}\n\n\t\tif ( hasResolvedMenus ) {\n\t\t\tspeak( __( 'Navigation block setup options ready.' ) );\n\t\t}\n\t}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );\n\n\tconst isResolvingActions =\n\t\tisResolvingMenus && isResolvingCanUserCreateNavigationMenus;\n\n\treturn (\n\t\t<>\n\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t{\n\t\t\t\t\t// The <PlaceholderPreview> component is displayed conditionally via CSS depending on\n\t\t\t\t\t// whether the block is selected or not. This is achieved via CSS to avoid\n\t\t\t\t\t// component re-renders\n\t\t\t\t }\n\t\t\t\t<PlaceholderPreview isVisible={ ! isSelected } />\n\t\t\t\t<div\n\t\t\t\t\taria-hidden={ ! isSelected ? true : undefined }\n\t\t\t\t\tclassName=\"wp-block-navigation-placeholder__controls\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t<Icon icon={ navigation } /> { __( 'Navigation' ) }\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ isResolvingActions && <Spinner /> }\n\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmpty }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Placeholder>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Icon, navigation } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\nconst PlaceholderPreview = ( { isVisible = true } ) => {\n\treturn (\n\t\t<div\n\t\t\taria-hidden={ ! isVisible ? true : undefined }\n\t\t\tclassName=\"wp-block-navigation-placeholder__preview\"\n\t\t>\n\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t<Icon icon={ navigation } />\n\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default PlaceholderPreview;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s: the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: 1: title of the menu. 2: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isUpdatingMenuRef, setIsUpdatingMenuRef ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tisNavigationMenuMissing,\n\t} = useNavigationMenu( currentMenuId );\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t! hasResolvedNavigationMenus,\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tnavigationMenus,\n\t\tactionLabel,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisUpdatingMenuRef,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenus;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\tconst navMenuHasBeenDeleted = currentMenuId && isNavigationMenuMissing;\n\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading\u2026' );\n\t} else if (\n\t\tnoMenuSelected ||\n\t\tnoBlockMenus ||\n\t\tmenuUnavailable ||\n\t\tnavMenuHasBeenDeleted\n\t) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation Menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisUpdatingMenuRef &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsUpdatingMenuRef( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenus,\n\t\tcreateNavigationMenuIsError,\n\t\tisUpdatingMenuRef,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\t\t\tawait onSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\tawait onCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new Menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { close, Icon } from '@wordpress/icons';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { getColorClassName } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function ResponsiveWrapper( {\n\tchildren,\n\tid,\n\tisOpen,\n\tisResponsive,\n\tonToggle,\n\tisHiddenByDefault,\n\toverlayBackgroundColor,\n\toverlayTextColor,\n\thasIcon,\n\ticon,\n\toverlay,\n\tonNavigateToEntityRecord,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\t// Only apply overlay colors if there's no custom overlay template part.\n\tconst hasCustomOverlay = !! overlay;\n\n\tconst responsiveContainerClasses = clsx(\n\t\t'wp-block-navigation__responsive-container',\n\t\t! hasCustomOverlay && {\n\t\t\t'has-text-color':\n\t\t\t\t!! overlayTextColor.color || !! overlayTextColor?.class,\n\t\t\t[ getColorClassName( 'color', overlayTextColor?.slug ) ]:\n\t\t\t\t!! overlayTextColor?.slug,\n\t\t\t'has-background':\n\t\t\t\t!! overlayBackgroundColor.color ||\n\t\t\t\toverlayBackgroundColor?.class,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\toverlayBackgroundColor?.slug\n\t\t\t) ]: !! overlayBackgroundColor?.slug,\n\t\t},\n\t\t{\n\t\t\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = ! hasCustomOverlay\n\t\t? {\n\t\t\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\t\t\tbackgroundColor:\n\t\t\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\t\t\toverlayBackgroundColor?.color &&\n\t\t\t\t\toverlayBackgroundColor.color,\n\t\t }\n\t\t: {};\n\n\tconst openButtonClasses = clsx(\n\t\t'wp-block-navigation__responsive-container-open',\n\t\t{ 'always-shown': isHiddenByDefault }\n\t);\n\n\tconst modalId = `${ id }-modal`;\n\n\tconst dialogProps = {\n\t\tclassName: 'wp-block-navigation__responsive-dialog',\n\t\t...( isOpen && {\n\t\t\trole: 'dialog',\n\t\t\t'aria-modal': true,\n\t\t\t'aria-label': __( 'Menu' ),\n\t\t} ),\n\t};\n\n\tconst handleToggleClick = () => {\n\t\t// If an overlay template part is selected, navigate to it instead of toggling\n\t\tif ( overlay && onNavigateToEntityRecord ) {\n\t\t\tonNavigateToEntityRecord( {\n\t\t\t\tpostId: overlay,\n\t\t\t\tpostType: 'wp_template_part',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Otherwise, use normal toggle behavior\n\t\tonToggle( true );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-label={ hasIcon && __( 'Open menu' ) }\n\t\t\t\t\tclassName={ openButtonClasses }\n\t\t\t\t\tonClick={ handleToggleClick }\n\t\t\t\t>\n\t\t\t\t\t{ hasIcon && <OverlayMenuIcon icon={ icon } /> }\n\t\t\t\t\t{ ! hasIcon && __( 'Menu' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\n\t\t\t<div\n\t\t\t\tclassName={ responsiveContainerClasses }\n\t\t\t\tstyle={ styles }\n\t\t\t\tid={ modalId }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-navigation__responsive-close\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<div { ...dialogProps }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-close\"\n\t\t\t\t\t\t\taria-label={ hasIcon && __( 'Close menu' ) }\n\t\t\t\t\t\t\tonClick={ () => onToggle( false ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ hasIcon && <Icon icon={ close } /> }\n\t\t\t\t\t\t\t{ ! hasIcon && __( 'Close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__responsive-container-content\"\n\t\t\t\t\t\t\tid={ `${ modalId }-content` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Rect } from '@wordpress/primitives';\nimport { Icon, menu } from '@wordpress/icons';\n\nexport default function OverlayMenuIcon( { icon } ) {\n\tif ( icon === 'menu' ) {\n\t\treturn <Icon icon={ menu } />;\n\t}\n\n\treturn (\n\t\t<SVG\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"24\"\n\t\t\theight=\"24\"\n\t\t\taria-hidden=\"true\"\n\t\t\tfocusable=\"false\"\n\t\t>\n\t\t\t<Rect x=\"4\" y=\"7.5\" width=\"16\" height=\"1.5\" />\n\t\t\t<Rect x=\"4\" y=\"15\" width=\"16\" height=\"1.5\" />\n\t\t</SVG>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PlaceholderPreview from './placeholder/placeholder-preview';\nimport { DEFAULT_BLOCK, PRIORITIZED_INSERTER_BLOCKS } from '../constants';\n\nexport default function NavigationInnerBlocks( {\n\tclientId,\n\thasCustomPlaceholder,\n\torientation,\n\ttemplateLock,\n} ) {\n\tconst {\n\t\tisImmediateParentOfSelectedBlock,\n\t\tselectedBlockHasChildren,\n\t\tisSelected,\n\t\thasSelectedDescendant,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\tselectedBlockHasChildren: !! getBlockCount( selectedBlockId ),\n\t\t\t\thasSelectedDescendant: hasSelectedInnerBlock( clientId, true ),\n\n\t\t\t\t// This prop is already available but computing it here ensures it's\n\t\t\t\t// fresh compared to isImmediateParentOfSelectedBlock.\n\t\t\t\tisSelected: selectedBlockId === clientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_navigation'\n\t);\n\n\t// When the block is selected itself or has a top level item selected that\n\t// doesn't itself have children, show the standard appender. Else show no\n\t// appender.\n\tconst parentOrChildHasSelection =\n\t\tisSelected ||\n\t\t( isImmediateParentOfSelectedBlock && ! selectedBlockHasChildren );\n\n\tconst placeholder = useMemo( () => <PlaceholderPreview />, [] );\n\n\tconst hasMenuItems = !! blocks?.length;\n\n\t// If there is a `ref` attribute pointing to a `wp_navigation` but\n\t// that menu has no **items** (i.e. empty) then show a placeholder.\n\t// The block must also be selected else the placeholder will display\n\t// alongside the appender.\n\tconst showPlaceholder =\n\t\t! hasCustomPlaceholder && ! hasMenuItems && ! isSelected;\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tprioritizedInserterBlocks: PRIORITIZED_INSERTER_BLOCKS,\n\t\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t\tdirectInsert: true,\n\t\t\torientation,\n\t\t\ttemplateLock,\n\n\t\t\t// As an exception to other blocks which feature nesting, show\n\t\t\t// the block appender even when a child block is selected.\n\t\t\t// This should be a temporary fix, to be replaced by improvements to\n\t\t\t// the sibling inserter.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/37572.\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t\thasSelectedDescendant ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\tparentOrChildHasSelection\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\t\t\tplaceholder: showPlaceholder ? placeholder : undefined,\n\t\t\t__experimentalCaptureToolbars: true,\n\t\t\t__unstableDisableLayoutClassNames: true,\n\t\t}\n\t);\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { TextControl } from '@wordpress/components';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\nexport default function NavigationMenuNameControl() {\n\tconst [ title, updateTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\treturn (\n\t\t<TextControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Menu name' ) }\n\t\t\tvalue={ title }\n\t\t\tonChange={ updateTitle }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps } from '@wordpress/block-editor';\nimport { Disabled } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { areBlocksDirty } from './are-blocks-dirty';\nimport { DEFAULT_BLOCK, SELECT_NAVIGATION_MENUS_ARGS } from '../constants';\n\nconst EMPTY_OBJECT = {};\n\nexport default function UnsavedInnerBlocks( {\n\tblocks,\n\tcreateNavigationMenu,\n\thasSelection,\n} ) {\n\tconst originalBlocksRef = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocksRef?.current ) {\n\t\t\toriginalBlocksRef.current = blocks;\n\t\t}\n\t}, [ blocks ] );\n\n\t// If the current inner blocks are different from the original inner blocks\n\t// from the post content then the user has made changes to the inner blocks.\n\t// At this point the inner blocks can be considered \"dirty\".\n\t// Note: referential equality is not sufficient for comparison as the inner blocks\n\t// of the page list are controlled and may be updated async due to syncing with\n\t// entity records. As a result we need to perform a deep equality check skipping\n\t// the page list's inner blocks.\n\tconst innerBlocksAreDirty = areBlocksDirty(\n\t\toriginalBlocksRef?.current,\n\t\tblocks\n\t);\n\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: 'wp-block-navigation__container',\n\t\t},\n\t\t{\n\t\t\trenderAppender: hasSelection ? undefined : false,\n\t\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t\tdirectInsert: true,\n\t\t}\n\t);\n\n\tconst { isSaving, hasResolvedAllNavigationMenus } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isDisabled ) {\n\t\t\t\treturn EMPTY_OBJECT;\n\t\t\t}\n\n\t\t\tconst { hasFinishedResolution, isSavingEntityRecord } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tisSaving: isSavingEntityRecord( 'postType', 'wp_navigation' ),\n\t\t\t\thasResolvedAllNavigationMenus: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tSELECT_NAVIGATION_MENUS_ARGS\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ isDisabled ]\n\t);\n\n\t// Automatically save the uncontrolled blocks.\n\tuseEffect( () => {\n\t\t// The block will be disabled when used in a BlockPreview.\n\t\t// In this case avoid automatic creation of a wp_navigation post.\n\t\t// Otherwise the user will be spammed with lots of menus!\n\t\t//\n\t\t// Also ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\t//\n\t\t// Don't try saving when another save is already\n\t\t// in progress.\n\t\t//\n\t\t// And finally only create the menu when the block is selected,\n\t\t// which is an indication they want to start editing.\n\t\tif (\n\t\t\tisDisabled ||\n\t\t\tisSaving ||\n\t\t\t! hasResolvedAllNavigationMenus ||\n\t\t\t! hasSelection ||\n\t\t\t! innerBlocksAreDirty\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tcreateNavigationMenu( null, blocks );\n\t}, [\n\t\tblocks,\n\t\tcreateNavigationMenu,\n\t\tisDisabled,\n\t\tisSaving,\n\t\thasResolvedAllNavigationMenus,\n\t\tinnerBlocksAreDirty,\n\t\thasSelection,\n\t] );\n\n\tconst Wrapper = isSaving ? Disabled : 'div';\n\n\treturn <Wrapper { ...innerBlocksProps } />;\n}\n", "export function areBlocksDirty( originalBlocks, blocks ) {\n\treturn ! isDeepEqual( originalBlocks, blocks, ( prop, x ) => {\n\t\t// Skip inner blocks of page list during comparison as they\n\t\t// are **always** controlled and may be updated async due to\n\t\t// syncing with entity records. Left unchecked this would\n\t\t// inadvertently trigger the dirty state.\n\t\tif ( x?.name === 'core/page-list' && prop === 'innerBlocks' ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n}\n\n/**\n * Conditionally compares two candidates for deep equality.\n * Provides an option to skip a given property of an object during comparison.\n *\n * @param {*} x 1st candidate for comparison\n * @param {*} y 2nd candidate for comparison\n * @param {Function|undefined} shouldSkip a function which can be used to skip a given property of an object.\n * @return {boolean} whether the two candidates are deeply equal.\n */\nconst isDeepEqual = ( x, y, shouldSkip ) => {\n\tif ( x === y ) {\n\t\treturn true;\n\t} else if (\n\t\ttypeof x === 'object' &&\n\t\tx !== null &&\n\t\tx !== undefined &&\n\t\ttypeof y === 'object' &&\n\t\ty !== null &&\n\t\ty !== undefined\n\t) {\n\t\tif ( Object.keys( x ).length !== Object.keys( y ).length ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor ( const prop in x ) {\n\t\t\tif ( y.hasOwnProperty( prop ) ) {\n\t\t\t\t// Afford skipping a given property of an object.\n\t\t\t\tif ( shouldSkip && shouldSkip( prop, x ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isDeepEqual( x[ prop ], y[ prop ], shouldSkip ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n", "/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityId } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nexport default function NavigationMenuDeleteControl( { onDelete } ) {\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst id = useEntityId( 'postType', 'wp_navigation' );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"wp-block-navigation-delete-menu-button\"\n\t\t\t\tvariant=\"secondary\"\n\t\t\t\tisDestructive\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsConfirmDialogVisible( true );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Delete menu' ) }\n\t\t\t</Button>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\tdeleteEntityRecord( 'postType', 'wp_navigation', id, {\n\t\t\t\t\t\t\tforce: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tonDelete();\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to delete this Navigation Menu?'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticeStore } from '@wordpress/notices';\n\nfunction useNavigationNotice( { name, message = '' } = {} ) {\n\tconst noticeRef = useRef();\n\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\n\tconst showNotice = useCallback(\n\t\t( customMsg ) => {\n\t\t\tif ( noticeRef.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tnoticeRef.current = name;\n\n\t\t\tcreateWarningNotice( customMsg || message, {\n\t\t\t\tid: noticeRef.current,\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t},\n\t\t[ noticeRef, createWarningNotice, message, name ]\n\t);\n\n\tconst hideNotice = useCallback( () => {\n\t\tif ( ! noticeRef.current ) {\n\t\t\treturn;\n\t\t}\n\t\tremoveNotice( noticeRef.current );\n\t\tnoticeRef.current = null;\n\t}, [ noticeRef, removeNotice ] );\n\n\treturn [ showNotice, hideNotice ];\n}\n\nexport default useNavigationNotice;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\nexport default function OverlayMenuPreview( { setAttributes, hasIcon, icon } ) {\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! hasIcon }\n\t\t\t\tonDeselect={ () => setAttributes( { hasIcon: true } ) }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Configure the visual appearance of the button that toggles the overlay menu.'\n\t\t\t\t\t) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { hasIcon: value } )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ hasIcon }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Icon' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => icon !== 'handle' }\n\t\t\t\tonDeselect={ () => setAttributes( { icon: 'handle' } ) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"wp-block-navigation__overlay-menu-icon-toggle-group\"\n\t\t\t\t\tlabel={ __( 'Icon' ) }\n\t\t\t\t\tvalue={ icon }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { icon: value } ) }\n\t\t\t\t\tisBlock\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tvalue=\"handle\"\n\t\t\t\t\t\taria-label={ __( 'handle' ) }\n\t\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"handle\" /> }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tvalue=\"menu\"\n\t\t\t\t\t\taria-label={ __( 'menu' ) }\n\t\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"menu\" /> }\n\t\t\t\t\t/>\n\t\t\t\t</ToggleGroupControl>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport OverlayTemplatePartSelector from './overlay-template-part-selector';\nimport OverlayVisibilityControl from './overlay-visibility-control';\nimport OverlayMenuPreviewButton from './overlay-menu-preview-button';\n\n/**\n * Overlay Panel component for Navigation block.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlayMenu Overlay menu setting ('never', 'mobile', 'always').\n * @param {string} props.overlay Currently selected overlay template part ID.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @param {Function} props.onNavigateToEntityRecord Function to navigate to template part editor.\n * @param {boolean} props.overlayMenuPreview Whether overlay menu preview is open.\n * @param {Function} props.setOverlayMenuPreview Function to toggle overlay menu preview.\n * @param {boolean} props.hasIcon Whether the overlay menu has an icon.\n * @param {string} props.icon Icon type for overlay menu.\n * @param {string} props.overlayMenuPreviewClasses CSS classes for overlay menu preview button.\n * @param {string} props.overlayMenuPreviewId ID for overlay menu preview.\n * @param {boolean} props.isResponsive Whether overlay menu is responsive.\n * @return {JSX.Element|null} The overlay panel component or null if overlay is disabled.\n */\nexport default function OverlayPanel( {\n\toverlayMenu,\n\toverlay,\n\tsetAttributes,\n\tonNavigateToEntityRecord,\n\toverlayMenuPreview,\n\tsetOverlayMenuPreview,\n\thasIcon,\n\ticon,\n\toverlayMenuPreviewClasses,\n\toverlayMenuPreviewId,\n\tisResponsive,\n} ) {\n\treturn (\n\t\t<PanelBody title={ __( 'Overlay' ) } initialOpen>\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<OverlayVisibilityControl\n\t\t\t\t\toverlayMenu={ overlayMenu }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\n\t\t\t\t{ overlayMenu !== 'never' && (\n\t\t\t\t\t<OverlayMenuPreviewButton\n\t\t\t\t\t\tisResponsive={ isResponsive }\n\t\t\t\t\t\toverlayMenuPreview={ overlayMenuPreview }\n\t\t\t\t\t\tsetOverlayMenuPreview={ setOverlayMenuPreview }\n\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\toverlayMenuPreviewClasses={ overlayMenuPreviewClasses }\n\t\t\t\t\t\toverlayMenuPreviewId={ overlayMenuPreviewId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ overlayMenu !== 'never' && (\n\t\t\t\t\t<OverlayTemplatePartSelector\n\t\t\t\t\t\toverlay={ overlay }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonNavigateToEntityRecord={ onNavigateToEntityRecord }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</PanelBody>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMemo, useState, useCallback } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tSelectControl,\n\tButton,\n\tFlexBlock,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from '../../template-part/edit/utils/create-template-part-id';\nimport useCreateOverlayTemplatePart from './use-create-overlay';\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from '../constants';\n\n/**\n * Overlay Template Part Selector component.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlay Currently selected overlay template part ID.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @param {Function} props.onNavigateToEntityRecord Function to navigate to template part editor.\n * @return {JSX.Element} The overlay template part selector component.\n */\nexport default function OverlayTemplatePartSelector( {\n\toverlay,\n\tsetAttributes,\n\tonNavigateToEntityRecord,\n} ) {\n\tconst {\n\t\trecords: templateParts,\n\t\tisResolving,\n\t\thasResolved,\n\t} = useEntityRecords( 'postType', 'wp_template_part', {\n\t\tper_page: -1,\n\t} );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\t// Track if we're currently creating a new overlay\n\tconst [ isCreating, setIsCreating ] = useState( false );\n\n\t// Filter template parts by overlay area\n\tconst overlayTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn templateParts.filter(\n\t\t\t( templatePart ) =>\n\t\t\t\ttemplatePart.area === NAVIGATION_OVERLAY_TEMPLATE_PART_AREA\n\t\t);\n\t}, [ templateParts ] );\n\n\t// Hook to create overlay template part\n\tconst createOverlayTemplatePart =\n\t\tuseCreateOverlayTemplatePart( overlayTemplateParts );\n\n\t// Build options for SelectControl\n\tconst options = useMemo( () => {\n\t\tconst baseOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'None (default)' ),\n\t\t\t\tvalue: '',\n\t\t\t},\n\t\t];\n\n\t\tif ( ! hasResolved || isResolving ) {\n\t\t\treturn baseOptions;\n\t\t}\n\n\t\tconst templatePartOptions = overlayTemplateParts.map(\n\t\t\t( templatePart ) => {\n\t\t\t\tconst templatePartId = createTemplatePartId(\n\t\t\t\t\ttemplatePart.theme,\n\t\t\t\t\ttemplatePart.slug\n\t\t\t\t);\n\t\t\t\tconst label = templatePart.title?.rendered\n\t\t\t\t\t? decodeEntities( templatePart.title.rendered )\n\t\t\t\t\t: templatePart.slug;\n\n\t\t\t\treturn {\n\t\t\t\t\tlabel,\n\t\t\t\t\tvalue: templatePartId,\n\t\t\t\t};\n\t\t\t}\n\t\t);\n\n\t\treturn [ ...baseOptions, ...templatePartOptions ];\n\t}, [ overlayTemplateParts, hasResolved, isResolving ] );\n\n\t// Find the selected template part to get its title\n\tconst selectedTemplatePart = useMemo( () => {\n\t\tif ( ! overlay || ! overlayTemplateParts ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn overlayTemplateParts.find( ( templatePart ) => {\n\t\t\tconst templatePartId = createTemplatePartId(\n\t\t\t\ttemplatePart.theme,\n\t\t\t\ttemplatePart.slug\n\t\t\t);\n\t\t\treturn templatePartId === overlay;\n\t\t} );\n\t}, [ overlay, overlayTemplateParts ] );\n\n\tconst handleSelectChange = ( value ) => {\n\t\tsetAttributes( {\n\t\t\toverlay: value || undefined,\n\t\t} );\n\t};\n\n\tconst handleEditClick = () => {\n\t\tif ( ! overlay || ! onNavigateToEntityRecord ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: overlay,\n\t\t\tpostType: 'wp_template_part',\n\t\t} );\n\t};\n\n\tconst handleCreateOverlay = useCallback( async () => {\n\t\ttry {\n\t\t\tsetIsCreating( true );\n\n\t\t\tconst templatePart = await createOverlayTemplatePart();\n\n\t\t\tsetAttributes( {\n\t\t\t\toverlay: templatePart.id,\n\t\t\t} );\n\n\t\t\t// Navigate to the new overlay for editing\n\t\t\tif ( onNavigateToEntityRecord ) {\n\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t} );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// Error handling pattern matches CreateTemplatePartModalContents.\n\t\t\t// See: packages/fields/src/components/create-template-part-modal/index.tsx\n\t\t\t// The 'unknown_error' code check ensures generic error codes don't show\n\t\t\t// potentially confusing technical messages, instead showing a user-friendly fallback.\n\t\t\tconst errorMessage =\n\t\t\t\terror instanceof Error &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.message &&\n\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the overlay.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t} finally {\n\t\t\tsetIsCreating( false );\n\t\t}\n\t}, [\n\t\tcreateOverlayTemplatePart,\n\t\tsetAttributes,\n\t\tonNavigateToEntityRecord,\n\t\tcreateErrorNotice,\n\t] );\n\n\tconst isCreateButtonDisabled = isResolving || isCreating;\n\n\t// Build help text\n\tconst helpText = useMemo( () => {\n\t\tif ( overlayTemplateParts.length === 0 && hasResolved ) {\n\t\t\treturn __( 'No overlays found.' );\n\t\t}\n\t\treturn __( 'Select an overlay for navigation.' );\n\t}, [ overlayTemplateParts.length, hasResolved ] );\n\n\t// Tooltip/aria-label text for the edit button\n\tconst editButtonLabel = useMemo( () => {\n\t\treturn selectedTemplatePart\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %s: Overlay title. */\n\t\t\t\t\t__( 'Edit overlay: %s' ),\n\t\t\t\t\tselectedTemplatePart.title?.rendered\n\t\t\t\t\t\t? decodeEntities( selectedTemplatePart.title.rendered )\n\t\t\t\t\t\t: selectedTemplatePart.slug\n\t\t\t )\n\t\t\t: __( 'Edit overlay' );\n\t}, [ selectedTemplatePart ] );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__overlay-selector\">\n\t\t\t<Button\n\t\t\t\tsize=\"small\"\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ handleCreateOverlay }\n\t\t\t\tdisabled={ isCreateButtonDisabled }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tisBusy={ isCreating }\n\t\t\t\tlabel={ __( 'Create new overlay template' ) }\n\t\t\t\tshowTooltip\n\t\t\t\tclassName=\"wp-block-navigation__overlay-create-button\"\n\t\t\t/>\n\t\t\t<HStack alignment=\"flex-start\">\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Overlay template' ) }\n\t\t\t\t\t\tvalue={ overlay || '' }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ handleSelectChange }\n\t\t\t\t\t\tdisabled={ isResolving }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\thelp={ helpText }\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t{ overlay && hasResolved && selectedTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ handleEditClick }\n\t\t\t\t\t\t\tdisabled={ ! onNavigateToEntityRecord }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tlabel={ editButtonLabel }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation__overlay-edit-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</div>\n\t);\n}\n", "/**\n * Generates a template part Id based on slug and theme inputs.\n *\n * @param {string} theme the template part's theme.\n * @param {string} slug the template part's slug\n * @return {string|null} the template part's Id.\n */\nexport function createTemplatePartId( theme, slug ) {\n\treturn theme && slug ? theme + '//' + slug : null;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { serialize, createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from './utils';\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from '../constants';\n\n/**\n * Hook to create a new overlay template part.\n *\n * @param {Array} overlayTemplateParts Array of existing overlay template parts.\n * @return {function(): Promise<Object>} Function to create a new overlay template part.\n * The function returns a Promise that resolves to the created template part object.\n */\nexport default function useCreateOverlayTemplatePart( overlayTemplateParts ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst createOverlayTemplatePart = useCallback( async () => {\n\t\t// Generate unique name using only overlay area template parts\n\t\t// Filter to only include template parts with titles for uniqueness check\n\t\tconst templatePartsWithTitles = overlayTemplateParts.filter(\n\t\t\t( templatePart ) => templatePart.title?.rendered\n\t\t);\n\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t__( 'Overlay' ),\n\t\t\ttemplatePartsWithTitles\n\t\t);\n\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t// Create the template part\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t{\n\t\t\t\tslug: cleanSlug,\n\t\t\t\ttitle: uniqueTitle,\n\t\t\t\tcontent: serialize( [ createBlock( 'core/paragraph' ) ] ),\n\t\t\t\tarea: NAVIGATION_OVERLAY_TEMPLATE_PART_AREA,\n\t\t\t},\n\t\t\t{ throwOnError: true }\n\t\t);\n\n\t\treturn templatePart;\n\t}, [ overlayTemplateParts, saveEntityRecord ] );\n\n\treturn createOverlayTemplatePart;\n}\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n", "/**\n * Locale character mapping rules.\n */\ninterface Locale {\n regexp: RegExp;\n map: Record<string, string>;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record<string, Locale> = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str: string, locale: string) {\n const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang) return lowerCase(str.replace(lang.regexp, (m) => lang.map[m]));\n return lowerCase(str);\n}\n\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str: string) {\n return str.toLowerCase();\n}\n", "import { lowerCase } from \"lower-case\";\n\nexport interface Options {\n splitRegexp?: RegExp | RegExp[];\n stripRegexp?: RegExp | RegExp[];\n delimiter?: string;\n transform?: (part: string, index: number, parts: string[]) => string;\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nconst DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n\n// Remove all non-word characters.\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input: string, options: Options = {}) {\n const {\n splitRegexp = DEFAULT_SPLIT_REGEXP,\n stripRegexp = DEFAULT_STRIP_REGEXP,\n transform = lowerCase,\n delimiter = \" \",\n } = options;\n\n let result = replace(\n replace(input, splitRegexp, \"$1\\0$2\"),\n stripRegexp,\n \"\\0\"\n );\n let start = 0;\n let end = result.length;\n\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\") start++;\n while (result.charAt(end - 1) === \"\\0\") end--;\n\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input: string, re: RegExp | RegExp[], value: string) {\n if (re instanceof RegExp) return input.replace(re, value);\n return re.reduce((input, re) => input.replace(re, value), input);\n}\n", "/**\n * Upper case the first character of an input string.\n */\nexport function upperCaseFirst(input: string) {\n return input.charAt(0).toUpperCase() + input.substr(1);\n}\n", "import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function capitalCaseTransform(input: string) {\n return upperCaseFirst(input.toLowerCase());\n}\n\nexport function capitalCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \" \",\n transform: capitalCaseTransform,\n ...options,\n });\n}\n", "import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function dotCase(input: string, options: Options = {}) {\n return noCase(input, {\n delimiter: \".\",\n ...options,\n });\n}\n", "import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function paramCase(input: string, options: Options = {}) {\n return dotCase(input, {\n delimiter: \"-\",\n ...options,\n });\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport { paramCase as kebabCase } from 'change-case';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport function detectColors(\n\tcolorsDetectionElement,\n\tsetColor,\n\tsetBackground\n) {\n\tif ( ! colorsDetectionElement ) {\n\t\treturn;\n\t}\n\tsetColor( getComputedStyle( colorsDetectionElement ).color );\n\n\tlet backgroundColorNode = colorsDetectionElement;\n\tlet backgroundColor =\n\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\twhile (\n\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\tbackgroundColorNode.parentNode &&\n\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t) {\n\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\tbackgroundColor =\n\t\t\tgetComputedStyle( backgroundColorNode ).backgroundColor;\n\t}\n\n\tsetBackground( backgroundColor );\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nexport function getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\nexport function getNavigationChildBlockProps( innerBlocksColors ) {\n\treturn {\n\t\tclassName: clsx( 'wp-block-navigation__submenu-container', {\n\t\t\t'has-text-color': !! (\n\t\t\t\tinnerBlocksColors.textColor || innerBlocksColors.customTextColor\n\t\t\t),\n\t\t\t[ `has-${ innerBlocksColors.textColor }-color` ]:\n\t\t\t\t!! innerBlocksColors.textColor,\n\t\t\t'has-background': !! (\n\t\t\t\tinnerBlocksColors.backgroundColor ||\n\t\t\t\tinnerBlocksColors.customBackgroundColor\n\t\t\t),\n\t\t\t[ `has-${ innerBlocksColors.backgroundColor }-background-color` ]:\n\t\t\t\t!! innerBlocksColors.backgroundColor,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: innerBlocksColors.customTextColor,\n\t\t\tbackgroundColor: innerBlocksColors.customBackgroundColor,\n\t\t},\n\t};\n}\n\n/**\n * Return a unique template part title based on\n * the given title and existing template parts.\n *\n * This implementation is copied from:\n * packages/fields/src/components/create-template-part-modal/utils.js\n *\n * @param {string} title The original template part title.\n * @param {Object} templateParts The array of template part entities.\n * @return {string} A unique template part title.\n */\nexport const getUniqueTemplatePartTitle = ( title, templateParts ) => {\n\tconst lowercaseTitle = title.toLowerCase();\n\tconst existingTitles = templateParts.map( ( templatePart ) =>\n\t\ttemplatePart.title.rendered.toLowerCase()\n\t);\n\n\tif ( ! existingTitles.includes( lowercaseTitle ) ) {\n\t\treturn title;\n\t}\n\n\tlet suffix = 2;\n\twhile ( existingTitles.includes( `${ lowercaseTitle } ${ suffix }` ) ) {\n\t\tsuffix++;\n\t}\n\n\treturn `${ title } ${ suffix }`;\n};\n\n/**\n * Get a valid slug for a template part.\n * Currently template parts only allow latin chars.\n * The fallback slug will receive suffix by default.\n *\n * This implementation is copied from:\n * packages/fields/src/components/create-template-part-modal/utils.js\n *\n * @param {string} title The template part title.\n * @return {string} A valid template part slug.\n */\nexport const getCleanTemplatePartSlug = ( title ) => {\n\treturn kebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n};\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Overlay Visibility Control component.\n *\n * @param {Object} props Component props.\n * @param {string} props.overlayMenu Overlay menu setting ('never', 'mobile', 'always').\n * @param {Function} props.setAttributes Function to update block attributes.\n * @return {JSX.Element} The overlay visibility control.\n */\nexport default function OverlayVisibilityControl( {\n\toverlayMenu,\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Overlay Visibility' ) }\n\t\t\taria-label={ __( 'Configure overlay visibility' ) }\n\t\t\tvalue={ overlayMenu }\n\t\t\thelp={ __(\n\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\n\t\t\t) }\n\t\t\tonChange={ ( value ) => setAttributes( { overlayMenu: value } ) }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption value=\"never\" label={ __( 'Off' ) } />\n\t\t\t<ToggleGroupControlOption value=\"mobile\" label={ __( 'Mobile' ) } />\n\t\t\t<ToggleGroupControlOption value=\"always\" label={ __( 'Always' ) } />\n\t\t</ToggleGroupControl>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Button, __experimentalVStack as VStack } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreviewControls from './overlay-menu-preview-controls';\n\n/**\n * Overlay Menu Preview Button component.\n *\n * @param {Object} props Component props.\n * @param {boolean} props.isResponsive Whether overlay menu is responsive.\n * @param {boolean} props.overlayMenuPreview Whether overlay menu preview is open.\n * @param {Function} props.setOverlayMenuPreview Function to toggle overlay menu preview.\n * @param {boolean} props.hasIcon Whether the overlay menu has an icon.\n * @param {string} props.icon Icon type for overlay menu.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @param {string} props.overlayMenuPreviewClasses CSS classes for overlay menu preview button.\n * @param {string} props.overlayMenuPreviewId ID for overlay menu preview.\n * @param {string} props.containerStyle Optional style for the preview container.\n * @return {JSX.Element|null} The overlay menu preview button or null if not responsive.\n */\nexport default function OverlayMenuPreviewButton( {\n\tisResponsive,\n\toverlayMenuPreview,\n\tsetOverlayMenuPreview,\n\thasIcon,\n\ticon,\n\tsetAttributes,\n\toverlayMenuPreviewClasses,\n\toverlayMenuPreviewId,\n\tcontainerStyle,\n} ) {\n\tif ( ! isResponsive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\tonClick={ () => setOverlayMenuPreview( ! overlayMenuPreview ) }\n\t\t\t\taria-label={ __( 'Overlay menu controls' ) }\n\t\t\t\taria-controls={ overlayMenuPreviewId }\n\t\t\t\taria-expanded={ overlayMenuPreview }\n\t\t\t>\n\t\t\t\t{ hasIcon && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t<Icon icon={ close } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ ! hasIcon && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t\t{ overlayMenuPreview && (\n\t\t\t\t<VStack\n\t\t\t\t\tid={ overlayMenuPreviewId }\n\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\tstyle={ containerStyle }\n\t\t\t\t>\n\t\t\t\t\t<OverlayMenuPreviewControls\n\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport OverlayMenuIcon from './overlay-menu-icon';\n\n/**\n * Overlay Menu Preview Controls component.\n * Used within PanelBody context (not ToolsPanel).\n *\n * @param {Object} props Component props.\n * @param {boolean} props.hasIcon Whether the overlay menu has an icon.\n * @param {string} props.icon Icon type for overlay menu.\n * @param {Function} props.setAttributes Function to update block attributes.\n * @return {JSX.Element} The overlay menu preview controls.\n */\nexport default function OverlayMenuPreviewControls( {\n\thasIcon,\n\ticon,\n\tsetAttributes,\n} ) {\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Show icon button' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Configure the visual appearance of the button that toggles the overlay menu.'\n\t\t\t\t) }\n\t\t\t\tonChange={ ( value ) => setAttributes( { hasIcon: value } ) }\n\t\t\t\tchecked={ hasIcon }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tclassName=\"wp-block-navigation__overlay-menu-icon-toggle-group\"\n\t\t\t\tlabel={ __( 'Icon' ) }\n\t\t\t\tvalue={ icon }\n\t\t\t\tonChange={ ( value ) => setAttributes( { icon: value } ) }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"handle\"\n\t\t\t\t\taria-label={ __( 'handle' ) }\n\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"handle\" /> }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"menu\"\n\t\t\t\t\taria-label={ __( 'menu' ) }\n\t\t\t\t\tlabel={ <OverlayMenuIcon icon=\"menu\" /> }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t</VStack>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useRegistry, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport menuItemsToBlocks from '../menu-items-to-blocks';\n\nexport const CLASSIC_MENU_CONVERSION_SUCCESS = 'success';\nexport const CLASSIC_MENU_CONVERSION_ERROR = 'error';\nexport const CLASSIC_MENU_CONVERSION_PENDING = 'pending';\nexport const CLASSIC_MENU_CONVERSION_IDLE = 'idle';\n\n// This is needed to ensure that multiple components using this hook\n// do not import the same classic menu twice.\nlet classicMenuBeingConvertedId = null;\n\nfunction useConvertClassicToBlockMenu(\n\tcreateNavigationMenu,\n\t{ throwOnError = false } = {}\n) {\n\tconst registry = useRegistry();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst [ status, setStatus ] = useState( CLASSIC_MENU_CONVERSION_IDLE );\n\tconst [ error, setError ] = useState( null );\n\n\tconst convertClassicMenuToBlockMenu = useCallback(\n\t\tasync ( menuId, menuName, postStatus = 'publish' ) => {\n\t\t\tlet navigationMenu;\n\t\t\tlet classicMenuItems;\n\n\t\t\t// 1. Fetch the classic Menu items.\n\t\t\ttry {\n\t\t\t\tclassicMenuItems = await registry\n\t\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t\t.getMenuItems( {\n\t\t\t\t\t\tmenus: menuId,\n\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} );\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The name of a menu (e.g. Header menu).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Handle offline response which resolves to `null`.\n\t\t\tif ( classicMenuItems === null ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The name of a menu (e.g. Header menu).\n\t\t\t\t\t\t__( `Unable to fetch classic menu \"%s\" from API.` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// 2. Convert the classic items into blocks.\n\t\t\tconst { innerBlocks } = menuItemsToBlocks( classicMenuItems );\n\n\t\t\t// 3. Create the `wp_navigation` Post with the blocks.\n\t\t\ttry {\n\t\t\t\tnavigationMenu = await createNavigationMenu(\n\t\t\t\t\tmenuName,\n\t\t\t\t\tinnerBlocks,\n\t\t\t\t\tpostStatus\n\t\t\t\t);\n\n\t\t\t\t/**\n\t\t\t\t * Immediately trigger editEntityRecord to change the wp_navigation post status to 'publish'.\n\t\t\t\t * This status change causes the menu to be displayed on the front of the site and sets the post state to be \"dirty\".\n\t\t\t\t * The problem being solved is if saveEditedEntityRecord was used here, the menu would be updated on the frontend and the editor _automatically_,\n\t\t\t\t * without user interaction.\n\t\t\t\t * If the user abandons the site editor without saving, there would still be a wp_navigation post created as draft.\n\t\t\t\t */\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_navigation',\n\t\t\t\t\tnavigationMenu.id,\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\t},\n\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t);\n\t\t\t} catch ( err ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The name of a menu (e.g. Header menu).\n\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\tmenuName\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn navigationMenu;\n\t\t},\n\t\t[ createNavigationMenu, editEntityRecord, registry ]\n\t);\n\n\tconst convert = useCallback(\n\t\tasync ( menuId, menuName, postStatus ) => {\n\t\t\t// Check whether this classic menu is being imported already.\n\t\t\tif ( classicMenuBeingConvertedId === menuId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ID for the currently importing classic menu.\n\t\t\tclassicMenuBeingConvertedId = menuId;\n\n\t\t\tif ( ! menuId || ! menuName ) {\n\t\t\t\tsetError( 'Unable to convert menu. Missing menu details.' );\n\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_PENDING );\n\t\t\tsetError( null );\n\n\t\t\treturn await convertClassicMenuToBlockMenu(\n\t\t\t\tmenuId,\n\t\t\t\tmenuName,\n\t\t\t\tpostStatus\n\t\t\t)\n\t\t\t\t.then( ( navigationMenu ) => {\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_SUCCESS );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\t\t\t\t\treturn navigationMenu;\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tsetStatus( CLASSIC_MENU_CONVERSION_ERROR );\n\n\t\t\t\t\t// Reset the ID for the currently importing classic menu.\n\t\t\t\t\tclassicMenuBeingConvertedId = null;\n\n\t\t\t\t\t// Rethrow error for debugging.\n\t\t\t\t\tif ( throwOnError ) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The name of a menu (e.g. Header menu).\n\t\t\t\t\t\t\t\t__( `Unable to create Navigation Menu \"%s\".` ),\n\t\t\t\t\t\t\t\tmenuName\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcause: err,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t},\n\t\t[ convertClassicMenuToBlockMenu, throwOnError ]\n\t);\n\n\treturn {\n\t\tconvert,\n\t\tstatus,\n\t\terror,\n\t};\n}\n\nexport default useConvertClassicToBlockMenu;\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { buildNavigationLinkEntityBinding } from '../navigation-link/shared/use-entity-binding';\n\n/**\n * Convert a flat menu item structure to a nested blocks structure.\n *\n * @param {Object[]} menuItems An array of menu items.\n *\n * @return {WPBlock[]} An array of blocks.\n */\nexport default function menuItemsToBlocks( menuItems ) {\n\tif ( ! menuItems ) {\n\t\treturn null;\n\t}\n\n\tconst menuTree = createDataTree( menuItems );\n\tconst blocks = mapMenuItemsToBlocks( menuTree );\n\treturn applyFilters(\n\t\t'blocks.navigation.__unstableMenuItemsToBlocks',\n\t\tblocks,\n\t\tmenuItems\n\t);\n}\n\n/**\n * A recursive function that maps menu item nodes to blocks.\n *\n * @param {WPNavMenuItem[]} menuItems An array of WPNavMenuItem items.\n * @param {number} level An integer representing the nesting level.\n * @return {Object} Object containing innerBlocks and mapping.\n */\nfunction mapMenuItemsToBlocks( menuItems, level = 0 ) {\n\tlet mapping = {};\n\n\t// The menuItem should be in menu_order sort order.\n\tconst sortedItems = [ ...menuItems ].sort(\n\t\t( a, b ) => a.menu_order - b.menu_order\n\t);\n\n\tconst innerBlocks = sortedItems.map( ( menuItem ) => {\n\t\tif ( menuItem.type === 'block' ) {\n\t\t\tconst [ block ] = parse( menuItem.content.raw );\n\n\t\t\tif ( ! block ) {\n\t\t\t\treturn createBlock( 'core/freeform', {\n\t\t\t\t\tcontent: menuItem.content,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn block;\n\t\t}\n\n\t\tconst blockType = menuItem.children?.length\n\t\t\t? 'core/navigation-submenu'\n\t\t\t: 'core/navigation-link';\n\n\t\tconst attributes = menuItemToBlockAttributes(\n\t\t\tmenuItem,\n\t\t\tblockType,\n\t\t\tlevel\n\t\t);\n\n\t\t// If there are children recurse to build those nested blocks.\n\t\tconst {\n\t\t\tinnerBlocks: nestedBlocks = [], // alias to avoid shadowing\n\t\t\tmapping: nestedMapping = {}, // alias to avoid shadowing\n\t\t} = menuItem.children?.length\n\t\t\t? mapMenuItemsToBlocks( menuItem.children, level + 1 )\n\t\t\t: {};\n\n\t\t// Update parent mapping with nested mapping.\n\t\tmapping = {\n\t\t\t...mapping,\n\t\t\t...nestedMapping,\n\t\t};\n\n\t\t// Create block with nested \"innerBlocks\".\n\t\tconst block = createBlock( blockType, attributes, nestedBlocks );\n\n\t\t// Create mapping for menuItem -> block.\n\t\tmapping[ menuItem.id ] = block.clientId;\n\n\t\treturn block;\n\t} );\n\n\treturn {\n\t\tinnerBlocks,\n\t\tmapping,\n\t};\n}\n\n/**\n * A WP nav_menu_item object.\n * For more documentation on the individual fields present on a menu item please see:\n * https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/nav-menu.php#L789\n *\n * @typedef WPNavMenuItem\n *\n * @property {Object} title stores the raw and rendered versions of the title/label for this menu item.\n * @property {Array} xfn the XFN relationships expressed in the link of this menu item.\n * @property {Array} classes the HTML class attributes for this menu item.\n * @property {string} attr_title the HTML title attribute for this menu item.\n * @property {string} object The type of object originally represented, such as 'category', 'post', or 'attachment'.\n * @property {string} object_id The DB ID of the original object this menu item represents, e.g. ID for posts and term_id for categories.\n * @property {string} description The description of this menu item.\n * @property {string} url The URL to which this menu item points.\n * @property {string} type The family of objects originally represented, such as 'post_type' or 'taxonomy'.\n * @property {string} target The target attribute of the link element for this menu item.\n */\n\n/**\n * Convert block attributes to menu item.\n *\n * @param {WPNavMenuItem} menuItem the menu item to be converted to block attributes.\n * @param {string} blockType The block type.\n * @param {number} level An integer representing the nesting level.\n * @return {Object} the block attributes converted from the WPNavMenuItem item.\n */\nfunction menuItemToBlockAttributes(\n\t{\n\t\ttitle: menuItemTitleField,\n\t\txfn,\n\t\tclasses,\n\t\t// eslint-disable-next-line camelcase\n\t\tattr_title,\n\t\tobject,\n\t\t// eslint-disable-next-line camelcase\n\t\tobject_id,\n\t\tdescription,\n\t\turl,\n\t\ttype: menuItemTypeField,\n\t\ttarget,\n\t},\n\tblockType,\n\tlevel\n) {\n\t// For historical reasons, the `core/navigation-link` variation type is `tag`\n\t// whereas WP Core expects `post_tag` as the `object` type.\n\t// To avoid writing a block migration we perform a conversion here.\n\t// See also inverse equivalent in `blockAttributesToMenuItem`.\n\tif ( object && object === 'post_tag' ) {\n\t\tobject = 'tag';\n\t}\n\n\tconst inferredKind = menuItemTypeField?.replace( '_', '-' ) || 'custom';\n\n\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: inferredKind,\n\t\turl: url || '',\n\t\t...( xfn?.length &&\n\t\t\txfn.join( ' ' ).trim() && {\n\t\t\t\trel: xfn.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t...( classes?.length &&\n\t\t\tclasses.join( ' ' ).trim() && {\n\t\t\t\tclassName: classes.join( ' ' ).trim(),\n\t\t\t} ),\n\t\t/* eslint-disable camelcase */\n\t\t...( attr_title?.length && {\n\t\t\ttitle: attr_title,\n\t\t} ),\n\t\t...( object_id &&\n\t\t\t( inferredKind === 'post-type' || inferredKind === 'taxonomy' ) && {\n\t\t\t\tid: object_id,\n\t\t\t\tmetadata: {\n\t\t\t\t\tbindings: buildNavigationLinkEntityBinding( inferredKind ),\n\t\t\t\t},\n\t\t\t} ),\n\t\t/* eslint-enable camelcase */\n\t\t...( description?.length && {\n\t\t\tdescription,\n\t\t} ),\n\t\t...( target === '_blank' && {\n\t\t\topensInNewTab: true,\n\t\t} ),\n\t\t...( blockType === 'core/navigation-submenu' && {\n\t\t\tisTopLevelItem: level === 0,\n\t\t} ),\n\t\t...( blockType === 'core/navigation-link' && {\n\t\t\tisTopLevelLink: level === 0,\n\t\t} ),\n\t};\n}\n\n/**\n * Creates a nested, hierarchical tree representation from unstructured data that\n * has an inherent relationship defined between individual items.\n *\n * For example, by default, each element in the dataset should have an `id` and\n * `parent` property where the `parent` property indicates a relationship between\n * the current item and another item with a matching `id` properties.\n *\n * This is useful for building linked lists of data from flat data structures.\n *\n * @param {Array} dataset linked data to be rearranged into a hierarchical tree based on relational fields.\n * @param {string} id the property which uniquely identifies each entry within the array.\n * @param {*} relation the property which identifies how the current item is related to other items in the data (if at all).\n * @return {Array} a nested array of parent/child relationships\n */\nfunction createDataTree( dataset, id = 'id', relation = 'parent' ) {\n\tconst hashTable = Object.create( null );\n\tconst dataTree = [];\n\n\tfor ( const data of dataset ) {\n\t\thashTable[ data[ id ] ] = {\n\t\t\t...data,\n\t\t\tchildren: [],\n\t\t};\n\t\tif ( data[ relation ] ) {\n\t\t\thashTable[ data[ relation ] ] = hashTable[ data[ relation ] ] || {};\n\t\t\thashTable[ data[ relation ] ].children =\n\t\t\t\thashTable[ data[ relation ] ].children || [];\n\t\t\thashTable[ data[ relation ] ].children.push(\n\t\t\t\thashTable[ data[ id ] ]\n\t\t\t);\n\t\t} else {\n\t\t\tdataTree.push( hashTable[ data[ id ] ] );\n\t\t}\n\t}\n\n\treturn dataTree;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport {\n\tuseBlockBindingsUtils,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Builds entity binding configuration for navigation link URLs.\n * This function generates the structure used to bind navigation link URLs to their entity sources.\n *\n * Using a function instead of a constant allows for future enhancements where the binding\n * might need dynamic data (e.g., entity ID, context-specific arguments).\n *\n * @param {('post-type'|'taxonomy')} kind - The kind of entity. Only 'post-type' and 'taxonomy' are supported.\n * @return {Object} Entity binding configuration object\n * @throws {Error} If kind is not 'post-type' or 'taxonomy'\n */\nexport function buildNavigationLinkEntityBinding( kind ) {\n\t// Validate kind parameter exists.\n\tif ( kind === undefined ) {\n\t\tthrow new Error(\n\t\t\t'buildNavigationLinkEntityBinding requires a kind parameter. ' +\n\t\t\t\t'Only \"post-type\" and \"taxonomy\" are supported.'\n\t\t);\n\t}\n\n\t// Validate kind parameter value.\n\tif ( kind !== 'post-type' && kind !== 'taxonomy' ) {\n\t\tthrow new Error(\n\t\t\t`Invalid kind \"${ kind }\" provided to buildNavigationLinkEntityBinding. ` +\n\t\t\t\t`Only 'post-type' and 'taxonomy' are supported.`\n\t\t);\n\t}\n\n\tconst source = kind === 'taxonomy' ? 'core/term-data' : 'core/post-data';\n\n\treturn {\n\t\turl: {\n\t\t\tsource,\n\t\t\targs: {\n\t\t\t\tfield: 'link',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Shared hook for entity binding functionality in Navigation blocks.\n *\n * This hook provides common entity binding logic that can be used by both\n * Navigation Link and Navigation Submenu blocks to maintain feature parity.\n *\n * @param {Object} props - Hook parameters\n * @param {string} props.clientId - Block client ID\n * @param {Object} props.attributes - Block attributes\n * @return {Object} Hook return value\n */\nexport function useEntityBinding( { clientId, attributes } ) {\n\tconst { updateBlockBindings } = useBlockBindingsUtils( clientId );\n\tconst { metadata, id, kind, type } = attributes;\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst hasUrlBinding = !! metadata?.bindings?.url && !! id;\n\tconst expectedSource =\n\t\tkind === 'post-type' ? 'core/post-data' : 'core/term-data';\n\tconst hasCorrectBinding =\n\t\thasUrlBinding && metadata?.bindings?.url?.source === expectedSource;\n\n\t// Check if the bound entity is available (not deleted) and return the entity record.\n\tconst { isBoundEntityAvailable, entityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\t// First check: metadata/binding must exist\n\t\t\tif ( ! hasCorrectBinding || ! id ) {\n\t\t\t\treturn { isBoundEntityAvailable: false, entityRecord: null };\n\t\t\t}\n\n\t\t\tconst isPostType = kind === 'post-type';\n\t\t\tconst isTaxonomy = kind === 'taxonomy';\n\n\t\t\t// Only check entity availability for post types and taxonomies.\n\t\t\tif ( ! isPostType && ! isTaxonomy ) {\n\t\t\t\treturn { isBoundEntityAvailable: false, entityRecord: null };\n\t\t\t}\n\n\t\t\t// Skip check in disabled contexts to avoid unnecessary requests.\n\t\t\tif ( blockEditingMode === 'disabled' ) {\n\t\t\t\treturn { isBoundEntityAvailable: true, entityRecord: null };\n\t\t\t}\n\n\t\t\t// Second check: entity must exist\n\t\t\tconst { getEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\n\t\t\t// Use the correct entity type based on kind.\n\t\t\tconst entityType = isTaxonomy ? 'taxonomy' : 'postType';\n\t\t\t// Convert 'tag' back to 'post_tag' for the API call\n\t\t\t// (it was converted from 'post_tag' to 'tag' for storage in updateAttributes)\n\t\t\tconst typeForAPI = type === 'tag' ? 'post_tag' : type;\n\t\t\tconst record = getEntityRecord( entityType, typeForAPI, id );\n\t\t\tconst hasResolved = hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\tentityType,\n\t\t\t\ttypeForAPI,\n\t\t\t\tid,\n\t\t\t] );\n\n\t\t\t// If resolution has finished and entityRecord is undefined, the entity was deleted.\n\t\t\t// Return true if entity exists, false if deleted.\n\t\t\tconst isAvailable = hasResolved ? record !== undefined : true;\n\t\t\treturn {\n\t\t\t\tisBoundEntityAvailable: isAvailable,\n\t\t\t\tentityRecord: record || null,\n\t\t\t};\n\t\t},\n\t\t[ kind, type, id, hasCorrectBinding, blockEditingMode ]\n\t);\n\n\tconst clearBinding = useCallback( () => {\n\t\tif ( hasUrlBinding ) {\n\t\t\tupdateBlockBindings( { url: undefined } );\n\t\t}\n\t}, [ updateBlockBindings, hasUrlBinding ] );\n\n\tconst createBinding = useCallback(\n\t\t( updatedAttributes ) => {\n\t\t\t// Use updated attributes if provided, otherwise fall back to closure attributes.\n\t\t\t// updatedAttributes needed to access the most up-to-date data when called synchronously.\n\t\t\tconst kindToUse = updatedAttributes?.kind ?? kind;\n\n\t\t\t// Avoid creating binding if no kind is provided.\n\t\t\tif ( ! kindToUse ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst binding = buildNavigationLinkEntityBinding( kindToUse );\n\t\t\t\tupdateBlockBindings( binding );\n\t\t\t} catch ( error ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'Failed to create entity binding:',\n\t\t\t\t\terror.message\n\t\t\t\t);\n\t\t\t\t// Don't create binding if validation fails.\n\t\t\t}\n\t\t},\n\t\t[ updateBlockBindings, kind ]\n\t);\n\n\treturn {\n\t\thasUrlBinding: hasCorrectBinding,\n\t\tisBoundEntityAvailable,\n\t\tentityRecord,\n\t\tclearBinding,\n\t\tcreateBinding,\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { serialize } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useGenerateDefaultNavigationTitle from './use-generate-default-navigation-title';\n\nexport const CREATE_NAVIGATION_MENU_SUCCESS = 'success';\nexport const CREATE_NAVIGATION_MENU_ERROR = 'error';\nexport const CREATE_NAVIGATION_MENU_PENDING = 'pending';\nexport const CREATE_NAVIGATION_MENU_IDLE = 'idle';\n\nexport default function useCreateNavigationMenu( clientId ) {\n\tconst [ status, setStatus ] = useState( CREATE_NAVIGATION_MENU_IDLE );\n\tconst [ value, setValue ] = useState( null );\n\tconst [ error, setError ] = useState( null );\n\n\tconst { saveEntityRecord, editEntityRecord } = useDispatch( coreStore );\n\tconst generateDefaultTitle = useGenerateDefaultNavigationTitle( clientId );\n\n\t// This callback uses data from the two placeholder steps and only creates\n\t// a new navigation menu when the user completes the final step.\n\tconst create = useCallback(\n\t\tasync ( title = null, blocks = [], postStatus ) => {\n\t\t\t// Guard against creating Navigations without a title.\n\t\t\t// Note you can pass no title, but if one is passed it must be\n\t\t\t// a string otherwise the title may end up being empty.\n\t\t\tif ( title && typeof title !== 'string' ) {\n\t\t\t\tsetError(\n\t\t\t\t\t'Invalid title supplied when creating Navigation Menu.'\n\t\t\t\t);\n\t\t\t\tsetStatus( CREATE_NAVIGATION_MENU_ERROR );\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Value of supplied title argument was not a string.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetStatus( CREATE_NAVIGATION_MENU_PENDING );\n\t\t\tsetValue( null );\n\t\t\tsetError( null );\n\n\t\t\tif ( ! title ) {\n\t\t\t\ttitle = await generateDefaultTitle().catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\tsetStatus( CREATE_NAVIGATION_MENU_ERROR );\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Failed to create title when saving new Navigation Menu.',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcause: err,\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\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\tstatus: postStatus,\n\t\t\t};\n\n\t\t\t// Return affords ability to await on this function directly\n\t\t\treturn saveEntityRecord( 'postType', 'wp_navigation', record )\n\t\t\t\t.then( ( response ) => {\n\t\t\t\t\tsetValue( response );\n\t\t\t\t\tsetStatus( CREATE_NAVIGATION_MENU_SUCCESS );\n\n\t\t\t\t\t// Set the status to publish so that the Navigation block\n\t\t\t\t\t// shows up in the multi entity save flow.\n\t\t\t\t\tif ( postStatus !== 'publish' ) {\n\t\t\t\t\t\teditEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t'wp_navigation',\n\t\t\t\t\t\t\tresponse.id,\n\t\t\t\t\t\t\t{ status: 'publish' }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn response;\n\t\t\t\t} )\n\t\t\t\t.catch( ( err ) => {\n\t\t\t\t\tsetError( err?.message );\n\t\t\t\t\tsetStatus( CREATE_NAVIGATION_MENU_ERROR );\n\t\t\t\t\tthrow new Error( 'Unable to save new Navigation Menu', {\n\t\t\t\t\t\tcause: err,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t},\n\t\t[ saveEntityRecord, editEntityRecord, generateDefaultTitle ]\n\t);\n\n\treturn {\n\t\tcreate,\n\t\tstatus,\n\t\tvalue,\n\t\terror,\n\t\tisIdle: status === CREATE_NAVIGATION_MENU_IDLE,\n\t\tisPending: status === CREATE_NAVIGATION_MENU_PENDING,\n\t\tisSuccess: status === CREATE_NAVIGATION_MENU_SUCCESS,\n\t\tisError: status === CREATE_NAVIGATION_MENU_ERROR,\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useRegistry } from '@wordpress/data';\nimport { useContext, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useTemplatePartAreaLabel from '../use-template-part-area-label';\n\nconst DRAFT_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ status: 'draft', per_page: -1 },\n];\n\nconst PUBLISHED_MENU_PARAMS = [\n\t'postType',\n\t'wp_navigation',\n\t{ per_page: -1, status: 'publish' },\n];\n\nexport default function useGenerateDefaultNavigationTitle( clientId ) {\n\t// The block will be disabled in a block preview, use this as a way of\n\t// avoiding the side-effects of this component for block previews.\n\tconst isDisabled = useContext( Disabled.Context );\n\n\t// Because we can't conditionally call hooks, pass an undefined client id\n\t// arg to bypass the expensive `useTemplateArea` code. The hook will return\n\t// early.\n\tconst area = useTemplatePartAreaLabel( isDisabled ? undefined : clientId );\n\n\tconst registry = useRegistry();\n\treturn useCallback( async () => {\n\t\t// Ensure other navigation menus have loaded so an\n\t\t// accurate name can be created.\n\t\tif ( isDisabled ) {\n\t\t\treturn '';\n\t\t}\n\t\tconst { getEntityRecords } = registry.resolveSelect( coreStore );\n\n\t\tconst [ draftNavigationMenus, navigationMenus ] = await Promise.all( [\n\t\t\tgetEntityRecords( ...DRAFT_MENU_PARAMS ),\n\t\t\tgetEntityRecords( ...PUBLISHED_MENU_PARAMS ),\n\t\t] );\n\n\t\tconst title = area\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: the name of a menu (e.g. Header menu).\n\t\t\t\t\t__( '%s menu' ),\n\t\t\t\t\tarea\n\t\t\t )\n\t\t\t: // translators: 'menu' as in website navigation menu.\n\t\t\t __( 'Menu' );\n\n\t\t// Determine how many menus start with the automatic title.\n\t\tconst matchingMenuTitleCount = [\n\t\t\t...draftNavigationMenus,\n\t\t\t...navigationMenus,\n\t\t].reduce(\n\t\t\t( count, menu ) =>\n\t\t\t\tmenu?.title?.raw?.startsWith( title ) ? count + 1 : count,\n\t\t\t0\n\t\t);\n\n\t\t// Append a number to the end of the title if a menu with\n\t\t// the same name exists.\n\t\tconst titleWithCount =\n\t\t\tmatchingMenuTitleCount > 0\n\t\t\t\t? `${ title } ${ matchingMenuTitleCount + 1 }`\n\t\t\t\t: title;\n\n\t\treturn titleWithCount || '';\n\t}, [ isDisabled, area, registry ] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\n\n// TODO: this util should perhaps be refactored somewhere like core-data.\nimport { createTemplatePartId } from '../template-part/edit/utils/create-template-part-id';\nimport { getTemplatePartIcon } from '../template-part/edit/utils/get-template-part-icon';\n\nexport default function useTemplatePartAreaLabel( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\t// Use the lack of a clientId as an opportunity to bypass the rest\n\t\t\t// of this hook.\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { getBlock, getBlockParentsByBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst withAscendingResults = true;\n\t\t\tconst parentTemplatePartClientIds = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/template-part',\n\t\t\t\twithAscendingResults\n\t\t\t);\n\n\t\t\tif ( ! parentTemplatePartClientIds?.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { getCurrentTheme, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst currentTheme = getCurrentTheme();\n\t\t\tconst defaultTemplatePartAreas =\n\t\t\t\tcurrentTheme?.default_template_part_areas || [];\n\n\t\t\tconst definedAreas = defaultTemplatePartAreas.map( ( item ) => ( {\n\t\t\t\t...item,\n\t\t\t\ticon: getTemplatePartIcon( item.icon ),\n\t\t\t} ) );\n\n\t\t\tfor ( const templatePartClientId of parentTemplatePartClientIds ) {\n\t\t\t\tconst templatePartBlock = getBlock( templatePartClientId );\n\n\t\t\t\t// The 'area' usually isn't stored on the block, but instead\n\t\t\t\t// on the entity.\n\t\t\t\tconst { theme = currentTheme?.stylesheet, slug } =\n\t\t\t\t\ttemplatePartBlock.attributes;\n\t\t\t\tconst templatePartEntityId = createTemplatePartId(\n\t\t\t\t\ttheme,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t\tconst templatePartEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template_part',\n\t\t\t\t\ttemplatePartEntityId\n\t\t\t\t);\n\n\t\t\t\t// Look up the `label` for the area in the defined areas so\n\t\t\t\t// that an internationalized label can be used.\n\t\t\t\tif ( templatePartEntity?.area ) {\n\t\t\t\t\treturn definedAreas.find(\n\t\t\t\t\t\t( definedArea ) =>\n\t\t\t\t\t\t\tdefinedArea.area !== 'uncategorized' &&\n\t\t\t\t\t\t\tdefinedArea.area === templatePartEntity.area\n\t\t\t\t\t)?.label;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\ttableColumnAfter as overlayIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\n/**\n * Helper function to retrieve the corresponding icon by area name or icon name.\n *\n * @param {string} areaOrIconName The area name (e.g., 'header', 'navigation-overlay') or icon name (e.g., 'menu').\n *\n * @return {Object} The corresponding icon.\n */\nexport const getTemplatePartIcon = ( areaOrIconName ) => {\n\t// Handle area names first\n\tif ( 'header' === areaOrIconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === areaOrIconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === areaOrIconName ) {\n\t\treturn sidebarIcon;\n\t} else if ( 'overlay' === areaOrIconName ) {\n\t\t// TODO: Replace with a proper overlay icon when available.\n\t\t// Using tableColumnAfter as a placeholder.\n\t\treturn overlayIcon;\n\t}\n\t// Handle icon names for backwards compatibility\n\tif ( 'menu' === areaOrIconName ) {\n\t\t// TODO: Replace with a proper overlay icon when available.\n\t\t// Using tableColumnAfter as a placeholder.\n\t\treturn overlayIcon;\n\t}\n\treturn symbolFilledIcon;\n};\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst EMPTY_ARRAY = [];\n\nexport function useInnerBlocks( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlocks, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\t// This relies on the fact that `getBlock` won't return controlled\n\t\t\t// inner blocks, while `getBlocks` does. It might be more stable to\n\t\t\t// introduce a selector like `getUncontrolledInnerBlocks`, just in\n\t\t\t// case `getBlock` is fixed.\n\t\t\tconst _uncontrolledInnerBlocks = getBlock( clientId ).innerBlocks;\n\n\t\t\tconst _hasUncontrolledInnerBlocks =\n\t\t\t\t!! _uncontrolledInnerBlocks?.length;\n\t\t\tconst _controlledInnerBlocks = _hasUncontrolledInnerBlocks\n\t\t\t\t? EMPTY_ARRAY\n\t\t\t\t: getBlocks( clientId );\n\n\t\t\treturn {\n\t\t\t\tinnerBlocks: _hasUncontrolledInnerBlocks\n\t\t\t\t\t? _uncontrolledInnerBlocks\n\t\t\t\t\t: _controlledInnerBlocks,\n\t\t\t\thasUncontrolledInnerBlocks: _hasUncontrolledInnerBlocks,\n\t\t\t\tuncontrolledInnerBlocks: _uncontrolledInnerBlocks,\n\t\t\t\tcontrolledInnerBlocks: _controlledInnerBlocks,\n\t\t\t\tisInnerBlockSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { addQueryArgs } from '@wordpress/url';\nimport { Button, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst ManageMenusButton = ( {\n\tclassName = '',\n\tdisabled,\n\tisMenuItem = false,\n} ) => {\n\tlet ComponentName = Button;\n\tif ( isMenuItem ) {\n\t\tComponentName = MenuItem;\n\t}\n\n\treturn (\n\t\t<ComponentName\n\t\t\tvariant=\"link\"\n\t\t\tdisabled={ disabled }\n\t\t\tclassName={ className }\n\t\t\thref={ addQueryArgs( 'edit.php', {\n\t\t\t\tpost_type: 'wp_navigation',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ __( 'Manage menus' ) }\n\t\t</ComponentName>\n\t);\n};\n\nexport default ManageMenusButton;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../lock-unlock';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\nimport LeafMoreMenu from './leaf-more-menu';\nimport {\n\tLinkUI,\n\tupdateAttributes,\n\tuseEntityBinding,\n} from '../../navigation-link/shared';\n\nconst actionLabel =\n\t/* translators: %s: The name of a menu. */ __( \"Switch to '%s'\" );\nconst BLOCKS_WITH_LINK_UI_SUPPORT = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\nfunction AdditionalBlockContent( { block, insertedBlock, setInsertedBlock } ) {\n\tconst { updateBlockAttributes, removeBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(\n\t\tinsertedBlock?.name\n\t);\n\tconst blockWasJustInserted = insertedBlock?.clientId === block.clientId;\n\tconst showLinkControls = supportsLinkControls && blockWasJustInserted;\n\n\t// Get binding utilities for the inserted block\n\tconst { createBinding, clearBinding } = useEntityBinding( {\n\t\tclientId: insertedBlock?.clientId,\n\t\tattributes: insertedBlock?.attributes || {},\n\t} );\n\n\tif ( ! showLinkControls ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Cleanup function for auto-inserted Navigation Link blocks.\n\t *\n\t * Removes the block if it has no URL and clears the inserted block state.\n\t * This ensures consistent cleanup behavior across different contexts.\n\t */\n\tconst cleanupInsertedBlock = () => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// Follows the exact same pattern as Navigation Link block's onClose handler\n\t\t// If there is no URL then remove the auto-inserted block to avoid empty blocks\n\t\tif ( ! insertedBlock?.attributes?.url && insertedBlock?.clientId ) {\n\t\t\t// Remove the block entirely to avoid poor UX\n\t\t\t// This matches the Navigation Link block's behavior\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( null );\n\t};\n\n\tconst setInsertedBlockAttributes =\n\t\t( _insertedBlockClientId ) => ( _updatedAttributes ) => {\n\t\t\tif ( ! _insertedBlockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( _insertedBlockClientId, _updatedAttributes );\n\t\t};\n\n\t// Wrapper function to clean up original block when a new block is selected\n\tconst handleSetInsertedBlock = ( newBlock ) => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// If we have an existing inserted block and a new block is being set,\n\t\t// remove the original block to avoid duplicates\n\t\tif ( insertedBlock?.clientId && newBlock ) {\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( newBlock );\n\t};\n\n\treturn (\n\t\t<LinkUI\n\t\t\tclientId={ insertedBlock?.clientId }\n\t\t\tlink={ insertedBlock?.attributes }\n\t\t\tonBlockInsert={ handleSetInsertedBlock }\n\t\t\tonClose={ () => {\n\t\t\t\t// Use cleanup function\n\t\t\t\tcleanupInsertedBlock();\n\t\t\t} }\n\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t// updateAttributes determines the final state and returns metadata\n\t\t\t\tconst { isEntityLink, attributes: updatedAttributes } =\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\tsetInsertedBlockAttributes( insertedBlock?.clientId ),\n\t\t\t\t\t\tinsertedBlock?.attributes\n\t\t\t\t\t);\n\n\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\tcreateBinding( updatedAttributes );\n\t\t\t\t} else {\n\t\t\t\t\tclearBinding();\n\t\t\t\t}\n\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst hasChildren = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! select( blockEditorStore ).getBlockCount( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<DeletedNavigationWarning onCreateNew={ onCreateNew } isNotice />\n\t\t);\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for Navigation Menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__menu-inspector-controls\">\n\t\t\t{ ! hasChildren && (\n\t\t\t\t<p className=\"wp-block-navigation__menu-inspector-controls__empty-message\">\n\t\t\t\t\t{ __( 'This Navigation Menu is empty.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t<PrivateListView\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tisExpanded\n\t\t\t\tdescription={ description }\n\t\t\t\tshowAppender\n\t\t\t\tblockSettingsMenu={ LeafMoreMenu }\n\t\t\t\tadditionalBlockContent={ AdditionalBlockContent }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t\tblockEditingMode,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody title={ null }>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\t\tisManageMenusButtonDisabled\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n", "/**\n * WordPress dependencies\n */\nimport { Warning } from '@wordpress/block-editor';\nimport { Button, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, createInterpolateElement } from '@wordpress/element';\n\nfunction DeletedNavigationWarning( { onCreateNew, isNotice = false } ) {\n\tconst [ isButtonDisabled, setIsButtonDisabled ] = useState( false );\n\n\tconst handleButtonClick = () => {\n\t\tsetIsButtonDisabled( true );\n\t\tonCreateNew();\n\t};\n\n\tconst message = createInterpolateElement(\n\t\t__(\n\t\t\t'Navigation Menu has been deleted or is unavailable. <button>Create a new Menu?</button>'\n\t\t),\n\t\t{\n\t\t\tbutton: (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tdisabled={ isButtonDisabled }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn isNotice ? (\n\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t{ message }\n\t\t</Notice>\n\t) : (\n\t\t<Warning>{ message }</Warning>\n\t);\n}\n\nexport default DeletedNavigationWarning;\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\taddSubmenu,\n\tchevronUp,\n\tchevronDown,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BlockTitle, store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_BLOCK } from '../constants';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nconst BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\n\nfunction AddSubmenuItem( {\n\tblock,\n\tonClose,\n\texpandedState,\n\texpand,\n\tsetInsertedBlock,\n} ) {\n\tconst { insertBlock, replaceBlock, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst clientId = block.clientId;\n\tconst isDisabled = ! BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(\n\t\tblock.name\n\t);\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ addSubmenu }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonClick={ () => {\n\t\t\t\tconst updateSelectionOnInsert = false;\n\t\t\t\tconst newLink = createBlock(\n\t\t\t\t\tDEFAULT_BLOCK.name,\n\t\t\t\t\tDEFAULT_BLOCK.attributes\n\t\t\t\t);\n\n\t\t\t\tif ( block.name === 'core/navigation-submenu' ) {\n\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\tblock.innerBlocks.length,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// Convert to a submenu if the block currently isn't one.\n\t\t\t\t\tconst newSubmenu = createBlock(\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\n\t\t\t\t\t// The following must happen as two independent actions.\n\t\t\t\t\t// Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds\n\t\t\t\t\t// selector to determine which block is \"active\". As the UX needs the newLink to be\n\t\t\t\t\t// the \"active\" block it must be the last block to be inserted.\n\t\t\t\t\t// Therefore the Submenu is first created and **then** the newLink is inserted\n\t\t\t\t\t// thus ensuring it is the last inserted block.\n\t\t\t\t\treplaceBlock( clientId, newSubmenu );\n\n\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\tnewSubmenu.clientId,\n\t\t\t\t\t\t[ newLink ],\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// This call sets the local List View state for the \"last inserted block\".\n\t\t\t\t// This is required for the Nav Block to determine whether or not to display\n\t\t\t\t// the Link UI for this new block.\n\t\t\t\tsetInsertedBlock( newLink );\n\n\t\t\t\tif ( ! expandedState[ block.clientId ] ) {\n\t\t\t\t\texpand( block.clientId );\n\t\t\t\t}\n\t\t\t\tonClose();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Add submenu link' ) }\n\t\t</MenuItem>\n\t);\n}\n\nexport default function LeafMoreMenu( props ) {\n\tconst { block } = props;\n\tconst { clientId } = block;\n\n\tconst { moveBlocksDown, moveBlocksUp, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst removeLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<AddSubmenuItem\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\texpandedState={ props.expandedState }\n\t\t\t\t\t\t\texpand={ props.expand }\n\t\t\t\t\t\t\tsetInsertedBlock={ props.setInsertedBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ removeLabel }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tCheckboxControl,\n\tTextControl,\n\tTextareaControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport { useHandleLinkChange } from './use-handle-link-change';\nimport { useEntityBinding } from './use-entity-binding';\nimport { getSuggestionsQuery } from '../link-ui';\nimport { useLinkPreview } from './use-link-preview';\nimport { unlock } from '../../lock-unlock';\n\nconst { LinkPicker } = unlock( blockEditorPrivateApis );\n\n/**\n * Get a human-readable entity type name.\n *\n * @param {string} type - The entity type\n * @param {string} kind - The entity kind\n * @return {string} Human-readable entity type name\n */\nfunction getEntityTypeName( type, kind ) {\n\tif ( kind === 'post-type' ) {\n\t\tswitch ( type ) {\n\t\t\tcase 'post':\n\t\t\t\treturn __( 'post' );\n\t\t\tcase 'page':\n\t\t\t\treturn __( 'page' );\n\t\t\tdefault:\n\t\t\t\treturn type || __( 'post' );\n\t\t}\n\t}\n\tif ( kind === 'taxonomy' ) {\n\t\tswitch ( type ) {\n\t\t\tcase 'category':\n\t\t\t\treturn __( 'category' );\n\t\t\tcase 'tag':\n\t\t\t\treturn __( 'tag' );\n\t\t\tdefault:\n\t\t\t\treturn type || __( 'term' );\n\t\t}\n\t}\n\treturn type || __( 'item' );\n}\n\n/**\n * Shared Controls component for Navigation Link and Navigation Submenu blocks.\n *\n * This component provides the inspector controls (ToolsPanel) that are identical\n * between both navigation blocks.\n *\n * @param {Object} props - Component props\n * @param {Object} props.attributes - Block attributes\n * @param {Function} props.setAttributes - Function to update block attributes\n * @param {string} props.clientId - Block client ID\n */\nexport function Controls( { attributes, setAttributes, clientId } ) {\n\tconst { label, url, description, rel, opensInNewTab } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use the entity binding hook for UI state (help text, link preview, etc.)\n\tconst { hasUrlBinding, isBoundEntityAvailable, entityRecord } =\n\t\tuseEntityBinding( {\n\t\t\tclientId,\n\t\t\tattributes,\n\t\t} );\n\n\tconst needsHelpText = hasUrlBinding;\n\tconst helpText = isBoundEntityAvailable\n\t\t? BindingHelpText( {\n\t\t\t\ttype: attributes.type,\n\t\t\t\tkind: attributes.kind,\n\t\t } )\n\t\t: MissingEntityHelpText( {\n\t\t\t\ttype: attributes.type,\n\t\t\t\tkind: attributes.kind,\n\t\t } );\n\n\t// Get the link change handler with built-in binding management\n\tconst handleLinkChange = useHandleLinkChange( {\n\t\tclientId,\n\t\tattributes,\n\t\tsetAttributes,\n\t} );\n\n\tconst linkTitle =\n\t\tentityRecord?.title?.rendered ||\n\t\tentityRecord?.title ||\n\t\tentityRecord?.name;\n\n\tconst linkImage = useSelect(\n\t\t( select ) => {\n\t\t\t// Only fetch for post-type entities with featured media\n\t\t\tif ( ! entityRecord?.featured_media ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\n\t\t\t// Get the media entity to fetch the image URL\n\t\t\tconst media = getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'attachment',\n\t\t\t\tentityRecord.featured_media\n\t\t\t);\n\n\t\t\t// Return the thumbnail or medium size URL, fallback to source_url\n\t\t\treturn (\n\t\t\t\tmedia?.media_details?.sizes?.thumbnail?.source_url ||\n\t\t\t\tmedia?.media_details?.sizes?.medium?.source_url ||\n\t\t\t\tmedia?.source_url ||\n\t\t\t\tnull\n\t\t\t);\n\t\t},\n\t\t[ entityRecord?.featured_media ]\n\t);\n\n\tconst preview = useLinkPreview( {\n\t\turl,\n\t\ttitle: linkTitle,\n\t\timage: linkImage,\n\t\ttype: attributes.type,\n\t\tentityStatus: entityRecord?.status,\n\t\thasBinding: hasUrlBinding,\n\t\tisEntityAvailable: isBoundEntityAvailable,\n\t} );\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ __( 'Settings' ) }\n\t\t\tresetAll={ () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tlabel: '',\n\t\t\t\t\turl: '',\n\t\t\t\t\tdescription: '',\n\t\t\t\t\trel: '',\n\t\t\t\t\topensInNewTab: false,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! label }\n\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { label: '' } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\tvalue={ label ? stripHTML( label ) : '' }\n\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t} }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! url }\n\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { url: '' } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<LinkPicker\n\t\t\t\t\tpreview={ preview }\n\t\t\t\t\tonSelect={ handleLinkChange }\n\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\tattributes.type,\n\t\t\t\t\t\tattributes.kind\n\t\t\t\t\t) }\n\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\thelp={ needsHelpText ? helpText : undefined }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! opensInNewTab }\n\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { opensInNewTab: false } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tchecked={ opensInNewTab }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { opensInNewTab: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! description }\n\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { description: '' } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<TextareaControl\n\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! rel }\n\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { rel: '' } ) }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t} }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The relationship of the linked URL as space-separated link types.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\n/**\n * Component to display help text for bound URL attributes.\n *\n * @param {Object} props - Component props\n * @param {string} props.type - The entity type\n * @param {string} props.kind - The entity kind\n * @return {string} Help text for the bound URL\n */\nexport function BindingHelpText( { type, kind } ) {\n\tconst entityType = getEntityTypeName( type, kind );\n\treturn sprintf(\n\t\t/* translators: %s is the entity type (e.g., \"page\", \"post\", \"category\") */\n\t\t__( 'Synced with the selected %s.' ),\n\t\tentityType\n\t);\n}\n\n/**\n * Component to display error help text for missing entity bindings.\n *\n * @param {Object} props - Component props\n * @param {string} props.type - The entity type\n * @param {string} props.kind - The entity kind\n * @return {JSX.Element} Error help text component\n */\nexport function MissingEntityHelpText( { type, kind } ) {\n\tconst entityType = getEntityTypeName( type, kind );\n\treturn sprintf(\n\t\t/* translators: %s is the entity type (e.g., \"page\", \"post\", \"category\") */\n\t\t__( 'Synced %s is missing. Please update or remove this link.' ),\n\t\tentityType\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { updateAttributes } from './update-attributes';\nimport { useEntityBinding } from './use-entity-binding';\n\n/**\n * Custom hook that returns a callback for handling link selection/change.\n * Manages the transition between entity links and custom links,\n * including proper binding creation and cleanup.\n *\n * @param {Object} options - Configuration options\n * @param {string} options.clientId - Block client ID\n * @param {Object} options.attributes - Current block attributes\n * @param {Function} options.setAttributes - Standard setAttribute function\n * @return {Function} Callback function to handle link changes\n */\nexport function useHandleLinkChange( { clientId, attributes, setAttributes } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { hasUrlBinding, createBinding, clearBinding } = useEntityBinding( {\n\t\tclientId,\n\t\tattributes,\n\t} );\n\n\treturn useCallback(\n\t\t( updatedLink ) => {\n\t\t\tif ( ! updatedLink ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attrs = {\n\t\t\t\turl: updatedLink.url,\n\t\t\t\tkind: updatedLink.kind,\n\t\t\t\ttype: updatedLink.type,\n\t\t\t\tid: updatedLink.id,\n\t\t\t};\n\n\t\t\t// Only include title when there's no existing label\n\t\t\t// This preserves user-customized labels when updating links\n\t\t\tif ( ! attributes.label || attributes.label === '' ) {\n\t\t\t\tattrs.title = updatedLink.title;\n\t\t\t}\n\n\t\t\t// Check if transitioning from entity to custom link\n\t\t\tconst willBeCustomLink = ! updatedLink.id && hasUrlBinding;\n\n\t\t\tif ( willBeCustomLink ) {\n\t\t\t\t// Clear the binding first\n\t\t\t\tclearBinding();\n\n\t\t\t\t// Use direct store dispatch to bypass setBoundAttributes wrapper\n\t\t\t\t// which prevents updates to bound attributes.\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\turl: updatedLink.url,\n\t\t\t\t\tkind: 'custom',\n\t\t\t\t\ttype: 'custom',\n\t\t\t\t\tid: undefined,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\t// Normal flow for entity links or unbound custom links\n\t\t\t\tconst { isEntityLink, attributes: updatedAttributes } =\n\t\t\t\t\tupdateAttributes( attrs, setAttributes, attributes );\n\n\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\tcreateBinding( updatedAttributes );\n\t\t\t\t} else {\n\t\t\t\t\tclearBinding();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tattributes,\n\t\t\tclientId,\n\t\t\thasUrlBinding,\n\t\t\tcreateBinding,\n\t\t\tclearBinding,\n\t\t\tsetAttributes,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { escapeHTML } from '@wordpress/escape-html';\nimport { safeDecodeURI, getPath } from '@wordpress/url';\n\n/**\n * Determines if an entity link should be severed based on URL changes.\n *\n * @param {string} originalUrl - The original URL\n * @param {string} newUrl - The new URL\n * @return {boolean} True if the entity link should be severed\n */\nconst shouldSeverEntityLink = ( originalUrl, newUrl ) => {\n\tif ( ! originalUrl || ! newUrl ) {\n\t\treturn false;\n\t}\n\n\tconst normalizePath = ( path ) => {\n\t\tif ( ! path ) {\n\t\t\treturn '';\n\t\t}\n\t\treturn path.replace( /\\/+$/, '' ); // Remove trailing slashes\n\t};\n\n\t// Helper function to create URL objects with proper base handling\n\tconst createUrlObject = ( url, baseUrl = null ) => {\n\t\ttry {\n\t\t\t// Always provide a base URL - it will be ignored for absolute URLs\n\t\t\t// Use window.location.origin in browser, fallback for Node/tests\n\t\t\tconst base =\n\t\t\t\tbaseUrl ||\n\t\t\t\t( typeof window !== 'undefined'\n\t\t\t\t\t? window.location.origin\n\t\t\t\t\t: 'https://wordpress.org' );\n\t\t\treturn new URL( url, base );\n\t\t} catch ( error ) {\n\t\t\t// If URL construction still fails, it's likely an invalid URL\n\t\t\t// and we should sever the entity link\n\t\t\treturn null;\n\t\t}\n\t};\n\n\tconst originalUrlObj = createUrlObject( originalUrl );\n\tif ( ! originalUrlObj ) {\n\t\treturn true;\n\t}\n\n\tconst newUrlObj = createUrlObject( newUrl, originalUrl );\n\tif ( ! newUrlObj ) {\n\t\treturn true;\n\t}\n\n\t// Move these declarations here, after the null checks\n\tconst originalHostname = originalUrlObj.hostname;\n\tconst newHostname = newUrlObj.hostname;\n\tconst originalPath = normalizePath( getPath( originalUrlObj.toString() ) );\n\tconst newPath = normalizePath( getPath( newUrlObj.toString() ) );\n\n\t// If hostname or path changed, sever the entity link\n\tif ( originalHostname !== newHostname || originalPath !== newPath ) {\n\t\treturn true;\n\t}\n\n\t// Special handling for plain permalinks (query string post IDs)\n\tconst originalP = originalUrlObj.searchParams.get( 'p' );\n\tconst newP = newUrlObj.searchParams.get( 'p' );\n\n\t// If both are plain permalinks (with ?p= or ?page_id=), compare the IDs\n\tif ( originalP && newP && originalP !== newP ) {\n\t\treturn true;\n\t}\n\n\tconst originalPageId = originalUrlObj.searchParams.get( 'page_id' );\n\tconst newPageId = newUrlObj.searchParams.get( 'page_id' );\n\n\tif ( originalPageId && newPageId && originalPageId !== newPageId ) {\n\t\treturn true;\n\t}\n\t// If switching between ?p= and ?page_id=, or one is missing, sever\n\tif ( ( originalP && newPageId ) || ( originalPageId && newP ) ) {\n\t\treturn true;\n\t}\n\n\t// If only query string or fragment changed, preserve the entity link\n\treturn false;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n */\n\nexport const updateAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\n\tconst {\n\t\ttitle: newLabel = '', // the title of any provided Post.\n\t\tlabel: newLabelFromLabel = '', // alternative to title\n\t\turl: newUrl,\n\t\topensInNewTab,\n\t\tid: newID,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\t// Use title if provided, otherwise fall back to label\n\tconst finalNewLabel = newLabel || newLabelFromLabel;\n\n\tconst newLabelWithoutHttp = finalNewLabel.replace( /http(s?):\\/\\//gi, '' );\n\tconst newUrlWithoutHttp = newUrl?.replace( /http(s?):\\/\\//gi, '' ) ?? '';\n\n\tconst useNewLabel =\n\t\tfinalNewLabel &&\n\t\tfinalNewLabel !== originalLabel &&\n\t\t// LinkControl without the title field relies\n\t\t// on the check below. Specifically, it assumes that\n\t\t// the URL is the same as a title.\n\t\t// This logic a) looks suspicious and b) should really\n\t\t// live in the LinkControl and not here. It's a great\n\t\t// candidate for future refactoring.\n\t\tnewLabelWithoutHttp !== newUrlWithoutHttp;\n\n\t// Unfortunately this causes the escaping model to be inverted.\n\t// The escaped content is stored in the block attributes (and ultimately in the database),\n\t// and then the raw data is \"recovered\" when outputting into the DOM.\n\t// It would be preferable to store the **raw** data in the block attributes and escape it in JS.\n\t// Why? Because there isn't one way to escape data. Depending on the context, you need to do\n\t// different transforms. It doesn't make sense to me to choose one of them for the purposes of storage.\n\t// See also:\n\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t// - https://github.com/WordPress/gutenberg/pull/18617.\n\tconst label = useNewLabel\n\t\t? escapeHTML( finalNewLabel )\n\t\t: originalLabel || escapeHTML( newUrlWithoutHttp );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tconst attributes = {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( newUrl !== undefined\n\t\t\t? { url: newUrl ? encodeURI( safeDecodeURI( newUrl ) ) : newUrl }\n\t\t\t: {} ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t};\n\n\t// If the block's id is set then the menu item is linking to an entity.\n\t// Therefore, if the URL is set but a new ID is not provided, check if\n\t// the entity link should be severed based on URL changes.\n\tif ( newUrl && ! newID && blockAttributes.id ) {\n\t\tconst shouldSever = shouldSeverEntityLink(\n\t\t\tblockAttributes.url,\n\t\t\tnewUrl\n\t\t);\n\n\t\tif ( shouldSever ) {\n\t\t\tattributes.id = undefined; // explicitly \"unset\" the ID.\n\t\t\t// When URL is manually changed in a way that severs the entity link,\n\t\t\t// update kind and type to \"custom\" to indicate this is now a custom link.\n\t\t\tattributes.kind = 'custom';\n\t\t\tattributes.type = 'custom';\n\t\t}\n\t} else if ( newID && Number.isInteger( newID ) ) {\n\t\tattributes.id = newID;\n\t} else if ( blockAttributes.id ) {\n\t\t// If we have an existing ID and no URL change, ensure kind and type are preserved\n\t\tattributes.kind = kind;\n\t\tattributes.type = type;\n\t}\n\n\tsetAttributes( attributes );\n\n\t// Return metadata about the final state for binding decisions.\n\t// We need to distinguish between:\n\t// 1. Property not set in attributes (use blockAttributes fallback)\n\t// 2. Property explicitly set to undefined (means \"remove this\")\n\t// Using 'in' operator checks if property exists, even if undefined.\n\t// This is critical for severing: attributes.id = undefined means \"remove the ID\",\n\t// not \"keep the old ID from blockAttributes\".\n\tconst finalId = 'id' in attributes ? attributes.id : blockAttributes.id;\n\tconst finalKind =\n\t\t'kind' in attributes ? attributes.kind : blockAttributes.kind;\n\n\treturn {\n\t\tisEntityLink: !! finalId && finalKind !== 'custom',\n\t\tattributes, // Return the computed attributes object\n\t};\n};\n", "/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML, focus } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { LinkControl, useBlockEditingMode } from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport { useResourcePermissions } from '@wordpress/core-data';\nimport { plus } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { LinkUIPageCreator } from './page-creator';\nimport LinkUIBlockInserter from './block-inserter';\nimport { useEntityBinding } from '../shared/use-entity-binding';\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction UnforwardedLinkUI( props, ref ) {\n\tconst { label, url, opensInNewTab, type, kind, id } = props.link;\n\tconst { clientId } = props;\n\tconst postType = type || 'page';\n\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ addingPage, setAddingPage ] = useState( false );\n\tconst [ shouldFocusPane, setShouldFocusPane ] = useState( null );\n\tconst linkControlWrapperRef = useRef();\n\tconst addPageButtonRef = useRef();\n\tconst addBlockButtonRef = useRef();\n\tconst permissions = useResourcePermissions( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\n\t// Use the entity binding hook to get binding status\n\tconst { isBoundEntityAvailable } = useEntityBinding( {\n\t\tclientId,\n\t\tattributes: props.link,\n\t} );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t\tkind,\n\t\t\ttype,\n\t\t\tid,\n\t\t} ),\n\t\t[ label, opensInNewTab, url, kind, type, id ]\n\t);\n\n\tconst handlePageCreated = ( pageLink ) => {\n\t\t// Set the new page as the current link\n\t\tprops.onChange( pageLink );\n\t\t// Return to main Link UI and focus the first focusable element\n\t\tsetAddingPage( false );\n\t\tsetShouldFocusPane( true );\n\t};\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t'link-ui-link-control__title'\n\t);\n\tconst dialogDescriptionId = useInstanceId(\n\t\tLinkUI,\n\t\t'link-ui-link-control__description'\n\t);\n\n\t// Focus management when transitioning between panes\n\tuseEffect( () => {\n\t\tif ( shouldFocusPane && linkControlWrapperRef.current ) {\n\t\t\t// If we have a specific element to focus, focus it\n\t\t\tif ( shouldFocusPane?.current ) {\n\t\t\t\t// Focus the specific element passed\n\t\t\t\tshouldFocusPane.current.focus();\n\t\t\t} else {\n\t\t\t\t// Focus the first tabbable element (keyboard-accessible, excluding tabindex=\"-1\")\n\t\t\t\tconst tabbableElements = focus.tabbable.find(\n\t\t\t\t\tlinkControlWrapperRef.current\n\t\t\t\t);\n\t\t\t\tconst nextFocusTarget =\n\t\t\t\t\ttabbableElements[ 0 ] || linkControlWrapperRef.current;\n\t\t\t\tnextFocusTarget.focus();\n\t\t\t}\n\n\t\t\t// Reset the state\n\t\t\tsetShouldFocusPane( false );\n\t\t}\n\t}, [ shouldFocusPane ] );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ ref }\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ props.onClose }\n\t\t\tanchor={ props.anchor }\n\t\t\tshift\n\t\t>\n\t\t\t{ ! addingBlock && ! addingPage && (\n\t\t\t\t<div\n\t\t\t\t\tref={ linkControlWrapperRef }\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\taria-describedby={ dialogDescriptionId }\n\t\t\t\t>\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t<p id={ dialogDescriptionId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t\twithCreateSuggestion={ false }\n\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery( type, kind ) }\n\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\thandleEntities={ isBoundEntityAvailable }\n\t\t\t\t\t\tforceIsEditingLink={ link?.url ? false : undefined }\n\t\t\t\t\t\trenderControlBottom={ () => {\n\t\t\t\t\t\t\t// Don't show the tools when there is submitted link (preview state).\n\t\t\t\t\t\t\tif ( link?.url?.length ) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\taddPageButtonRef={ addPageButtonRef }\n\t\t\t\t\t\t\t\t\taddBlockButtonRef={ addBlockButtonRef }\n\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsetAddingPage={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tcanAddPage={\n\t\t\t\t\t\t\t\t\t\tpermissions?.canCreate &&\n\t\t\t\t\t\t\t\t\t\ttype === 'page'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcanAddBlock={\n\t\t\t\t\t\t\t\t\t\tblockEditingMode === 'default'\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} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ addingBlock && (\n\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\tsetShouldFocusPane( addBlockButtonRef );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockInsert={ props?.onBlockInsert }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ addingPage && (\n\t\t\t\t<LinkUIPageCreator\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingPage( false );\n\t\t\t\t\t\tsetShouldFocusPane( addPageButtonRef );\n\t\t\t\t\t} }\n\t\t\t\t\tonPageCreated={ handlePageCreated }\n\t\t\t\t\tinitialTitle={ link?.url || '' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nexport const LinkUI = forwardRef( UnforwardedLinkUI );\n\nconst LinkUITools = ( {\n\taddPageButtonRef,\n\taddBlockButtonRef,\n\tsetAddingBlock,\n\tsetAddingPage,\n\tcanAddPage,\n\tcanAddBlock,\n} ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\n\t// Don't render anything if neither button should be shown\n\tif ( ! canAddPage && ! canAddBlock ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 0 } className=\"link-ui-tools\">\n\t\t\t{ canAddPage && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addPageButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ canAddBlock && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add block' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tTextControl,\n\tNotice,\n\tCheckboxControl,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DialogWrapper from './dialog-wrapper';\n\n/**\n * Component for creating new pages within the Navigation Link UI.\n *\n * @param {Object} props Component props.\n * @param {string} props.postType The post type to create.\n * @param {Function} props.onBack Callback when user wants to go back.\n * @param {Function} props.onPageCreated Callback when page is successfully created.\n * @param {string} [props.initialTitle] Initial title to pre-fill the form.\n */\nexport function LinkUIPageCreator( {\n\tpostType,\n\tonBack,\n\tonPageCreated,\n\tinitialTitle = '',\n} ) {\n\tconst [ title, setTitle ] = useState( initialTitle );\n\tconst [ shouldPublish, setShouldPublish ] = useState( false );\n\n\t// Check if the title is valid for submission\n\tconst isTitleValid = title.trim().length > 0;\n\n\t// Get the last created entity record (without ID) to track creation state\n\tconst { lastError, isSaving } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlastError: select( coreStore ).getLastEntitySaveError(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t\tisSaving: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t} ),\n\t\t[ postType ]\n\t);\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tasync function createPage( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isSaving || ! isTitleValid ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\ttitle,\n\t\t\t\t\tstatus: shouldPublish ? 'publish' : 'draft',\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tif ( savedRecord ) {\n\t\t\t\t// Create the page link object from the saved record\n\t\t\t\tconst pageLink = {\n\t\t\t\t\tid: savedRecord.id,\n\t\t\t\t\ttype: postType,\n\t\t\t\t\ttitle: decodeEntities( savedRecord.title.rendered ),\n\t\t\t\t\turl: savedRecord.link,\n\t\t\t\t\tkind: 'post-type',\n\t\t\t\t};\n\n\t\t\t\t// Show success notice\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: the name of the new page being created.\n\t\t\t\t\t\t__( '%s page created successfully.' ),\n\t\t\t\t\t\tdecodeEntities( savedRecord.title.rendered )\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'page-created-success',\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\tonPageCreated( pageLink );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// Show error notice\n\t\t\tcreateErrorNotice(\n\t\t\t\t__( 'Failed to create page. Please try again.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'page-created-error',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tconst isSubmitDisabled = isSaving || ! isTitleValid;\n\n\treturn (\n\t\t<DialogWrapper\n\t\t\tclassName=\"link-ui-page-creator\"\n\t\t\ttitle={ __( 'Create page' ) }\n\t\t\tdescription={ __( 'Create a new page to add to your Navigation.' ) }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VStack className=\"link-ui-page-creator__inner\" spacing={ 4 }>\n\t\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Publish immediately' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'If unchecked, the page will be created as a draft.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ shouldPublish }\n\t\t\t\t\t\t\tonChange={ setShouldPublish }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{ lastError && (\n\t\t\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ lastError.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<HStack spacing={ 2 } justify=\"flex-end\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t\t\taria-disabled={ isSubmitDisabled }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</VStack>\n\t\t\t\t</form>\n\t\t\t</VStack>\n\t\t</DialogWrapper>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Shared BackButton component for consistent navigation across LinkUI sub-components.\n *\n * @param {Object} props Component props.\n * @param {string} props.className CSS class name for the button.\n * @param {Function} props.onBack Callback when user wants to go back.\n */\nfunction BackButton( { className, onBack } ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={ className }\n\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\tonClick={ ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tonBack();\n\t\t\t} }\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t{ __( 'Back' ) }\n\t\t</Button>\n\t);\n}\n\n/**\n * Shared DialogWrapper component for consistent dialog structure across LinkUI sub-components.\n *\n * @param {Object} props Component props.\n * @param {string} props.className CSS class name for the dialog container.\n * @param {string} props.title Dialog title for accessibility.\n * @param {string} props.description Dialog description for accessibility.\n * @param {Function} props.onBack Callback when user wants to go back.\n * @param {Object} props.children Child components to render inside the dialog.\n */\nfunction DialogWrapper( { className, title, description, onBack, children } ) {\n\tconst dialogTitleId = useInstanceId(\n\t\tDialogWrapper,\n\t\t'link-ui-dialog-title'\n\t);\n\tconst dialogDescriptionId = useInstanceId(\n\t\tDialogWrapper,\n\t\t'link-ui-dialog-description'\n\t);\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\tconst backButtonClassName = `${ className }__back`;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ className }\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescriptionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ title }</h2>\n\t\t\t\t<p id={ dialogDescriptionId }>{ description }</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<BackButton className={ backButtonClassName } onBack={ onBack } />\n\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default DialogWrapper;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport DialogWrapper from './dialog-wrapper';\nimport { unlock } from '../../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Component for inserting blocks within the Navigation Link UI.\n *\n * @param {Object} props Component props.\n * @param {string} props.clientId Client ID of the navigation link block.\n * @param {Function} props.onBack Callback when user wants to go back.\n * @param {Function} props.onBlockInsert Callback when a block is inserted.\n */\nfunction LinkUIBlockInserter( { clientId, onBack, onBlockInsert } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DialogWrapper\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\ttitle={ __( 'Add block' ) }\n\t\t\tdescription={ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert={ ! onBlockInsert }\n\t\t\t\tonSelect={ onBlockInsert ? onBlockInsert : undefined }\n\t\t\t\thasSearch={ false }\n\t\t\t/>\n\t\t</DialogWrapper>\n\t);\n}\n\nexport default LinkUIBlockInserter;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { safeDecodeURI } from '@wordpress/url';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useRemoteUrlData } = unlock( blockEditorPrivateApis );\n\n/**\n * Capitalize the first letter of a string.\n *\n * @param {string} str - The string to capitalize\n * @return {string} Capitalized string\n */\nfunction capitalize( str ) {\n\treturn str.charAt( 0 ).toUpperCase() + str.slice( 1 );\n}\n\n/**\n * Compute display URL - strips site URL if internal, shows full URL if external.\n *\n * @param {string} url - The URL to process\n * @return {Object} Object with displayUrl and isExternal flag\n */\nfunction computeDisplayUrl( url ) {\n\tif ( ! url ) {\n\t\treturn { displayUrl: '', isExternal: false };\n\t}\n\n\tlet displayUrl = safeDecodeURI( url );\n\tlet isExternal = false;\n\n\ttry {\n\t\tconst linkUrl = new URL( url );\n\t\tconst siteUrl = window.location.origin;\n\t\tif ( linkUrl.origin === siteUrl ) {\n\t\t\t// Show only the pathname (and search/hash if present)\n\t\t\tlet path = linkUrl.pathname + linkUrl.search + linkUrl.hash;\n\t\t\t// Remove trailing slash\n\t\t\tif ( path.endsWith( '/' ) && path.length > 1 ) {\n\t\t\t\tpath = path.slice( 0, -1 );\n\t\t\t}\n\t\t\tdisplayUrl = path;\n\t\t} else {\n\t\t\tisExternal = true;\n\t\t}\n\t} catch ( e ) {\n\t\t// If URL parsing fails, use the original URL\n\t\tdisplayUrl = safeDecodeURI( url );\n\t}\n\n\treturn { displayUrl, isExternal };\n}\n\n/**\n * Compute badges for the link preview.\n *\n * @param {Object} options - Options object\n * @param {string} options.url - Link URL\n * @param {string} options.type - Entity type (page, post, etc.)\n * @param {boolean} options.isExternal - Whether link is external\n * @param {string} options.entityStatus - Entity status (publish, draft, etc.)\n * @param {boolean} options.hasBinding - Whether link has entity binding\n * @param {boolean} options.isEntityAvailable - Whether bound entity exists\n * @return {Array} Array of badge objects with label and intent\n */\nfunction computeBadges( {\n\turl,\n\ttype,\n\tisExternal,\n\tentityStatus,\n\thasBinding,\n\tisEntityAvailable,\n} ) {\n\tconst badges = [];\n\n\t// Kind badge\n\tif ( url ) {\n\t\tif ( isExternal ) {\n\t\t\tbadges.push( {\n\t\t\t\tlabel: __( 'External link' ),\n\t\t\t\tintent: 'default',\n\t\t\t} );\n\t\t} else if ( type ) {\n\t\t\tbadges.push( { label: capitalize( type ), intent: 'default' } );\n\t\t}\n\t}\n\n\t// Status badge\n\tif ( ! url ) {\n\t\tbadges.push( { label: __( 'No link selected' ), intent: 'error' } );\n\t} else if ( hasBinding && ! isEntityAvailable ) {\n\t\tbadges.push( { label: __( 'Deleted' ), intent: 'error' } );\n\t} else if ( entityStatus ) {\n\t\tconst statusMap = {\n\t\t\tpublish: { label: __( 'Published' ), intent: 'success' },\n\t\t\tfuture: { label: __( 'Scheduled' ), intent: 'warning' },\n\t\t\tdraft: { label: __( 'Draft' ), intent: 'warning' },\n\t\t\tpending: { label: __( 'Pending' ), intent: 'warning' },\n\t\t\tprivate: { label: __( 'Private' ), intent: 'default' },\n\t\t\ttrash: { label: __( 'Trash' ), intent: 'error' },\n\t\t};\n\t\tconst badge = statusMap[ entityStatus ];\n\t\tif ( badge ) {\n\t\t\tbadges.push( badge );\n\t\t}\n\t}\n\n\treturn badges;\n}\n\n/**\n * Hook to compute link preview data for display.\n *\n * This hook takes raw link data and entity information and computes\n * presentation-ready preview data including formatted title, URL, and badges.\n *\n * @param {Object} options - Options object\n * @param {string} options.url - Link URL\n * @param {string} options.title - Link title (from entity or rich data)\n * @param {string} options.image - Link image URL\n * @param {string} options.type - Entity type (page, post, etc.)\n * @param {string} options.entityStatus - Entity status (publish, draft, etc.)\n * @param {boolean} options.hasBinding - Whether link has entity binding\n * @param {boolean} options.isEntityAvailable - Whether bound entity exists\n * @return {Object} Preview data object with title, url, image, and badges\n */\nexport function useLinkPreview( {\n\turl,\n\ttitle,\n\timage,\n\ttype,\n\tentityStatus,\n\thasBinding,\n\tisEntityAvailable,\n} ) {\n\t// Fetch rich URL data if we don't have a title. Internal links should have passed a title.\n\tconst { richData } = useRemoteUrlData( title ? null : url );\n\n\t// Compute display URL and external flag\n\tconst { displayUrl, isExternal } = computeDisplayUrl( url );\n\n\t// Compute badges\n\tconst badges = computeBadges( {\n\t\turl,\n\t\ttype,\n\t\tisExternal,\n\t\tentityStatus,\n\t\thasBinding,\n\t\tisEntityAvailable,\n\t} );\n\n\t// Get display title - use provided title, fallback to rich data, or URL\n\tconst displayTitle = url\n\t\t? title || richData?.title || safeDecodeURI( url )\n\t\t: __( 'Add link' );\n\n\treturn {\n\t\ttitle: displayTitle,\n\t\turl: displayUrl,\n\t\timage,\n\t\tbadges,\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useBlockEditingMode } from '@wordpress/block-editor';\n\n/**\n * A React hook to determine if a navigation link or submenu's parent link is invalid.\n *\n * @param {string} kind The kind of link (post-type, custom, taxonomy, etc).\n * @param {string} type The type of post (post, page, etc).\n * @param {number} id The post or term id.\n * @param {boolean} enabled Whether to enable the validation check.\n *\n * @return {Array} Array containing [isInvalid, isDraft] booleans.\n */\nexport const useIsInvalidLink = ( kind, type, id, enabled ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst { postStatus, isDeleted } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn { postStatus: null, isDeleted: false };\n\t\t\t}\n\n\t\t\t// Fetching the posts status is an \"expensive\" operation. Especially for sites with large navigations.\n\t\t\t// When the block is rendered in a template or other disabled contexts we can skip this check in order\n\t\t\t// to avoid all these additional requests that don't really add any value in that mode.\n\t\t\tif ( blockEditingMode === 'disabled' || ! enabled ) {\n\t\t\t\treturn { postStatus: null, isDeleted: false };\n\t\t\t}\n\n\t\t\tconst { getEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst entityRecord = getEntityRecord( 'postType', type, id );\n\t\t\tconst hasResolved = hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\ttype,\n\t\t\t\tid,\n\t\t\t] );\n\n\t\t\t// If resolution has finished and entityRecord is undefined, the entity was deleted.\n\t\t\tconst deleted = hasResolved && entityRecord === undefined;\n\n\t\t\treturn {\n\t\t\t\tpostStatus: entityRecord?.status,\n\t\t\t\tisDeleted: deleted,\n\t\t\t};\n\t\t},\n\t\t[ isPostType, blockEditingMode, enabled, type, id ]\n\t);\n\n\t// Check Navigation Link validity if:\n\t// 1. Link is 'post-type'.\n\t// 2. It has an id.\n\t// 3. It's neither null, nor undefined, as valid items might be either of those while loading.\n\t// If those conditions are met, check if\n\t// 1. The post status is trash (trashed).\n\t// 2. The entity doesn't exist (deleted).\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType &&\n\t\thasId &&\n\t\t( isDeleted || ( postStatus && 'trash' === postStatus ) );\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\n};\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Displays a label with an \"(Invalid)\" or \"(Draft)\" indicator for navigation links.\n *\n * @param {Object} props Component props.\n * @param {string} props.label The label text to display.\n * @param {boolean} props.isInvalid Whether the link is invalid (deleted or trashed).\n * @param {boolean} props.isDraft Whether the link is a draft.\n * @param {string} props.className Optional additional CSS class for the label element.\n *\n * @return {Element} The invalid/draft display component.\n */\nexport function InvalidDraftDisplay( {\n\tlabel,\n\tisInvalid,\n\tisDraft,\n\tclassName = 'wp-block-navigation-link__label',\n} ) {\n\t// Only render if the link is invalid or a draft.\n\tif ( ! isInvalid && ! isDraft ) {\n\t\treturn null;\n\t}\n\n\tconst statusText = isInvalid\n\t\t? /* translators: Indicating that the navigation link is Invalid. */\n\t\t __( 'Invalid' )\n\t\t: /* translators: Indicating that the navigation link is a Draft. */\n\t\t __( 'Draft' );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'wp-block-navigation-link__placeholder-text',\n\t\t\t\tclassName,\n\t\t\t\t{\n\t\t\t\t\t'is-invalid': isInvalid,\n\t\t\t\t\t'is-draft': isDraft,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<span>\n\t\t\t\t{\n\t\t\t\t\t// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t// See `updateAttributes` for more details.\n\t\t\t\t\t`${ decodeEntities( label ) } (${ statusText })`.trim()\n\t\t\t\t}\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Hook to determine if link status validation should be enabled.\n *\n * Link status validation is enabled when the root Navigation block is selected\n * or any of its inner blocks are selected. This ensures validation only runs\n * when the user is actively working within the navigation structure.\n *\n * @param {string} clientId The client ID of the current block.\n * @return {boolean} Whether link status validation should be enabled.\n */\nexport function useEnableLinkStatusValidation( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\t\t\tconst rootNavigationId = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation'\n\t\t\t)[ 0 ];\n\n\t\t\t// Enable when the root Navigation block is selected or any of its inner blocks.\n\t\t\treturn (\n\t\t\t\tselectedBlockId === rootNavigationId ||\n\t\t\t\thasSelectedInnerBlock( rootNavigationId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { VisuallyHidden } from '@wordpress/components';\n\nexport default function AccessibleDescription( { id, children } ) {\n\treturn (\n\t\t<VisuallyHidden>\n\t\t\t<div id={ id } className=\"wp-block-navigation__description\">\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</VisuallyHidden>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AccessibleDescription from './accessible-description';\n\nexport default function AccessibleMenuDescription( { id } ) {\n\tconst [ menuTitle ] = useEntityProp( 'postType', 'wp_navigation', 'title' );\n\t/* translators: %s: Title of a Navigation Menu post. */\n\tconst description = sprintf( __( `Navigation Menu: \"%s\"` ), menuTitle );\n\n\treturn (\n\t\t<AccessibleDescription id={ id }>{ description }</AccessibleDescription>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tif ( attributes.ref ) {\n\t\t// Avoid rendering inner blocks when a ref is defined.\n\t\t// When this id is defined the inner blocks are loaded from the\n\t\t// `wp_navigation` entity rather than the hard-coded block html.\n\t\treturn;\n\t}\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst TYPOGRAPHY_PRESET_DEPRECATION_MAP = {\n\tfontStyle: 'var:preset|font-style|',\n\tfontWeight: 'var:preset|font-weight|',\n\ttextDecoration: 'var:preset|text-decoration|',\n\ttextTransform: 'var:preset|text-transform|',\n};\n\nconst migrateIdToRef = ( { navigationMenuId, ...attributes } ) => {\n\treturn {\n\t\t...attributes,\n\t\tref: navigationMenuId,\n\t};\n};\n\nconst migrateWithLayout = ( attributes ) => {\n\tif ( !! attributes.layout ) {\n\t\treturn attributes;\n\t}\n\n\tconst { itemsJustification, orientation, ...updatedAttributes } =\n\t\tattributes;\n\n\tif ( itemsJustification || orientation ) {\n\t\tObject.assign( updatedAttributes, {\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\t...( itemsJustification && {\n\t\t\t\t\tjustifyContent: itemsJustification,\n\t\t\t\t} ),\n\t\t\t\t...( orientation && { orientation } ),\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn updatedAttributes;\n};\n\nconst v6 = {\n\tattributes: {\n\t\tnavigationMenuId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tshowSubmenuIcon: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\topenSubmenusOnClick: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\toverlayMenu: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'mobile',\n\t\t},\n\t\t__unstableLocation: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\thtml: false,\n\t\tinserter: true,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tblockGap: true,\n\t\t\tunits: [ 'px', 'em', 'rem', 'vh', 'vw' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tblockGap: true,\n\t\t\t},\n\t\t},\n\t\tlayout: {\n\t\t\tallowSwitching: false,\n\t\t\tallowInheriting: false,\n\t\t\tdefault: {\n\t\t\t\ttype: 'flex',\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n\tisEligible: ( { navigationMenuId } ) => !! navigationMenuId,\n\tmigrate: migrateIdToRef,\n};\n\nconst v5 = {\n\tattributes: {\n\t\tnavigationMenuId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\torientation: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'horizontal',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\titemsJustification: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tshowSubmenuIcon: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\topenSubmenusOnClick: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\toverlayMenu: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'never',\n\t\t},\n\t\t__unstableLocation: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\thtml: false,\n\t\tinserter: true,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tblockGap: true,\n\t\t\tunits: [ 'px', 'em', 'rem', 'vh', 'vw' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tblockGap: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n\tisEligible: ( { itemsJustification, orientation } ) =>\n\t\t!! itemsJustification || !! orientation,\n\tmigrate: compose( migrateIdToRef, migrateWithLayout ),\n};\n\nconst v4 = {\n\tattributes: {\n\t\torientation: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'horizontal',\n\t\t},\n\t\ttextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\trgbBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\titemsJustification: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tshowSubmenuIcon: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\topenSubmenusOnClick: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\toverlayMenu: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'never',\n\t\t},\n\t\t__unstableLocation: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomOverlayTextColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\thtml: false,\n\t\tinserter: true,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t},\n\t\tspacing: {\n\t\t\tblockGap: true,\n\t\t\tunits: [ 'px', 'em', 'rem', 'vh', 'vw' ],\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tblockGap: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n\tmigrate: compose( migrateIdToRef, migrateWithLayout, migrateFontFamily ),\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\nconst migrateIsResponsive = function ( attributes ) {\n\tdelete attributes.isResponsive;\n\treturn {\n\t\t...attributes,\n\t\toverlayMenu: 'mobile',\n\t};\n};\n\nconst migrateTypographyPresets = function ( attributes ) {\n\treturn {\n\t\t...attributes,\n\t\tstyle: {\n\t\t\t...attributes.style,\n\t\t\ttypography: Object.fromEntries(\n\t\t\t\tObject.entries( attributes.style.typography ?? {} ).map(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tconst prefix = TYPOGRAPHY_PRESET_DEPRECATION_MAP[ key ];\n\t\t\t\t\t\tif ( prefix && value.startsWith( prefix ) ) {\n\t\t\t\t\t\t\tconst newValue = value.slice( prefix.length );\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t'textDecoration' === key &&\n\t\t\t\t\t\t\t\t'strikethrough' === newValue\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn [ key, 'line-through' ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn [ key, newValue ];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn [ key, value ];\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t},\n\t};\n};\n\nconst deprecated = [\n\tv6,\n\tv5,\n\tv4,\n\t// Remove `isResponsive` attribute.\n\t{\n\t\tattributes: {\n\t\t\torientation: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'horizontal',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\titemsJustification: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tshowSubmenuIcon: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t\topenSubmenusOnClick: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tisResponsive: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: 'false',\n\t\t\t},\n\t\t\t__unstableLocation: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\toverlayBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomOverlayBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\toverlayTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomOverlayTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t\tinserter: true,\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t\tlineHeight: true,\n\t\t\t\t__experimentalFontStyle: true,\n\t\t\t\t__experimentalFontWeight: true,\n\t\t\t\t__experimentalTextTransform: true,\n\t\t\t\t__experimentalFontFamily: true,\n\t\t\t\t__experimentalTextDecoration: true,\n\t\t\t},\n\t\t},\n\t\tisEligible( attributes ) {\n\t\t\treturn attributes.isResponsive;\n\t\t},\n\t\tmigrate: compose(\n\t\t\tmigrateIdToRef,\n\t\t\tmigrateWithLayout,\n\t\t\tmigrateFontFamily,\n\t\t\tmigrateIsResponsive\n\t\t),\n\t\tsave() {\n\t\t\treturn <InnerBlocks.Content />;\n\t\t},\n\t},\n\t{\n\t\tattributes: {\n\t\t\torientation: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\titemsJustification: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tshowSubmenuIcon: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: true,\n\t\t\t},\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t\tinserter: true,\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\tcolor: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t},\n\t\tsave() {\n\t\t\treturn <InnerBlocks.Content />;\n\t\t},\n\t\tisEligible( attributes ) {\n\t\t\tif ( ! attributes.style || ! attributes.style.typography ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tfor ( const styleAttribute in TYPOGRAPHY_PRESET_DEPRECATION_MAP ) {\n\t\t\t\tconst attributeValue =\n\t\t\t\t\tattributes.style.typography[ styleAttribute ];\n\t\t\t\tif (\n\t\t\t\t\tattributeValue &&\n\t\t\t\t\tattributeValue.startsWith(\n\t\t\t\t\t\tTYPOGRAPHY_PRESET_DEPRECATION_MAP[ styleAttribute ]\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tmigrate: compose(\n\t\t\tmigrateIdToRef,\n\t\t\tmigrateWithLayout,\n\t\t\tmigrateFontFamily,\n\t\t\tmigrateTypographyPresets\n\t\t),\n\t},\n\t{\n\t\tattributes: {\n\t\t\tclassName: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\trgbBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tfontSize: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomFontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\titemsJustification: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tshowSubmenuIcon: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t},\n\t\tisEligible( attribute ) {\n\t\t\treturn attribute.rgbTextColor || attribute.rgbBackgroundColor;\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'wide', 'full' ],\n\t\t\tanchor: true,\n\t\t\thtml: false,\n\t\t\tinserter: true,\n\t\t},\n\t\tmigrate: compose( migrateIdToRef, ( attributes ) => {\n\t\t\tconst { rgbTextColor, rgbBackgroundColor, ...restAttributes } =\n\t\t\t\tattributes;\n\t\t\treturn {\n\t\t\t\t...restAttributes,\n\t\t\t\tcustomTextColor: attributes.textColor\n\t\t\t\t\t? undefined\n\t\t\t\t\t: attributes.rgbTextColor,\n\t\t\t\tcustomBackgroundColor: attributes.backgroundColor\n\t\t\t\t\t? undefined\n\t\t\t\t\t: attributes.rgbBackgroundColor,\n\t\t\t};\n\t\t} ),\n\t\tsave() {\n\t\t\treturn <InnerBlocks.Content />;\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { customLink as linkIcon } from '@wordpress/icons';\nimport { InnerBlocks } from '@wordpress/block-editor';\nimport { addFilter } from '@wordpress/hooks';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport { enhanceNavigationLinkVariations } from './hooks';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: linkIcon,\n\n\t__experimentalLabel: ( { label } ) => label,\n\n\tmerge( leftAttributes, { label: rightLabel = '' } ) {\n\t\treturn {\n\t\t\t...leftAttributes,\n\t\t\tlabel: leftAttributes.label + rightLabel,\n\t\t};\n\t},\n\n\tedit,\n\n\tsave,\n\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: _x( 'Example Link', 'navigation link preview example' ),\n\t\t\turl: 'https://example.com',\n\t\t},\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tisEligible( attributes ) {\n\t\t\t\treturn attributes.nofollow;\n\t\t\t},\n\n\t\t\tattributes: {\n\t\t\t\tlabel: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\ttype: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\tnofollow: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t},\n\t\t\t\tdescription: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\topensInNewTab: {\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\tdefault: false,\n\t\t\t\t},\n\t\t\t\turl: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tmigrate( { nofollow, ...rest } ) {\n\t\t\t\treturn {\n\t\t\t\t\trel: nofollow ? 'nofollow' : '',\n\t\t\t\t\t...rest,\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tsave() {\n\t\t\t\treturn <InnerBlocks.Content />;\n\t\t\t},\n\t\t},\n\t],\n\ttransforms,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'label',\n\t\t\tlabel: __( 'Label' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text',\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link',\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.url,\n\t\t\t\trel: item.rel,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\turl: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t} ),\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'label', 'link' ],\n\t};\n}\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/navigation-link',\n\t\tenhanceNavigationLinkVariations\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/navigation-link\",\n\t\"title\": \"Custom Link\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/navigation\" ],\n\t\"allowedBlocks\": [\n\t\t\"core/navigation-link\",\n\t\t\"core/navigation-submenu\",\n\t\t\"core/page-list\"\n\t],\n\t\"description\": \"Add a page, link, or another item to your navigation.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"description\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"opensInNewTab\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"kind\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isTopLevelLink\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"textColor\",\n\t\t\"customTextColor\",\n\t\t\"backgroundColor\",\n\t\t\"customBackgroundColor\",\n\t\t\"overlayTextColor\",\n\t\t\"customOverlayTextColor\",\n\t\t\"overlayBackgroundColor\",\n\t\t\"customOverlayBackgroundColor\",\n\t\t\"fontSize\",\n\t\t\"customFontSize\",\n\t\t\"showSubmenuIcon\",\n\t\t\"maxNestingLevel\",\n\t\t\"style\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"__experimentalSlashInserter\": true,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"renaming\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-navigation-link-editor\",\n\t\"style\": \"wp-block-navigation-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef, useCallback } from '@wordpress/element';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport { useMergeRefs, useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getColors } from '../navigation/edit/utils';\nimport {\n\tControls,\n\tLinkUI,\n\tuseEntityBinding,\n\tMissingEntityHelpText,\n\tuseHandleLinkChange,\n\tuseIsInvalidLink,\n\tInvalidDraftDisplay,\n\tuseEnableLinkStatusValidation,\n} from './shared';\n\nconst DEFAULT_BLOCK = { name: 'core/navigation-link' };\nconst NESTING_BLOCK_NAMES = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [ elementRef ] );\n\n\treturn isDraggingWithin;\n};\n\nfunction getMissingText( type ) {\n\tlet missingText = '';\n\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\t\t/* translators: label for missing post in navigation link block */\n\t\t\tmissingText = __( 'Select post' );\n\t\t\tbreak;\n\t\tcase 'page':\n\t\t\t/* translators: label for missing page in navigation link block */\n\t\t\tmissingText = __( 'Select page' );\n\t\t\tbreak;\n\t\tcase 'category':\n\t\t\t/* translators: label for missing category in navigation link block */\n\t\t\tmissingText = __( 'Select category' );\n\t\t\tbreak;\n\t\tcase 'tag':\n\t\t\t/* translators: label for missing tag in navigation link block */\n\t\t\tmissingText = __( 'Select tag' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t/* translators: label for missing values in navigation link block */\n\t\t\tmissingText = __( 'Add link' );\n\t}\n\n\treturn missingText;\n}\n\nexport default function NavigationLinkEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { id, label, type, url, description, kind, metadata } = attributes;\n\tconst { maxNestingLevel } = context;\n\n\tconst {\n\t\treplaceBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\t// Have the link editing ui open on mount when lacking a url and selected.\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( isSelected && ! url );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add label\u2026' );\n\tconst ref = useRef();\n\tconst linkUIref = useRef();\n\t// A link is \"new\" only if it has an undefined label\n\t// After the link is created, even if no label is provided, it's set to an empty string.\n\tconst isNewLink = useRef( label === undefined );\n\t// Track whether we should focus the submenu appender when closing the link UI\n\tconst shouldSelectSubmenuAppenderOnClose = useRef( false );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\n\t\tparentBlockClientId,\n\t\tisSubmenu,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst parentBlockName = getBlockName( rootClientId );\n\t\t\tconst isTopLevel = parentBlockName === 'core/navigation';\n\t\t\tconst rootNavigationClientId = isTopLevel\n\t\t\t\t? rootClientId\n\t\t\t\t: getBlockParentsByBlockName(\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t'core/navigation'\n\t\t\t\t )[ 0 ];\n\n\t\t\t// Get the immediate parent - if it's a submenu, use it; otherwise use the navigation block\n\t\t\tconst parentBlockId =\n\t\t\t\tparentBlockName === 'core/navigation-submenu'\n\t\t\t\t\t? rootClientId\n\t\t\t\t\t: rootNavigationClientId;\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, NESTING_BLOCK_NAMES )\n\t\t\t\t\t\t.length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink: isTopLevel,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tparentBlockClientId: parentBlockId,\n\t\t\t\tisSubmenu: parentBlockName === 'core/navigation-submenu',\n\t\t\t};\n\t\t},\n\t\t[ clientId, maxNestingLevel ]\n\t);\n\n\tconst validateLinkStatus = useEnableLinkStatusValidation( clientId );\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t// URL binding logic\n\tconst { hasUrlBinding, isBoundEntityAvailable } = useEntityBinding( {\n\t\tclientId,\n\t\tattributes,\n\t} );\n\n\tconst handleLinkChange = useHandleLinkChange( {\n\t\tclientId,\n\t\tattributes,\n\t\tsetAttributes,\n\t} );\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink(\n\t\tkind,\n\t\ttype,\n\t\tid,\n\t\tvalidateLinkStatus\n\t);\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tconst transformToSubmenu = useCallback( () => {\n\t\tlet innerBlocks = getBlocks( clientId );\n\t\tif ( innerBlocks.length === 0 ) {\n\t\t\tinnerBlocks = [ createBlock( 'core/navigation-link' ) ];\n\t\t\tselectBlock( innerBlocks[ 0 ].clientId );\n\t\t}\n\t\tconst newSubmenu = createBlock(\n\t\t\t'core/navigation-submenu',\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\treplaceBlock( clientId, newSubmenu );\n\t}, [ getBlocks, clientId, selectBlock, replaceBlock, attributes ] );\n\n\t// On mount, if this is a new link without a URL and it's selected,\n\t// select the parent block (submenu or navigation) instead to keep the appender visible.\n\t// This helps us return focus to the appender if the user closes the link ui without creating a link.\n\t// If we leave focus on this block, then when we close the link without creating a link, focus will\n\t// be lost during the new block selection process.\n\tuseEffect( () => {\n\t\tif ( isNewLink.current && isSelected ) {\n\t\t\tselectBlock( parentBlockClientId );\n\t\t}\n\t}, [] ); // eslint-disable-line react-hooks/exhaustive-deps\n\n\tuseEffect( () => {\n\t\t// If block has inner blocks, transform to Submenu.\n\t\tif ( hasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToSubmenu();\n\t\t}\n\t}, [\n\t\thasChildren,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\ttransformToSubmenu,\n\t] );\n\n\t// Handle link UI when a new link is created\n\tuseEffect( () => {\n\t\t// We know if a link was just created from our link UI if\n\t\t// 1. isNewLink.current is true\n\t\t// 2. url has a value\n\t\t// 3. isLinkOpen is true\n\t\tif ( ! isNewLink.current || ! url || ! isLinkOpen ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure this only runs once\n\t\tisNewLink.current = false;\n\n\t\t// We just created a link and the block is now selected.\n\t\t// If the label looks like a URL, focus and select the label text.\n\t\tif ( isURL( prependHTTP( label ) ) && /^.+\\.[a-z]+/.test( label ) ) {\n\t\t\t// Focus and select the label text.\n\t\t\tselectLabelText();\n\t\t} else {\n\t\t\t// If the link was just created, we want to select the block so the inspector controls\n\t\t\t// are accurate.\n\t\t\tselectBlock( clientId, null );\n\n\t\t\t// Edge case: When the created link is the first child of a submenu, the focus will have\n\t\t\t// originated from the add submenu toolbar button. In this case, we need to return focus\n\t\t\t// to the submenu appender if the user closes the link ui using the keyboard.\n\t\t\t// Check if this is the first and only child of a newly created submenu.\n\t\t\tif ( isSubmenu ) {\n\t\t\t\tconst parentBlocks = getBlocks( parentBlockClientId );\n\t\t\t\t// If this is the only child, then this is a new submenu.\n\t\t\t\t// Set the flag to select the submenu appender when the link ui is closed.\n\t\t\t\tif (\n\t\t\t\t\tparentBlocks.length === 1 &&\n\t\t\t\t\tparentBlocks[ 0 ].clientId === clientId\n\t\t\t\t) {\n\t\t\t\t\tshouldSelectSubmenuAppenderOnClose.current = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [ url, isLinkOpen, isNewLink, label ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\t/**\n\t * Removes the current link if set.\n\t */\n\tfunction removeLink() {\n\t\t// Reset all attributes that comprise the link.\n\t\t// It is critical that all attributes are reset\n\t\t// to their default values otherwise this may\n\t\t// in advertently trigger side effects because\n\t\t// the values will have \"changed\".\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlabel: undefined,\n\t\t\tid: undefined,\n\t\t\tkind: undefined,\n\t\t\ttype: undefined,\n\t\t\topensInNewTab: false,\n\t\t} );\n\n\t\t// Close the link editing UI.\n\t\tsetIsLinkOpen( false );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelLink );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If this link is a child of a parent submenu item, the parent submenu item event will also open, closing this popover\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst instanceId = useInstanceId( NavigationLinkEdit );\n\tconst hasMissingEntity = hasUrlBinding && ! isBoundEntityAvailable;\n\tconst missingEntityDescriptionId = hasMissingEntity\n\t\t? sprintf( 'navigation-link-edit-%d-desc', instanceId )\n\t\t: undefined;\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t} ),\n\t\t'aria-describedby': missingEntityDescriptionId,\n\t\t'aria-invalid': hasMissingEntity,\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\t...blockProps,\n\t\t\tclassName: 'remove-outline', // Remove the outline from the inner blocks container.\n\t\t},\n\t\t{\n\t\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t\tdirectInsert: true,\n\t\t\trenderAppender: false,\n\t\t}\n\t);\n\n\tconst needsValidLink =\n\t\t( ! url && ! ( hasUrlBinding && isBoundEntityAvailable ) ) ||\n\t\tisInvalid ||\n\t\tisDraft ||\n\t\t( hasUrlBinding && ! isBoundEntityAvailable );\n\n\tif ( needsValidLink ) {\n\t\tblockProps.onClick = () => {\n\t\t\tsetIsLinkOpen( true );\n\t\t};\n\t}\n\n\tconst classes = clsx( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': needsValidLink,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isAtMaxNesting && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"submenu\"\n\t\t\t\t\t\t\ticon={ addSubmenu }\n\t\t\t\t\t\t\ttitle={ __( 'Add submenu' ) }\n\t\t\t\t\t\t\tonClick={ transformToSubmenu }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<Controls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ hasMissingEntity && (\n\t\t\t\t\t<VisuallyHidden id={ missingEntityDescriptionId }>\n\t\t\t\t\t\t<MissingEntityHelpText type={ type } kind={ kind } />\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<a className={ classes }>\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{ ! url && ! metadata?.bindings?.url ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: labelValue,\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'core/navigation-link'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Navigation link text'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ description && (\n\t\t\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t\t\t</span>\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\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t\t\t<InvalidDraftDisplay\n\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\tisInvalid={ isInvalid }\n\t\t\t\t\t\t\t\t\tisDraft={ isDraft }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__label\"\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\t{ isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tref={ linkUIref }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\t// If there is no link and no binding, remove the auto-inserted block.\n\t\t\t\t\t\t\t\t// This avoids empty blocks which can provided a poor UX.\n\t\t\t\t\t\t\t\t// Don't remove if binding exists (even if entity is unavailable) so user can fix it.\n\t\t\t\t\t\t\t\tif ( ! url && ! hasUrlBinding ) {\n\t\t\t\t\t\t\t\t\tonReplace( [] );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Edge case: If this is the first child of a new submenu, focus the submenu's appender\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tshouldSelectSubmenuAppenderOnClose.current\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tshouldSelectSubmenuAppenderOnClose.current = false;\n\n\t\t\t\t\t\t\t\t\t// The appender is the next sibling in the DOM after the current block\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tlistItemRef.current?.nextElementSibling\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tconst appenderButton =\n\t\t\t\t\t\t\t\t\t\t\tlistItemRef.current.nextElementSibling.querySelector(\n\t\t\t\t\t\t\t\t\t\t\t\t'.block-editor-button-block-appender'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif ( appenderButton ) {\n\t\t\t\t\t\t\t\t\t\t\tappenderButton.focus();\n\t\t\t\t\t\t\t\t\t\t}\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\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\tonChange={ handleLinkChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</a>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tcategory,\n\tpage,\n\tpostList,\n\ttag,\n\tcustomPostType,\n} from '@wordpress/icons';\n\nfunction getIcon( variationName ) {\n\tswitch ( variationName ) {\n\t\tcase 'post':\n\t\t\treturn postList;\n\t\tcase 'page':\n\t\t\treturn page;\n\t\tcase 'tag':\n\t\t\treturn tag;\n\t\tcase 'category':\n\t\t\treturn category;\n\t\tdefault:\n\t\t\treturn customPostType;\n\t}\n}\n\nexport function enhanceNavigationLinkVariations( settings, name ) {\n\tif ( name !== 'core/navigation-link' ) {\n\t\treturn settings;\n\t}\n\n\t// Otherwise decorate server passed variations with an icon and isActive function.\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\treturn blockAttributes.type === variationAttributes.type;\n\t\t};\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.icon && {\n\t\t\t\t\ticon: getIcon( variation.name ),\n\t\t\t\t} ),\n\t\t\t\t...( ! variation.isActive && {\n\t\t\t\t\tisActive,\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/site-logo' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/spacer' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/home-link' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/social-links' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/search' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/page-list' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/buttons' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/navigation-link' );\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/navigation-submenu' ],\n\t\t\ttransform: ( attributes, innerBlocks ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\tattributes,\n\t\t\t\t\tinnerBlocks\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/spacer' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/spacer' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/site-logo' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/site-logo' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/home-link' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/home-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/social-links' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/social-links' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/search' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/search', {\n\t\t\t\t\tshowLabel: false,\n\t\t\t\t\tbuttonUseIcon: true,\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/page-list' ],\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/page-list' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/buttons' ],\n\t\t\ttransform: ( { label, url, rel, title, opensInNewTab } ) => {\n\t\t\t\treturn createBlock( 'core/buttons', {}, [\n\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\trel,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tlinkTarget: opensInNewTab ? '_blank' : undefined,\n\t\t\t\t\t} ),\n\t\t\t\t] );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { page, addSubmenu } from '@wordpress/icons';\nimport { _x, __ } from '@wordpress/i18n';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: ( { context } ) => {\n\t\tif ( context === 'list-view' ) {\n\t\t\treturn page;\n\t\t}\n\t\treturn addSubmenu;\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst { label } = attributes;\n\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\t// In the list view, use the block's menu label as the label.\n\t\t// If the menu label is empty, fall back to the default label.\n\t\tif ( context === 'list-view' && ( customName || label ) ) {\n\t\t\treturn attributes?.metadata?.name || label;\n\t\t}\n\n\t\treturn label;\n\t},\n\tedit,\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: _x( 'About', 'Example link text for Navigation Submenu' ),\n\t\t\ttype: 'page',\n\t\t},\n\t},\n\tsave,\n\ttransforms,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'label',\n\t\t\tlabel: __( 'Label' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', //TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link', // TODO: replace with custom component\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.url,\n\t\t\t\trel: item.rel,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\turl: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t} ),\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'label', 'link' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/navigation-submenu\",\n\t\"title\": \"Submenu\",\n\t\"category\": \"design\",\n\t\"parent\": [ \"core/navigation\" ],\n\t\"description\": \"Add a submenu to your navigation.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"description\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"opensInNewTab\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"kind\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isTopLevelItem\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"textColor\",\n\t\t\"customTextColor\",\n\t\t\"backgroundColor\",\n\t\t\"customBackgroundColor\",\n\t\t\"overlayTextColor\",\n\t\t\"customOverlayTextColor\",\n\t\t\"overlayBackgroundColor\",\n\t\t\"customOverlayBackgroundColor\",\n\t\t\"fontSize\",\n\t\t\"customFontSize\",\n\t\t\"showSubmenuIcon\",\n\t\t\"maxNestingLevel\",\n\t\t\"openSubmenusOnClick\",\n\t\t\"style\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-navigation-submenu-editor\",\n\t\"style\": \"wp-block-navigation-submenu\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport {\n\tControls,\n\tLinkUI,\n\tupdateAttributes,\n\tuseEntityBinding,\n\tuseIsInvalidLink,\n\tInvalidDraftDisplay,\n\tuseEnableLinkStatusValidation,\n} from '../navigation-link/shared';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\nimport { DEFAULT_BLOCK } from '../navigation/constants';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, url, description, kind, type, id } = attributes;\n\n\tconst {\n\t\tshowSubmenuIcon,\n\t\tmaxNestingLevel,\n\t\topenSubmenusOnClick: contextOpenSubmenusOnClick,\n\t} = context;\n\tconst blockEditingMode = useBlockEditingMode();\n\n\t// Force click-only behavior in contentOnly mode to prevent hover dropdowns\n\tconst openSubmenusOnClick =\n\t\tblockEditingMode !== 'default' ? true : contextOpenSubmenusOnClick;\n\n\t// URL binding logic\n\tconst { clearBinding, createBinding } = useEntityBinding( {\n\t\tclientId,\n\t\tattributes,\n\t} );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text\u2026' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tparentCount,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentCount: getBlockParentsByBlockName(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t).length,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst validateLinkStatus = useEnableLinkStatusValidation( clientId );\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Check if the submenu's parent link is invalid or draft\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink(\n\t\tkind,\n\t\ttype,\n\t\tid,\n\t\tvalidateLinkStatus\n\t);\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, parentCount > 0 );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If we don't stop propagation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks =\n\t\tparentCount >= maxNestingLevel\n\t\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t\t )\n\t\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tdisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<Controls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ ! isInvalid && ! isDraft && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\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\t{ description && (\n\t\t\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t\t</span>\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\t{ ( isInvalid || isDraft ) && (\n\t\t\t\t\t\t<InvalidDraftDisplay\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tisInvalid={ isInvalid }\n\t\t\t\t\t\t\tisDraft={ isDraft }\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\t// updateAttributes determines the final state and returns metadata\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tisEntityLink,\n\t\t\t\t\t\t\t\t\tattributes: updatedAttributes,\n\t\t\t\t\t\t\t\t} = updateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\t\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\t\t\t\t\tcreateBinding( updatedAttributes );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tclearBinding();\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</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/components';\n\nexport const ItemSubmenuIcon = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"12\"\n\t\theight=\"12\"\n\t\tviewBox=\"0 0 12 12\"\n\t\tfill=\"none\"\n\t>\n\t\t<Path d=\"M1.50002 4L6.00002 8L10.5 4\" strokeWidth=\"1.5\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/navigation-link' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tcreateBlock( 'core/navigation-link', attributes ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/spacer' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/spacer' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/site-logo' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/site-logo' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/home-link' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/home-link' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/social-links' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/social-links' );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/search' ],\n\t\t\tisMatch: ( attributes, block ) => block?.innerBlocks?.length === 0,\n\t\t\ttransform: () => {\n\t\t\t\treturn createBlock( 'core/search' );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function NextPageEdit() {\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<span>{ __( 'Page break' ) }</span>\n\t\t</div>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/nextpage\",\n\t\"title\": \"Page Break\",\n\t\"category\": \"design\",\n\t\"description\": \"Separate your content into a multi-page experience.\",\n\t\"keywords\": [ \"next page\", \"pagination\" ],\n\t\"parent\": [ \"core/post-content\" ],\n\t\"textdomain\": \"default\",\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"customClassName\": false,\n\t\t\"className\": false,\n\t\t\"html\": false,\n\t\t\"visibility\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-nextpage-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save() {\n\treturn <RawHTML>{ '<!--nextpage-->' }</RawHTML>;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tschema: {\n\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t},\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.dataset && node.dataset.block === 'core/nextpage',\n\t\t\ttransform() {\n\t\t\t\treturn createBlock( 'core/nextpage', {} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { pageBreak as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport { isWithinNavigationOverlay } from '../utils/is-within-overlay';\nimport edit from './edit';\nimport metadata from './block.json';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/navigation-overlay-close/restrict-to-overlay-template-parts',\n\t\t( canInsert, blockType ) => {\n\t\t\tif ( blockType.name !== 'core/navigation-overlay-close' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tif ( ! canInsert ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\treturn isWithinNavigationOverlay();\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n", "/**\n * WordPress dependencies\n */\nimport { select } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from '../navigation/constants';\n\n/**\n * Checks if the current editing context is within a navigation overlay template part.\n *\n * This utility exists because @wordpress/block-library cannot depend on @wordpress/editor\n * as a package dependency. Blocks can be loaded into non-post block editors, so we must\n * access the 'core/editor' store by string literal rather than importing it.\n *\n * React components should wrap this in useSelect for reactivity. Non-React contexts\n * (like filter callbacks) can call this directly.\n *\n * @return {boolean} True if editing a navigation overlay template part, false otherwise.\n */\nexport function isWithinNavigationOverlay() {\n\t// @wordpress/block-library should not depend on @wordpress/editor.\n\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t// declaring @wordpress/editor as a dependency, we must access its\n\t// store by string.\n\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\tconst editorStore = select( 'core/editor' );\n\n\t// Return false if the editor store is not available.\n\tif ( ! editorStore ) {\n\t\treturn false;\n\t}\n\n\tconst { getCurrentPostType, getCurrentPostId } = editorStore;\n\tconst { getEditedEntityRecord } = select( coreStore );\n\n\tconst postType = getCurrentPostType?.();\n\tconst postId = getCurrentPostId?.();\n\n\tif ( postType === 'wp_template_part' && postId ) {\n\t\tconst templatePart = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\tpostId\n\t\t);\n\n\t\treturn templatePart?.area === NAVIGATION_OVERLAY_TEMPLATE_PART_AREA;\n\t}\n\n\treturn false;\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tRichText,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function NavigationOverlayCloseEdit( {\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { displayMode, text } = attributes;\n\tconst showIcon = displayMode === 'icon' || displayMode === 'both';\n\tconst showText = displayMode === 'text' || displayMode === 'both';\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-navigation-overlay-close',\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => setAttributes( { displayMode: 'icon' } ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display Mode' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => displayMode !== 'icon' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayMode: 'icon' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Mode' ) }\n\t\t\t\t\t\t\tvalue={ displayMode }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { displayMode: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"icon\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Icon' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"both\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Both' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<button\n\t\t\t\t{ ...blockProps }\n\t\t\t\ttype=\"button\"\n\t\t\t\taria-label={ ! showText ? __( 'Close' ) : undefined }\n\t\t\t>\n\t\t\t\t{ showIcon && <Icon icon={ close } /> }\n\t\t\t\t{ showText && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { text: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Close' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-overlay-close__text\"\n\t\t\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic' ] }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"__experimental\": true,\n\t\"apiVersion\": 3,\n\t\"name\": \"core/navigation-overlay-close\",\n\t\"title\": \"Navigation Overlay Close\",\n\t\"category\": \"design\",\n\t\"description\": \"A customizable button to close overlays.\",\n\t\"keywords\": [ \"close\", \"overlay\", \"navigation\", \"menu\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"displayMode\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"icon\", \"text\", \"both\" ],\n\t\t\t\"default\": \"icon\"\n\t\t},\n\t\t\"text\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"color\": {\n\t\t\t\"gradients\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-navigation-overlay-close\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2Zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12ZM15 8l-3 3-3-3-1.1 1.1 3 3-3 3L9 16.2l3-3 3 3 1.1-1.1-3-3 3-3L15 8Z\" />\n\t</SVG>\n);\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/pattern\",\n\t\"title\": \"Pattern Placeholder\",\n\t\"category\": \"theme\",\n\t\"description\": \"Show a block pattern.\",\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"inserter\": false,\n\t\t\"renaming\": false,\n\t\t\"visibility\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"slug\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { cloneBlock } from '@wordpress/blocks';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\tWarning,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useParsePatternDependencies } from './recursion-detector';\n\nconst PatternEdit = ( { attributes, clientId } ) => {\n\tconst registry = useRegistry();\n\tconst selectedPattern = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tattributes.slug\n\t\t\t),\n\t\t[ attributes.slug ]\n\t);\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\n\tconst {\n\t\treplaceBlocks,\n\t\tsetBlockEditingMode,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\tconst { getBlockRootClientId, getBlockEditingMode } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst [ hasRecursionError, setHasRecursionError ] = useState( false );\n\tconst parsePatternDependencies = useParsePatternDependencies();\n\n\t// Duplicated in packages/editor/src/components/start-template-options/index.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\t// Run this effect when the component loads.\n\t// This adds the Pattern's contents to the post.\n\t// This change won't be saved.\n\t// It will continue to pull from the pattern file unless changes are made to its respective template part.\n\tuseEffect( () => {\n\t\tif ( ! hasRecursionError && selectedPattern?.blocks ) {\n\t\t\ttry {\n\t\t\t\tparsePatternDependencies( selectedPattern );\n\t\t\t} catch ( error ) {\n\t\t\t\tsetHasRecursionError( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We batch updates to block list settings to avoid triggering cascading renders\n\t\t\t// for each container block included in a tree and optimize initial render.\n\t\t\t// Since the above uses microtasks, we need to use a microtask here as well,\n\t\t\t// because nested pattern blocks cannot be inserted if the parent block supports\n\t\t\t// inner blocks but doesn't have blockSettings in the state.\n\t\t\twindow.queueMicrotask( () => {\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\t// Clone blocks from the pattern before insertion to ensure they receive\n\t\t\t\t// distinct client ids. See https://github.com/WordPress/gutenberg/issues/50628.\n\t\t\t\tconst clonedBlocks = selectedPattern.blocks.map( ( block ) =>\n\t\t\t\t\tcloneBlock(\n\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\t// If the pattern has a single block and categories, we should add the\n\t\t\t\t// categories of the pattern to the block's metadata.\n\t\t\t\tif (\n\t\t\t\t\tclonedBlocks.length === 1 &&\n\t\t\t\t\tselectedPattern.categories?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tclonedBlocks[ 0 ].attributes = {\n\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes,\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t...clonedBlocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\t\tcategories: selectedPattern.categories,\n\t\t\t\t\t\t\tpatternName: selectedPattern.name,\n\t\t\t\t\t\t\tname:\n\t\t\t\t\t\t\t\tclonedBlocks[ 0 ].attributes.metadata.name ||\n\t\t\t\t\t\t\t\tselectedPattern.title,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tconst rootEditingMode = getBlockEditingMode( rootClientId );\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t// Temporarily set the root block to default mode to allow replacing the pattern.\n\t\t\t\t\t// This could happen when the page is disabling edits of non-content blocks.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, 'default' );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\treplaceBlocks( clientId, clonedBlocks );\n\t\t\t\t\t// Restore the root block's original mode.\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tsetBlockEditingMode( rootClientId, rootEditingMode );\n\t\t\t\t} );\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tclientId,\n\t\thasRecursionError,\n\t\tselectedPattern,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tgetBlockRootClientId,\n\t] );\n\n\tconst props = useBlockProps();\n\n\tif ( hasRecursionError ) {\n\t\treturn (\n\t\t\t<div { ...props }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: A warning in which %s is the name of a pattern.\n\t\t\t\t\t\t__( 'Pattern \"%s\" cannot be rendered inside itself.' ),\n\t\t\t\t\t\tselectedPattern?.name\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...props } />;\n};\n\nexport default PatternEdit;\n", "/**\n * THIS MODULE IS INTENTIONALLY KEPT WITHIN THE PATTERN BLOCK'S SOURCE.\n *\n * This is because this approach for preventing infinite loops due to\n * recursively rendering blocks is specific to the way that the `core/pattern`\n * block behaves in the editor. Any other block types that deal with recursion\n * SHOULD USE THE STANDARD METHOD for avoiding loops:\n *\n * @see https://github.com/WordPress/gutenberg/pull/31455\n * @see packages/block-editor/src/components/recursion-provider/README.md\n */\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Naming is hard.\n *\n * @see useParsePatternDependencies\n *\n * @type {WeakMap<Object, Function>}\n */\nconst cachedParsers = new WeakMap();\n\n/**\n * Hook used by PatternEdit to parse block patterns. It returns a function that\n * takes a pattern and returns nothing but throws an error if the pattern is\n * recursive.\n *\n * @example\n * ```js\n * const parsePatternDependencies = useParsePatternDependencies();\n * parsePatternDependencies( selectedPattern );\n * ```\n *\n * @see parsePatternDependencies\n *\n * @return {Function} A function to parse block patterns.\n */\nexport function useParsePatternDependencies() {\n\tconst registry = useRegistry();\n\n\t// Instead of caching maps, go straight to the point and cache bound\n\t// functions. Each of those functions is bound to a different Map that will\n\t// keep track of patterns in the context of the given registry.\n\tif ( ! cachedParsers.has( registry ) ) {\n\t\tconst deps = new Map();\n\t\tcachedParsers.set(\n\t\t\tregistry,\n\t\t\tparsePatternDependencies.bind( null, deps )\n\t\t);\n\t}\n\treturn cachedParsers.get( registry );\n}\n\n/**\n * Parse a given pattern and traverse its contents to detect any subsequent\n * patterns on which it may depend. Such occurrences will be added to an\n * internal dependency graph. If a circular dependency is detected, an\n * error will be thrown.\n *\n * EXPORTED FOR TESTING PURPOSES ONLY.\n *\n * @param {Map<string, Set<string>>} deps Map of pattern dependencies.\n * @param {Object} pattern Pattern.\n * @param {string} pattern.name Pattern name.\n * @param {Array} pattern.blocks Pattern's block list.\n *\n * @throws {Error} If a circular dependency is detected.\n */\nexport function parsePatternDependencies( deps, { name, blocks } ) {\n\tconst queue = [ ...blocks ];\n\twhile ( queue.length ) {\n\t\tconst block = queue.shift();\n\t\tfor ( const innerBlock of block.innerBlocks ?? [] ) {\n\t\t\tqueue.unshift( innerBlock );\n\t\t}\n\t\tif ( block.name === 'core/pattern' ) {\n\t\t\tregisterDependency( deps, name, block.attributes.slug );\n\t\t}\n\t}\n}\n\n/**\n * Declare that pattern `a` depends on pattern `b`. If a circular\n * dependency is detected, an error will be thrown.\n *\n * EXPORTED FOR TESTING PURPOSES ONLY.\n *\n * @param {Map<string, Set<string>>} deps Map of pattern dependencies.\n * @param {string} a Slug for pattern A.\n * @param {string} b Slug for pattern B.\n *\n * @throws {Error} If a circular dependency is detected.\n */\nexport function registerDependency( deps, a, b ) {\n\tif ( ! deps.has( a ) ) {\n\t\tdeps.set( a, new Set() );\n\t}\n\tdeps.get( a ).add( b );\n\tif ( hasCycle( deps, a ) ) {\n\t\tthrow new TypeError(\n\t\t\t`Pattern ${ a } has a circular dependency and cannot be rendered.`\n\t\t);\n\t}\n}\n\n/**\n * Determine if a given pattern has circular dependencies on other patterns.\n * This will be determined by running a depth-first search on the current state\n * of the graph represented by `patternDependencies`.\n *\n * @param {Map<string, Set<string>>} deps Map of pattern dependencies.\n * @param {string} slug Pattern slug.\n * @param {Set<string>} [visitedNodes] Set to track visited nodes in the graph.\n * @param {Set<string>} [currentPath] Set to track and backtrack graph paths.\n * @return {boolean} Whether any cycle was found.\n */\nfunction hasCycle(\n\tdeps,\n\tslug,\n\tvisitedNodes = new Set(),\n\tcurrentPath = new Set()\n) {\n\tvisitedNodes.add( slug );\n\tcurrentPath.add( slug );\n\n\tconst dependencies = deps.get( slug ) ?? new Set();\n\n\tfor ( const dependency of dependencies ) {\n\t\tif ( ! visitedNodes.has( dependency ) ) {\n\t\t\tif ( hasCycle( deps, dependency, visitedNodes, currentPath ) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else if ( currentPath.has( dependency ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\t// Remove the current node from the current path when backtracking\n\tcurrentPath.delete( slug );\n\treturn false;\n}\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/page-list\",\n\t\"title\": \"Page List\",\n\t\"category\": \"widgets\",\n\t\"allowedBlocks\": [ \"core/page-list-item\" ],\n\t\"description\": \"Display a list of all pages.\",\n\t\"keywords\": [ \"menu\", \"navigation\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"parentPageID\": {\n\t\t\t\"type\": \"integer\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"isNested\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"textColor\",\n\t\t\"customTextColor\",\n\t\t\"backgroundColor\",\n\t\t\"customBackgroundColor\",\n\t\t\"overlayTextColor\",\n\t\t\"customOverlayTextColor\",\n\t\t\"overlayBackgroundColor\",\n\t\t\"customOverlayBackgroundColor\",\n\t\t\"fontSize\",\n\t\t\"customFontSize\",\n\t\t\"showSubmenuIcon\",\n\t\t\"style\",\n\t\t\"openSubmenusOnClick\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"text\": true,\n\t\t\t\"background\": true,\n\t\t\t\"link\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": false,\n\t\t\t\t\"margin\": false\n\t\t\t}\n\t\t},\n\t\t\"contentRole\": true\n\t},\n\t\"editorStyle\": \"wp-block-page-list-editor\",\n\t\"style\": \"wp-block-page-list\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetColorClassName,\n\tstore as blockEditorStore,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState, useEffect, useCallback } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useConvertToNavigationLinks } from './use-convert-to-navigation-links';\nimport {\n\tconvertDescription,\n\tConvertToLinksModal,\n} from './convert-to-links-modal';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\nconst NOOP = () => {};\nfunction BlockContent( {\n\tblockProps,\n\tinnerBlocksProps,\n\thasResolvedPages,\n\tblockList,\n\tpages,\n\tparentPageID,\n} ) {\n\tif ( ! hasResolvedPages ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<div className=\"wp-block-page-list__loading-indicator-container\">\n\t\t\t\t\t<Spinner className=\"wp-block-page-list__loading-indicator\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages === null ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length === 0 ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status=\"info\" isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( blockList.length === 0 ) {\n\t\tconst parentPageDetails = pages.find(\n\t\t\t( page ) => page.id === parentPageID\n\t\t);\n\n\t\tif ( parentPageDetails?.title?.rendered ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Page title.\n\t\t\t\t\t\t\t__( 'Page List: \"%s\" page has no children.' ),\n\t\t\t\t\t\t\tparentPageDetails.title.rendered\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Warning>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t</Notice>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( pages.length > 0 ) {\n\t\treturn <ul { ...innerBlocksProps }></ul>;\n\t}\n}\n\nexport default function PageListEdit( {\n\tcontext,\n\tclientId,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { parentPageID } = attributes;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = useCallback( () => setOpen( true ), [] );\n\tconst closeModal = () => setOpen( false );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tper_page: MAX_PAGE_COUNT,\n\t\t\t_fields: [ 'id', 'link', 'menu_order', 'parent', 'title', 'type' ],\n\t\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t\t// sort.\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t}\n\t);\n\n\tconst allowConvertToLinks =\n\t\t'showSubmenuIcon' in context &&\n\t\tpages?.length > 0 &&\n\t\tpages?.length <= MAX_PAGE_COUNT;\n\n\tconst pagesByParentId = useMemo( () => {\n\t\tif ( pages === null ) {\n\t\t\treturn new Map();\n\t\t}\n\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = pages.sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\n\t\treturn sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\t}, [ pages ] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst pagesTree = useMemo(\n\t\tfunction makePagesTree( parentId = 0, level = 0 ) {\n\t\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\t\tif ( ! childPages?.length ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn childPages.reduce( ( tree, page ) => {\n\t\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\t\tconst item = {\n\t\t\t\t\tvalue: page.id,\n\t\t\t\t\tlabel: '\u2014 '.repeat( level ) + page.title.rendered,\n\t\t\t\t\trawName: page.title.rendered,\n\t\t\t\t};\n\t\t\t\ttree.push( item );\n\t\t\t\tif ( hasChildren ) {\n\t\t\t\t\ttree.push( ...makePagesTree( page.id, level + 1 ) );\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}, [] );\n\t\t},\n\t\t[ pagesByParentId ]\n\t);\n\n\tconst blockList = useMemo(\n\t\tfunction getBlockList( parentId = parentPageID ) {\n\t\t\tconst childPages = pagesByParentId.get( parentId );\n\n\t\t\tif ( ! childPages?.length ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn childPages.reduce( ( template, page ) => {\n\t\t\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\t\t\tconst pageProps = {\n\t\t\t\t\tid: page.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t// translators: displayed when a page has an empty title.\n\t\t\t\t\t\tpage.title?.rendered?.trim() !== ''\n\t\t\t\t\t\t\t? page.title?.rendered\n\t\t\t\t\t\t\t: __( '(no title)' ),\n\t\t\t\t\ttitle:\n\t\t\t\t\t\t// translators: displayed when a page has an empty title.\n\t\t\t\t\t\tpage.title?.rendered?.trim() !== ''\n\t\t\t\t\t\t\t? page.title?.rendered\n\t\t\t\t\t\t\t: __( '(no title)' ),\n\t\t\t\t\tlink: page.url,\n\t\t\t\t\thasChildren,\n\t\t\t\t};\n\t\t\t\tlet item = null;\n\t\t\t\tconst children = getBlockList( page.id );\n\t\t\t\titem = createBlock(\n\t\t\t\t\t'core/page-list-item',\n\t\t\t\t\tpageProps,\n\t\t\t\t\tchildren\n\t\t\t\t);\n\t\t\t\ttemplate.push( item );\n\n\t\t\t\treturn template;\n\t\t\t}, [] );\n\t\t},\n\t\t[ pagesByParentId, parentPageID ]\n\t);\n\n\tconst {\n\t\tisNested,\n\t\thasSelectedChild,\n\t\tparentClientId,\n\t\thasDraggedChild,\n\t\tisChildOfNavigation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\thasDraggedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockParents = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation-submenu',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst navigationBlockParents = getBlockParentsByBlockName(\n\t\t\t\tclientId,\n\t\t\t\t'core/navigation',\n\t\t\t\ttrue\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tisNested: blockParents.length > 0,\n\t\t\t\tisChildOfNavigation: navigationBlockParents.length > 0,\n\t\t\t\thasSelectedChild: hasSelectedInnerBlock( clientId, true ),\n\t\t\t\thasDraggedChild: hasDraggedInnerBlock( clientId, true ),\n\t\t\t\tparentClientId: navigationBlockParents[ 0 ],\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst convertToNavigationLinks = useConvertToNavigationLinks( {\n\t\tclientId,\n\t\tpages,\n\t\tparentClientId,\n\t\tparentPageID,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\trenderAppender: false,\n\t\t__unstableDisableDropZone: true,\n\t\ttemplateLock: isChildOfNavigation ? false : 'all',\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\tvalue: blockList,\n\t} );\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( hasSelectedChild || hasDraggedChild ) {\n\t\t\topenModal();\n\t\t\tselectBlock( parentClientId );\n\t\t}\n\t}, [\n\t\thasSelectedChild,\n\t\thasDraggedChild,\n\t\tparentClientId,\n\t\tselectBlock,\n\t\topenModal,\n\t] );\n\n\tuseEffect( () => {\n\t\tsetAttributes( { isNested } );\n\t}, [ isNested, setAttributes ] );\n\n\treturn (\n\t\t<>\n\t\t\t{ ( pagesTree.length > 0 || allowConvertToLinks ) && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( { parentPageID: 0 } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Parent Page' ) }\n\t\t\t\t\t\t\t\thasValue={ () => parentPageID !== 0 }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: 0 } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Parent' ) }\n\t\t\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tparentPageID: value ?? 0,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Choose a page to show only its subpages.'\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ allowConvertToLinks && (\n\t\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Edit' ) }\n\t\t\t\t\t\t\tonClick={ openModal }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ isOpen && (\n\t\t\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\n\t\t\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<BlockContent\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinnerBlocksProps={ innerBlocksProps }\n\t\t\t\thasResolvedPages={ hasResolvedPages }\n\t\t\t\tblockList={ blockList }\n\t\t\t\tpages={ pages }\n\t\t\t\tparentPageID={ parentPageID }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { buildNavigationLinkEntityBinding } from '../navigation-link/shared';\n\n/**\n * Converts an array of pages into a nested array of navigation link blocks.\n *\n * @param {Array} pages An array of pages.\n *\n * @return {Array} A nested array of navigation link blocks.\n */\nfunction createNavigationLinks( pages = [] ) {\n\tconst POST_TYPE_KIND = 'post-type';\n\tconst linkMap = {};\n\tconst navigationLinks = [];\n\tpages.forEach( ( { id, title, link: url, type, parent } ) => {\n\t\t// See if a placeholder exists. This is created if children appear before parents in list.\n\t\tconst innerBlocks = linkMap[ id ]?.innerBlocks ?? [];\n\t\tlinkMap[ id ] = createBlock(\n\t\t\t'core/navigation-link',\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\tlabel: title.rendered,\n\t\t\t\turl,\n\t\t\t\ttype,\n\t\t\t\tkind: POST_TYPE_KIND,\n\t\t\t\tmetadata: {\n\t\t\t\t\tbindings:\n\t\t\t\t\t\tbuildNavigationLinkEntityBinding( POST_TYPE_KIND ),\n\t\t\t\t},\n\t\t\t},\n\t\t\tinnerBlocks\n\t\t);\n\n\t\tif ( ! parent ) {\n\t\t\tnavigationLinks.push( linkMap[ id ] );\n\t\t} else {\n\t\t\tif ( ! linkMap[ parent ] ) {\n\t\t\t\t// Use a placeholder if the child appears before parent in list.\n\t\t\t\tlinkMap[ parent ] = { innerBlocks: [] };\n\t\t\t}\n\t\t\t// Although these variables are not referenced, they are needed to store the innerBlocks in memory.\n\t\t\tconst parentLinkInnerBlocks = linkMap[ parent ].innerBlocks;\n\t\t\tparentLinkInnerBlocks.push( linkMap[ id ] );\n\t\t}\n\t} );\n\n\treturn navigationLinks;\n}\n\n/**\n * Finds a navigation link block by id, recursively.\n * It might be possible to make this a more generic helper function.\n *\n * @param {Array} navigationLinks An array of navigation link blocks.\n * @param {number} id The id of the navigation link to find.\n *\n * @return {Object|null} The navigation link block with the given id.\n */\nfunction findNavigationLinkById( navigationLinks, id ) {\n\tfor ( const navigationLink of navigationLinks ) {\n\t\t// Is this the link we're looking for?\n\t\tif ( navigationLink.attributes.id === id ) {\n\t\t\treturn navigationLink;\n\t\t}\n\n\t\t// If not does it have innerBlocks?\n\t\tif ( navigationLink.innerBlocks && navigationLink.innerBlocks.length ) {\n\t\t\tconst foundNavigationLink = findNavigationLinkById(\n\t\t\t\tnavigationLink.innerBlocks,\n\t\t\t\tid\n\t\t\t);\n\n\t\t\tif ( foundNavigationLink ) {\n\t\t\t\treturn foundNavigationLink;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n\nexport function convertToNavigationLinks( pages = [], parentPageID = null ) {\n\tlet navigationLinks = createNavigationLinks( pages );\n\n\t// If a parent page ID is provided, only return the children of that page.\n\tif ( parentPageID ) {\n\t\tconst parentPage = findNavigationLinkById(\n\t\t\tnavigationLinks,\n\t\t\tparentPageID\n\t\t);\n\t\tif ( parentPage && parentPage.innerBlocks ) {\n\t\t\tnavigationLinks = parentPage.innerBlocks;\n\t\t}\n\t}\n\n\t// Transform all links with innerBlocks into Submenus. This can't be done\n\t// sooner because page objects have no information on their children.\n\tconst transformSubmenus = ( listOfLinks ) => {\n\t\tlistOfLinks.forEach( ( block, index, listOfLinksArray ) => {\n\t\t\tconst { attributes, innerBlocks } = block;\n\t\t\tif ( innerBlocks.length !== 0 ) {\n\t\t\t\ttransformSubmenus( innerBlocks );\n\t\t\t\tconst transformedBlock = createBlock(\n\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\tattributes,\n\t\t\t\t\tinnerBlocks\n\t\t\t\t);\n\t\t\t\tlistOfLinksArray[ index ] = transformedBlock;\n\t\t\t}\n\t\t} );\n\t};\n\n\ttransformSubmenus( navigationLinks );\n\treturn navigationLinks;\n}\n\nexport function useConvertToNavigationLinks( {\n\tclientId,\n\tpages,\n\tparentClientId,\n\tparentPageID,\n} ) {\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\n\treturn () => {\n\t\tconst navigationLinks = convertToNavigationLinks( pages, parentPageID );\n\n\t\t// Replace the Page List block with the Navigation Links.\n\t\treplaceBlock( clientId, navigationLinks );\n\n\t\t// Select the Navigation block to reveal the changes.\n\t\tselectBlock( parentClientId );\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nexport const convertDescription = __(\n\t\"This Navigation Menu displays your website's pages. Editing it will enable you to add, delete, or reorder pages. However, new pages will no longer be added automatically.\"\n);\n\nexport function ConvertToLinksModal( { onClick, onClose, disabled } ) {\n\treturn (\n\t\t<Modal\n\t\t\tonRequestClose={ onClose }\n\t\t\ttitle={ __( 'Edit Page List' ) }\n\t\t\tclassName=\"wp-block-page-list-modal\"\n\t\t\taria={ {\n\t\t\t\tdescribedby: useInstanceId(\n\t\t\t\t\tConvertToLinksModal,\n\t\t\t\t\t'wp-block-page-list-modal__description'\n\t\t\t\t),\n\t\t\t} }\n\t\t>\n\t\t\t<p\n\t\t\t\tid={ useInstanceId(\n\t\t\t\t\tConvertToLinksModal,\n\t\t\t\t\t'wp-block-page-list-modal__description'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ convertDescription }\n\t\t\t</p>\n\t\t\t<div className=\"wp-block-page-list-modal-buttons\">\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { pages } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit.js';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon: pages,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/page-list-item\",\n\t\"title\": \"Page List Item\",\n\t\"category\": \"widgets\",\n\t\"parent\": [ \"core/page-list\" ],\n\t\"description\": \"Displays a page inside a list of all pages.\",\n\t\"keywords\": [ \"page\", \"menu\", \"navigation\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"id\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"label\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"title\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"link\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"hasChildren\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"textColor\",\n\t\t\"customTextColor\",\n\t\t\"backgroundColor\",\n\t\t\"customBackgroundColor\",\n\t\t\"overlayTextColor\",\n\t\t\"customOverlayTextColor\",\n\t\t\"overlayBackgroundColor\",\n\t\t\"customOverlayBackgroundColor\",\n\t\t\"fontSize\",\n\t\t\"customFontSize\",\n\t\t\"showSubmenuIcon\",\n\t\t\"style\",\n\t\t\"openSubmenusOnClick\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"lock\": false,\n\t\t\"inserter\": false,\n\t\t\"__experimentalToolbar\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-page-list-editor\",\n\t\"style\": \"wp-block-page-list\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { RawHTML } from '@wordpress/element';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nexport default function PageListItemEdit( { context, attributes } ) {\n\tconst { id, label, link, hasChildren, title } = attributes;\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst frontPageId = useFrontPageId();\n\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst blockProps = useBlockProps( navigationChildBlockProps, {\n\t\tclassName: 'wp-block-pages-list__item',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps );\n\n\treturn (\n\t\t<li\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'wp-block-pages-list__item', {\n\t\t\t\t'has-child': hasChildren,\n\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t! context.openSubmenusOnClick && context.showSubmenuIcon,\n\t\t\t\t'menu-item-home': id === frontPageId,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t<>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<RawHTML>{ safeHTML( label ) }</RawHTML>\n\t\t\t\t\t</button>\n\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<a\n\t\t\t\t\tclassName={ clsx( 'wp-block-pages-list__item__link', {\n\t\t\t\t\t\t'wp-block-navigation-item__content': isNavigationChild,\n\t\t\t\t\t} ) }\n\t\t\t\t\thref={ link }\n\t\t\t\t>\n\t\t\t\t\t<RawHTML>{ safeHTML( title ) }</RawHTML>\n\t\t\t\t</a>\n\t\t\t) }\n\t\t\t{ hasChildren && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<ul { ...innerBlocksProps }></ul>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/components';\n\nexport const ItemSubmenuIcon = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"12\"\n\t\theight=\"12\"\n\t\tviewBox=\"0 0 12 12\"\n\t\tfill=\"none\"\n\t>\n\t\t<Path d=\"M1.50002 4L6.00002 8L10.5 4\" strokeWidth=\"1.5\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { page as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit.js';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\t__experimentalLabel: ( { label } ) => label,\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { paragraph as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __(\n\t\t\t\t'In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'\n\t\t\t),\n\t\t},\n\t},\n\t__experimentalLabel( attributes, { context } ) {\n\t\tconst customName = attributes?.metadata?.name;\n\n\t\tif ( context === 'list-view' && customName ) {\n\t\t\treturn customName;\n\t\t}\n\n\t\tif ( context === 'accessibility' ) {\n\t\t\tif ( customName ) {\n\t\t\t\treturn customName;\n\t\t\t}\n\n\t\t\tconst { content } = attributes;\n\t\t\treturn ! content || content.length === 0 ? __( 'Empty' ) : content;\n\t\t}\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent:\n\t\t\t\t( attributes.content || '' ) +\n\t\t\t\t( attributesToMerge.content || '' ),\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\nimport {\n\tgetColorClassName,\n\tgetFontSizeClass,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\nimport { isRTL } from '@wordpress/i18n';\n\nconst supports = {\n\tclassName: false,\n};\n\nconst blockAttributes = {\n\talign: {\n\t\ttype: 'string',\n\t},\n\tcontent: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'p',\n\t\tdefault: '',\n\t},\n\tdropCap: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tfontSize: {\n\t\ttype: 'string',\n\t},\n\tdirection: {\n\t\ttype: 'string',\n\t\tenum: [ 'ltr', 'rtl' ],\n\t},\n\tstyle: {\n\t\ttype: 'object',\n\t},\n};\n\nconst migrateCustomColorsAndFontSizes = ( attributes ) => {\n\tif (\n\t\t! attributes.customTextColor &&\n\t\t! attributes.customBackgroundColor &&\n\t\t! attributes.customFontSize\n\t) {\n\t\treturn attributes;\n\t}\n\tconst style = {};\n\tif ( attributes.customTextColor || attributes.customBackgroundColor ) {\n\t\tstyle.color = {};\n\t}\n\tif ( attributes.customTextColor ) {\n\t\tstyle.color.text = attributes.customTextColor;\n\t}\n\tif ( attributes.customBackgroundColor ) {\n\t\tstyle.color.background = attributes.customBackgroundColor;\n\t}\n\tif ( attributes.customFontSize ) {\n\t\tstyle.typography = { fontSize: attributes.customFontSize };\n\t}\n\n\tconst {\n\t\tcustomTextColor,\n\t\tcustomBackgroundColor,\n\t\tcustomFontSize,\n\t\t...restAttributes\n\t} = attributes;\n\n\treturn {\n\t\t...restAttributes,\n\t\tstyle,\n\t};\n};\n\nconst migrateTextAlign = ( attributes ) => {\n\tconst { align, ...restAttributes } = attributes;\n\tif ( ! align ) {\n\t\treturn attributes;\n\t}\n\treturn {\n\t\t...restAttributes,\n\t\tstyle: {\n\t\t\t...attributes.style,\n\t\t\ttypography: {\n\t\t\t\t...attributes.style?.typography,\n\t\t\t\ttextAlign: align,\n\t\t\t},\n\t\t},\n\t};\n};\n\nconst { style, ...restBlockAttributes } = blockAttributes;\n\nconst deprecated = [\n\t// Version with `align` attribute.\n\t{\n\t\tsupports: {\n\t\t\tclassName: false,\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tattributes: blockAttributes,\n\t\tisEligible( attributes ) {\n\t\t\treturn (\n\t\t\t\t!! attributes.align ||\n\t\t\t\t!! attributes.className?.match(\n\t\t\t\t\t/\\bhas-text-align-(left|center|right)\\b/\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { align, content, dropCap, direction } = attributes;\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-drop-cap':\n\t\t\t\t\talign === ( isRTL() ? 'left' : 'right' ) ||\n\t\t\t\t\talign === 'center'\n\t\t\t\t\t\t? false\n\t\t\t\t\t\t: dropCap,\n\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<p { ...useBlockProps.save( { className, dir: direction } ) }>\n\t\t\t\t\t<RichText.Content value={ content } />\n\t\t\t\t</p>\n\t\t\t);\n\t\t},\n\t\tmigrate: migrateTextAlign,\n\t},\n\t// Version without drop cap on aligned text.\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...restBlockAttributes,\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomFontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tmigrate: migrateTextAlign,\n\t\tsave( { attributes } ) {\n\t\t\tconst { align, content, dropCap, direction } = attributes;\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-drop-cap':\n\t\t\t\t\talign === ( isRTL() ? 'left' : 'right' ) ||\n\t\t\t\t\talign === 'center'\n\t\t\t\t\t\t? false\n\t\t\t\t\t\t: dropCap,\n\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<p { ...useBlockProps.save( { className, dir: direction } ) }>\n\t\t\t\t\t<RichText.Content value={ content } />\n\t\t\t\t</p>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...restBlockAttributes,\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomFontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn migrateCustomColorsAndFontSizes(\n\t\t\t\tmigrateTextAlign( attributes )\n\t\t\t);\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\talign,\n\t\t\t\tcontent,\n\t\t\t\tdropCap,\n\t\t\t\tbackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t\tfontSize,\n\t\t\t\tcustomFontSize,\n\t\t\t\tdirection,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst fontSizeClass = getFontSizeClass( fontSize );\n\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tstyle={ styles }\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tdir={ direction }\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...restBlockAttributes,\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomFontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn migrateCustomColorsAndFontSizes(\n\t\t\t\tmigrateTextAlign( attributes )\n\t\t\t);\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\talign,\n\t\t\t\tcontent,\n\t\t\t\tdropCap,\n\t\t\t\tbackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t\tfontSize,\n\t\t\t\tcustomFontSize,\n\t\t\t\tdirection,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst fontSizeClass = getFontSizeClass( fontSize );\n\n\t\t\tconst className = clsx( {\n\t\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\t\ttextAlign: align,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tstyle={ styles }\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tdir={ direction }\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...restBlockAttributes,\n\t\t\tcustomTextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomFontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn migrateCustomColorsAndFontSizes(\n\t\t\t\tmigrateTextAlign( attributes )\n\t\t\t);\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\twidth,\n\t\t\t\talign,\n\t\t\t\tcontent,\n\t\t\t\tdropCap,\n\t\t\t\tbackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tcustomBackgroundColor,\n\t\t\t\tcustomTextColor,\n\t\t\t\tfontSize,\n\t\t\t\tcustomFontSize,\n\t\t\t} = attributes;\n\n\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t);\n\t\t\tconst fontSizeClass = fontSize && `is-${ fontSize }-text`;\n\n\t\t\tconst className = clsx( {\n\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor: backgroundClass\n\t\t\t\t\t? undefined\n\t\t\t\t\t: customBackgroundColor,\n\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\t\ttextAlign: align,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tstyle={ styles }\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\tvalue={ content }\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...restBlockAttributes,\n\t\t\tfontSize: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst {\n\t\t\t\twidth,\n\t\t\t\talign,\n\t\t\t\tcontent,\n\t\t\t\tdropCap,\n\t\t\t\tbackgroundColor,\n\t\t\t\ttextColor,\n\t\t\t\tfontSize,\n\t\t\t} = attributes;\n\t\t\tconst className = clsx( {\n\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t'has-background': backgroundColor,\n\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t} );\n\t\t\tconst styles = {\n\t\t\t\tbackgroundColor,\n\t\t\t\tcolor: textColor,\n\t\t\t\tfontSize,\n\t\t\t\ttextAlign: align,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<p\n\t\t\t\t\tstyle={ styles }\n\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t>\n\t\t\t\t\t{ content }\n\t\t\t\t</p>\n\t\t\t);\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\treturn migrateCustomColorsAndFontSizes(\n\t\t\t\tmigrateTextAlign( {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tcustomFontSize: Number.isFinite( attributes.fontSize )\n\t\t\t\t\t\t? attributes.fontSize\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcustomTextColor:\n\t\t\t\t\t\tattributes.textColor &&\n\t\t\t\t\t\t'#' === attributes.textColor[ 0 ]\n\t\t\t\t\t\t\t? attributes.textColor\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcustomBackgroundColor:\n\t\t\t\t\t\tattributes.backgroundColor &&\n\t\t\t\t\t\t'#' === attributes.backgroundColor[ 0 ]\n\t\t\t\t\t\t\t? attributes.backgroundColor\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t},\n\t{\n\t\tsupports,\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tcontent: {\n\t\t\t\ttype: 'string',\n\t\t\t\tsource: 'html',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\treturn <RawHTML>{ attributes.content }</RawHTML>;\n\t\t},\n\t\tmigrate: ( attributes ) => attributes,\n\t},\n];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSettings,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { formatLtr } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\nimport useDeprecatedAlign from './deprecated-attributes';\n\nfunction ParagraphRTLControl( { direction, setDirection } ) {\n\treturn (\n\t\tisRTL() && (\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ formatLtr }\n\t\t\t\ttitle={ _x( 'Left to right', 'editor button' ) }\n\t\t\t\tisActive={ direction === 'ltr' }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDirection( direction === 'ltr' ? undefined : 'ltr' );\n\t\t\t\t} }\n\t\t\t/>\n\t\t)\n\t);\n}\n\nfunction hasDropCapDisabled( align ) {\n\treturn align === ( isRTL() ? 'left' : 'right' ) || align === 'center';\n}\n\nfunction DropCapControl( { clientId, attributes, setAttributes, name } ) {\n\t// Please do not add a useSelect call to the paragraph block unconditionally.\n\t// Every useSelect added to a (frequently used) block will degrade load\n\t// and type performance. By moving it within InspectorControls, the subscription is\n\t// now only added for the selected block(s).\n\tconst [ isDropCapFeatureEnabled ] = useSettings( 'typography.dropCap' );\n\n\tif ( ! isDropCapFeatureEnabled ) {\n\t\treturn null;\n\t}\n\n\tconst { style, dropCap } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( textAlign ) ) {\n\t\thelpText = __( 'Not available for aligned text.' );\n\t} else if ( dropCap ) {\n\t\thelpText = __( 'Showing large initial letter.' );\n\t} else {\n\t\thelpText = __( 'Show a large initial letter.' );\n\t}\n\n\tconst isDropCapControlEnabledByDefault = getBlockSupport(\n\t\tname,\n\t\t'typography.defaultControls.dropCap',\n\t\tfalse\n\t);\n\n\treturn (\n\t\t<InspectorControls group=\"typography\">\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! dropCap }\n\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\tisShownByDefault={ isDropCapControlEnabledByDefault }\n\t\t\t\tonDeselect={ () => setAttributes( { dropCap: false } ) }\n\t\t\t\tresetAllFilter={ () => ( { dropCap: false } ) }\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\tonChange={ () => setAttributes( { dropCap: ! dropCap } ) }\n\t\t\t\t\thelp={ helpText }\n\t\t\t\t\tdisabled={ hasDropCapDisabled( textAlign ) }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n\tisSelected: isSingleSelected,\n\tname,\n} ) {\n\tconst { content, direction, dropCap, placeholder, style } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\tuseDeprecatedAlign( attributes.align, style, setAttributes );\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: clsx( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( textAlign ) ? false : dropCap,\n\t\t} ),\n\t\tstyle: { direction },\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ParagraphRTLControl\n\t\t\t\t\t\tdirection={ direction }\n\t\t\t\t\t\tsetDirection={ ( newDirection ) =>\n\t\t\t\t\t\t\tsetAttributes( { direction: newDirection } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<DropCapControl\n\t\t\t\t\tname={ name }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"p\"\n\t\t\t\t{ ...blockProps }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newContent ) =>\n\t\t\t\t\tsetAttributes( { content: newContent } )\n\t\t\t\t}\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\taria-label={\n\t\t\t\t\tRichText.isEmpty( content )\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'Empty block; start writing or type forward slash to choose a block'\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: __( 'Block: Paragraph' )\n\t\t\t\t}\n\t\t\t\tdata-empty={ RichText.isEmpty( content ) }\n\t\t\t\tplaceholder={ placeholder || __( 'Type / to choose a block' ) }\n\t\t\t\tdata-custom-placeholder={ placeholder ? true : undefined }\n\t\t\t\t__unstableEmbedURLOnPaste\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ParagraphBlock;\n", "/**\n * WordPress dependencies\n */\nimport { useRef } from '@wordpress/element';\nimport { useRefEffect } from '@wordpress/compose';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\thasBlockSupport,\n\tcreateBlock,\n\tgetDefaultBlockName,\n} from '@wordpress/blocks';\n\nexport function useOnEnter( props ) {\n\tconst { batch } = useRegistry();\n\tconst {\n\t\tmoveBlocksToPosition,\n\t\treplaceInnerBlocks,\n\t\tduplicateBlocks,\n\t\tinsertBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockOrder,\n\t\tgetBlockName,\n\t\tgetBlock,\n\t\tgetNextBlockClientId,\n\t\tcanInsertBlockType,\n\t} = useSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { content, clientId } = propsRef.current;\n\n\t\t\t// The paragraph should be empty.\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapperClientId = getBlockRootClientId( clientId );\n\n\t\t\tif (\n\t\t\t\t! hasBlockSupport(\n\t\t\t\t\tgetBlockName( wrapperClientId ),\n\t\t\t\t\t'__experimentalOnEnter',\n\t\t\t\t\tfalse\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst order = getBlockOrder( wrapperClientId );\n\t\t\tconst position = order.indexOf( clientId );\n\n\t\t\t// If it is the last block, exit.\n\t\t\tif ( position === order.length - 1 ) {\n\t\t\t\tlet newWrapperClientId = wrapperClientId;\n\n\t\t\t\twhile (\n\t\t\t\t\t! canInsertBlockType(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId )\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tnewWrapperClientId =\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId );\n\t\t\t\t}\n\n\t\t\t\tif ( typeof newWrapperClientId === 'string' ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ clientId ],\n\t\t\t\t\t\twrapperClientId,\n\t\t\t\t\t\tgetBlockRootClientId( newWrapperClientId ),\n\t\t\t\t\t\tgetBlockIndex( newWrapperClientId ) + 1\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst defaultBlockName = getDefaultBlockName();\n\n\t\t\tif (\n\t\t\t\t! canInsertBlockType(\n\t\t\t\t\tdefaultBlockName,\n\t\t\t\t\tgetBlockRootClientId( wrapperClientId )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// If it is in the middle, split the block in two.\n\t\t\tconst wrapperBlock = getBlock( wrapperClientId );\n\t\t\tbatch( () => {\n\t\t\t\tduplicateBlocks( [ wrapperClientId ] );\n\t\t\t\tconst blockIndex = getBlockIndex( wrapperClientId );\n\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\twrapperClientId,\n\t\t\t\t\twrapperBlock.innerBlocks.slice( 0, position )\n\t\t\t\t);\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tgetNextBlockClientId( wrapperClientId ),\n\t\t\t\t\twrapperBlock.innerBlocks.slice( position + 1 )\n\t\t\t\t);\n\t\t\t\tinsertBlock(\n\t\t\t\t\tcreateBlock( defaultBlockName ),\n\t\t\t\t\tblockIndex + 1,\n\t\t\t\t\tgetBlockRootClientId( wrapperClientId ),\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEvent } from '@wordpress/compose';\nimport { useEffect, useRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * If a plugin is still using the old align attribute, we need to migrate its value\n * to the new style.typography.textAlign attribute.\n *\n * @param {string?} align Align attribute value.\n * @param {Object?} style Style attribute value.\n * @param {(Object) => void} setAttributes Updater function for block attributes.\n */\nexport default function useDeprecatedAlign( align, style, setAttributes ) {\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst updateStyleWithAlign = useEvent( () => {\n\t\tdeprecated( 'align attribute in paragraph block', {\n\t\t\talternative: 'style.typography.textAlign',\n\t\t\tsince: '7.0',\n\t\t} );\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tstyle: {\n\t\t\t\t...style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...style?.typography,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t} );\n\tconst lastUpdatedAlignRef = useRef();\n\tuseEffect( () => {\n\t\tif (\n\t\t\talign === 'full' ||\n\t\t\talign === 'wide' ||\n\t\t\talign === lastUpdatedAlignRef.current\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tlastUpdatedAlignRef.current = align;\n\t\tupdateStyleWithAlign();\n\t}, [ align, updateStyleWithAlign ] );\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/paragraph\",\n\t\"title\": \"Paragraph\",\n\t\"category\": \"text\",\n\t\"description\": \"Start with the basic building block of all narrative.\",\n\t\"keywords\": [ \"text\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"p\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"dropCap\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"direction\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"ltr\", \"rtl\" ]\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"splitting\": true,\n\t\t\"anchor\": true,\n\t\t\"className\": false,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"textAlign\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"fitText\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalSelector\": \"p\",\n\t\t\"__unstablePasteTextInline\": true,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-paragraph-editor\",\n\t\"style\": \"wp-block-paragraph\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { isRTL } from '@wordpress/i18n';\n\nexport default function save( { attributes } ) {\n\tconst { content, dropCap, direction, style } = attributes;\n\tconst textAlign = style?.typography?.textAlign;\n\tconst className = clsx( {\n\t\t'has-drop-cap':\n\t\t\ttextAlign === ( isRTL() ? 'left' : 'right' ) ||\n\t\t\ttextAlign === 'center'\n\t\t\t\t? false\n\t\t\t\t: dropCap,\n\t} );\n\n\treturn (\n\t\t<p { ...useBlockProps.save( { className, dir: direction } ) }>\n\t\t\t<RichText.Content value={ content } />\n\t\t</p>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\t// Paragraph is a fallback and should be matched last.\n\t\t\tpriority: 20,\n\t\t\tselector: 'p',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => ( {\n\t\t\t\tp: {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t},\n\t\t\t} ),\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes( name, node.outerHTML );\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.style = {\n\t\t\t\t\t\t...attributes.style,\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\t...attributes.style?.typography,\n\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( name, attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { postAuthor as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tviewportWidth: 350,\n\t\tattributes: {\n\t\t\tshowBio: true,\n\t\t\tbyline: __( 'Posted by' ),\n\t\t},\n\t},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-author\",\n\t\"title\": \"Author\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display post author details such as name, avatar, and bio.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"avatarSize\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 48\n\t\t},\n\t\t\"showAvatar\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showBio\": {\n\t\t\t\"type\": \"boolean\"\n\t\t},\n\t\t\"byline\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postType\", \"postId\", \"queryId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-post-author .wp-block-post-author__avatar img\"\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-post-author-editor\",\n\t\"style\": \"wp-block-post-author\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tComboboxControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseDefaultAvatar,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorCombobox( { value, onChange } ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst { authors, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUsers, isResolving } = select( coreStore );\n\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\t\t\tif ( filterValue ) {\n\t\t\t\tquery.search = filterValue;\n\t\t\t\tquery.search_columns = [ 'name' ];\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ filterValue ]\n\t);\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( fetchedAuthor ) => value?.id === fetchedAuthor.value\n\t\t);\n\n\t\tlet currentAuthor = [];\n\t\tif ( foundAuthor < 0 && value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: value.id,\n\t\t\t\t\tlabel: decodeEntities( value.name ),\n\t\t\t\t},\n\t\t\t];\n\t\t} else if ( foundAuthor < 0 && ! value ) {\n\t\t\tcurrentAuthor = [\n\t\t\t\t{\n\t\t\t\t\tvalue: 0,\n\t\t\t\t\tlabel: __( '(No author)' ),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn [ ...currentAuthor, ...fetchedAuthors ];\n\t}, [ authors, value ] );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ value?.id }\n\t\t\tonFilterValueChange={ debounce( setFilterValue, 300 ) }\n\t\t\tonChange={ onChange }\n\t\t\tallowReset={ false }\n\t\t\tisLoading={ isLoading }\n\t\t/>\n\t);\n}\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst defaultAvatar = useDefaultAvatar();\n\n\tconst { authorDetails, canAssignAuthor, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst currentPost = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst authorId = currentPost?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: authorId\n\t\t\t\t\t? getUser( authorId, { context: 'view' } )\n\t\t\t\t\t: null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t\tcanAssignAuthor: currentPost?._links?.[\n\t\t\t\t\t'wp:action-assign-author'\n\t\t\t\t]\n\t\t\t\t\t? true\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\ttextAlign,\n\t\tshowAvatar,\n\t\tshowBio,\n\t\tbyline,\n\t\tisLink,\n\t\tlinkTarget,\n\t\tavatarSize,\n\t} = attributes;\n\tconst avatarSizes = [];\n\tconst authorName = authorDetails?.name || __( 'Post Author' );\n\tif ( authorDetails?.avatar_urls ) {\n\t\tObject.keys( authorDetails.avatar_urls ).forEach( ( size ) => {\n\t\t\tavatarSizes.push( {\n\t\t\t\tvalue: size,\n\t\t\t\tlabel: `${ size } x ${ size }`,\n\t\t\t} );\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst handleSelect = ( nextAuthorId ) => {\n\t\teditEntityRecord( 'postType', postType, postId, {\n\t\t\tauthor: nextAuthorId,\n\t\t} );\n\t};\n\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && canAssignAuthor;\n\n\tif ( ! supportsAuthor && postType !== undefined ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t__( 'This post type (%s) does not support the author.' ),\n\t\t\t\t\tpostType\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tavatarSize: 48,\n\t\t\t\t\t\t\tshowAvatar: true,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<div style={ { gridColumn: '1 / -1' } }>\n\t\t\t\t\t\t\t<AuthorCombobox\n\t\t\t\t\t\t\t\tvalue={ authorDetails }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showAvatar }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowAvatar: ! showAvatar,\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</ToolsPanelItem>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => avatarSize !== 48 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { avatarSize: 48 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\t\tvalue={ avatarSize }\n\t\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! showBio }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\t\tchecked={ !! showBio }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Link target' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showAvatar && (\n\t\t\t\t\t<div className=\"wp-block-post-author__avatar\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\twidth={ avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails?.avatar_urls?.[ avatarSize ] ||\n\t\t\t\t\t\t\t\tdefaultAvatar\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={\n\t\t\t\t\t\t\t\tauthorDetails?.name || __( 'Default Avatar' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-post-author__content\">\n\t\t\t\t\t{ ( ! RichText.isEmpty( byline ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"byline\"\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__byline\"\n\t\t\t\t\t\t\taria-label={ __( 'Post author byline text' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write byline\u2026' ) }\n\t\t\t\t\t\t\tvalue={ byline }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { byline: value } )\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\t<p className=\"wp-block-post-author__name\">\n\t\t\t\t\t\t{ isLink ? (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"#post-author-pseudo-link\"\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ authorName }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tauthorName\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ showBio && (\n\t\t\t\t\t\t<p\n\t\t\t\t\t\t\tclassName=\"wp-block-post-author__bio\"\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t__html: authorDetails?.description,\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</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorEdit;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-author-name\",\n\t\"title\": \"Author Name\",\n\t\"category\": \"theme\",\n\t\"description\": \"The author name.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postType\", \"postId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-author-name\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostAuthorNameEdit( {\n\tcontext: { postType, postId },\n\tattributes: { textAlign, isLink, linkTarget },\n\tsetAttributes,\n} ) {\n\tconst { authorName, supportsAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getPostType } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorName: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tsupportsAuthor:\n\t\t\t\t\tgetPostType( postType )?.supports?.author ?? false,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst displayName = authorName?.name || __( 'Author Name' );\n\n\tconst displayAuthor = isLink ? (\n\t\t<a\n\t\t\thref=\"#author-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\tclassName=\"wp-block-post-author-name__link\"\n\t\t>\n\t\t\t{ displayName }\n\t\t</a>\n\t) : (\n\t\tdisplayName\n\t);\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => isLink }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! supportsAuthor && postType !== undefined\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'This post type (%s) does not support the author.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t )\n\t\t\t\t\t: displayAuthor }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorNameEdit;\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-author' ],\n\t\t\ttransform: ( { textAlign } ) =>\n\t\t\t\tcreateBlock( 'core/post-author-name', { textAlign } ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-author' ],\n\t\t\ttransform: ( { textAlign } ) =>\n\t\t\t\tcreateBlock( 'core/post-author', { textAlign } ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { postAuthor as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\ttransforms,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-author-biography\",\n\t\"title\": \"Author Biography\",\n\t\"category\": \"theme\",\n\t\"description\": \"The author biography.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postType\", \"postId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-author-biography\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nfunction PostAuthorBiographyEdit( {\n\tcontext: { postType, postId },\n\tattributes: { textAlign },\n\tsetAttributes,\n} ) {\n\tconst { authorDetails } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser } = select( coreStore );\n\t\t\tconst _authorId = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)?.author;\n\n\t\t\treturn {\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst displayAuthorBiography =\n\t\tauthorDetails?.description || __( 'Author Biography' );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tdangerouslySetInnerHTML={ { __html: displayAuthorBiography } }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorBiographyEdit;\n", "/**\n * WordPress dependencies\n */\nimport { postAuthor as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": \"fse\",\n\t\"name\": \"core/post-comment\",\n\t\"title\": \"Comment (deprecated)\",\n\t\"category\": \"theme\",\n\t\"allowedBlocks\": [\n\t\t\"core/avatar\",\n\t\t\"core/comment-author-name\",\n\t\t\"core/comment-content\",\n\t\t\"core/comment-date\",\n\t\t\"core/comment-edit-link\",\n\t\t\"core/comment-reply-link\"\n\t],\n\t\"description\": \"This block is deprecated. Please use the Comments block instead.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"commentId\": {\n\t\t\t\"type\": \"number\"\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"commentId\": \"commentId\"\n\t},\n\t\"supports\": {\n\t\t\"html\": false,\n\t\t\"inserter\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Placeholder, TextControl, Button } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { blockDefault } from '@wordpress/icons';\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nconst TEMPLATE = [\n\t[ 'core/avatar' ],\n\t[ 'core/comment-author-name' ],\n\t[ 'core/comment-date' ],\n\t[ 'core/comment-content' ],\n\t[ 'core/comment-reply-link' ],\n\t[ 'core/comment-edit-link' ],\n];\n\nexport default function Edit( { attributes: { commentId }, setAttributes } ) {\n\tconst [ commentIdInput, setCommentIdInput ] = useState( commentId );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\tif ( ! commentId ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ blockDefault }\n\t\t\t\t\tlabel={ _x( 'Post Comment', 'block title' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'To show a comment, input the comment ID.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ commentId }\n\t\t\t\t\t\tonChange={ ( val ) =>\n\t\t\t\t\t\t\tsetCommentIdInput( parseInt( val ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( { commentId: commentIdInput } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { comment as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-comments-count\",\n\t\"title\": \"Comments Count\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display a post's comments count.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-comments-count\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\n\nexport default function PostCommentsCountEdit( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { postId } = context;\n\tconst [ commentsCount, setCommentsCount ] = useState();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! postId ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentPostId = postId;\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\tpost: postId,\n\t\t\t} ),\n\t\t\tparse: false,\n\t\t} ).then( ( res ) => {\n\t\t\t// Stale requests will have the `currentPostId` of an older closure.\n\t\t\tif ( currentPostId === postId ) {\n\t\t\t\tsetCommentsCount( res.headers.get( 'X-WP-Total' ) );\n\t\t\t}\n\t\t} );\n\t}, [ postId ] );\n\n\tconst hasPostAndComments = postId && commentsCount !== undefined;\n\tconst blockStyles = {\n\t\t...blockProps.style,\n\t\ttextDecoration: hasPostAndComments\n\t\t\t? blockProps.style?.textDecoration\n\t\t\t: undefined,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps } style={ blockStyles }>\n\t\t\t\t{ hasPostAndComments ? commentsCount : '0' }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-comments-link' ],\n\t\t\ttransform: ( { textAlign } ) => {\n\t\t\t\treturn createBlock( 'core/post-comments-link', {\n\t\t\t\t\ttextAlign,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { postCommentsCount as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-comments-form\",\n\t\"title\": \"Comments Form\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display a post's comments form.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-post-comments-form-editor\",\n\t\"style\": [\n\t\t\"wp-block-post-comments-form\",\n\t\t\"wp-block-buttons\",\n\t\t\"wp-block-button\"\n\t],\n\t\"example\": {\n\t\t\"attributes\": {\n\t\t\t\"textAlign\": \"center\"\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport CommentsForm from './form';\n\nexport default function PostCommentsFormEdit( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\n\n\tconst instanceId = useInstanceId( PostCommentsFormEdit );\n\tconst instanceIdDesc = sprintf( 'comments-form-edit-%d-desc', instanceId );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\t'aria-describedby': instanceIdDesc,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<CommentsForm postId={ postId } postType={ postType } />\n\t\t\t\t<VisuallyHidden id={ instanceIdDesc }>\n\t\t\t\t\t{ __( 'Comments form disabled in editor.' ) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { postCommentsForm as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-comments-link\",\n\t\"title\": \"Comments Link\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the link to the current post comments.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postType\", \"postId\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"link\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-comments-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nfunction PostCommentsLinkEdit( { context, attributes, setAttributes } ) {\n\tconst { textAlign } = attributes;\n\tconst { postType, postId } = context;\n\tconst [ commentsCount, setCommentsCount ] = useState();\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( ! postId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentPostId = postId;\n\t\tapiFetch( {\n\t\t\tpath: addQueryArgs( '/wp/v2/comments', {\n\t\t\t\tpost: postId,\n\t\t\t} ),\n\t\t\tparse: false,\n\t\t} ).then( ( res ) => {\n\t\t\t// Stale requests will have the `currentPostId` of an older closure.\n\t\t\tif ( currentPostId === postId ) {\n\t\t\t\tsetCommentsCount( res.headers.get( 'X-WP-Total' ) );\n\t\t\t}\n\t\t} );\n\t}, [ postId ] );\n\n\tconst post = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t),\n\t\t[ postType, postId ]\n\t);\n\n\tlet commentsText;\n\tif ( commentsCount !== undefined ) {\n\t\tconst commentsNumber = parseInt( commentsCount );\n\n\t\tif ( commentsNumber === 0 ) {\n\t\t\tcommentsText = __( 'No comments' );\n\t\t} else {\n\t\t\tcommentsText = sprintf(\n\t\t\t\t/* translators: %s: Number of comments */\n\t\t\t\t_n( '%s comment', '%s comments', commentsNumber ),\n\t\t\t\tcommentsNumber.toLocaleString()\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ post?.link && commentsText !== undefined ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ post?.link + '#comments' }\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ commentsText }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"#post-comments-link-pseudo-link\"\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'No comments' ) }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default PostCommentsLinkEdit;\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-comments-count' ],\n\t\t\ttransform: ( { textAlign } ) => {\n\t\t\t\treturn createBlock( 'core/post-comments-count', {\n\t\t\t\t\ttextAlign,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { postCommentsCount as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\ticon,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-content\",\n\t\"title\": \"Content\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the contents of a post or page.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\", \"postType\", \"queryId\" ],\n\t\"attributes\": {\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"layout\": true,\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"minHeight\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": false,\n\t\t\t\t\"text\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-content\",\n\t\"editorStyle\": \"wp-block-post-content-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\t__experimentalUseBlockPreview as useBlockPreview,\n} from '@wordpress/block-editor';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tuseEntityProp,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nfunction ReadOnlyContent( {\n\tparentLayout,\n\tlayoutClassNames,\n\tuserCanEdit,\n\tpostType,\n\tpostId,\n\ttagName: TagName = 'div',\n} ) {\n\tconst [ , , content ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\n\tconst blocks = useMemo( () => {\n\t\treturn content?.raw ? parse( content.raw ) : [];\n\t}, [ content?.raw ] );\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: blockProps,\n\t\tlayout: parentLayout,\n\t} );\n\n\tif ( userCanEdit ) {\n\t\t/*\n\t\t * Rendering the block preview using the raw content blocks allows for\n\t\t * block support styles to be generated and applied by the editor.\n\t\t *\n\t\t * The preview using the raw blocks can only be presented to users with\n\t\t * edit permissions for the post to prevent potential exposure of private\n\t\t * block content.\n\t\t */\n\t\treturn <div { ...blockPreviewProps }></div>;\n\t}\n\n\treturn content?.protected ? (\n\t\t<TagName { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</TagName>\n\t) : (\n\t\t<TagName\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></TagName>\n\t);\n}\n\nfunction EditableContent( { context = {}, tagName: TagName = 'div' } ) {\n\tconst { postType, postId } = context;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpostType,\n\t\t{ id: postId }\n\t);\n\n\tconst entityRecord = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst hasInnerBlocks = !! entityRecord?.content?.raw || blocks?.length;\n\n\tconst initialInnerBlocks = [ [ 'core/paragraph' ] ];\n\n\tconst props = useInnerBlocksProps(\n\t\tuseBlockProps( { className: 'entry-content' } ),\n\t\t{\n\t\t\tvalue: blocks,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\ttemplate: ! hasInnerBlocks ? initialInnerBlocks : undefined,\n\t\t}\n\t);\n\treturn <TagName { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst {\n\t\tcontext: { queryId, postType, postId } = {},\n\t\tlayoutClassNames,\n\t\ttagName,\n\t} = props;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tif ( userCanEdit === undefined ) {\n\t\treturn null;\n\t}\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst isEditable = userCanEdit && ! isDescendentOfQueryLoop;\n\n\treturn isEditable ? (\n\t\t<EditableContent { ...props } />\n\t) : (\n\t\t<ReadOnlyContent\n\t\t\tparentLayout={ props.parentLayout }\n\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\n\t\t\ttagName={ tagName }\n\t\t/>\n\t);\n}\n\nfunction Placeholder( { layoutClassNames } ) {\n\tconst blockProps = useBlockProps( { className: layoutClassNames } );\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'This is the Content block, it will display all the blocks in any single post or page.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'That might be a simple arrangement like consecutive paragraphs in a blog post, or a more elaborate composition that includes image galleries, videos, tables, columns, and any other block types.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'If there are any Custom Post Types registered at your site, the Content block can display the contents of those entries as well.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n\nfunction RecursionError() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n/**\n * Render inspector controls for the PostContent block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n * @param {string} props.clientId The client ID of the current block.\n *\n * @return {JSX.Element} The control group.\n */\nfunction PostContentEditControls( { tagName, onSelectTagName, clientId } ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nexport default function PostContentEdit( {\n\tcontext,\n\tattributes: { tagName = 'div' },\n\tsetAttributes,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst { postId: contextPostId, postType: contextPostType } = context;\n\tconst hasAlreadyRendered = useHasRecursion( contextPostId );\n\n\tif ( contextPostId && contextPostType && hasAlreadyRendered ) {\n\t\treturn <RecursionError />;\n\t}\n\n\tconst handleSelectTagName = ( value ) => {\n\t\tsetAttributes( { tagName: value } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<PostContentEditControls\n\t\t\t\ttagName={ tagName }\n\t\t\t\tonSelectTagName={ handleSelectTagName }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t\t<Content\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder layoutClassNames={ layoutClassNames } />\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { postContent as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-date\",\n\t\"title\": \"Date\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display a custom date.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"datetime\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"format\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\", \"queryId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes,\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n\tname,\n} ) {\n\tconst { datetime, textAlign, format, isLink } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\n\tconst {\n\t\tpostType,\n\t\tsiteFormat = dateSettings.formats.date,\n\t\tsiteTimeFormat = dateSettings.formats.time,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\t\treturn {\n\t\t\t\tsiteFormat: siteSettings?.date_format,\n\t\t\t\tsiteTimeFormat: siteSettings?.time_format,\n\t\t\t\tpostType: postTypeSlug ? getPostType( postTypeSlug ) : null,\n\t\t\t};\n\t\t},\n\t\t[ postTypeSlug ]\n\t);\n\tconst activeBlockVariationName = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation( name, attributes )\n\t\t\t\t?.name,\n\t\t[ name, attributes ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' ||\n\t\t\t\t! isDescendentOfQueryLoop ) && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ activeBlockVariationName !== 'post-date-modified' &&\n\t\t\t\t\t\t( ! isDescendentOfQueryLoop ||\n\t\t\t\t\t\t\t! activeBlockVariationName ) && (\n\t\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\t\tactiveBlockVariationName ===\n\t\t\t\t\t\t\t\t\t\t\t\t'post-date'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\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</ToolbarGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v3 = {\n\tattributes: {\n\t\tdatetime: {\n\t\t\ttype: 'string',\n\t\t\trole: 'content',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t\tlink: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t\tcolor: true,\n\t\t\t\twidth: true,\n\t\t\t\tstyle: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate( {\n\t\tmetadata: {\n\t\t\tbindings: {\n\t\t\t\tdatetime: {\n\t\t\t\t\tsource,\n\t\t\t\t\targs: { key, ...otherArgs },\n\t\t\t\t},\n\t\t\t\t...otherBindings\n\t\t\t},\n\t\t\t...otherMetadata\n\t\t},\n\t\t...otherAttributes\n\t} ) {\n\t\t// Change the block bindings source argument name from \"key\" to \"field\".\n\t\treturn {\n\t\t\tmetadata: {\n\t\t\t\tbindings: {\n\t\t\t\t\tdatetime: {\n\t\t\t\t\t\tsource,\n\t\t\t\t\t\targs: { field: key, ...otherArgs },\n\t\t\t\t\t},\n\t\t\t\t\t...otherBindings,\n\t\t\t\t},\n\t\t\t\t...otherMetadata,\n\t\t\t},\n\t\t\t...otherAttributes,\n\t\t};\n\t},\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\tattributes?.metadata?.bindings?.datetime?.source ===\n\t\t\t\t'core/post-data' &&\n\t\t\t!! attributes?.metadata?.bindings?.datetime?.args?.key\n\t\t);\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\trole: 'content',\n\t\t},\n\t\tdisplayType: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'date',\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t\tlink: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t\tcolor: true,\n\t\t\t\twidth: true,\n\t\t\t\tstyle: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate( { className, displayType, metadata, ...otherAttributes } ) {\n\t\tif ( displayType === 'date' || displayType === 'modified' ) {\n\t\t\tif ( displayType === 'modified' ) {\n\t\t\t\tclassName = clsx(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'wp-block-post-date__modified-date'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...otherAttributes,\n\t\t\t\tclassName,\n\t\t\t\tmetadata: {\n\t\t\t\t\t...metadata,\n\t\t\t\t\tbindings: {\n\t\t\t\t\t\tdatetime: {\n\t\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\t\targs: { field: displayType },\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t},\n\tisEligible( attributes ) {\n\t\t// If there's neither an explicit `datetime` attribute nor a block binding for that attribute,\n\t\t// then we're dealing with an old version of the block.\n\t\treturn (\n\t\t\t! attributes.datetime && ! attributes?.metadata?.bindings?.datetime\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tformat: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v3, v2, v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'post-date',\n\t\ttitle: __( 'Post Date' ),\n\t\tdescription: __( \"Display a post's publish date.\" ),\n\t\tattributes: {\n\t\t\tmetadata: {\n\t\t\t\tbindings: {\n\t\t\t\t\tdatetime: {\n\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\targs: { field: 'date' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.metadata?.bindings?.datetime?.source ===\n\t\t\t\t'core/post-data' &&\n\t\t\tblockAttributes?.metadata?.bindings?.datetime?.args?.field ===\n\t\t\t\t'date',\n\t},\n\t{\n\t\tname: 'post-date-modified',\n\t\ttitle: __( 'Modified Date' ),\n\t\tdescription: __( \"Display a post's last updated date.\" ),\n\t\tattributes: {\n\t\t\tmetadata: {\n\t\t\t\tbindings: {\n\t\t\t\t\tdatetime: {\n\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\targs: { field: 'modified' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tclassName: 'wp-block-post-date__modified-date',\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.metadata?.bindings?.datetime?.source ===\n\t\t\t\t'core/post-data' &&\n\t\t\tblockAttributes?.metadata?.bindings?.datetime?.args?.field ===\n\t\t\t\t'modified',\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { postDate as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-excerpt\",\n\t\"title\": \"Excerpt\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display the excerpt.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"moreText\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"showMoreOnNewLine\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"excerptLength\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 55\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\", \"queryId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-post-excerpt-editor\",\n\t\"style\": \"wp-block-post-excerpt\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentToolbar,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tWarning,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tRangeControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseCanEditEntity,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\n\nconst ELLIPSIS = '\u2026';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst showControls = blockEditingMode === 'default';\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [\n\t\trawExcerpt,\n\t\tsetExcerpt,\n\t\t{ rendered: renderedExcerpt, protected: isProtected } = {},\n\t] = useEntityProp( 'postType', postType, 'excerpt', postId );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t/**\n\t * Check if the post type supports excerpts.\n\t * Add an exception and return early for the \"page\" post type,\n\t * which is registered without support for the excerpt UI,\n\t * but supports saving the excerpt to the database.\n\t * See: https://core.trac.wordpress.org/browser/branches/6.1/src/wp-includes/post.php#L65\n\t * Without this exception, users that have excerpts saved to the database will\n\t * not be able to edit the excerpts.\n\t */\n\tconst postTypeSupportsExcerpts = useSelect(\n\t\t( select ) => {\n\t\t\tif ( postType === 'page' ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn !! select( coreStore ).getPostType( postType )?.supports\n\t\t\t\t?.excerpt;\n\t\t},\n\t\t[ postType ]\n\t);\n\n\t/**\n\t * The excerpt is editable if:\n\t * - The user can edit the post\n\t * - It is not a descendent of a Query Loop block\n\t * - The post type supports excerpts\n\t */\n\tconst isEditable =\n\t\tuserCanEdit && ! isDescendentOfQueryLoop && postTypeSupportsExcerpts;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\t/**\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\t/**\n\t * When excerpt is editable, strip the html tags from\n\t * rendered excerpt. This will be used if the entity's\n\t * excerpt has been produced from the content.\n\t */\n\tconst strippedRenderedExcerpt = useMemo( () => {\n\t\tif ( ! renderedExcerpt ) {\n\t\t\treturn '';\n\t\t}\n\t\tconst document = new window.DOMParser().parseFromString(\n\t\t\trenderedExcerpt,\n\t\t\t'text/html'\n\t\t);\n\t\treturn document.body.textContent || document.body.innerText || '';\n\t}, [ renderedExcerpt ] );\n\n\tif ( ! postType || ! postId ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>{ __( 'This block will display the excerpt.' ) }</p>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\tif ( isProtected && ! userCanEdit ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The content is currently protected and does not have the available excerpt.'\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\tconst readMoreLink = (\n\t\t<RichText\n\t\t\tidentifier=\"moreText\"\n\t\t\tclassName=\"wp-block-post-excerpt__more-link\"\n\t\t\ttagName=\"a\"\n\t\t\taria-label={ __( '\u201CRead more\u201D link text' ) }\n\t\t\tplaceholder={ __( 'Add \"read more\" link text' ) }\n\t\t\tvalue={ moreText }\n\t\t\tonChange={ ( newMoreText ) =>\n\t\t\t\tsetAttributes( { moreText: newMoreText } )\n\t\t\t}\n\t\t\twithoutInteractiveFormatting\n\t\t/>\n\t);\n\tconst excerptClassName = clsx( 'wp-block-post-excerpt__excerpt', {\n\t\t'is-inline': ! showMoreOnNewLine,\n\t} );\n\n\t/**\n\t * The excerpt length setting needs to be applied to both\n\t * the raw and the rendered excerpt depending on which is being used.\n\t */\n\tconst rawOrRenderedExcerpt = (\n\t\trawExcerpt || strippedRenderedExcerpt\n\t).trim();\n\n\tlet trimmedExcerpt = '';\n\tif ( wordCountType === 'words' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( ' ', excerptLength )\n\t\t\t.join( ' ' );\n\t} else if ( wordCountType === 'characters_excluding_spaces' ) {\n\t\t/*\n\t\t * 1. Split the excerpt at the character limit,\n\t\t * then join the substrings back into one string.\n\t\t * 2. Count the number of spaces in the excerpt\n\t\t * by comparing the lengths of the string with and without spaces.\n\t\t * 3. Add the number to the length of the visible excerpt,\n\t\t * so that the spaces are excluded from the word count.\n\t\t */\n\t\tconst excerptWithSpaces = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\n\t\tconst numberOfSpaces =\n\t\t\texcerptWithSpaces.length -\n\t\t\texcerptWithSpaces.replaceAll( ' ', '' ).length;\n\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength + numberOfSpaces )\n\t\t\t.join( '' );\n\t} else if ( wordCountType === 'characters_including_spaces' ) {\n\t\ttrimmedExcerpt = rawOrRenderedExcerpt\n\t\t\t.split( '', excerptLength )\n\t\t\t.join( '' );\n\t}\n\n\tconst isTrimmed = trimmedExcerpt !== rawOrRenderedExcerpt;\n\n\tconst excerptContent = isEditable ? (\n\t\t<RichText\n\t\t\tclassName={ excerptClassName }\n\t\t\taria-label={ __( 'Excerpt text' ) }\n\t\t\tvalue={\n\t\t\t\tisSelected\n\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t: ( ! isTrimmed\n\t\t\t\t\t\t\t? rawOrRenderedExcerpt\n\t\t\t\t\t\t\t: trimmedExcerpt + ELLIPSIS ) ||\n\t\t\t\t\t __( 'No excerpt found' )\n\t\t\t}\n\t\t\tonChange={ setExcerpt }\n\t\t\ttagName=\"p\"\n\t\t/>\n\t) : (\n\t\t<p className={ excerptClassName }>\n\t\t\t{ ! isTrimmed\n\t\t\t\t? rawOrRenderedExcerpt || __( 'No excerpt found' )\n\t\t\t\t: trimmedExcerpt + ELLIPSIS }\n\t\t</p>\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ showControls && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowMoreOnNewLine: true,\n\t\t\t\t\t\t\texcerptLength: 55,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => showMoreOnNewLine !== true }\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showMoreOnNewLine: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\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</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => excerptLength !== 55 }\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: 55 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ excerptContent }\n\t\t\t\t{ ! showMoreOnNewLine && ' ' }\n\t\t\t\t{ showMoreOnNewLine ? (\n\t\t\t\t\t<p className=\"wp-block-post-excerpt__more-text\">\n\t\t\t\t\t\t{ readMoreLink }\n\t\t\t\t\t</p>\n\t\t\t\t) : (\n\t\t\t\t\treadMoreLink\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-content' ],\n\t\t\ttransform: () => createBlock( 'core/post-excerpt' ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/post-content' ],\n\t\t\ttransform: () => createBlock( 'core/post-content' ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { postExcerpt as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\ttransforms,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-featured-image\",\n\t\"title\": \"Featured Image\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display a post's featured image.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"aspectRatio\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"height\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"scale\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"cover\"\n\t\t},\n\t\t\"sizeSlug\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"attribute\": \"rel\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"overlayColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customOverlayColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"dimRatio\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"gradient\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customGradient\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"useFirstImageFromPost\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\", \"queryId\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"left\", \"right\", \"center\", \"wide\", \"full\" ],\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": false\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t},\n\t\t\"shadow\": {\n\t\t\t\"__experimentalSkipSerialization\": true\n\t\t},\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"border\": \".wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay\",\n\t\t\"shadow\": \".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder\",\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before\"\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-post-featured-image-editor\",\n\t\"style\": \"wp-block-post-featured-image\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tToggleControl,\n\tPlaceholder,\n\tButton,\n\tSpinner,\n\tTextControl,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n\tuseBlockEditingMode,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseEffect,\n\tuseState,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\nimport OverlayControls from './overlay-controls';\nimport Overlay from './overlay';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { unlock } from '../lock-unlock';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst { ResolutionTool } = unlock( blockEditorPrivateApis );\nconst DEFAULT_MEDIA_SIZE_SLUG = 'full';\n\nfunction FeaturedImageResolutionTool( { image, value, onChange } ) {\n\tconst { imageSizes } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\timageSizes: getSettings().imageSizes,\n\t\t};\n\t}, [] );\n\n\tif ( ! imageSizes?.length ) {\n\t\treturn null;\n\t}\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter(\n\t\t\t( { slug } ) => image?.media_details?.sizes?.[ slug ]?.source_url\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\treturn (\n\t\t<ResolutionTool\n\t\t\tvalue={ value }\n\t\t\tdefaultValue={ DEFAULT_MEDIA_SIZE_SLUG }\n\t\t\toptions={ imageSizeOptions }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType: postTypeSlug, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst {\n\t\tisLink,\n\t\taspectRatio,\n\t\theight,\n\t\twidth,\n\t\tscale,\n\t\tsizeSlug,\n\t\trel,\n\t\tlinkTarget,\n\t\tuseFirstImageFromPost,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\n\tconst [ storedFeaturedImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\t// Fallback to post content if no featured image is set.\n\t// This is needed for the \"Use first image from post\" option.\n\tconst [ postContent ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst featuredImage = useMemo( () => {\n\t\tif ( storedFeaturedImage ) {\n\t\t\treturn storedFeaturedImage;\n\t\t}\n\n\t\tif ( ! useFirstImageFromPost ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst imageOpener =\n\t\t\t/<!--\\s+wp:(?:core\\/)?image\\s+(?<attrs>{(?:(?:[^}]+|}+(?=})|(?!}\\s+\\/?-->).)*)?}\\s+)?-->/.exec(\n\t\t\t\tpostContent\n\t\t\t);\n\t\tconst imageId =\n\t\t\timageOpener?.groups?.attrs &&\n\t\t\tJSON.parse( imageOpener.groups.attrs )?.id;\n\t\treturn imageId;\n\t}, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );\n\n\tconst { media, postType, postPermalink } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getPostType, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\treturn {\n\t\t\t\tmedia:\n\t\t\t\t\tfeaturedImage &&\n\t\t\t\t\tgetEntityRecord( 'postType', 'attachment', featuredImage, {\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t} ),\n\t\t\t\tpostType: postTypeSlug && getPostType( postTypeSlug ),\n\t\t\t\tpostPermalink: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\tpostId\n\t\t\t\t)?.link,\n\t\t\t};\n\t\t},\n\t\t[ featuredImage, postTypeSlug, postId ]\n\t);\n\n\tconst mediaUrl =\n\t\tmedia?.media_details?.sizes?.[ sizeSlug ]?.source_url ||\n\t\tmedia?.source_url;\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height, aspectRatio },\n\t\tclassName: clsx( {\n\t\t\t'is-transient': temporaryURL,\n\t\t} ),\n\t} );\n\tconst borderProps = useBorderProps( attributes );\n\tconst shadowProps = getShadowClassesAndStyles( attributes );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-media-placeholder',\n\t\t\t\t\tborderProps.className\n\t\t\t\t) }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\theight: !! aspectRatio && '100%',\n\t\t\t\t\twidth: !! aspectRatio && '100%',\n\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t...shadowProps.style,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\n\t\tif ( value?.url && isBlobURL( value.url ) ) {\n\t\t\tsetTemporaryURL( value.url );\n\t\t}\n\t};\n\n\t// On reset image\n\tconst onResetImage = () => {\n\t\tsetAttributes( {\n\t\t\tisLink: false,\n\t\t\tlinkTarget: '_self',\n\t\t\trel: '',\n\t\t\tsizeSlug: undefined,\n\t\t} );\n\t\tsetFeaturedImage( 0 );\n\t};\n\n\t// Reset temporary url when media is available.\n\tuseEffect( () => {\n\t\tif ( mediaUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ mediaUrl, temporaryURL ] );\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst controls = blockEditingMode === 'default' && (\n\t\t<>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<OverlayControls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"dimensions\">\n\t\t\t\t<DimensionControls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tmedia={ media }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ ( featuredImage || isDescendentOfQueryLoop || ! postId ) && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\t\tsizeSlug: DEFAULT_MEDIA_SIZE_SLUG,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tisLink: false,\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\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => '_self' !== linkTarget }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: '_self',\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\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tlinkTarget: value\n\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t: '_self',\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\trel: '',\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\t\t<TextControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! media && (\n\t\t\t\t\t\t\t<FeaturedImageResolutionTool\n\t\t\t\t\t\t\t\timage={ media }\n\t\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\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</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</>\n\t);\n\n\tlet image;\n\n\t/**\n\t * A Post Featured Image block should not have image replacement\n\t * or upload options in the following cases:\n\t * - Is placed in a Query Loop. This is a conscious decision to\n\t * prevent content editing of different posts in Query Loop, and\n\t * this could change in the future.\n\t * - Is in a context where it does not have a postId (for example\n\t * in a template or template part).\n\t */\n\tif ( ! featuredImage && ( isDescendentOfQueryLoop || ! postId ) ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t\t{ placeholder() }\n\t\t\t\t\t\t</a>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tplaceholder()\n\t\t\t\t\t) }\n\t\t\t\t\t<Overlay\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\tconst imageStyles = {\n\t\t...borderProps.style,\n\t\t...shadowProps.style,\n\t\theight: aspectRatio ? '100%' : height,\n\t\twidth: !! aspectRatio && '100%',\n\t\tobjectFit: !! ( height || aspectRatio ) && scale,\n\t};\n\n\t/**\n\t * When the post featured image block is placed in a context where:\n\t * - It has a postId (for example in a single post)\n\t * - It is not inside a query loop\n\t * - It has no image assigned yet\n\t * Then display the placeholder with the image upload option.\n\t */\n\tif ( ! featuredImage && ! temporaryURL ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage =\n\t\t\t! media && ! temporaryURL ? (\n\t\t\t\tplaceholder()\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t<img\n\t\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\t\tsrc={ temporaryURL || mediaUrl }\n\t\t\t\t\t\talt={\n\t\t\t\t\t\t\tmedia && media?.alt_text\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The image's alt text.\n\t\t\t\t\t\t\t\t\t\t__( 'Featured image: %s' ),\n\t\t\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Featured image' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t/>\n\t\t\t\t\t{ temporaryURL && <Spinner /> }\n\t\t\t\t</>\n\t\t\t);\n\t}\n\n\t/**\n\t * When the post featured image block:\n\t * - Has an image assigned\n\t * - Is not inside a query loop\n\t * Then display the image and the image replacement option.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ mediaUrl }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\tonReset={ onResetImage }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /* If the featured image is linked, wrap in an <a /> tag to trigger any inherited link element styles */ }\n\t\t\t\t{ !! isLink ? (\n\t\t\t\t\t<a href={ postPermalink } target={ linkTarget }>\n\t\t\t\t\t\t{ image }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\timage\n\t\t\t\t) }\n\t\t\t\t<Overlay\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tSelectControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSettings } from '@wordpress/block-editor';\n\nconst SCALE_OPTIONS = (\n\t<>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"cover\"\n\t\t\tlabel={ _x( 'Cover', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"contain\"\n\t\t\tlabel={ _x(\n\t\t\t\t'Contain',\n\t\t\t\t'Scale option for Image dimension control'\n\t\t\t) }\n\t\t/>\n\t\t<ToggleGroupControlOption\n\t\t\tvalue=\"fill\"\n\t\t\tlabel={ _x( 'Fill', 'Scale option for Image dimension control' ) }\n\t\t/>\n\t</>\n);\n\nconst DEFAULT_SCALE = 'cover';\n\nconst scaleHelp = {\n\tcover: __(\n\t\t'Image is scaled and cropped to fill the entire space without being distorted.'\n\t),\n\tcontain: __(\n\t\t'Image is scaled to fill the space without clipping nor distorting.'\n\t),\n\tfill: __(\n\t\t'Image will be stretched and distorted to completely fill the space.'\n\t),\n};\n\nconst DimensionControls = ( {\n\tclientId,\n\tattributes: { aspectRatio, width, height, scale },\n\tsetAttributes,\n} ) => {\n\tconst [ availableUnits, defaultRatios, themeRatios, showDefaultRatios ] =\n\t\tuseSettings(\n\t\t\t'spacing.units',\n\t\t\t'dimensions.aspectRatios.default',\n\t\t\t'dimensions.aspectRatios.theme',\n\t\t\t'dimensions.defaultAspectRatios'\n\t\t);\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', '%', 'vw', 'em', 'rem' ],\n\t} );\n\n\tconst onDimensionChange = ( dimension, nextValue ) => {\n\t\tconst parsedValue = parseFloat( nextValue );\n\t\t/**\n\t\t * If we have no value set and we change the unit,\n\t\t * we don't want to set the attribute, as it would\n\t\t * end up having the unit as value without any number.\n\t\t */\n\t\tif ( isNaN( parsedValue ) && nextValue ) {\n\t\t\treturn;\n\t\t}\n\t\tsetAttributes( {\n\t\t\t[ dimension ]: parsedValue < 0 ? '0' : nextValue,\n\t\t} );\n\t};\n\tconst scaleLabel = _x( 'Scale', 'Image scaling options' );\n\n\tconst showScaleControl =\n\t\theight || ( aspectRatio && aspectRatio !== 'auto' );\n\n\tconst themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\n\tconst defaultOptions = defaultRatios?.map( ( { name, ratio } ) => ( {\n\t\tlabel: name,\n\t\tvalue: ratio,\n\t} ) );\n\n\tconst aspectRatioOptions = [\n\t\t{\n\t\t\tlabel: _x(\n\t\t\t\t'Original',\n\t\t\t\t'Aspect ratio option for dimensions control'\n\t\t\t),\n\t\t\tvalue: 'auto',\n\t\t},\n\t\t...( showDefaultRatios ? defaultOptions : [] ),\n\t\t...( themeOptions ? themeOptions : [] ),\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => !! aspectRatio }\n\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { aspectRatio: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Aspect ratio' ) }\n\t\t\t\t\tvalue={ aspectRatio }\n\t\t\t\t\toptions={ aspectRatioOptions }\n\t\t\t\t\tonChange={ ( nextAspectRatio ) =>\n\t\t\t\t\t\tsetAttributes( { aspectRatio: nextAspectRatio } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! height }\n\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { height: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ height || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\tonDimensionChange( 'height', nextHeight )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tclassName=\"single-column\"\n\t\t\t\thasValue={ () => !! width }\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { width: undefined } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<UnitControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tonDimensionChange( 'width', nextWidth )\n\t\t\t\t\t}\n\t\t\t\t\tunits={ units }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t{ showScaleControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! scale && scale !== DEFAULT_SCALE }\n\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tscale: DEFAULT_SCALE,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ scaleLabel }\n\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\thelp={ scaleHelp[ scale ] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tscale: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ SCALE_OPTIONS }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default DimensionControls;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tRangeControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\twithColors,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseGradient as useGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\nconst Overlay = ( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\toverlayColor,\n\tsetOverlayColor,\n} ) => {\n\tconst { dimRatio } = attributes;\n\tconst { gradientValue, setGradient } = useGradient();\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\tif ( ! colorGradientSettings.hasColorsOrGradients ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\tsettings={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayColor.color,\n\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\tlabel: __( 'Overlay' ),\n\t\t\t\t\t\tonColorChange: setOverlayColor,\n\t\t\t\t\t\tonGradientChange: setGradient,\n\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\tresetAllFilter: () => ( {\n\t\t\t\t\t\t\toverlayColor: undefined,\n\t\t\t\t\t\t\tcustomOverlayColor: undefined,\n\t\t\t\t\t\t\tgradient: undefined,\n\t\t\t\t\t\t\tcustomGradient: undefined,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tpanelId={ clientId }\n\t\t\t\t{ ...colorGradientSettings }\n\t\t\t/>\n\t\t\t<ToolsPanelItem\n\t\t\t\thasValue={ () => dimRatio !== undefined }\n\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\tonDeselect={ () => setAttributes( { dimRatio: 0 } ) }\n\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\tdimRatio: 0,\n\t\t\t\t} ) }\n\t\t\t\tisShownByDefault\n\t\t\t\tpanelId={ clientId }\n\t\t\t>\n\t\t\t\t<RangeControl\n\t\t\t\t\tlabel={ __( 'Overlay opacity' ) }\n\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\tonChange={ ( newDimRatio ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdimRatio: newDimRatio,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ 100 }\n\t\t\t\t\tstep={ 10 }\n\t\t\t\t\trequired\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n};\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( Overlay );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\twithColors,\n\t__experimentalUseGradient,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { dimRatioToClass } from './utils';\n\nconst Overlay = ( { attributes, overlayColor } ) => {\n\tconst { dimRatio } = attributes;\n\tconst { gradientClass, gradientValue } = __experimentalUseGradient();\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst overlayStyles = {\n\t\tbackgroundColor: overlayColor.color,\n\t\tbackgroundImage: gradientValue,\n\t\t...borderProps.style,\n\t};\n\n\tif ( ! colorGradientSettings.hasColorsOrGradients || ! dimRatio ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={ clsx(\n\t\t\t\t'wp-block-post-featured-image__overlay',\n\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t{\n\t\t\t\t\t[ overlayColor.class ]: overlayColor.class,\n\t\t\t\t\t'has-background-dim': dimRatio !== undefined,\n\t\t\t\t\t'has-background-gradient': gradientValue,\n\t\t\t\t\t[ gradientClass ]: gradientClass,\n\t\t\t\t},\n\t\t\t\tborderProps.className\n\t\t\t) }\n\t\t\tstyle={ overlayStyles }\n\t\t/>\n\t);\n};\n\nexport default compose( [\n\twithColors( { overlayColor: 'background-color' } ),\n] )( Overlay );\n", "/**\n * Generates the opacity/dim class based on given number.\n *\n * @param {number} ratio Dim/opacity number.\n *\n * @return {string} Generated class.\n */\nexport function dimRatioToClass( ratio ) {\n\treturn ratio === undefined\n\t\t? null\n\t\t: 'has-background-dim-' + 10 * Math.round( ratio / 10 );\n}\n", "/**\n * WordPress dependencies\n */\nimport { postFeaturedImage as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tvariations,\n\texample: {\n\t\tattributes: {\n\t\t\tlabel: __( 'Next post' ),\n\t\t\tarrow: 'arrow',\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-navigation-link\",\n\t\"title\": \"Post Navigation Link\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the next or previous post link that is adjacent to the current post.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"type\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"next\"\n\t\t},\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"showTitle\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"linkLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"arrow\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"none\"\n\t\t},\n\t\t\"taxonomy\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postType\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"link\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-navigation-link\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n\tSelectControl,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostNavigationLinkEdit( {\n\tcontext: { postType },\n\tattributes: {\n\t\ttype,\n\t\tlabel,\n\t\tshowTitle,\n\t\ttextAlign,\n\t\tlinkLabel,\n\t\tarrow,\n\t\ttaxonomy,\n\t},\n\tsetAttributes,\n} ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst showControls = blockEditingMode === 'default';\n\tconst isNext = type === 'next';\n\tlet placeholder = isNext ? __( 'Next' ) : __( 'Previous' );\n\n\tconst arrowMap = {\n\t\tnone: '',\n\t\tarrow: isNext ? '\u2192' : '\u2190',\n\t\tchevron: isNext ? '\u00BB' : '\u00AB',\n\t};\n\n\tconst displayArrow = arrowMap[ arrow ];\n\n\tif ( showTitle ) {\n\t\tplaceholder = isNext\n\t\t\t? /* translators: Label before for next and previous post. There is a space after the colon. */\n\t\t\t __( 'Next: ' ) // eslint-disable-line @wordpress/i18n-no-flanking-whitespace\n\t\t\t: /* translators: Label before for next and previous post. There is a space after the colon. */\n\t\t\t __( 'Previous: ' ); // eslint-disable-line @wordpress/i18n-no-flanking-whitespace\n\t}\n\n\tconst ariaLabel = isNext ? __( 'Next post' ) : __( 'Previous post' );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies } = select( coreStore );\n\t\t\tconst filteredTaxonomies = getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\n\t\t\treturn filteredTaxonomies;\n\t\t},\n\t\t[ postType ]\n\t);\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( 'Unfiltered' ),\n\t\t\tvalue: '',\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( { visibility } ) => !! visibility?.publicly_queryable )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tshowTitle: false,\n\t\t\t\t\t\t\tlinkLabel: false,\n\t\t\t\t\t\t\tarrow: 'none',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display the title as a link' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => showTitle }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showTitle: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display the title as a link' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'If you have entered a custom label, it will be prepended before the title.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ !! showTitle }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowTitle: ! showTitle,\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</ToolsPanelItem>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t'Include the label as part of the link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! linkLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkLabel: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t'Include the label as part of the link'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ !! linkLabel }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkLabel: ! linkLabel,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => arrow !== 'none' }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { arrow: 'none' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\t\tvalue={ arrow }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { arrow: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'A decorative arrow for the next and previous link.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t'None',\n\t\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"arrow\"\n\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t'Arrow',\n\t\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tvalue=\"chevron\"\n\t\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t\t'Chevron',\n\t\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Filter by taxonomy' ) }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttaxonomy: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Only link to posts that have the same taxonomy terms as the current post. For example the same tags or categories.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ showControls && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ ! isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-previous is-arrow-${ arrow }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ showTitle && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref=\"#post-navigation-pseudo-link\"\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'An example title' ) }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ isNext && displayArrow && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ `wp-block-post-navigation-link__arrow-next is-arrow-${ arrow }` }\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ displayArrow }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { next, previous } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'post-previous',\n\t\ttitle: __( 'Previous Post' ),\n\t\tdescription: __(\n\t\t\t'Displays the post link that precedes the current post.'\n\t\t),\n\t\ticon: previous,\n\t\tattributes: { type: 'previous' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t\texample: {\n\t\t\tattributes: {\n\t\t\t\tlabel: __( 'Previous post' ),\n\t\t\t\tarrow: 'arrow',\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tisDefault: true,\n\t\tname: 'post-next',\n\t\ttitle: __( 'Next Post' ),\n\t\tdescription: __(\n\t\t\t'Displays the post link that follows the current post.'\n\t\t),\n\t\ticon: next,\n\t\tattributes: { type: 'next' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t\texample: {\n\t\t\tattributes: {\n\t\t\t\tlabel: __( 'Next post' ),\n\t\t\t\tarrow: 'arrow',\n\t\t\t},\n\t\t},\n\t},\n];\n\n/**\n * Add `isActive` function to all `post-navigation-link` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-template\",\n\t\"title\": \"Post Template\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/query\" ],\n\t\"description\": \"Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [\n\t\t\"queryId\",\n\t\t\"query\",\n\t\t\"displayLayout\",\n\t\t\"templateSlug\",\n\t\t\"previewPostType\",\n\t\t\"enhancedPagination\",\n\t\t\"postType\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"layout\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": {\n\t\t\t\t\"__experimentalDefault\": \"1.25em\"\n\t\t\t},\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true,\n\t\t\t\t\"padding\": false,\n\t\t\t\t\"margin\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-template\",\n\t\"editorStyle\": \"wp-block-post-template-editor\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner, ToolbarGroup } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { list, grid } from '@wordpress/icons';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[\n\t\t'core/post-date',\n\t\t{\n\t\t\tmetadata: {\n\t\t\t\tbindings: {\n\t\t\t\t\tdatetime: {\n\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\targs: { field: 'date' },\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-post', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-post', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tsetAttributes,\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset = 0,\n\t\t\tpostType,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\tpages,\n\t\t\tformat,\n\t\t\t// We gather extra query args to pass to the REST API call.\n\t\t\t// This way extenders of Query Loop can add their own query args,\n\t\t\t// and have accurate previews in the editor.\n\t\t\t// Noting though that these args should either be supported by the\n\t\t\t// REST API or be handled by custom REST filters like `rest_{$this->post_type}_query`.\n\t\t\t...restQueryArgs\n\t\t} = {},\n\t\ttemplateSlug,\n\t\tpreviewPostType,\n\t},\n\tattributes: { layout },\n\t__unstableLayoutClassNames,\n} ) {\n\tconst { type: layoutType, columnCount = 3 } = layout || {};\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomies } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst templateCategory =\n\t\t\t\tinherit &&\n\t\t\t\ttemplateSlug?.startsWith( 'category-' ) &&\n\t\t\t\tgetEntityRecords( 'taxonomy', 'category', {\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t\tper_page: 1,\n\t\t\t\t\t_fields: [ 'id' ],\n\t\t\t\t\tslug: templateSlug.replace( 'category-', '' ),\n\t\t\t\t} );\n\t\t\tconst templateTag =\n\t\t\t\tinherit &&\n\t\t\t\ttemplateSlug?.startsWith( 'tag-' ) &&\n\t\t\t\tgetEntityRecords( 'taxonomy', 'post_tag', {\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t\tper_page: 1,\n\t\t\t\t\t_fields: [ 'id' ],\n\t\t\t\t\tslug: templateSlug.replace( 'tag-', '' ),\n\t\t\t\t} );\n\t\t\tconst query = {\n\t\t\t\toffset: offset || 0,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\t// There is no need to build the taxQuery if we inherit.\n\t\t\tif ( taxQuery && ! inherit ) {\n\t\t\t\tconst taxonomies = getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t} );\n\t\t\t\t// Build REST API parameters from taxonomy terms, e.g.\n\t\t\t\t// `category`, `tags_exclude`.\n\t\t\t\tconst buildTaxQuery = ( terms, suffix = '' ) => {\n\t\t\t\t\treturn Object.entries( terms || {} ).reduce(\n\t\t\t\t\t\t( accumulator, [ taxonomySlug, termIds ] ) => {\n\t\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( taxonomy?.rest_base && termIds?.length ) {\n\t\t\t\t\t\t\t\taccumulator[ taxonomy.rest_base + suffix ] =\n\t\t\t\t\t\t\t\t\ttermIds;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn accumulator;\n\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\tconst builtTaxQuery = buildTaxQuery( taxQuery.include );\n\t\t\t\tif ( taxQuery.exclude ) {\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\tbuiltTaxQuery,\n\t\t\t\t\t\tbuildTaxQuery( taxQuery.exclude, '_exclude' )\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ( !! Object.keys( builtTaxQuery ).length ) {\n\t\t\t\t\tObject.assign( query, builtTaxQuery );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\tif ( parents?.length ) {\n\t\t\t\tquery.parent = parents;\n\t\t\t}\n\t\t\tif ( format?.length ) {\n\t\t\t\tquery.format = format;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Handle cases where sticky is set to `exclude` or `only`.\n\t\t\t * Which works as a `post__in/post__not_in` query for sticky posts.\n\t\t\t */\n\t\t\tif ( [ 'exclude', 'only' ].includes( sticky ) ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\n\t\t\t// Empty string represents the default behavior of including sticky posts.\n\t\t\tif ( [ '', 'ignore' ].includes( sticky ) ) {\n\t\t\t\t// Remove any leftover sticky query parameter.\n\t\t\t\tdelete query.sticky;\n\t\t\t\tquery.ignore_sticky = sticky === 'ignore';\n\t\t\t}\n\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tlet currentPostType = postType;\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tcurrentPostType = query.postType;\n\t\t\t\t} else if ( templateCategory ) {\n\t\t\t\t\tquery.categories = templateCategory[ 0 ]?.id;\n\t\t\t\t} else if ( templateTag ) {\n\t\t\t\t\tquery.tags = templateTag[ 0 ]?.id;\n\t\t\t\t} else if (\n\t\t\t\t\ttemplateSlug?.startsWith( 'taxonomy-post_format' )\n\t\t\t\t) {\n\t\t\t\t\t// Get the post format slug from the template slug by removing the prefix.\n\t\t\t\t\tquery.format = templateSlug.replace(\n\t\t\t\t\t\t'taxonomy-post_format-post-format-',\n\t\t\t\t\t\t''\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// When we preview Query Loop blocks we should prefer the current\n\t\t\t// block's postType, which is passed through block context.\n\t\t\tconst usedPostType = previewPostType || currentPostType;\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', usedPostType, {\n\t\t\t\t\t...query,\n\t\t\t\t\t...restQueryArgs,\n\t\t\t\t} ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t\ttaxQuery,\n\t\t\tparents,\n\t\t\tformat,\n\t\t\trestQueryArgs,\n\t\t\tpreviewPostType,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t\tclassList: post.class_list ?? '',\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( __unstableLayoutClassNames, {\n\t\t\t[ `columns-${ columnCount }` ]:\n\t\t\t\tlayoutType === 'grid' && columnCount, // Ensure column count is flagged via classname for backwards compatibility.\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\tconst setDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tlayout: { ...layout, ...newDisplayLayout },\n\t\t} );\n\n\tconst displayLayoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'Post template block display setting' ),\n\t\t\tonClick: () => setDisplayLayout( { type: 'default' } ),\n\t\t\tisActive: layoutType === 'default' || layoutType === 'constrained',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'Post template block display setting' ),\n\t\t\tonClick: () =>\n\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\ttype: 'grid',\n\t\t\t\t\tcolumnCount,\n\t\t\t\t} ),\n\t\t\tisActive: layoutType === 'grid',\n\t\t},\n\t];\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ displayLayoutControls } />\n\t\t\t</BlockControls>\n\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ blockContexts &&\n\t\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t\t<PostTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function PostTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { layout } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: layout,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { postCategories as icon } from '@wordpress/icons';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport enhanceVariations from './hooks';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/template-part',\n\t\tenhanceVariations\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-terms\",\n\t\"title\": \"Post Terms\",\n\t\"category\": \"theme\",\n\t\"description\": \"Post terms.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"term\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"separator\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \", \"\n\t\t},\n\t\t\"prefix\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"suffix\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-terms\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentToolbar,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseBlockDisplayInformation,\n\tRichText,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { Spinner, TextControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport usePostTerms from './use-post-terms';\n\n// Allowed formats for the prefix and suffix fields.\nconst ALLOWED_FORMATS = [\n\t'core/bold',\n\t'core/image',\n\t'core/italic',\n\t'core/link',\n\t'core/strikethrough',\n\t'core/text-color',\n];\n\nexport default function PostTermsEdit( {\n\tattributes,\n\tclientId,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst { term, textAlign, separator, prefix, suffix } = attributes;\n\tconst { postId, postType } = context;\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst showControls = blockEditingMode === 'default';\n\n\tconst selectedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! term ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getTaxonomy } = select( coreStore );\n\t\t\tconst taxonomy = getTaxonomy( term );\n\t\t\treturn taxonomy?.visibility?.publicly_queryable ? taxonomy : {};\n\t\t},\n\t\t[ term ]\n\t);\n\tconst { postTerms, hasPostTerms, isLoading } = usePostTerms( {\n\t\tpostId,\n\t\tterm: selectedTerm,\n\t} );\n\tconst hasPost = postId && postType;\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t[ `taxonomy-${ term }` ]: term,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ showControls && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\tvalue={ separator || '' }\n\t\t\t\t\tonChange={ ( nextValue ) => {\n\t\t\t\t\t\tsetAttributes( { separator: nextValue } );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __( 'Enter character(s) used to separate terms.' ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ isLoading && hasPost && <Spinner /> }\n\t\t\t\t{ ! isLoading && ( isSelected || prefix ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"prefix\"\n\t\t\t\t\t\tallowedFormats={ ALLOWED_FORMATS }\n\t\t\t\t\t\tclassName=\"wp-block-post-terms__prefix\"\n\t\t\t\t\t\taria-label={ __( 'Prefix' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Prefix' ) + ' ' }\n\t\t\t\t\t\tvalue={ prefix }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { prefix: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ( ! hasPost || ! term ) && (\n\t\t\t\t\t<span>{ blockInformation.title }</span>\n\t\t\t\t) }\n\t\t\t\t{ hasPost &&\n\t\t\t\t\t! isLoading &&\n\t\t\t\t\thasPostTerms &&\n\t\t\t\t\tpostTerms\n\t\t\t\t\t\t.map( ( postTerm ) => (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={ postTerm.id }\n\t\t\t\t\t\t\t\thref={ postTerm.link }\n\t\t\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t\t\t\trel=\"tag\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities( postTerm.name ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t.reduce( ( prev, curr ) => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{ prev }\n\t\t\t\t\t\t\t\t<span className=\"wp-block-post-terms__separator\">\n\t\t\t\t\t\t\t\t\t{ separator || ' ' }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{ curr }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) ) }\n\t\t\t\t{ hasPost &&\n\t\t\t\t\t! isLoading &&\n\t\t\t\t\t! hasPostTerms &&\n\t\t\t\t\t( selectedTerm?.labels?.no_terms ||\n\t\t\t\t\t\t__( 'Term items not found.' ) ) }\n\t\t\t\t{ ! isLoading && ( isSelected || suffix ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"suffix\"\n\t\t\t\t\t\tallowedFormats={ ALLOWED_FORMATS }\n\t\t\t\t\t\tclassName=\"wp-block-post-terms__suffix\"\n\t\t\t\t\t\taria-label={ __( 'Suffix' ) }\n\t\t\t\t\t\tplaceholder={ ' ' + __( 'Suffix' ) }\n\t\t\t\t\t\tvalue={ suffix }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { suffix: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nconst EMPTY_ARRAY = [];\n\nexport default function usePostTerms( { postId, term } ) {\n\tconst { slug } = term;\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst visible = term?.visibility?.publicly_queryable;\n\t\t\tif ( ! visible ) {\n\t\t\t\treturn {\n\t\t\t\t\tpostTerms: EMPTY_ARRAY,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\thasPostTerms: false,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst { getEntityRecords, isResolving } = select( coreStore );\n\t\t\tconst taxonomyArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\tslug,\n\t\t\t\t{\n\t\t\t\t\tpost: postId,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t},\n\t\t\t];\n\t\t\tconst terms = getEntityRecords( ...taxonomyArgs );\n\n\t\t\treturn {\n\t\t\t\tpostTerms: terms,\n\t\t\t\tisLoading: isResolving( 'getEntityRecords', taxonomyArgs ),\n\t\t\t\thasPostTerms: !! terms?.length,\n\t\t\t};\n\t\t},\n\t\t[ postId, term?.visibility?.publicly_queryable, slug ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { postCategories, postTerms } from '@wordpress/icons';\n\nconst variationIconMap = {\n\tcategory: postCategories,\n\tpost_tag: postTerms,\n};\n\n// We add `icons` to categories and tags. The remaining ones use\n// the block's default icon.\nexport default function enhanceVariations( settings, name ) {\n\tif ( name !== 'core/post-terms' ) {\n\t\treturn settings;\n\t}\n\tconst variations = settings.variations.map( ( variation ) => ( {\n\t\t...variation,\n\t\t...{\n\t\t\ticon: variationIconMap[ variation.name ] ?? postCategories,\n\t\t},\n\t} ) );\n\treturn {\n\t\t...settings,\n\t\tvariations,\n\t};\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-time-to-read\",\n\t\"title\": \"Time to Read\",\n\t\"category\": \"theme\",\n\t\"description\": \"Show minutes required to finish reading the post. Can also show a word count.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"displayAsRange\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"displayMode\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"time\"\n\t\t},\n\t\t\"averageReadingSpeed\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 189\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign, displayAsRange, displayMode, averageReadingSpeed } =\n\t\tattributes;\n\n\tconst { postId, postType } = context;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst displayString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst totalWords = wordCount( content || '', wordCountType );\n\n\t\t// Add \"time to read\" part, if enabled.\n\t\tif ( displayMode === 'time' ) {\n\t\t\tif ( displayAsRange ) {\n\t\t\t\tlet maxMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 1.2 )\n\t\t\t\t);\n\t\t\t\tconst minMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 0.8 )\n\t\t\t\t);\n\n\t\t\t\tif ( minMinutes === maxMinutes ) {\n\t\t\t\t\tmaxMinutes = maxMinutes + 1;\n\t\t\t\t}\n\t\t\t\t// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.\n\t\t\t\tconst rangeLabel = _x(\n\t\t\t\t\t'%1$s\u2013%2$s minutes',\n\t\t\t\t\t'Range of minutes to read'\n\t\t\t\t);\n\t\t\t\treturn sprintf( rangeLabel, minMinutes, maxMinutes );\n\t\t\t}\n\t\t\tconst minutesToRead = Math.max(\n\t\t\t\t1,\n\t\t\t\tMath.round( totalWords / averageReadingSpeed )\n\t\t\t);\n\n\t\t\treturn sprintf(\n\t\t\t\t/* translators: %s: the number of minutes to read the post. */\n\t\t\t\t_n( '%s minute', '%s minutes', minutesToRead ),\n\t\t\t\tminutesToRead\n\t\t\t);\n\t\t}\n\n\t\t// Add \"word count\" part, if enabled.\n\t\tif ( displayMode === 'words' ) {\n\t\t\treturn wordCountType === 'words'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of words in the post. */\n\t\t\t\t\t\t_n( '%s word', '%s words', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of characters in the post. */\n\t\t\t\t\t\t_n( '%s character', '%s characters', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t );\n\t\t}\n\t}, [\n\t\tcontentStructure,\n\t\tblocks,\n\t\tdisplayAsRange,\n\t\tdisplayMode,\n\t\taverageReadingSpeed,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ displayMode === 'time' && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Display as range',\n\t\t\t\t\t\t\t\t'Turns reading time range display on or off'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\thasValue={ () => ! displayAsRange }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsRange: true,\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\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Display as range' ) }\n\t\t\t\t\t\t\t\tchecked={ !! displayAsRange }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdisplayAsRange: ! displayAsRange,\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</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<div { ...blockProps }>{ displayString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { timeToRead, wordCount } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'time-to-read',\n\t\ttitle: __( 'Time to Read' ),\n\t\tdescription: __( 'Show minutes required to finish reading the post.' ),\n\t\tattributes: {\n\t\t\tdisplayMode: 'time',\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.displayMode === 'time',\n\t\ticon: timeToRead,\n\t\tisDefault: true,\n\t},\n\t{\n\t\tname: 'word-count',\n\t\ttitle: __( 'Word Count' ),\n\t\tdescription: __( 'Show the number of words in the post.' ),\n\t\tattributes: {\n\t\t\tdisplayMode: 'words',\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.displayMode === 'words',\n\t\ticon: wordCount,\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { timeToRead as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/post-title\",\n\t\"title\": \"Title\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the title of a post, page, or any other content-type.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\", \"postType\", \"queryId\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"attribute\": \"rel\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 350\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-post-title\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tPlainText,\n\tHeadingLevelDropdown,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostTitleEdit( {\n\tattributes: { level, levelOptions, textAlign, isLink, rel, linkTarget },\n\tsetAttributes,\n\tcontext: { postType, postId, queryId },\n\tinsertBlocksAfter,\n} ) {\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst userCanEdit = useSelect(\n\t\t( select ) => {\n\t\t\t/**\n\t\t\t * useCanEditEntity may trigger an OPTIONS request to the REST API\n\t\t\t * via the canUser resolver. However, when the Post Title is a\n\t\t\t * descendant of a Query Loop block, the title cannot be edited. In\n\t\t\t * order to avoid these unnecessary requests, we call the hook\n\t\t\t * without the proper data, resulting in returning early without\n\t\t\t * making them.\n\t\t\t */\n\t\t\tif ( isDescendentOfQueryLoop ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn select( coreStore ).canUser( 'update', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: postType,\n\t\t\t\tid: postId,\n\t\t\t} );\n\t\t},\n\t\t[ isDescendentOfQueryLoop, postType, postId ]\n\t);\n\tconst [ rawTitle = '', setTitle, fullTitle ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'title',\n\t\tpostId\n\t);\n\tconst [ link ] = useEntityProp( 'postType', postType, 'link', postId );\n\tconst onSplitAtEnd = () => {\n\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) );\n\t};\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tlet titleElement = <TagName { ...blockProps }>{ __( 'Title' ) }</TagName>;\n\n\tif ( postType && postId ) {\n\t\ttitleElement = userCanEdit ? (\n\t\t\t<PlainText\n\t\t\t\ttagName={ TagName }\n\t\t\t\tplaceholder={ __( '(no title)' ) }\n\t\t\t\tvalue={ rawTitle }\n\t\t\t\tonChange={ setTitle }\n\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t__unstableOnSplitAtEnd={ onSplitAtEnd }\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t) : (\n\t\t\t<TagName\n\t\t\t\t{ ...blockProps }\n\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t__html: fullTitle?.rendered || __( '(no title)' ),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isLink && postType && postId ) {\n\t\ttitleElement = userCanEdit ? (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<PlainText\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\thref={ link }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ rel }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t! rawTitle.length ? __( '(no title)' ) : null\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ rawTitle }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\t__unstableOnSplitAtEnd={ onSplitAtEnd }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t) : (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\thref={ link }\n\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\trel={ rel }\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t__html: fullTitle?.rendered || __( '(no title)' ),\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\t\t\tvalue={ level }\n\t\t\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\tlabel={ __( 'Make title a link' ) }\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\thasValue={ () => isLink }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { isLink: false } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Make title a link' ) }\n\t\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\t\t\t\tlinkTarget === '_blank'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\t\tlinkTarget: value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? '_blank'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: '_self',\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: '' } )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\t\t\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanel>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trel: {\n\t\t\ttype: 'string',\n\t\t\tattribute: 'rel',\n\t\t\tdefault: '',\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '_self',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { title as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { preformatted as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.\n\t\t\tcontent: __(\n\t\t\t\t'EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\\nWindow, very small in the distance, illuminated.\\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function PreformattedEdit( {\n\tattributes,\n\tmergeBlocks,\n\tsetAttributes,\n\tonRemove,\n\tinsertBlocksAfter,\n\tstyle,\n} ) {\n\tconst { content } = attributes;\n\tconst blockProps = useBlockProps( { style } );\n\n\treturn (\n\t\t<RichText\n\t\t\ttagName=\"pre\"\n\t\t\tidentifier=\"content\"\n\t\t\tpreserveWhiteSpace\n\t\t\tvalue={ content }\n\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tcontent: nextContent,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonRemove={ onRemove }\n\t\t\taria-label={ __( 'Preformatted text' ) }\n\t\t\tplaceholder={ __( 'Write preformatted text\u2026' ) }\n\t\t\tonMerge={ mergeBlocks }\n\t\t\t{ ...blockProps }\n\t\t\t__unstablePastePlainText\n\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t}\n\t\t/>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/preformatted\",\n\t\"title\": \"Preformatted\",\n\t\"category\": \"text\",\n\t\"description\": \"Add text that respects your spacing and tabs, and also allows styling.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"pre\",\n\t\t\t\"__unstablePreserveWhiteSpace\": true,\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-preformatted\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { content } = attributes;\n\n\treturn (\n\t\t<pre { ...useBlockProps.save() }>\n\t\t\t<RichText.Content value={ content } />\n\t\t</pre>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/code', 'core/paragraph', 'core/verse' ],\n\t\t\ttransform: ( { content, anchor } ) =>\n\t\t\t\tcreateBlock( 'core/preformatted', {\n\t\t\t\t\tcontent,\n\t\t\t\t\tanchor,\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\t! (\n\t\t\t\t\tnode.children.length === 1 &&\n\t\t\t\t\tnode.firstChild.nodeName === 'CODE'\n\t\t\t\t),\n\t\t\tschema: ( { phrasingContentSchema } ) => ( {\n\t\t\t\tpre: {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t},\n\t\t\t} ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/code' ],\n\t\t\ttransform: ( attributes ) => createBlock( 'core/code', attributes ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/verse' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tcreateBlock( 'core/verse', attributes ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pullquote as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tvalue:\n\t\t\t\t// translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.\n\t\t\t\t__(\n\t\t\t\t\t'One of the hardest things to do in technology is disrupt yourself.'\n\t\t\t\t),\n\t\t\tcitation: __( 'Matt Mullenweg' ),\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'value',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'citation',\n\t\t\tlabel: __( 'Citation' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'value', 'citation' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n\tRichText,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { select } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { SOLID_COLOR_CLASS } from './shared';\n\nconst blockAttributes = {\n\tvalue: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t\tdefault: '',\n\t},\n\tmainColor: {\n\t\ttype: 'string',\n\t},\n\tcustomMainColor: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\nfunction parseBorderColor( styleString ) {\n\tif ( ! styleString ) {\n\t\treturn;\n\t}\n\tconst matches = styleString.match( /border-color:([^;]+)[;]?/ );\n\tif ( matches && matches[ 1 ] ) {\n\t\treturn matches[ 1 ];\n\t}\n}\n\nfunction multilineToInline( value ) {\n\tvalue = value || `<p></p>`;\n\tconst padded = `</p>${ value }<p>`;\n\tconst values = padded.split( `</p><p>` );\n\n\tvalues.shift();\n\tvalues.pop();\n\n\treturn values.join( '<br>' );\n}\n\nconst v5 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\trole: 'content',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'cite',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { textAlign, citation, value } = attributes;\n\t\tconst shouldShowCitation = ! RichText.isEmpty( citation );\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\t{ ...useBlockProps.save( {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<blockquote>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ shouldShowCitation && (\n\t\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t\t) }\n\t\t\t\t</blockquote>\n\t\t\t</figure>\n\t\t);\n\t},\n\tmigrate( { value, ...attributes } ) {\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\n// TODO: this is ripe for a bit of a clean up according to the example in https://developer.wordpress.org/block-editor/reference-guides/block-api/block-deprecation/#example\n\nconst v4 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tmainColor,\n\t\t\tcustomMainColor,\n\t\t\tcustomTextColor,\n\t\t\ttextColor,\n\t\t\tvalue,\n\t\t\tcitation,\n\t\t\tclassName,\n\t\t} = attributes;\n\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\n\t\tlet figureClasses, figureStyles;\n\n\t\t// Is solid color style\n\t\tif ( isSolidColorStyle ) {\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tmainColor\n\t\t\t);\n\n\t\t\tfigureClasses = clsx( {\n\t\t\t\t'has-background': backgroundClass || customMainColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tfigureStyles = {\n\t\t\t\tbackgroundColor: backgroundClass ? undefined : customMainColor,\n\t\t\t};\n\t\t\t// Is normal style and a custom color is being used ( we can set a style directly with its value)\n\t\t} else if ( customMainColor ) {\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: customMainColor,\n\t\t\t};\n\t\t}\n\n\t\tconst blockquoteTextColorClass = getColorClassName(\n\t\t\t'color',\n\t\t\ttextColor\n\t\t);\n\t\tconst blockquoteClasses = clsx( {\n\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t[ blockquoteTextColorClass ]: blockquoteTextColorClass,\n\t\t} );\n\n\t\tconst blockquoteStyles = blockquoteTextColorClass\n\t\t\t? undefined\n\t\t\t: { color: customTextColor };\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\t{ ...useBlockProps.save( {\n\t\t\t\t\tclassName: figureClasses,\n\t\t\t\t\tstyle: figureStyles,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<blockquote\n\t\t\t\t\tclassName={ blockquoteClasses }\n\t\t\t\t\tstyle={ blockquoteStyles }\n\t\t\t\t>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t\t) }\n\t\t\t\t</blockquote>\n\t\t\t</figure>\n\t\t);\n\t},\n\tmigrate( {\n\t\tvalue,\n\t\tclassName,\n\t\tmainColor,\n\t\tcustomMainColor,\n\t\tcustomTextColor,\n\t\t...attributes\n\t} ) {\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\t\tlet style;\n\n\t\tif ( customMainColor ) {\n\t\t\tif ( ! isSolidColorStyle ) {\n\t\t\t\t// Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tborder: {\n\t\t\t\t\t\tcolor: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tbackground: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.\n\t\tif ( customTextColor && style ) {\n\t\t\tstyle.color = {\n\t\t\t\t...style.color,\n\t\t\t\ttext: customTextColor,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\tclassName,\n\t\t\tbackgroundColor: isSolidColorStyle ? mainColor : undefined,\n\t\t\tborderColor: isSolidColorStyle ? undefined : mainColor,\n\t\t\ttextAlign: isSolidColorStyle ? 'left' : undefined,\n\t\t\tstyle,\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\nconst v3 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\t// figureStyle is an attribute that never existed.\n\t\t// We are using it as a way to access the styles previously applied to the figure.\n\t\tfigureStyle: {\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure',\n\t\t\tattribute: 'style',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tmainColor,\n\t\t\tcustomMainColor,\n\t\t\ttextColor,\n\t\t\tcustomTextColor,\n\t\t\tvalue,\n\t\t\tcitation,\n\t\t\tclassName,\n\t\t\tfigureStyle,\n\t\t} = attributes;\n\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\n\t\tlet figureClasses, figureStyles;\n\n\t\t// Is solid color style\n\t\tif ( isSolidColorStyle ) {\n\t\t\tconst backgroundClass = getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tmainColor\n\t\t\t);\n\n\t\t\tfigureClasses = clsx( {\n\t\t\t\t'has-background': backgroundClass || customMainColor,\n\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t} );\n\n\t\t\tfigureStyles = {\n\t\t\t\tbackgroundColor: backgroundClass ? undefined : customMainColor,\n\t\t\t};\n\t\t\t// Is normal style and a custom color is being used ( we can set a style directly with its value)\n\t\t} else if ( customMainColor ) {\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: customMainColor,\n\t\t\t};\n\t\t\t// If normal style and a named color are being used, we need to retrieve the color value to set the style,\n\t\t\t// as there is no expectation that themes create classes that set border colors.\n\t\t} else if ( mainColor ) {\n\t\t\t// Previously here we queried the color settings to know the color value\n\t\t\t// of a named color. This made the save function impure and the block was refactored,\n\t\t\t// because meanwhile a change in the editor made it impossible to query color settings in the save function.\n\t\t\t// Here instead of querying the color settings to know the color value, we retrieve the value\n\t\t\t// directly from the style previously serialized.\n\t\t\tconst borderColor = parseBorderColor( figureStyle );\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor,\n\t\t\t};\n\t\t}\n\n\t\tconst blockquoteTextColorClass = getColorClassName(\n\t\t\t'color',\n\t\t\ttextColor\n\t\t);\n\t\tconst blockquoteClasses =\n\t\t\t( textColor || customTextColor ) &&\n\t\t\tclsx( 'has-text-color', {\n\t\t\t\t[ blockquoteTextColorClass ]: blockquoteTextColorClass,\n\t\t\t} );\n\n\t\tconst blockquoteStyles = blockquoteTextColorClass\n\t\t\t? undefined\n\t\t\t: { color: customTextColor };\n\n\t\treturn (\n\t\t\t<figure className={ figureClasses } style={ figureStyles }>\n\t\t\t\t<blockquote\n\t\t\t\t\tclassName={ blockquoteClasses }\n\t\t\t\t\tstyle={ blockquoteStyles }\n\t\t\t\t>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t\t) }\n\t\t\t\t</blockquote>\n\t\t\t</figure>\n\t\t);\n\t},\n\tmigrate( {\n\t\tvalue,\n\t\tclassName,\n\t\tfigureStyle,\n\t\tmainColor,\n\t\tcustomMainColor,\n\t\tcustomTextColor,\n\t\t...attributes\n\t} ) {\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\t\tlet style;\n\n\t\tif ( customMainColor ) {\n\t\t\tif ( ! isSolidColorStyle ) {\n\t\t\t\t// Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tborder: {\n\t\t\t\t\t\tcolor: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tbackground: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.\n\t\tif ( customTextColor && style ) {\n\t\t\tstyle.color = {\n\t\t\t\t...style.color,\n\t\t\t\ttext: customTextColor,\n\t\t\t};\n\t\t}\n\t\t// If is the default style, and a main color is set,\n\t\t// migrate the main color value into a custom border color.\n\t\t// The custom border color value is retrieved by parsing the figure styles.\n\t\tif ( ! isSolidColorStyle && mainColor && figureStyle ) {\n\t\t\tconst borderColor = parseBorderColor( figureStyle );\n\t\t\tif ( borderColor ) {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: multilineToInline( value ),\n\t\t\t\t\t...attributes,\n\t\t\t\t\tclassName,\n\t\t\t\t\t// Block supports: Set style.border.color if a deprecated block has `mainColor`, inline border CSS and is not a solid color style.\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tborder: {\n\t\t\t\t\t\t\tcolor: borderColor,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\tclassName,\n\t\t\tbackgroundColor: isSolidColorStyle ? mainColor : undefined,\n\t\t\tborderColor: isSolidColorStyle ? undefined : mainColor,\n\t\t\ttextAlign: isSolidColorStyle ? 'left' : undefined,\n\t\t\tstyle,\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tmainColor,\n\t\t\tcustomMainColor,\n\t\t\ttextColor,\n\t\t\tcustomTextColor,\n\t\t\tvalue,\n\t\t\tcitation,\n\t\t\tclassName,\n\t\t} = attributes;\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\n\t\tlet figureClass, figureStyles;\n\t\t// Is solid color style\n\t\tif ( isSolidColorStyle ) {\n\t\t\tfigureClass = getColorClassName( 'background-color', mainColor );\n\t\t\tif ( ! figureClass ) {\n\t\t\t\tfigureStyles = {\n\t\t\t\t\tbackgroundColor: customMainColor,\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Is normal style and a custom color is being used ( we can set a style directly with its value)\n\t\t} else if ( customMainColor ) {\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: customMainColor,\n\t\t\t};\n\t\t\t// Is normal style and a named color is being used, we need to retrieve the color value to set the style,\n\t\t\t// as there is no expectation that themes create classes that set border colors.\n\t\t} else if ( mainColor ) {\n\t\t\tconst colors =\n\t\t\t\tselect( blockEditorStore ).getSettings().colors ?? [];\n\t\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tmainColor\n\t\t\t);\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: colorObject.color,\n\t\t\t};\n\t\t}\n\n\t\tconst blockquoteTextColorClass = getColorClassName(\n\t\t\t'color',\n\t\t\ttextColor\n\t\t);\n\t\tconst blockquoteClasses =\n\t\t\ttextColor || customTextColor\n\t\t\t\t? clsx( 'has-text-color', {\n\t\t\t\t\t\t[ blockquoteTextColorClass ]: blockquoteTextColorClass,\n\t\t\t\t } )\n\t\t\t\t: undefined;\n\t\tconst blockquoteStyle = blockquoteTextColorClass\n\t\t\t? undefined\n\t\t\t: { color: customTextColor };\n\t\treturn (\n\t\t\t<figure className={ figureClass } style={ figureStyles }>\n\t\t\t\t<blockquote\n\t\t\t\t\tclassName={ blockquoteClasses }\n\t\t\t\t\tstyle={ blockquoteStyle }\n\t\t\t\t>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t\t) }\n\t\t\t\t</blockquote>\n\t\t\t</figure>\n\t\t);\n\t},\n\tmigrate( {\n\t\tvalue,\n\t\tclassName,\n\t\tmainColor,\n\t\tcustomMainColor,\n\t\tcustomTextColor,\n\t\t...attributes\n\t} ) {\n\t\tconst isSolidColorStyle = className?.includes( SOLID_COLOR_CLASS );\n\t\tlet style = {};\n\n\t\tif ( customMainColor ) {\n\t\t\tif ( ! isSolidColorStyle ) {\n\t\t\t\t// Block supports: Set style.border.color if a deprecated block has a default style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tborder: {\n\t\t\t\t\t\tcolor: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Block supports: Set style.color.background if a deprecated block has a solid style and a `customMainColor` attribute.\n\t\t\t\tstyle = {\n\t\t\t\t\tcolor: {\n\t\t\t\t\t\tbackground: customMainColor,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\t// Block supports: Set style.color.text if a deprecated block has a `customTextColor` attribute.\n\t\tif ( customTextColor && style ) {\n\t\t\tstyle.color = {\n\t\t\t\t...style.color,\n\t\t\t\ttext: customTextColor,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\tclassName,\n\t\t\tbackgroundColor: isSolidColorStyle ? mainColor : undefined,\n\t\t\tborderColor: isSolidColorStyle ? undefined : mainColor,\n\t\t\ttextAlign: isSolidColorStyle ? 'left' : undefined,\n\t\t\tstyle,\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { value, citation } = attributes;\n\t\treturn (\n\t\t\t<blockquote>\n\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n\tmigrate( { value, ...attributes } ) {\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\nconst v0 = {\n\tattributes: {\n\t\t...blockAttributes,\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'footer',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'none',\n\t\t},\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { value, citation, align } = attributes;\n\n\t\treturn (\n\t\t\t<blockquote className={ `align${ align }` }>\n\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"footer\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n\tmigrate( { value, ...attributes } ) {\n\t\treturn {\n\t\t\tvalue: multilineToInline( value ),\n\t\t\t...attributes,\n\t\t};\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v5, v4, v3, v2, v1, v0 ];\n", "export const SOLID_COLOR_CLASS = `is-style-solid-color`;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Figure } from './figure';\nimport { BlockQuote } from './blockquote';\n\nconst isWebPlatform = Platform.OS === 'web';\n\nfunction PullQuoteEdit( {\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { textAlign, citation, value } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst shouldShowCitation = ! RichText.isEmpty( citation ) || isSelected;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<Figure { ...blockProps }>\n\t\t\t\t<BlockQuote>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"value\"\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ ( nextValue ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tvalue: nextValue,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-label={ __( 'Pullquote text' ) }\n\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t// translators: placeholder text used for the quote\n\t\t\t\t\t\t\t__( 'Add quote' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t/>\n\t\t\t\t\t{ shouldShowCitation && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tidentifier=\"citation\"\n\t\t\t\t\t\t\ttagName={ isWebPlatform ? 'cite' : undefined }\n\t\t\t\t\t\t\tstyle={ { display: 'block' } }\n\t\t\t\t\t\t\tvalue={ citation }\n\t\t\t\t\t\t\taria-label={ __( 'Pullquote citation text' ) }\n\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t// translators: placeholder text used for the citation\n\t\t\t\t\t\t\t\t__( 'Add citation' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ ( nextCitation ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcitation: nextCitation,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"wp-block-pullquote__citation\"\n\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</BlockQuote>\n\t\t\t</Figure>\n\t\t</>\n\t);\n}\n\nexport default PullQuoteEdit;\n", "export const Figure = 'figure';\n", "export const BlockQuote = 'blockquote';\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/pullquote\",\n\t\"title\": \"Pullquote (deprecated)\",\n\t\"category\": \"text\",\n\t\"description\": \"This block is deprecated. Please use the Quote block instead.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"value\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"p\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"citation\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"cite\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"left\", \"right\", \"wide\", \"full\" ],\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"background\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"minHeight\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"minHeight\": false\n\t\t\t}\n\t\t},\n\t\t\"inserter\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalStyle\": {\n\t\t\t\"typography\": {\n\t\t\t\t\"fontSize\": \"1.5em\",\n\t\t\t\t\"lineHeight\": \"1.6\"\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-pullquote-editor\",\n\t\"style\": \"wp-block-pullquote\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { textAlign, citation, value } = attributes;\n\tconst shouldShowCitation = ! RichText.isEmpty( citation );\n\n\treturn (\n\t\t<figure\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\tclassName: clsx( {\n\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t} ),\n\t\t\t} ) }\n\t\t>\n\t\t\t<blockquote>\n\t\t\t\t<RichText.Content tagName=\"p\" value={ value } />\n\t\t\t\t{ shouldShowCitation && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( { value, citation } ) => {\n\t\t\t\tconst paragraphs = [];\n\t\t\t\tif ( value ) {\n\t\t\t\t\tparagraphs.push(\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif ( citation ) {\n\t\t\t\t\tparagraphs.push(\n\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif ( paragraphs.length === 0 ) {\n\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn paragraphs;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/heading' ],\n\t\t\ttransform: ( { value, citation } ) => {\n\t\t\t\t// If there is no pullquote content, use the citation as the\n\t\t\t\t// content of the resulting heading. A nonexistent citation\n\t\t\t\t// will result in an empty heading.\n\t\t\t\tif ( ! value ) {\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t\t\tcontent: value,\n\t\t\t\t} );\n\t\t\t\tif ( ! citation ) {\n\t\t\t\t\treturn headingBlock;\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\theadingBlock,\n\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t} ),\n\t\t\t\t];\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query\",\n\t\"title\": \"Query Loop\",\n\t\"category\": \"theme\",\n\t\"description\": \"An advanced block that allows displaying post types based on different query parameters and visual configurations.\",\n\t\"keywords\": [ \"posts\", \"list\", \"blog\", \"blogs\", \"custom post types\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"queryId\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"query\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"default\": {\n\t\t\t\t\"perPage\": null,\n\t\t\t\t\"pages\": 0,\n\t\t\t\t\"offset\": 0,\n\t\t\t\t\"postType\": \"post\",\n\t\t\t\t\"order\": \"desc\",\n\t\t\t\t\"orderBy\": \"date\",\n\t\t\t\t\"author\": \"\",\n\t\t\t\t\"search\": \"\",\n\t\t\t\t\"exclude\": [],\n\t\t\t\t\"sticky\": \"\",\n\t\t\t\t\"inherit\": true,\n\t\t\t\t\"taxQuery\": null,\n\t\t\t\t\"parents\": [],\n\t\t\t\t\"format\": []\n\t\t\t}\n\t\t},\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t},\n\t\t\"namespace\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"enhancedPagination\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"usesContext\": [ \"templateSlug\" ],\n\t\"providesContext\": {\n\t\t\"queryId\": \"queryId\",\n\t\t\"query\": \"query\",\n\t\t\"displayLayout\": \"displayLayout\",\n\t\t\"enhancedPagination\": \"enhancedPagination\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"layout\": true,\n\t\t\"interactivity\": true,\n\t\t\"contentRole\": true\n\t},\n\t\"editorStyle\": \"wp-block-query-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport QueryContent from './query-content';\nimport QueryPlaceholder from './query-placeholder';\nimport { PatternSelectionModal } from './pattern-selection';\n\nconst QueryEdit = ( props ) => {\n\tconst { clientId, attributes } = props;\n\tconst [ isPatternSelectionModalOpen, setIsPatternSelectionModalOpen ] =\n\t\tuseState( false );\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getBlocks( clientId ).length,\n\t\t[ clientId ]\n\t);\n\tconst Component = hasInnerBlocks ? QueryContent : QueryPlaceholder;\n\n\treturn (\n\t\t<>\n\t\t\t<Component\n\t\t\t\t{ ...props }\n\t\t\t\topenPatternSelectionModal={ () =>\n\t\t\t\t\tsetIsPatternSelectionModalOpen( true )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isPatternSelectionModalOpen && (\n\t\t\t\t<PatternSelectionModal\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetIsPatternSelectionModalOpen={\n\t\t\t\t\t\tsetIsPatternSelectionModalOpen\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default QueryEdit;\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect, useCallback } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport EnhancedPaginationControl from './inspector-controls/enhanced-pagination-control';\nimport { unlock } from '../../lock-unlock';\nimport QueryInspectorControls from './inspector-controls';\nimport EnhancedPaginationModal from './enhanced-pagination-modal';\nimport { getQueryContextFromTemplate } from '../utils';\nimport QueryToolbar from './query-toolbar';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n\tname,\n\tisSelected,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tenhancedPagination,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\n\tconst { templateSlug } = context;\n\tconst { isSingular } = getQueryContextFromTemplate( templateSlug );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst instanceId = useInstanceId( QueryContent );\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\tconst { postsPerPage } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { getEntityRecord, getEntityRecordEdits, canUser } =\n\t\t\tselect( coreStore );\n\t\tconst settingPerPage = canUser( 'read', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} )\n\t\t\t? +getEntityRecord( 'root', 'site' )?.posts_per_page\n\t\t\t: +getSettings().postsPerPage;\n\n\t\t// Gets changes made via the template area posts per page setting. These won't be saved\n\t\t// until the page is saved, but we should reflect this setting within the query loops\n\t\t// that inherit it.\n\t\tconst editedSettingPerPage = +getEntityRecordEdits( 'root', 'site' )\n\t\t\t?.posts_per_page;\n\n\t\treturn {\n\t\t\tpostsPerPage:\n\t\t\t\teditedSettingPerPage ||\n\t\t\t\tsettingPerPage ||\n\t\t\t\tDEFAULTS_POSTS_PER_PAGE,\n\t\t};\n\t}, [] );\n\t// There are some effects running where some initialization logic is\n\t// happening and setting some values to some attributes (ex. queryId).\n\t// These updates can cause an `undo trap` where undoing will result in\n\t// resetting again, so we need to mark these changes as not persistent\n\t// with `__unstableMarkNextChangeAsNotPersistent`.\n\n\t// Changes in query property (which is an object) need to be in the same callback,\n\t// because updates are batched after the render and changes in different query properties\n\t// would cause to override previous wanted changes.\n\tconst updateQuery = useCallback(\n\t\t( newQuery ) =>\n\t\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\t\tquery: { ...prevAttributes.query, ...newQuery },\n\t\t\t} ) ),\n\t\t[ setAttributes ]\n\t);\n\tuseEffect( () => {\n\t\tconst newQuery = {};\n\t\t// When we inherit from global query always need to set the `perPage`\n\t\t// based on the reading settings.\n\t\tif ( inherit && query.perPage !== postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t} else if ( ! query.perPage && postsPerPage ) {\n\t\t\tnewQuery.perPage = postsPerPage;\n\t\t}\n\n\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [\n\t\tquery.perPage,\n\t\tinherit,\n\t\tpostsPerPage,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tupdateQuery,\n\t] );\n\t// We need this for multi-query block pagination.\n\t// Query parameters for each block are scoped to their ID.\n\tuseEffect( () => {\n\t\tif ( ! Number.isFinite( queryId ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { queryId: instanceId } );\n\t\t}\n\t}, [\n\t\tqueryId,\n\t\tinstanceId,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetAttributes,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ isSelected && (\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\thasInnerBlocks\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<EnhancedPaginationModal\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<QueryInspectorControls\n\t\t\t\t\tname={ name }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisSingular={ isSingular }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HTMLElementControl\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t<EnhancedPaginationControl\n\t\t\t\t\tenhancedPagination={ enhancedPagination }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../../utils';\n\nexport default function EnhancedPaginationControl( {\n\tenhancedPagination,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst hasUnsupportedBlocks = useUnsupportedBlocks( clientId );\n\n\tlet help = __(\n\t\t'Reload the full page\u2014instead of just the posts list\u2014when visitors navigate between pages.'\n\t);\n\tif ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t'Enhancement disabled because there are non-compatible blocks inside the Query block.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleControl\n\t\t\t\tlabel={ __( 'Reload full page' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={ ! enhancedPagination }\n\t\t\t\tdisabled={ hasUnsupportedBlocks }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tenhancedPagination: ! value,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcloneBlock,\n\tgetBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n/** @typedef {import('@wordpress/components/build-types/query-controls/types').OrderByOption} OrderByOption */\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\n/**\n * The object used in Query block that contains info and helper mappings\n * from an array of IHasNameAndId objects.\n *\n * @typedef {Object} QueryEntitiesInfo\n * @property {IHasNameAndId[]} entities The array of entities.\n * @property {Object<string, IHasNameAndId>} mapById Object mapping with the id as key and the entity as value.\n * @property {Object<string, IHasNameAndId>} mapByName Object mapping with the name as key and the entity as value.\n * @property {string[]} names Array with the entities' names.\n */\n\n/**\n * Returns a helper object with mapping from Objects that implement\n * the `IHasNameAndId` interface. The returned object is used for\n * integration with `FormTokenField` component.\n *\n * @param {IHasNameAndId[]} entities The entities to extract of helper object.\n * @return {QueryEntitiesInfo} The object with the entities information.\n */\nexport const getEntitiesInfo = ( entities ) => {\n\tconst mapping = entities?.reduce(\n\t\t( accumulator, entity ) => {\n\t\t\tconst { mapById, mapByName, names } = accumulator;\n\t\t\tmapById[ entity.id ] = entity;\n\t\t\tmapByName[ entity.name ] = entity;\n\t\t\tnames.push( entity.name );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ mapById: {}, mapByName: {}, names: [] }\n\t);\n\treturn {\n\t\tentities,\n\t\t...mapping,\n\t};\n};\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as a string of properties, separated by dots,\n * for example: \"parent.child\".\n *\n * @param {Object} object Input object.\n * @param {string} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path ) => {\n\tconst normalizedPath = path.split( '.' );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of entities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * Returns a helper object that contains:\n * 1. An `options` object from the available post types, to be passed to a `SelectControl`.\n * 2. A helper map with available taxonomies per post type.\n * 3. A helper map with post format support per post type.\n *\n * @return {Object} The helper object related to post types.\n */\nexport const usePostTypes = () => {\n\tconst postTypes = useSelect( ( select ) => {\n\t\tconst { getPostTypes } = select( coreStore );\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\tconst filteredPostTypes = getPostTypes( { per_page: -1 } )?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t\treturn filteredPostTypes;\n\t}, [] );\n\tconst postTypesTaxonomiesMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn;\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] = type.taxonomies;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\tconst postTypesSelectOptions = useMemo(\n\t\t() =>\n\t\t\t( postTypes || [] ).map( ( { labels, slug } ) => ( {\n\t\t\t\tlabel: labels.singular_name,\n\t\t\t\tvalue: slug,\n\t\t\t} ) ),\n\t\t[ postTypes ]\n\t);\n\tconst postTypeFormatSupportMap = useMemo( () => {\n\t\tif ( ! postTypes?.length ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn postTypes.reduce( ( accumulator, type ) => {\n\t\t\taccumulator[ type.slug ] =\n\t\t\t\ttype.supports?.[ 'post-formats' ] || false;\n\t\t\treturn accumulator;\n\t\t}, {} );\n\t}, [ postTypes ] );\n\treturn {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t};\n};\n\n/**\n * Hook that returns the taxonomies associated with a specific post type.\n *\n * @param {string} postType The post type from which to retrieve the associated taxonomies.\n * @return {Object[]} An array of the associated taxonomies.\n */\nexport const useTaxonomies = ( postType ) => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getTaxonomies, getPostType } = select( coreStore );\n\t\t\t// Does the post type have taxonomies?\n\t\t\tif ( getPostType( postType )?.taxonomies?.length > 0 ) {\n\t\t\t\treturn getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn [];\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => !! visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\n/**\n * Hook that returns whether a specific post type is hierarchical.\n *\n * @param {string} postType The post type to check.\n * @return {boolean} Whether a specific post type is hierarchical.\n */\nexport function useIsPostTypeHierarchical( postType ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn type?.viewable && type?.hierarchical;\n\t\t},\n\t\t[ postType ]\n\t);\n}\n\n/**\n * List of avaiable options to order by.\n *\n * @param {string} postType The post type to check.\n * @return {OrderByOption[]} List of order options.\n */\nexport function useOrderByOptions( postType ) {\n\tconst supportsCustomOrder = useSelect(\n\t\t( select ) => {\n\t\t\tconst type = select( coreStore ).getPostType( postType );\n\t\t\treturn !! type?.supports?.[ 'page-attributes' ];\n\t\t},\n\t\t[ postType ]\n\t);\n\n\treturn useMemo( () => {\n\t\tconst orderByOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'Newest to oldest' ),\n\t\t\t\tvalue: 'date/desc',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Oldest to newest' ),\n\t\t\t\tvalue: 'date/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\t\t\tlabel: __( 'A \u2192 Z' ),\n\t\t\t\tvalue: 'title/asc',\n\t\t\t},\n\t\t\t{\n\t\t\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\t\t\tlabel: __( 'Z \u2192 A' ),\n\t\t\t\tvalue: 'title/desc',\n\t\t\t},\n\t\t];\n\n\t\tif ( supportsCustomOrder ) {\n\t\t\torderByOptions.push(\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by ascending menu order. */\n\t\t\t\t\tlabel: __( 'Ascending by order' ),\n\t\t\t\t\tvalue: 'menu_order/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t/* translators: Label for ordering posts by descending menu order. */\n\t\t\t\t\tlabel: __( 'Descending by order' ),\n\t\t\t\t\tvalue: 'menu_order/desc',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn orderByOptions;\n\t}, [ supportsCustomOrder ] );\n}\n\n/**\n * Hook that returns the query properties' names defined by the active\n * block variation, to determine which block's filters to show.\n *\n * @param {Object} attributes Block attributes.\n * @return {string[]} An array of the query attributes.\n */\nexport function useAllowedControls( attributes ) {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( blocksStore ).getActiveBlockVariation(\n\t\t\t\t'core/query',\n\t\t\t\tattributes\n\t\t\t)?.allowedControls,\n\n\t\t[ attributes ]\n\t);\n}\nexport function isControlAllowed( allowedControls, key ) {\n\t// Every controls is allowed if the list is not defined.\n\tif ( ! allowedControls ) {\n\t\treturn true;\n\t}\n\treturn allowedControls.includes( key );\n}\n\n/**\n * Clones a pattern's blocks and then recurses over that list of blocks,\n * transforming them to retain some `query` attribute properties.\n * For now we retain the `postType` and `inherit` properties as they are\n * fundamental for the expected functionality of the block and don't affect\n * its design and presentation.\n *\n * Returns the cloned/transformed blocks and array of existing Query Loop\n * client ids for further manipulation, in order to avoid multiple recursions.\n *\n * @param {WPBlock[]} blocks The list of blocks to look through and transform(mutate).\n * @param {Record<string,*>} queryBlockAttributes The existing Query Loop's attributes.\n * @return {{ newBlocks: WPBlock[], queryClientIds: string[] }} An object with the cloned/transformed blocks and all the Query Loop clients from these blocks.\n */\nexport const getTransformedBlocksFromPattern = (\n\tblocks,\n\tqueryBlockAttributes\n) => {\n\tconst {\n\t\tquery: { postType, inherit },\n\t\tnamespace,\n\t} = queryBlockAttributes;\n\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\tconst queryClientIds = [];\n\tconst blocksQueue = [ ...clonedBlocks ];\n\twhile ( blocksQueue.length > 0 ) {\n\t\tconst block = blocksQueue.shift();\n\t\tif ( block.name === 'core/query' ) {\n\t\t\tblock.attributes.query = {\n\t\t\t\t...block.attributes.query,\n\t\t\t\tpostType,\n\t\t\t\tinherit,\n\t\t\t};\n\t\t\tif ( namespace ) {\n\t\t\t\tblock.attributes.namespace = namespace;\n\t\t\t}\n\t\t\tqueryClientIds.push( block.clientId );\n\t\t}\n\t\tblock.innerBlocks?.forEach( ( innerBlock ) => {\n\t\t\tblocksQueue.push( innerBlock );\n\t\t} );\n\t}\n\treturn { newBlocks: clonedBlocks, queryClientIds };\n};\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific patterns for this variation.\n * If there are, these patterns are going to be the only ones suggested to\n * the user in setup and replace flow, without including the default ones\n * for Query Loop.\n *\n * If there are no such patterns, the default ones for Query Loop are going\n * to be suggested.\n *\n * @param {string} clientId The block's client ID.\n * @param {Object} attributes The block's attributes.\n * @return {string} The block name to be used in the patterns suggestions.\n */\nexport function useBlockNameForPatterns( clientId, attributes ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst activeVariationName = select(\n\t\t\t\tblocksStore\n\t\t\t).getActiveBlockVariation( 'core/query', attributes )?.name;\n\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn 'core/query';\n\t\t\t}\n\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\t`core/query/${ activeVariationName }`,\n\t\t\t\trootClientId\n\t\t\t);\n\n\t\t\treturn activePatterns.length > 0\n\t\t\t\t? `core/query/${ activeVariationName }`\n\t\t\t\t: 'core/query';\n\t\t},\n\t\t[ clientId, attributes ]\n\t);\n}\n\n/**\n * Helper hook that determines if there is an active variation of the block\n * and if there are available specific scoped `block` variations connected with\n * this variation.\n *\n * If there are, these variations are going to be the only ones suggested\n * to the user in setup flow when clicking to `start blank`, without including\n * the default ones for Query Loop.\n *\n * If there are no such scoped `block` variations, the default ones for Query\n * Loop are going to be suggested.\n *\n * The way we determine such variations is with the convention that they have the `namespace`\n * attribute defined as an array. This array should contain the names(`name` property) of any\n * variations they want to be connected to.\n * For example, if we have a `Query Loop` scoped `inserter` variation with the name `products`,\n * we can connect a scoped `block` variation by setting its `namespace` attribute to `['products']`.\n * If the user selects this variation, the `namespace` attribute will be overridden by the\n * main `inserter` variation.\n *\n * @param {Object} attributes The block's attributes.\n * @return {WPBlockVariation[]} The block variations to be suggested in setup flow, when clicking to `start blank`.\n */\nexport function useScopedBlockVariations( attributes ) {\n\tconst { activeVariationName, blockVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockVariations } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariationName: getActiveBlockVariation(\n\t\t\t\t\t'core/query',\n\t\t\t\t\tattributes\n\t\t\t\t)?.name,\n\t\t\t\tblockVariations: getBlockVariations( 'core/query', 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ attributes ]\n\t);\n\tconst variations = useMemo( () => {\n\t\t// Filter out the variations that have defined a `namespace` attribute,\n\t\t// which means they are 'connected' to specific variations of the block.\n\t\tconst isNotConnected = ( variation ) =>\n\t\t\t! variation.attributes?.namespace;\n\t\tif ( ! activeVariationName ) {\n\t\t\treturn blockVariations.filter( isNotConnected );\n\t\t}\n\t\tconst connectedVariations = blockVariations.filter( ( variation ) =>\n\t\t\tvariation.attributes?.namespace?.includes( activeVariationName )\n\t\t);\n\t\tif ( !! connectedVariations.length ) {\n\t\t\treturn connectedVariations;\n\t\t}\n\t\treturn blockVariations.filter( isNotConnected );\n\t}, [ activeVariationName, blockVariations ] );\n\treturn variations;\n}\n\n/**\n * Hook that returns the block patterns for a specific block type.\n *\n * @param {string} clientId The block's client ID.\n * @param {string} name The block type name.\n * @return {Object[]} An array of valid block patterns.\n */\nexport const usePatterns = ( clientId, name ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( name, rootClientId );\n\t\t},\n\t\t[ name, clientId ]\n\t);\n};\n\n/**\n * Hook that, given a block clientId, determines if it has unsupported blocks or not.\n *\n * @param {string} clientId The block's client ID.\n * @return {boolean} True if there are any unsupported blocks.\n */\nexport const useUnsupportedBlocks = ( clientId ) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getClientIdsOfDescendants, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( clientId ).some(\n\t\t\t\t( descendantClientId ) => {\n\t\t\t\t\tconst blockName = getBlockName( descendantClientId );\n\t\t\t\t\t/*\n\t\t\t\t\t * Client side navigation can be true in two states:\n\t\t\t\t\t * - supports.interactivity = true;\n\t\t\t\t\t * - supports.interactivity.clientNavigation = true;\n\t\t\t\t\t */\n\t\t\t\t\tconst blockSupportsInteractivity = Object.is(\n\t\t\t\t\t\tgetBlockSupport( blockName, 'interactivity' ),\n\t\t\t\t\t\ttrue\n\t\t\t\t\t);\n\t\t\t\t\tconst blockSupportsInteractivityClientNavigation =\n\t\t\t\t\t\tgetBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'interactivity.clientNavigation'\n\t\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! blockSupportsInteractivity &&\n\t\t\t\t\t\t! blockSupportsInteractivityClientNavigation\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n\n/**\n * Helper function that returns the query context from the editor based on the\n * available template slug.\n *\n * @param {string} templateSlug Current template slug based on context.\n * @return {Object} An object with isSingular and templateType properties.\n */\nexport function getQueryContextFromTemplate( templateSlug ) {\n\t// In the Post Editor, the template slug is not available.\n\tif ( ! templateSlug ) {\n\t\treturn { isSingular: true };\n\t}\n\tlet isSingular = false;\n\tlet templateType = templateSlug === 'wp' ? 'custom' : templateSlug;\n\tconst singularTemplates = [ '404', 'blank', 'single', 'page', 'custom' ];\n\tconst templateTypeFromSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-', 1 )[ 0 ]\n\t\t: templateSlug;\n\tconst queryFromTemplateSlug = templateSlug.includes( '-' )\n\t\t? templateSlug.split( '-' ).slice( 1 ).join( '-' )\n\t\t: '';\n\tif ( queryFromTemplateSlug ) {\n\t\ttemplateType = templateTypeFromSlug;\n\t}\n\tisSingular = singularTemplates.includes( templateType );\n\n\treturn { isSingular, templateType };\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tTextControl,\n\tSelectControl,\n\tNotice,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport OrderControl from './order-control';\nimport AuthorControl from './author-control';\nimport ParentControl from './parent-control';\nimport { TaxonomyControls } from './taxonomy-controls';\nimport FormatControls from './format-controls';\nimport StickyControl from './sticky-control';\nimport PerPageControl from './per-page-control';\nimport OffsetControl from './offset-controls';\nimport PagesControl from './pages-control';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n\tuseOrderByOptions,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, isSingular } = props;\n\tconst { query } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpages,\n\t\tpostType,\n\t\tperPage,\n\t\toffset,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t\tformat,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst showSticky = postType === 'post';\n\tconst {\n\t\tpostTypesTaxonomiesMap,\n\t\tpostTypesSelectOptions,\n\t\tpostTypeFormatSupportMap,\n\t} = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tconst onPostTypeChange = ( newValue ) => {\n\t\tconst updateQuery = { postType: newValue };\n\t\t// We need to dynamically update the `taxQuery` property,\n\t\t// by removing any not supported taxonomy from the query.\n\t\tconst supportedTaxonomies = postTypesTaxonomiesMap[ newValue ];\n\t\tif ( !! supportedTaxonomies?.length && !! taxQuery ) {\n\t\t\t// Shared utility to build taxQuery based on supported taxonomies.\n\t\t\tconst buildTaxQuery = ( _taxQuery ) => {\n\t\t\t\treturn Object.entries( _taxQuery || {} ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomy, terms ] ) => {\n\t\t\t\t\t\tif ( supportedTaxonomies.includes( taxonomy ) ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy ] = terms;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\t\t\t};\n\t\t\tconst updatedTaxQuery = {};\n\t\t\tconst builtIncludeTaxQuery = buildTaxQuery( taxQuery.include );\n\t\t\tif ( !! Object.keys( builtIncludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.include = builtIncludeTaxQuery;\n\t\t\t}\n\t\t\tconst builtExcludeTaxQuery = buildTaxQuery( taxQuery.exclude );\n\t\t\tif ( !! Object.keys( builtExcludeTaxQuery ).length ) {\n\t\t\t\tupdatedTaxQuery.exclude = builtExcludeTaxQuery;\n\t\t\t}\n\t\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t\t? updatedTaxQuery\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tif ( newValue !== 'post' ) {\n\t\t\tupdateQuery.sticky = '';\n\t\t}\n\t\t// We need to reset `parents` because they are tied to each post type.\n\t\tupdateQuery.parents = [];\n\t\t// Post types can register post format support with `add_post_type_support`.\n\t\t// But we need to reset the `format` property when switching to post types\n\t\t// that do not support post formats.\n\t\tconst hasFormatSupport = postTypeFormatSupportMap[ newValue ];\n\t\tif ( ! hasFormatSupport ) {\n\t\t\tupdateQuery.format = [];\n\t\t}\n\n\t\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst debouncedQuerySearch = useMemo( () => {\n\t\treturn debounce( ( newQuerySearch ) => {\n\t\t\tsetQuery( { search: newQuerySearch } );\n\t\t}, 250 );\n\t}, [ setQuery ] );\n\n\tconst orderByOptions = useOrderByOptions( postType );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Post type' );\n\tconst postTypeControlHelp = __(\n\t\t'Select the type of content to display: posts, pages, or custom post types.'\n\t);\n\tconst showOrderControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'order' );\n\tconst showStickyControl =\n\t\t! inherit &&\n\t\tshowSticky &&\n\t\tisControlAllowed( allowedControls, 'sticky' );\n\tconst showSettingsPanel =\n\t\tshowInheritControl ||\n\t\tshowPostTypeControl ||\n\t\tshowOrderControl ||\n\t\tshowStickyControl;\n\tconst showTaxControl =\n\t\t!! taxonomies?.length &&\n\t\tisControlAllowed( allowedControls, 'taxQuery' );\n\tconst showAuthorControl = isControlAllowed( allowedControls, 'author' );\n\tconst showSearchControl = isControlAllowed( allowedControls, 'search' );\n\tconst showParentControl =\n\t\tisControlAllowed( allowedControls, 'parents' ) &&\n\t\tisPostTypeHierarchical;\n\n\tconst postTypeHasFormatSupport = postTypeFormatSupportMap[ postType ];\n\tconst showFormatControl = useSelect(\n\t\t( select ) => {\n\t\t\t// Check if the post type supports post formats and if the control is allowed.\n\t\t\tif (\n\t\t\t\t! postTypeHasFormatSupport ||\n\t\t\t\t! isControlAllowed( allowedControls, 'format' )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\n\t\t\t// If there are no supported formats, getThemeSupports still includes the default 'standard' format,\n\t\t\t// and in this case the control should not be shown since the user has no other formats to choose from.\n\t\t\treturn (\n\t\t\t\tthemeSupports.formats &&\n\t\t\t\tthemeSupports.formats.length > 0 &&\n\t\t\t\tthemeSupports.formats.some( ( type ) => type !== 'standard' )\n\t\t\t);\n\t\t},\n\t\t[ allowedControls, postTypeHasFormatSupport ]\n\t);\n\n\tconst showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl ||\n\t\tshowFormatControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst showPostCountControl = isControlAllowed(\n\t\tallowedControls,\n\t\t'postCount'\n\t);\n\tconst showOffSetControl = isControlAllowed( allowedControls, 'offset' );\n\tconst showPagesControl = isControlAllowed( allowedControls, 'pages' );\n\n\tconst showDisplayPanel =\n\t\tshowPostCountControl || showOffSetControl || showPagesControl;\n\n\t// The block cannot inherit a default WordPress query in singular content (e.g., post, page, 404, blank).\n\t// Warn users but still permit this type of query for exceptional cases in Classic and Hybrid themes.\n\tconst hasInheritanceWarning = isSingular && inherit;\n\n\treturn (\n\t\t<>\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tpostType: 'post',\n\t\t\t\t\t\t\torder: 'desc',\n\t\t\t\t\t\t\torderBy: 'date',\n\t\t\t\t\t\t\tsticky: '',\n\t\t\t\t\t\t\tinherit: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! inherit }\n\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: true } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Query type' ) }\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\tinherit: value === 'default',\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\t\tinherit\n\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on the current template.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Display a list of posts or custom post types based on specific criteria.'\n\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvalue={ !! inherit ? 'default' : 'custom' }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"default\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tvalue=\"custom\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t\t{ hasInheritanceWarning && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Cannot inherit the current template query when placed inside the singular content (e.g., post, page, 404, blank).'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showPostTypeControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => postType !== 'post' }\n\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => onPostTypeChange( 'post' ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map(\n\t\t\t\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showOrderControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\torder !== 'desc' || orderBy !== 'date'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { order: 'desc', orderBy: 'date' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t\t{ ...{ order, orderBy, orderByOptions } }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! sticky }\n\t\t\t\t\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { sticky: '' } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { sticky: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showDisplayPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__display\"\n\t\t\t\t\tlabel={ __( 'Display' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t\t\tpages: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\t\t\t\thasValue={ () => perPage > 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PerPageControl\n\t\t\t\t\t\t\tperPage={ perPage }\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Offset' ) }\n\t\t\t\t\t\thasValue={ () => offset > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { offset: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<OffsetControl\n\t\t\t\t\t\t\toffset={ offset }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\thasValue={ () => pages > 0 }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { pages: 0 } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PagesControl pages={ pages } onChange={ setQuery } />\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t\t{ ! inherit && showFiltersPanel && (\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tclassName=\"block-library-query-toolspanel__filters\" // unused but kept for backward compatibility\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\tauthor: '',\n\t\t\t\t\t\t\tparents: [],\n\t\t\t\t\t\t\tsearch: '',\n\t\t\t\t\t\t\ttaxQuery: null,\n\t\t\t\t\t\t\tformat: [],\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ showTaxControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Taxonomies' ) }\n\t\t\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\t\t\tObject.values( taxQuery || {} ).some(\n\t\t\t\t\t\t\t\t\t( value ) =>\n\t\t\t\t\t\t\t\t\t\tObject.values( value || {} ).some(\n\t\t\t\t\t\t\t\t\t\t\t( termIds ) => !! termIds?.length\n\t\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\tonDeselect={ () => setQuery( { taxQuery: null } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showAuthorControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! authorIds }\n\t\t\t\t\t\t\tlabel={ __( 'Authors' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { author: '' } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<AuthorControl\n\t\t\t\t\t\t\t\tvalue={ authorIds }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showSearchControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! querySearch }\n\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { search: '' } );\n\t\t\t\t\t\t\t\tsetQuerySearch( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Keyword' ) }\n\t\t\t\t\t\t\t\tvalue={ querySearch }\n\t\t\t\t\t\t\t\tonChange={ ( newQuerySearch ) => {\n\t\t\t\t\t\t\t\t\tdebouncedQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t\tsetQuerySearch( newQuerySearch );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showParentControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! parents?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Parents' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { parents: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ParentControl\n\t\t\t\t\t\t\t\tparents={ parents }\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showFormatControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! format?.length }\n\t\t\t\t\t\t\tlabel={ __( 'Formats' ) }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { format: [] } ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FormatControls\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t\tquery={ query }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst defaultOrderByOptions = [\n\t{\n\t\tlabel: __( 'Newest to oldest' ),\n\t\tvalue: 'date/desc',\n\t},\n\t{\n\t\tlabel: __( 'Oldest to newest' ),\n\t\tvalue: 'date/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in ascending order. */\n\t\tlabel: __( 'A \u2192 Z' ),\n\t\tvalue: 'title/asc',\n\t},\n\t{\n\t\t/* translators: Label for ordering posts by title in descending order. */\n\t\tlabel: __( 'Z \u2192 A' ),\n\t\tvalue: 'title/desc',\n\t},\n];\n\nfunction OrderControl( {\n\torder,\n\torderBy,\n\torderByOptions = defaultOrderByOptions,\n\tonChange,\n} ) {\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Order by' ) }\n\t\t\tvalue={ `${ orderBy }/${ order }` }\n\t\t\toptions={ orderByOptions }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tonChange( { order: newOrder, orderBy: newOrderBy } );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default OrderControl;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo } from '../../utils';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction AuthorControl( { value, onChange } ) {\n\tconst authorsList = useSelect( ( select ) => {\n\t\tconst { getUsers } = select( coreStore );\n\t\treturn getUsers( AUTHORS_QUERY );\n\t}, [] );\n\n\tif ( ! authorsList ) {\n\t\treturn null;\n\t}\n\tconst authorsInfo = getEntitiesInfo( authorsList );\n\t/**\n\t * We need to normalize the value because the block operates on a\n\t * comma(`,`) separated string value and `FormTokenField` needs an\n\t * array.\n\t */\n\tconst normalizedValue = ! value ? [] : value.toString().split( ',' );\n\t// Returns only the existing authors ids. This prevents the component\n\t// from crashing in the editor, when non existing ids are provided.\n\tconst sanitizedValue = normalizedValue.reduce(\n\t\t( accumulator, authorId ) => {\n\t\t\tconst author = authorsInfo.mapById[ authorId ];\n\t\t\tif ( author ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid: authorId,\n\t\t\t\t\tvalue: author.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\n\tconst getIdByValue = ( entitiesMappedByName, authorValue ) => {\n\t\tconst id = authorValue?.id || entitiesMappedByName[ authorValue ]?.id;\n\t\tif ( id ) {\n\t\t\treturn id;\n\t\t}\n\t};\n\tconst onAuthorChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, author ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( authorsInfo.mapByName, author );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tonChange( { author: ids.join( ',' ) } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\tlabel={ __( 'Authors' ) }\n\t\t\tvalue={ sanitizedValue }\n\t\t\tsuggestions={ authorsInfo.names }\n\t\t\tonChange={ onAuthorChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n}\n\nexport default AuthorControl;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { getEntitiesInfo, mapToIHasNameAndId } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,title',\n\tcontext: 'view',\n};\n\nfunction ParentControl( { parents, postType, onChange } ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'relevance',\n\t\t\t\t\texclude: parents,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, postType, parents ]\n\t);\n\tconst currentParents = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parents?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'postType', postType, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: parents,\n\t\t\t\tper_page: parents.length,\n\t\t\t} );\n\t\t},\n\t\t[ parents, postType ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing parents.\n\tuseEffect( () => {\n\t\tif ( ! parents?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentParents?.length ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentParentsInfo = getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( currentParents, 'title.rendered' )\n\t\t);\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = parents.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentParentsInfo.mapById[ id ];\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ parents, currentParents ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn getEntitiesInfo(\n\t\t\tmapToIHasNameAndId( searchResults, 'title.rendered' )\n\t\t);\n\t}, [ searchResults ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) => {\n\t\tconst id = entity?.id || entitiesMappedByName?.[ entity ]?.id;\n\t\tif ( id ) {\n\t\t\treturn id;\n\t\t}\n\t};\n\tconst onParentChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( { parents: ids } );\n\t};\n\treturn (\n\t\t<FormTokenField\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parents' ) }\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onParentChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t/>\n\t);\n}\n\nexport default ParentControl;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tFormTokenField,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, Fragment } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useTaxonomies } from '../../utils';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\n// Helper function to get the term id based on user input in terms `FormTokenField`.\nconst getTermIdByTermValue = ( terms, termValue ) => {\n\t// First we check for exact match by `term.id` or case sensitive `term.name` match.\n\tconst termId =\n\t\ttermValue?.id || terms?.find( ( term ) => term.name === termValue )?.id;\n\tif ( termId ) {\n\t\treturn termId;\n\t}\n\n\t/**\n\t * Here we make an extra check for entered terms in a non case sensitive way,\n\t * to match user expectations, due to `FormTokenField` behaviour that shows\n\t * suggestions which are case insensitive.\n\t *\n\t * Although WP tries to discourage users to add terms with the same name (case insensitive),\n\t * it's still possible if you manually change the name, as long as the terms have different slugs.\n\t * In this edge case we always apply the first match from the terms list.\n\t */\n\tconst termValueLower = termValue.toLocaleLowerCase();\n\treturn terms?.find(\n\t\t( term ) => term.name.toLocaleLowerCase() === termValueLower\n\t)?.id;\n};\n\nexport function TaxonomyControls( { onChange, query } ) {\n\tconst { postType, taxQuery } = query;\n\n\tconst taxonomies = useTaxonomies( postType );\n\tif ( ! taxonomies?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ taxonomies.map( ( taxonomy ) => {\n\t\t\t\tconst includeTermIds =\n\t\t\t\t\ttaxQuery?.include?.[ taxonomy.slug ] || [];\n\t\t\t\tconst excludeTermIds =\n\t\t\t\t\ttaxQuery?.exclude?.[ taxonomy.slug ] || [];\n\t\t\t\tconst onChangeTaxQuery = (\n\t\t\t\t\tnewTermIds,\n\t\t\t\t\t/** @type {'include'|'exclude'} */ key\n\t\t\t\t) => {\n\t\t\t\t\tconst newPartialTaxQuery = {\n\t\t\t\t\t\t...taxQuery?.[ key ],\n\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t};\n\t\t\t\t\t// Remove empty arrays from the partial `taxQuery` (include|exclude).\n\t\t\t\t\tif ( ! newTermIds.length ) {\n\t\t\t\t\t\tdelete newPartialTaxQuery[ taxonomy.slug ];\n\t\t\t\t\t}\n\t\t\t\t\tconst newTaxQuery = {\n\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t[ key ]: !! Object.keys( newPartialTaxQuery ).length\n\t\t\t\t\t\t\t? newPartialTaxQuery\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t};\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t// Clean up `taxQuery` if all filters are removed.\n\t\t\t\t\t\ttaxQuery: Object.values( newTaxQuery ).every(\n\t\t\t\t\t\t\t( value ) => ! value\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: newTaxQuery,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment key={ taxonomy.slug }>\n\t\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\ttermIds={ includeTermIds }\n\t\t\t\t\t\t\toppositeTermIds={ excludeTermIds }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tonChangeTaxQuery( value, 'include' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={ taxonomy.name }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\ttermIds={ excludeTermIds }\n\t\t\t\t\t\t\toppositeTermIds={ includeTermIds }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tonChangeTaxQuery( value, 'exclude' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t/* translators: %s: taxonomy name */\n\t\t\t\t\t\t\t\tsprintf( __( 'Exclude: %s' ), taxonomy.name )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n\n/**\n * Renders a `FormTokenField` for a given taxonomy.\n *\n * @param {Object} props The props for the component.\n * @param {Object} props.taxonomy The taxonomy object.\n * @param {number[]} props.termIds An array with the block's term ids for the given taxonomy.\n * @param {number[]} props.oppositeTermIds An array with the opposite control's term ids (to exclude from suggestions).\n * @param {Function} props.onChange Callback `onChange` function.\n * @param {string} props.label Label of the control.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( {\n\ttaxonomy,\n\ttermIds,\n\toppositeTermIds,\n\tonChange,\n\tlabel,\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\n\t\t\t// Combine current terms and opposite terms for exclusion, to prevent\n\t\t\t// users from selecting the same term in both include and exclude controls.\n\t\t\tconst combinedExclude = [ ...termIds, ...oppositeTermIds ];\n\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: combinedExclude,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, taxonomy.slug, termIds, oppositeTermIds ]\n\t);\n\t// `existingTerms` are the ones fetched from the API and their type is `{ id: number; name: string }`.\n\t// They are used to extract the terms' names to populate the `FormTokenField` properly\n\t// and to sanitize the provided `termIds`, by setting only the ones that exist.\n\tconst existingTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termIds?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy.slug, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude: termIds,\n\t\t\t\tper_page: termIds.length,\n\t\t\t} );\n\t\t},\n\t\t[ taxonomy.slug, termIds ]\n\t);\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! termIds?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! existingTerms?.length ) {\n\t\t\treturn;\n\t\t}\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = termIds.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = existingTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: entity.name,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ termIds, existingTerms ] );\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( searchResults.map( ( result ) => result.name ) );\n\t}, [ searchResults, searchHasResolved ] );\n\tconst onTermsChange = ( newTermValues ) => {\n\t\tconst newTermIds = new Set();\n\t\tfor ( const termValue of newTermValues ) {\n\t\t\tconst termId = getTermIdByTermValue( searchResults, termValue );\n\t\t\tif ( termId ) {\n\t\t\t\tnewTermIds.add( termId );\n\t\t\t}\n\t\t}\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( Array.from( newTermIds ) );\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-inspector__taxonomy-control\">\n\t\t\t<FormTokenField\n\t\t\t\tlabel={ label }\n\t\t\t\tvalue={ value }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tdisplayTransform={ decodeEntities }\n\t\t\t\tonChange={ onTermsChange }\n\t\t\t\t__experimentalShowHowTo={ false }\n\t\t\t\t__next40pxDefaultSize\n\t\t\t/>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n// All WP post formats, sorted alphabetically by translated name.\n// Value is the post format slug. Label is the name.\nconst POST_FORMATS = [\n\t{ value: 'aside', label: __( 'Aside' ) },\n\t{ value: 'audio', label: __( 'Audio' ) },\n\t{ value: 'chat', label: __( 'Chat' ) },\n\t{ value: 'gallery', label: __( 'Gallery' ) },\n\t{ value: 'image', label: __( 'Image' ) },\n\t{ value: 'link', label: __( 'Link' ) },\n\t{ value: 'quote', label: __( 'Quote' ) },\n\t{ value: 'standard', label: __( 'Standard' ) },\n\t{ value: 'status', label: __( 'Status' ) },\n\t{ value: 'video', label: __( 'Video' ) },\n].sort( ( a, b ) => {\n\tconst normalizedA = a.label.toUpperCase();\n\tconst normalizedB = b.label.toUpperCase();\n\n\tif ( normalizedA < normalizedB ) {\n\t\treturn -1;\n\t}\n\tif ( normalizedA > normalizedB ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n} );\n\n// A helper function to convert translatable post format names into their static values.\nfunction formatNamesToValues( names, formats ) {\n\treturn names\n\t\t.map( ( name ) => {\n\t\t\treturn formats.find(\n\t\t\t\t( item ) =>\n\t\t\t\t\titem.label.toLocaleLowerCase() === name.toLocaleLowerCase()\n\t\t\t)?.value;\n\t\t} )\n\t\t.filter( Boolean );\n}\n\nexport default function FormatControls( { onChange, query: { format } } ) {\n\t// 'format' is expected to be an array. If it is not an array, for example\n\t// if a user has manually entered an invalid value in the block markup,\n\t// convert it to an array to prevent JavaScript errors.\n\tconst normalizedFormats = Array.isArray( format ) ? format : [ format ];\n\n\tconst { supportedFormats } = useSelect( ( select ) => {\n\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\t\treturn {\n\t\t\tsupportedFormats: themeSupports.formats,\n\t\t};\n\t}, [] );\n\n\tconst formats = POST_FORMATS.filter( ( item ) =>\n\t\tsupportedFormats.includes( item.value )\n\t);\n\n\tconst values = normalizedFormats\n\t\t.map(\n\t\t\t( name ) => formats.find( ( item ) => item.value === name )?.label\n\t\t)\n\t\t.filter( Boolean );\n\n\tconst suggestions = formats\n\t\t.filter( ( item ) => ! normalizedFormats.includes( item.value ) )\n\t\t.map( ( item ) => item.label );\n\n\treturn (\n\t\t<FormTokenField\n\t\t\tlabel={ __( 'Formats' ) }\n\t\t\tvalue={ values }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ ( newValues ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\tformat: formatNamesToValues( newValues, formats ),\n\t\t\t\t} );\n\t\t\t} }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t\t__experimentalExpandOnFocus\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst stickyOptions = [\n\t{ label: __( 'Include' ), value: '' },\n\t{ label: __( 'Ignore' ), value: 'ignore' },\n\t{ label: __( 'Exclude' ), value: 'exclude' },\n\t{ label: __( 'Only' ), value: 'only' },\n];\n\nexport default function StickyControl( { value, onChange } ) {\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sticky posts' ) }\n\t\t\toptions={ stickyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\thelp={ __(\n\t\t\t\t'Sticky posts always appear first, regardless of their publish date.'\n\t\t\t) }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst MIN_POSTS_PER_PAGE = 1;\nconst MAX_POSTS_PER_PAGE = 100;\n\nconst PerPageControl = ( { perPage, offset = 0, onChange } ) => {\n\treturn (\n\t\t<RangeControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tmin={ MIN_POSTS_PER_PAGE }\n\t\t\tmax={ MAX_POSTS_PER_PAGE }\n\t\t\tonChange={ ( newPerPage ) => {\n\t\t\t\tif (\n\t\t\t\t\tisNaN( newPerPage ) ||\n\t\t\t\t\tnewPerPage < MIN_POSTS_PER_PAGE ||\n\t\t\t\t\tnewPerPage > MAX_POSTS_PER_PAGE\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange( { perPage: newPerPage, offset } );\n\t\t\t} }\n\t\t\tvalue={ parseInt( perPage, 10 ) }\n\t\t/>\n\t);\n};\n\nexport default PerPageControl;\n", "/**\n * WordPress dependencies\n */\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst MIN_OFFSET = 0;\nconst MAX_OFFSET = 100;\n\nexport const OffsetControl = ( { offset = 0, onChange } ) => {\n\treturn (\n\t\t<NumberControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Offset' ) }\n\t\t\tvalue={ offset }\n\t\t\tmin={ MIN_OFFSET }\n\t\t\tonChange={ ( newOffset ) => {\n\t\t\t\tif (\n\t\t\t\t\tisNaN( newOffset ) ||\n\t\t\t\t\tnewOffset < MIN_OFFSET ||\n\t\t\t\t\tnewOffset > MAX_OFFSET\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange( { offset: newOffset } );\n\t\t\t} }\n\t\t/>\n\t);\n};\n\nexport default OffsetControl;\n", "/**\n * WordPress dependencies\n */\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport const PagesControl = ( { pages, onChange } ) => {\n\treturn (\n\t\t<NumberControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\tvalue={ pages }\n\t\t\tmin={ 0 }\n\t\t\tonChange={ ( newPages ) => {\n\t\t\t\tif ( isNaN( newPages ) || newPages < 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonChange( { pages: newPages } );\n\t\t\t} }\n\t\t\thelp={ __(\n\t\t\t\t'Limit the pages you want to show, even if the query has more results. To show all pages use 0 (zero).'\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nexport default PagesControl;\n", "/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useUnsupportedBlocks } from '../utils';\n\nconst modalDescriptionId =\n\t'wp-block-query-enhanced-pagination-modal__description';\n\nexport default function EnhancedPaginationModal( {\n\tclientId,\n\tattributes: { enhancedPagination },\n\tsetAttributes,\n} ) {\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst hasUnsupportedBlocks = useUnsupportedBlocks( clientId );\n\n\tuseEffect( () => {\n\t\tif ( enhancedPagination && hasUnsupportedBlocks ) {\n\t\t\tsetAttributes( { enhancedPagination: false } );\n\t\t\tsetOpen( true );\n\t\t}\n\t}, [ enhancedPagination, hasUnsupportedBlocks, setAttributes ] );\n\n\tconst closeModal = () => {\n\t\tsetOpen( false );\n\t};\n\n\tconst notice =\n\t\t__(\n\t\t\t'Currently, avoiding full page reloads is not possible when non-interactive or non-client Navigation compatible blocks from plugins are present inside the Query block.'\n\t\t) +\n\t\t' ' +\n\t\t__(\n\t\t\t'If you still want to prevent full page reloads, remove that block, then disable \"Reload full page\" again in the Query Block settings.'\n\t\t);\n\n\treturn (\n\t\tisOpen && (\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Query block: Reload full page enabled' ) }\n\t\t\t\tclassName=\"wp-block-query__enhanced-pagination-modal\"\n\t\t\t\taria={ {\n\t\t\t\t\tdescribedby: modalDescriptionId,\n\t\t\t\t} }\n\t\t\t\trole=\"alertdialog\"\n\t\t\t\tfocusOnMount=\"firstElement\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tonRequestClose={ closeModal }\n\t\t\t>\n\t\t\t\t<VStack alignment=\"right\" spacing={ 5 }>\n\t\t\t\t\t<span id={ modalDescriptionId }>{ notice }</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ closeModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'OK' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</VStack>\n\t\t\t</Modal>\n\t\t)\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport PatternSelection, { useBlockPatterns } from './pattern-selection';\nimport { unlock } from '../../lock-unlock';\n\nfunction PatternPicker( { clientId, attributes, hasInnerBlocks } ) {\n\tconst hasPatterns = useBlockPatterns( clientId, attributes ).length;\n\tif ( ! hasPatterns ) {\n\t\treturn null;\n\t}\n\tconst buttonLabel = hasInnerBlocks\n\t\t? __( 'Change design' )\n\t\t: __( 'Choose pattern' );\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<DropdownContentWrapper>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"block-editor-block-settings-menu__popover\"\n\t\t\t\t\tfocusOnMount=\"firstElement\"\n\t\t\t\t\texpandOnMobile\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ buttonLabel }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t<PatternSelection\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tshowSearch={ false }\n\t\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</DropdownContentWrapper>\n\t\t</BlockControls>\n\t);\n}\n\nexport default function QueryToolbar( props ) {\n\tconst isLocked = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isLockedBlock } = unlock( select( blockEditorStore ) );\n\t\t\treturn isLockedBlock( props.clientId );\n\t\t},\n\t\t[ props.clientId ]\n\t);\n\tif ( isLocked ) {\n\t\treturn null;\n\t}\n\treturn <PatternPicker { ...props } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { Modal, SearchControl } from '@wordpress/components';\nimport {\n\tBlockContextProvider,\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseBlockNameForPatterns,\n\tgetTransformedBlocksFromPattern,\n\tusePatterns,\n} from '../utils';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport function PatternSelectionModal( {\n\tclientId,\n\tattributes,\n\tsetIsPatternSelectionModalOpen,\n} ) {\n\treturn (\n\t\t<Modal\n\t\t\toverlayClassName=\"block-library-query-pattern__selection-modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tonRequestClose={ () => setIsPatternSelectionModalOpen( false ) }\n\t\t\tisFullScreen\n\t\t>\n\t\t\t<PatternSelection clientId={ clientId } attributes={ attributes } />\n\t\t</Modal>\n\t);\n}\n\nexport function useBlockPatterns( clientId, attributes ) {\n\tconst blockNameForPatterns = useBlockNameForPatterns(\n\t\tclientId,\n\t\tattributes\n\t);\n\tconst allPatterns = usePatterns( clientId, blockNameForPatterns );\n\t// Filter out any patterns that don't have Query as their root block\n\t// so that a Query block is always replaced by another Query block.\n\tconst rootBlockPatterns = useMemo( () => {\n\t\treturn allPatterns.filter( ( pattern ) => {\n\t\t\treturn pattern.blocks?.[ 0 ]?.name === 'core/query';\n\t\t} );\n\t}, [ allPatterns ] );\n\n\treturn rootBlockPatterns;\n}\n\nexport default function PatternSelection( {\n\tclientId,\n\tattributes,\n\tshowTitlesAsTooltip = false,\n\tshowSearch = true,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst blockPatterns = useBlockPatterns( clientId, attributes );\n\t/*\n\t * When we preview Query Loop blocks we should prefer the current\n\t * block's postType, which is passed through block context.\n\t */\n\tconst blockPreviewContext = useMemo(\n\t\t() => ( {\n\t\t\tpreviewPostType: attributes.query.postType,\n\t\t} ),\n\t\t[ attributes.query.postType ]\n\t);\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\n\tconst onBlockPatternSelect = ( pattern, blocks ) => {\n\t\tconst { newBlocks, queryClientIds } = getTransformedBlocksFromPattern(\n\t\t\tblocks,\n\t\t\tattributes\n\t\t);\n\t\treplaceBlock( clientId, newBlocks );\n\t\tif ( queryClientIds[ 0 ] ) {\n\t\t\tselectBlock( queryClientIds[ 0 ] );\n\t\t}\n\t};\n\treturn (\n\t\t<div className=\"block-library-query-pattern__selection-content\">\n\t\t\t{ showSearch && (\n\t\t\t\t<div className=\"block-library-query-pattern__selection-search\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<BlockContextProvider value={ blockPreviewContext }>\n\t\t\t\t<BlockPatternsList\n\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\tonClickPattern={ onBlockPatternSelect }\n\t\t\t\t\tshowTitlesAsTooltip={ showTitlesAsTooltip }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t</div>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nexport function normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\tinput = removeAccents( input );\n\n\t// Trim & Lowercase.\n\tinput = input.trim().toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Get the search rank for a given pattern and a specific search term.\n *\n * @param {Object} pattern Pattern to rank\n * @param {string} searchValue Search term\n * @return {number} A pattern search rank\n */\nexport function getPatternSearchRank( pattern, searchValue ) {\n\tconst normalizedSearchValue = normalizeSearchInput( searchValue );\n\tconst normalizedTitle = normalizeSearchInput( pattern.title );\n\n\tlet rank = 0;\n\n\tif ( normalizedSearchValue === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchValue ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst searchTerms = normalizedSearchValue.split( ' ' );\n\t\tconst hasMatchedTerms = searchTerms.every( ( searchTerm ) =>\n\t\t\tnormalizedTitle.includes( searchTerm )\n\t\t);\n\n\t\t// Prefer pattern with every search word in the title.\n\t\tif ( hasMatchedTerms ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n\n/**\n * Filters an pattern list given a search term.\n *\n * @param {Array} patterns Item list\n * @param {string} searchValue Search input.\n *\n * @return {Array} Filtered pattern list.\n */\nexport function searchPatterns( patterns = [], searchValue = '' ) {\n\tif ( ! searchValue ) {\n\t\treturn patterns;\n\t}\n\n\tconst rankedPatterns = patterns\n\t\t.map( ( pattern ) => {\n\t\t\treturn [ pattern, getPatternSearchRank( pattern, searchValue ) ];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > 0 );\n\n\trankedPatterns.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedPatterns.map( ( [ pattern ] ) => pattern );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useScopedBlockVariations } from '../utils';\nimport { useBlockPatterns } from './pattern-selection';\nimport QueryToolbar from './query-toolbar';\n\nexport default function QueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n\tisSelected,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\n\t// Use ResizeObserver to monitor container width.\n\tconst resizeObserverRef = useResizeObserver( ( [ entry ] ) => {\n\t\tsetContainerWidth( entry.contentRect.width );\n\t} );\n\n\tconst SMALL_CONTAINER_BREAKPOINT = 160;\n\n\tconst isSmallContainer =\n\t\tcontainerWidth > 0 && containerWidth < SMALL_CONTAINER_BREAKPOINT;\n\n\tconst { blockType, activeBlockVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tattributes\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ name, attributes ]\n\t);\n\tconst hasPatterns = !! useBlockPatterns( clientId, attributes ).length;\n\tconst icon =\n\t\tactiveBlockVariation?.icon?.src ||\n\t\tactiveBlockVariation?.icon ||\n\t\tblockType?.icon?.src;\n\tconst label = activeBlockVariation?.title || blockType?.title;\n\tconst blockProps = useBlockProps( {\n\t\tref: resizeObserverRef,\n\t} );\n\n\tif ( isStartingBlank ) {\n\t\treturn (\n\t\t\t<QueryVariationPicker\n\t\t\t\tclientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ isSelected && (\n\t\t\t\t<QueryToolbar\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\thasInnerBlocks={ false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\ticon={ ! isSmallContainer && icon }\n\t\t\t\tlabel={ ! isSmallContainer && label }\n\t\t\t\tinstructions={\n\t\t\t\t\t! isSmallContainer &&\n\t\t\t\t\t__( 'Choose a pattern for the query loop or start blank.' )\n\t\t\t\t}\n\t\t\t\twithIllustration={ isSmallContainer }\n\t\t\t>\n\t\t\t\t{ !! hasPatterns && ! isSmallContainer && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ openPatternSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! isSmallContainer && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsStartingBlank( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nfunction QueryVariationPicker( { clientId, attributes, icon, label } ) {\n\tconst scopeVariations = useScopedBlockVariations( attributes );\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ scopeVariations }\n\t\t\t\tonSelect={ ( variation ) => {\n\t\t\t\t\tif ( variation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tvariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\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</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes: { tagName: Tag = 'div' } } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <Tag { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\ttitleDate,\n\ttitleExcerpt,\n\ttitleDateExcerpt,\n\timageDateTitle,\n} from './icons';\n\nconst postDate = [\n\t'core/post-date',\n\t{\n\t\tmetadata: {\n\t\t\tbindings: {\n\t\t\t\tdatetime: {\n\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\targs: { field: 'date' },\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n];\n\nconst variations = [\n\t{\n\t\tname: 'title-date',\n\t\ttitle: __( 'Title & Date' ),\n\t\ticon: titleDate,\n\t\tattributes: {},\n\t\tinnerBlocks: [\n\t\t\t[ 'core/post-template', {}, [ [ 'core/post-title' ], postDate ] ],\n\t\t\t[ 'core/query-pagination' ],\n\t\t\t[ 'core/query-no-results' ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'title-excerpt',\n\t\ttitle: __( 'Title & Excerpt' ),\n\t\ticon: titleExcerpt,\n\t\tattributes: {},\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/post-template',\n\t\t\t\t{},\n\t\t\t\t[ [ 'core/post-title' ], [ 'core/post-excerpt' ] ],\n\t\t\t],\n\t\t\t[ 'core/query-pagination' ],\n\t\t\t[ 'core/query-no-results' ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'title-date-excerpt',\n\t\ttitle: __( 'Title, Date, & Excerpt' ),\n\t\ticon: titleDateExcerpt,\n\t\tattributes: {},\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/post-template',\n\t\t\t\t{},\n\t\t\t\t[ [ 'core/post-title' ], postDate, [ 'core/post-excerpt' ] ],\n\t\t\t],\n\t\t\t[ 'core/query-pagination' ],\n\t\t\t[ 'core/query-no-results' ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'image-date-title',\n\t\ttitle: __( 'Image, Date, & Title' ),\n\t\ticon: imageDateTitle,\n\t\tattributes: {},\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/post-template',\n\t\t\t\t{},\n\t\t\t\t[\n\t\t\t\t\t[ 'core/post-featured-image' ],\n\t\t\t\t\tpostDate,\n\t\t\t\t\t[ 'core/post-title' ],\n\t\t\t\t],\n\t\t\t],\n\t\t\t[ 'core/query-pagination' ],\n\t\t\t[ 'core/query-no-results' ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/components';\n\nexport const titleDate = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"M41 9H7v3h34V9zm-22 5H7v1h12v-1zM7 26h12v1H7v-1zm34-5H7v3h34v-3zM7 38h12v1H7v-1zm34-5H7v3h34v-3z\" />\n\t</SVG>\n);\n\nexport const titleExcerpt = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"M41 9H7v3h34V9zm-4 5H7v1h30v-1zm4 3H7v1h34v-1zM7 20h30v1H7v-1zm0 12h30v1H7v-1zm34 3H7v1h34v-1zM7 38h30v1H7v-1zm34-11H7v3h34v-3z\" />\n\t</SVG>\n);\n\nexport const titleDateExcerpt = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"M41 9H7v3h34V9zm-22 5H7v1h12v-1zm22 3H7v1h34v-1zM7 20h34v1H7v-1zm0 12h12v1H7v-1zm34 3H7v1h34v-1zM7 38h34v1H7v-1zm34-11H7v3h34v-3z\" />\n\t</SVG>\n);\n\nexport const imageDateTitle = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"M7 9h34v6H7V9zm12 8H7v1h12v-1zm18 3H7v1h30v-1zm0 18H7v1h30v-1zM7 35h12v1H7v-1zm34-8H7v6h34v-6z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nconst migrateToTaxQuery = ( attributes ) => {\n\tconst { query } = attributes;\n\tconst { categoryIds, tagIds, taxQuery, ...newQuery } = query;\n\t// First `taxQuery` migration that moves `categoryIds` and `tagIds`\n\t// into `taxQuery` (v2 deprecation).\n\tif ( !! categoryIds?.length || !! tagIds?.length ) {\n\t\tnewQuery.taxQuery = {\n\t\t\tinclude: {\n\t\t\t\tcategory: !! categoryIds?.length ? categoryIds : undefined,\n\t\t\t\tpost_tag: !! tagIds?.length ? tagIds : undefined,\n\t\t\t},\n\t\t};\n\t}\n\t// Second `taxQuery` migration that changes the structure from\n\t// taxQuery: { taxonomy: [ids] } to\n\t// taxQuery: { include: { taxonomy: [ids] } } (v6 deprecation).\n\tif ( !! Object.keys( taxQuery || {} ).length ) {\n\t\tnewQuery.taxQuery = { include: taxQuery };\n\t}\n\treturn {\n\t\t...attributes,\n\t\tquery: newQuery,\n\t};\n};\n\nconst migrateColors = ( attributes, innerBlocks ) => {\n\t// Remove color style attributes from the Query block.\n\tconst { style, backgroundColor, gradient, textColor, ...newAttributes } =\n\t\tattributes;\n\n\tconst hasColorStyles =\n\t\tbackgroundColor ||\n\t\tgradient ||\n\t\ttextColor ||\n\t\tstyle?.color ||\n\t\tstyle?.elements?.link;\n\n\t// If the query block doesn't currently have any color styles,\n\t// nothing needs migrating.\n\tif ( ! hasColorStyles ) {\n\t\treturn [ attributes, innerBlocks ];\n\t}\n\n\t// Clean color values from style attribute object.\n\tif ( style ) {\n\t\tnewAttributes.style = cleanEmptyObject( {\n\t\t\t...style,\n\t\t\tcolor: undefined,\n\t\t\telements: {\n\t\t\t\t...style.elements,\n\t\t\t\tlink: undefined,\n\t\t\t},\n\t\t} );\n\t}\n\n\t// If the inner blocks are already wrapped in a single group\n\t// block, add the color support styles to that group block.\n\tif ( hasSingleInnerGroupBlock( innerBlocks ) ) {\n\t\tconst groupBlock = innerBlocks[ 0 ];\n\n\t\t// Create new styles for the group block.\n\t\tconst hasStyles =\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link ||\n\t\t\tgroupBlock.attributes.style;\n\n\t\tconst newStyles = hasStyles\n\t\t\t? cleanEmptyObject( {\n\t\t\t\t\t...groupBlock.attributes.style,\n\t\t\t\t\tcolor: style?.color,\n\t\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t\t: undefined,\n\t\t\t } )\n\t\t\t: undefined;\n\n\t\t// Create a new Group block from the original.\n\t\tconst updatedGroupBlock = createBlock(\n\t\t\t'core/group',\n\t\t\t{\n\t\t\t\t...groupBlock.attributes,\n\t\t\t\tbackgroundColor,\n\t\t\t\tgradient,\n\t\t\t\ttextColor,\n\t\t\t\tstyle: newStyles,\n\t\t\t},\n\t\t\tgroupBlock.innerBlocks\n\t\t);\n\n\t\treturn [ newAttributes, [ updatedGroupBlock ] ];\n\t}\n\n\t// When we don't have a single wrapping group block for the inner\n\t// blocks, wrap the current inner blocks in a group applying the\n\t// color styles to that.\n\tconst newGroupBlock = createBlock(\n\t\t'core/group',\n\t\t{\n\t\t\tbackgroundColor,\n\t\t\tgradient,\n\t\t\ttextColor,\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\tcolor: style?.color,\n\t\t\t\telements: style?.elements?.link\n\t\t\t\t\t? { link: style?.elements?.link }\n\t\t\t\t\t: undefined,\n\t\t\t} ),\n\t\t},\n\t\tinnerBlocks\n\t);\n\n\treturn [ newAttributes, [ newGroupBlock ] ];\n};\n\nconst hasSingleInnerGroupBlock = ( innerBlocks = [] ) =>\n\tinnerBlocks.length === 1 && innerBlocks[ 0 ].name === 'core/group';\n\nconst migrateToConstrainedLayout = ( attributes ) => {\n\tconst { layout = null } = attributes;\n\tif ( ! layout ) {\n\t\treturn attributes;\n\t}\n\tconst { inherit = null, contentSize = null, ...newLayout } = layout;\n\n\tif ( inherit || contentSize ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tlayout: {\n\t\t\t\t...newLayout,\n\t\t\t\tcontentSize,\n\t\t\t\ttype: 'constrained',\n\t\t\t},\n\t\t};\n\t}\n\n\treturn attributes;\n};\n\nconst findPostTemplateBlock = ( innerBlocks = [] ) => {\n\tlet foundBlock = null;\n\tfor ( const block of innerBlocks ) {\n\t\tif ( block.name === 'core/post-template' ) {\n\t\t\tfoundBlock = block;\n\t\t\tbreak;\n\t\t} else if ( block.innerBlocks.length ) {\n\t\t\tfoundBlock = findPostTemplateBlock( block.innerBlocks );\n\t\t}\n\t}\n\treturn foundBlock;\n};\n\nconst replacePostTemplateBlock = ( innerBlocks = [], replacementBlock ) => {\n\tinnerBlocks.forEach( ( block, index ) => {\n\t\tif ( block.name === 'core/post-template' ) {\n\t\t\tinnerBlocks.splice( index, 1, replacementBlock );\n\t\t} else if ( block.innerBlocks.length ) {\n\t\t\tblock.innerBlocks = replacePostTemplateBlock(\n\t\t\t\tblock.innerBlocks,\n\t\t\t\treplacementBlock\n\t\t\t);\n\t\t}\n\t} );\n\treturn innerBlocks;\n};\n\nconst migrateDisplayLayout = ( attributes, innerBlocks ) => {\n\tconst { displayLayout = null, ...newAttributes } = attributes;\n\tif ( ! displayLayout ) {\n\t\treturn [ attributes, innerBlocks ];\n\t}\n\tconst postTemplateBlock = findPostTemplateBlock( innerBlocks );\n\tif ( ! postTemplateBlock ) {\n\t\treturn [ attributes, innerBlocks ];\n\t}\n\n\tconst { type, columns } = displayLayout;\n\n\t// Convert custom displayLayout values to canonical layout types.\n\tconst updatedLayoutType = type === 'flex' ? 'grid' : 'default';\n\n\tconst newPostTemplateBlock = createBlock(\n\t\t'core/post-template',\n\t\t{\n\t\t\t...postTemplateBlock.attributes,\n\t\t\tlayout: {\n\t\t\t\ttype: updatedLayoutType,\n\t\t\t\t...( columns && { columnCount: columns } ),\n\t\t\t},\n\t\t},\n\t\tpostTemplateBlock.innerBlocks\n\t);\n\treturn [\n\t\tnewAttributes,\n\t\treplacePostTemplateBlock( innerBlocks, newPostTemplateBlock ),\n\t];\n};\n\n// Version with NO wrapper `div` element.\nconst v1 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\tlayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\thtml: false,\n\t},\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\tconst { layout, ...restWithTaxQuery } = withTaxQuery;\n\t\tconst newAttributes = {\n\t\t\t...restWithTaxQuery,\n\t\t\tdisplayLayout: withTaxQuery.layout,\n\t\t};\n\t\treturn migrateDisplayLayout( newAttributes, innerBlocks );\n\t},\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n};\n\n// Version with `categoryIds and tagIds`.\nconst v2 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\tcategoryIds: [],\n\t\t\t\ttagIds: [],\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\tlayout: true,\n\t},\n\tisEligible: ( { query: { categoryIds, tagIds } = {} } ) =>\n\t\tcategoryIds || tagIds,\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\tconst [ withColorAttributes, withColorInnerBlocks ] = migrateColors(\n\t\t\twithTaxQuery,\n\t\t\tinnerBlocks\n\t\t);\n\t\tconst withConstrainedLayoutAttributes =\n\t\t\tmigrateToConstrainedLayout( withColorAttributes );\n\t\treturn migrateDisplayLayout(\n\t\t\twithConstrainedLayoutAttributes,\n\t\t\twithColorInnerBlocks\n\t\t);\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\n// Version with color support prior to moving it to the PostTemplate block.\nconst v3 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tlayout: true,\n\t},\n\tisEligible( attributes ) {\n\t\tconst { style, backgroundColor, gradient, textColor } = attributes;\n\t\treturn (\n\t\t\tbackgroundColor ||\n\t\t\tgradient ||\n\t\t\ttextColor ||\n\t\t\tstyle?.color ||\n\t\t\tstyle?.elements?.link\n\t\t);\n\t},\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst [ withColorAttributes, withColorInnerBlocks ] = migrateColors(\n\t\t\tattributes,\n\t\t\tinnerBlocks\n\t\t);\n\t\tconst withConstrainedLayoutAttributes =\n\t\t\tmigrateToConstrainedLayout( withColorAttributes );\n\t\treturn migrateDisplayLayout(\n\t\t\twithConstrainedLayoutAttributes,\n\t\t\twithColorInnerBlocks\n\t\t);\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n};\n\nconst v4 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tlayout: true,\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n\tisEligible: ( { layout } ) =>\n\t\tlayout?.inherit ||\n\t\t( layout?.contentSize && layout?.type !== 'constrained' ),\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withConstrainedLayoutAttributes =\n\t\t\tmigrateToConstrainedLayout( attributes );\n\t\treturn migrateDisplayLayout(\n\t\t\twithConstrainedLayoutAttributes,\n\t\t\tinnerBlocks\n\t\t);\n\t},\n};\n\nconst v5 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tdisplayLayout: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\ttype: 'list',\n\t\t\t},\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\tanchor: true,\n\t\thtml: false,\n\t\tlayout: true,\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n\tisEligible: ( { displayLayout } ) => {\n\t\treturn !! displayLayout;\n\t},\n\tmigrate: migrateDisplayLayout,\n};\n\nconst v6 = {\n\tattributes: {\n\t\tqueryId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tquery: {\n\t\t\ttype: 'object',\n\t\t\tdefault: {\n\t\t\t\tperPage: null,\n\t\t\t\tpages: 0,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\texclude: [],\n\t\t\t\tsticky: '',\n\t\t\t\tinherit: true,\n\t\t\t\ttaxQuery: null,\n\t\t\t\tparents: [],\n\t\t\t\tformat: [],\n\t\t\t},\n\t\t},\n\t\ttagName: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'div',\n\t\t},\n\t\tnamespace: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tenhancedPagination: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tlayout: true,\n\t\tinteractivity: true,\n\t\tcontentRole: true,\n\t},\n\tsave( { attributes: { tagName: Tag = 'div' } } ) {\n\t\tconst blockProps = useBlockProps.save();\n\t\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\t\treturn <Tag { ...innerBlocksProps } />;\n\t},\n\tisEligible: ( { query: { taxQuery } = {} } ) =>\n\t\t!! taxQuery &&\n\t\tObject.keys( taxQuery ).some(\n\t\t\t( key ) => ! [ 'include', 'exclude' ].includes( key )\n\t\t),\n\tmigrate( attributes, innerBlocks ) {\n\t\tconst withTaxQuery = migrateToTaxQuery( attributes );\n\t\treturn migrateDisplayLayout( withTaxQuery, innerBlocks );\n\t},\n};\n\nconst deprecated = [ v6, v5, v4, v3, v2, v1 ];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {\n\t\tviewportWidth: 650,\n\t\tattributes: {\n\t\t\tnamespace: 'core/posts-list',\n\t\t\tquery: {\n\t\t\t\tperPage: 4,\n\t\t\t\tpages: 1,\n\t\t\t\toffset: 0,\n\t\t\t\tpostType: 'post',\n\t\t\t\torder: 'desc',\n\t\t\t\torderBy: 'date',\n\t\t\t\tauthor: '',\n\t\t\t\tsearch: '',\n\t\t\t\tsticky: 'exclude',\n\t\t\t\tinherit: false,\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/post-template',\n\t\t\t\tattributes: {\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tinnerBlocks: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/post-title',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/post-date',\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\t\t\tdatetime: {\n\t\t\t\t\t\t\t\t\t\tsource: 'core/post-data',\n\t\t\t\t\t\t\t\t\t\targs: { field: 'date' },\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},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'core/post-excerpt',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\tsave,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( 'No posts were found.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-no-results\",\n\t\"title\": \"No Results\",\n\t\"category\": \"theme\",\n\t\"description\": \"Contains the block elements used to render content when no query results are found.\",\n\t\"ancestor\": [ \"core/query\" ],\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"queryId\", \"query\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __(\n\t\t\t\t'Add text or blocks that will display when a query returns no results.'\n\t\t\t),\n\t\t},\n\t],\n];\n\nexport default function QueryNoResultsEdit() {\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-pagination\",\n\t\"title\": \"Pagination\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/query\" ],\n\t\"allowedBlocks\": [\n\t\t\"core/query-pagination-previous\",\n\t\t\"core/query-pagination-numbers\",\n\t\t\"core/query-pagination-next\"\n\t],\n\t\"description\": \"Displays a paginated navigation to next/previous set of posts, when applicable.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"paginationArrow\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"none\"\n\t\t},\n\t\t\"showLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"usesContext\": [ \"queryId\", \"query\" ],\n\t\"providesContext\": {\n\t\t\"paginationArrow\": \"paginationArrow\",\n\t\t\"showLabel\": \"showLabel\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-query-pagination-editor\",\n\t\"style\": \"wp-block-query-pagination\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { QueryPaginationArrowControls } from './query-pagination-arrow-controls';\nimport { QueryPaginationLabelControl } from './query-pagination-label-control';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst TEMPLATE = [\n\t[ 'core/query-pagination-previous' ],\n\t[ 'core/query-pagination-numbers' ],\n\t[ 'core/query-pagination-next' ],\n];\n\nexport default function QueryPaginationEdit( {\n\tattributes: { paginationArrow, showLabel },\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst hasNextPreviousBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\t\t\t/**\n\t\t\t * Show the `paginationArrow` and `showLabel` controls only if a\n\t\t\t * `QueryPaginationNext/Previous` block exists.\n\t\t\t */\n\t\t\treturn innerBlocks?.find( ( innerBlock ) => {\n\t\t\t\treturn [\n\t\t\t\t\t'core/query-pagination-next',\n\t\t\t\t\t'core/query-pagination-previous',\n\t\t\t\t].includes( innerBlock.name );\n\t\t\t} );\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\t// Always show label text if paginationArrow is set to 'none'.\n\tuseEffect( () => {\n\t\tif ( paginationArrow === 'none' && ! showLabel ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { showLabel: true } );\n\t\t}\n\t}, [\n\t\tpaginationArrow,\n\t\tsetAttributes,\n\t\tshowLabel,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ hasNextPreviousBlocks && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpaginationArrow: 'none',\n\t\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => paginationArrow !== 'none' }\n\t\t\t\t\t\t\tlabel={ __( 'Pagination arrow' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: 'none' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<QueryPaginationArrowControls\n\t\t\t\t\t\t\t\tvalue={ paginationArrow }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: value } );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t{ paginationArrow !== 'none' && (\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { showLabel: true } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<QueryPaginationLabelControl\n\t\t\t\t\t\t\t\t\tvalue={ showLabel }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { showLabel: value } );\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</ToolsPanelItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<nav { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\n\nexport function QueryPaginationArrowControls( { value, onChange } ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\thelp={ __(\n\t\t\t\t'A decorative arrow appended to the next and previous page link.'\n\t\t\t) }\n\t\t\tisBlock\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"none\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'None',\n\t\t\t\t\t'Arrow option for Query Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"arrow\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'Arrow',\n\t\t\t\t\t'Arrow option for Query Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"chevron\"\n\t\t\t\tlabel={ _x(\n\t\t\t\t\t'Chevron',\n\t\t\t\t\t'Arrow option for Query Pagination Next/Previous blocks'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToggleGroupControl>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToggleControl } from '@wordpress/components';\n\nexport function QueryPaginationLabelControl( { value, onChange } ) {\n\treturn (\n\t\t<ToggleControl\n\t\t\tlabel={ __( 'Show label text' ) }\n\t\t\thelp={ __( 'Make label text visible, e.g. \"Next Page\".' ) }\n\t\t\tonChange={ onChange }\n\t\t\tchecked={ value === true }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nconst deprecated = [\n\t// Version with wrapper `div` element.\n\t{\n\t\tsave() {\n\t\t\treturn (\n\t\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * WordPress dependencies\n */\nimport { queryPagination as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-pagination-next\",\n\t\"title\": \"Next Page\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/query-pagination\" ],\n\t\"description\": \"Displays the next posts page link.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"queryId\",\n\t\t\"query\",\n\t\t\"paginationArrow\",\n\t\t\"showLabel\",\n\t\t\"enhancedPagination\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2192',\n\tchevron: '\u00BB',\n};\n\nexport default function QueryPaginationNextEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { paginationArrow, showLabel },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#pagination-next-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t{ showLabel && (\n\t\t\t\t<PlainText\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\taria-label={ __( 'Next page link' ) }\n\t\t\t\t\tplaceholder={ __( 'Next Page' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-query-pagination-next-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</a>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { queryPaginationNext as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-pagination-numbers\",\n\t\"title\": \"Page Numbers\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/query-pagination\" ],\n\t\"description\": \"Displays a list of page numbers for pagination.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"midSize\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t}\n\t},\n\t\"usesContext\": [ \"queryId\", \"query\", \"enhancedPagination\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-query-pagination-numbers-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tRangeControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst createPaginationItem = ( content, Tag = 'a', extraClass = '' ) => (\n\t<Tag key={ content } className={ `page-numbers ${ extraClass }` }>\n\t\t{ content }\n\t</Tag>\n);\n\nconst previewPaginationNumbers = ( midSize ) => {\n\tconst paginationItems = [];\n\n\t// First set of pagination items.\n\tfor ( let i = 1; i <= midSize; i++ ) {\n\t\tpaginationItems.push( createPaginationItem( i ) );\n\t}\n\n\t// Current pagination item.\n\tpaginationItems.push(\n\t\tcreatePaginationItem( midSize + 1, 'span', 'current' )\n\t);\n\n\t// Second set of pagination items.\n\tfor ( let i = 1; i <= midSize; i++ ) {\n\t\tpaginationItems.push( createPaginationItem( midSize + 1 + i ) );\n\t}\n\n\t// Dots.\n\tpaginationItems.push( createPaginationItem( '...', 'span', 'dots' ) );\n\n\t// Last pagination item.\n\tpaginationItems.push( createPaginationItem( midSize * 2 + 3 ) );\n\n\treturn <>{ paginationItems }</>;\n};\n\nexport default function QueryPaginationNumbersEdit( {\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { midSize } = attributes;\n\tconst paginationNumbers = previewPaginationNumbers(\n\t\tparseInt( midSize, 10 )\n\t);\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => setAttributes( { midSize: 2 } ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Number of links' ) }\n\t\t\t\t\t\thasValue={ () => midSize !== 2 }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { midSize: 2 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Number of links' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Specify how many links can appear before and after the current page number. Links to the first, current and last page are always visible.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ midSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tmidSize: parseInt( value, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\tmax={ 5 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>{ paginationNumbers }</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { queryPaginationNumbers as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-pagination-previous\",\n\t\"title\": \"Previous Page\",\n\t\"category\": \"theme\",\n\t\"parent\": [ \"core/query-pagination\" ],\n\t\"description\": \"Displays the previous posts page link.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"queryId\",\n\t\t\"query\",\n\t\t\"paginationArrow\",\n\t\t\"showLabel\",\n\t\t\"enhancedPagination\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '\u2190',\n\tchevron: '\u00AB',\n};\n\nexport default function QueryPaginationPreviousEdit( {\n\tattributes: { label },\n\tsetAttributes,\n\tcontext: { paginationArrow, showLabel },\n} ) {\n\tconst displayArrow = arrowMap[ paginationArrow ];\n\treturn (\n\t\t<a\n\t\t\thref=\"#pagination-previous-pseudo-link\"\n\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t{ ...useBlockProps() }\n\t\t>\n\t\t\t{ displayArrow && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={ `wp-block-query-pagination-previous-arrow is-arrow-${ paginationArrow }` }\n\t\t\t\t\taria-hidden\n\t\t\t\t>\n\t\t\t\t\t{ displayArrow }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showLabel && (\n\t\t\t\t<PlainText\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\taria-label={ __( 'Previous page link' ) }\n\t\t\t\t\tplaceholder={ __( 'Previous Page' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</a>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { queryPaginationPrevious as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-title\",\n\t\"title\": \"Query Title\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display the query title.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"type\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t},\n\t\t\"showPrefix\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"showSearchTerm\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"attributes\": {\n\t\t\t\"type\": \"search\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"query\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-query-title\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useArchiveLabel } from './use-archive-label';\nimport { usePostTypeLabel } from './use-post-type-label';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SUPPORTED_TYPES = [ 'archive', 'search', 'post-type' ];\n\nexport default function QueryTitleEdit( {\n\tattributes: {\n\t\ttype,\n\t\tlevel,\n\t\tlevelOptions,\n\t\ttextAlign,\n\t\tshowPrefix,\n\t\tshowSearchTerm,\n\t},\n\tsetAttributes,\n\tcontext: { query },\n} ) {\n\tconst { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();\n\tconst { postTypeLabel } = usePostTypeLabel( query?.postType );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-query-title__placeholder', {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tif ( ! SUPPORTED_TYPES.includes( type ) ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>{ __( 'Provided type is not supported.' ) }</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet titleElement;\n\tif ( type === 'archive' ) {\n\t\tlet title;\n\t\tif ( archiveTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\tif ( archiveNameLabel ) {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: 1: Archive type title e.g: \"Category\", 2: Label of the archive e.g: \"Shoes\" */\n\t\t\t\t\t\t_x( '%1$s: %2$s', 'archive label' ),\n\t\t\t\t\t\tarchiveTypeLabel,\n\t\t\t\t\t\tarchiveNameLabel\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t\t__( '%s: Name' ),\n\t\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( archiveNameLabel ) {\n\t\t\t\ttitle = archiveNameLabel;\n\t\t\t} else {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t__( '%s name' ),\n\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix\n\t\t\t\t? __( 'Archive type: Name' )\n\t\t\t\t: __( 'Archive title' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\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\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'search' ) {\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSearchTerm: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showSearchTerm }\n\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showSearchTerm: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSearchTerm: ! showSearchTerm,\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\tchecked={ showSearchTerm }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t{ showSearchTerm\n\t\t\t\t\t\t? __( 'Search results for: \u201Csearch term\u201D' )\n\t\t\t\t\t\t: __( 'Search results' ) }\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'post-type' ) {\n\t\tlet title;\n\t\tif ( postTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Singular post type name of the queried object */\n\t\t\t\t\t__( 'Post Type: \"%s\"' ),\n\t\t\t\t\tpostTypeLabel\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttitle = postTypeLabel;\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix ? __( 'Post Type: Name' ) : __( 'Name' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\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\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport function useArchiveLabel() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// @wordpress/block-library should not depend on @wordpress/editor.\n\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t// store by string.\n\t\t// The solution here is to split WP specific blocks from generic blocks.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch the singular label for the current post type.\n *\n * @param {string} contextPostType Context provided post type.\n */\nexport function usePostTypeLabel( contextPostType ) {\n\tconst currentPostType = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostType } = select( 'core/editor' );\n\t\treturn getCurrentPostType();\n\t}, [] );\n\n\t// Fetch the post type label from the core data store\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\tconst postTypeSlug = contextPostType || currentPostType;\n\t\t\tconst postType = getPostType( postTypeSlug );\n\n\t\t\t// Return the singular name of the post type\n\t\t\treturn {\n\t\t\t\tpostTypeLabel: postType ? postType.labels.singular_name : '',\n\t\t\t};\n\t\t},\n\t\t[ contextPostType, currentPostType ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { title } from '@wordpress/icons';\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'archive-title',\n\t\ttitle: __( 'Archive Title' ),\n\t\tdescription: __(\n\t\t\t'Display the archive title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'archive',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tisDefault: false,\n\t\tname: 'search-title',\n\t\ttitle: __( 'Search Results Title' ),\n\t\tdescription: __(\n\t\t\t'Display the search results title based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'search',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tisDefault: false,\n\t\tname: 'post-type-label',\n\t\ttitle: __( 'Post Type Label' ),\n\t\tdescription: __(\n\t\t\t'Display the post type label based on the queried object.'\n\t\t),\n\t\ticon: title,\n\t\tattributes: {\n\t\t\ttype: 'post-type',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `query-title` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { title as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/query-total\",\n\t\"title\": \"Query Total\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/query\" ],\n\t\"description\": \"Display the total number of results in a query.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"displayType\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"total-results\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"queryId\", \"query\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-query-total\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, BlockControls } from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarDropdownMenu } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { resultsFound, displayingResults } from './icons';\n\nexport default function QueryTotalEdit( { attributes, setAttributes } ) {\n\tconst { displayType } = attributes;\n\n\t// Block properties and classes.\n\tconst blockProps = useBlockProps();\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( displayType ) {\n\t\t\tcase 'total-results':\n\t\t\t\treturn resultsFound;\n\t\t\tcase 'range-display':\n\t\t\t\treturn displayingResults;\n\t\t}\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Total results' ),\n\t\t\tisActive: displayType === 'total-results',\n\t\t\ticon: resultsFound,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( { displayType: 'total-results' } );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Range display' ),\n\t\t\tisActive: displayType === 'range-display',\n\t\t\ticon: displayingResults,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( { displayType: 'range-display' } );\n\t\t\t},\n\t\t},\n\t];\n\n\t// Controls for the block.\n\tconst controls = (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\tlabel={ __( 'Change display type' ) }\n\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\t// Render output based on the selected display type.\n\tconst renderDisplay = () => {\n\t\tif ( displayType === 'total-results' ) {\n\t\t\treturn <>{ __( '12 results found' ) }</>;\n\t\t}\n\n\t\tif ( displayType === 'range-display' ) {\n\t\t\treturn <>{ __( 'Displaying 1 \u2013 10 of 12' ) }</>;\n\t\t}\n\n\t\treturn null;\n\t};\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ renderDisplay() }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport const resultsFound = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 24 24\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\taria-hidden=\"true\"\n\t\tfocusable=\"false\"\n\t>\n\t\t<Path d=\"M4 11h4v2H4v-2zm6 0h6v2h-6v-2zm8 0h2v2h-2v-2z\" />\n\t</SVG>\n);\n\nexport const displayingResults = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 24 24\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\taria-hidden=\"true\"\n\t\tfocusable=\"false\"\n\t>\n\t\t<Path d=\"M4 13h2v-2H4v2zm4 0h10v-2H8v2zm12 0h2v-2h-2v2z\" />\n\t</SVG>\n);\n\nexport const queryTotal = (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 24 24\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\taria-hidden=\"true\"\n\t\tfocusable=\"false\"\n\t>\n\t\t<Path d=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2Zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12Zm-7-6-4.1 5h8.8v-3h-1.5v1.5h-4.2l2.9-3.5-2.9-3.5h4.2V10h1.5V7H7.4l4.1 5Z\" />\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport initBlock from '../utils/init-block';\nimport { queryTotal } from './icons';\n\n/* Block settings */\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: queryTotal,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { quote as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcitation: __( 'Julio Cort\u00E1zar' ),\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcontent: __( 'In quoting others, we cite ourselves.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock, parseWithAttributeSchema } from '@wordpress/blocks';\nimport { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport const migrateToQuoteV2 = ( attributes ) => {\n\tconst { value, ...restAttributes } = attributes;\n\n\treturn [\n\t\t{\n\t\t\t...restAttributes,\n\t\t},\n\t\tvalue\n\t\t\t? parseWithAttributeSchema( value, {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'p',\n\t\t\t\t\tquery: {\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t } ).map( ( { content } ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', { content } )\n\t\t\t )\n\t\t\t: createBlock( 'core/paragraph' ),\n\t];\n};\n\nconst TEXT_ALIGN_OPTIONS = [ 'left', 'right', 'center' ];\n\n// Migrate existing text alignment settings to the renamed attribute.\nconst migrateTextAlign = ( attributes, innerBlocks ) => {\n\tconst { align, ...rest } = attributes;\n\t// Check if there are valid alignments stored in the old attribute\n\t// and assign them to the new attribute name.\n\tconst migratedAttributes = TEXT_ALIGN_OPTIONS.includes( align )\n\t\t? { ...rest, textAlign: align }\n\t\t: attributes;\n\n\treturn [ migratedAttributes, innerBlocks ];\n};\n\n// Migrate the v2 blocks with style === `2`;\nconst migrateLargeStyle = ( attributes, innerBlocks ) => {\n\treturn [\n\t\t{\n\t\t\t...attributes,\n\t\t\tclassName: attributes.className\n\t\t\t\t? attributes.className + ' is-style-large'\n\t\t\t\t: 'is-style-large',\n\t\t},\n\t\tinnerBlocks,\n\t];\n};\n\n// Version before the 'align' attribute was replaced with 'textAlign'.\nconst v4 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'cite',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\thtml: false,\n\t\t__experimentalOnEnter: true,\n\t\t__experimentalOnMerge: true,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t\tfontAppearance: true,\n\t\t\t},\n\t\t},\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\theading: true,\n\t\t\tlink: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t},\n\tisEligible: ( { align } ) => TEXT_ALIGN_OPTIONS.includes( align ),\n\tsave( { attributes } ) {\n\t\tconst { align, citation } = attributes;\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} );\n\t\treturn (\n\t\t\t<blockquote { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n\tmigrate: migrateTextAlign,\n};\n\nconst v3 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'cite',\n\t\t\tdefault: '',\n\t\t\trole: 'content',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\t__experimentalSlashInserter: true,\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t\tfontAppearance: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { align, value, citation } = attributes;\n\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t} );\n\n\t\treturn (\n\t\t\t<blockquote { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n\tmigrate( attributes ) {\n\t\treturn migrateTextAlign( ...migrateToQuoteV2( attributes ) );\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\tdefault: '',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'cite',\n\t\t\tdefault: '',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tmigrate( attributes ) {\n\t\treturn migrateTextAlign( ...migrateToQuoteV2( attributes ) );\n\t},\n\tsave( { attributes } ) {\n\t\tconst { align, value, citation } = attributes;\n\n\t\treturn (\n\t\t\t<blockquote style={ { textAlign: align ? align : null } }>\n\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\tdefault: '',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'cite',\n\t\t\tdefault: '',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstyle: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t},\n\t},\n\n\tmigrate( attributes ) {\n\t\tif ( attributes.style === 2 ) {\n\t\t\tconst { style, ...restAttributes } = attributes;\n\t\t\treturn migrateTextAlign(\n\t\t\t\t...migrateLargeStyle( ...migrateToQuoteV2( restAttributes ) )\n\t\t\t);\n\t\t}\n\n\t\treturn migrateTextAlign( ...migrateToQuoteV2( attributes ) );\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { align, value, citation, style } = attributes;\n\n\t\treturn (\n\t\t\t<blockquote\n\t\t\t\tclassName={ style === 2 ? 'is-large' : '' }\n\t\t\t\tstyle={ { textAlign: align ? align : null } }\n\t\t\t>\n\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n};\n\nconst v0 = {\n\tattributes: {\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'blockquote',\n\t\t\tmultiline: 'p',\n\t\t\tdefault: '',\n\t\t},\n\t\tcitation: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'footer',\n\t\t\tdefault: '',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tstyle: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t},\n\t},\n\n\tmigrate( attributes ) {\n\t\tif ( ! isNaN( parseInt( attributes.style ) ) ) {\n\t\t\tconst { style, ...restAttributes } = attributes;\n\t\t\treturn migrateTextAlign( ...migrateToQuoteV2( restAttributes ) );\n\t\t}\n\n\t\treturn migrateTextAlign( ...migrateToQuoteV2( attributes ) );\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { align, value, citation, style } = attributes;\n\n\t\treturn (\n\t\t\t<blockquote\n\t\t\t\tclassName={ `blocks-quote-style-${ style }` }\n\t\t\t\tstyle={ { textAlign: align ? align : null } }\n\t\t\t>\n\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t\t<RichText.Content tagName=\"footer\" value={ citation } />\n\t\t\t\t) }\n\t\t\t</blockquote>\n\t\t);\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v4, v3, v2, v1, v0 ];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { BlockQuotation } from '@wordpress/components';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { Platform, useEffect } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { verse } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { migrateToQuoteV2 } from './deprecated';\nimport { Caption } from '../utils/caption';\n\nconst isWebPlatform = Platform.OS === 'web';\n\nconst TEMPLATE = [ [ 'core/paragraph', {} ] ];\n\n/**\n * At the moment, deprecations don't handle create blocks from attributes\n * (like when using CPT templates). For this reason, this hook is necessary\n * to avoid breaking templates using the old quote block format.\n *\n * @param {Object} attributes Block attributes.\n * @param {string} clientId Block client ID.\n */\nconst useMigrateOnLoad = ( attributes, clientId ) => {\n\tconst registry = useRegistry();\n\tconst { updateBlockAttributes, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tuseEffect( () => {\n\t\t// As soon as the block is loaded, migrate it to the new version.\n\n\t\tif ( ! attributes.value ) {\n\t\t\t// No need to migrate if it doesn't have the value attribute.\n\t\t\treturn;\n\t\t}\n\n\t\tconst [ newAttributes, newInnerBlocks ] =\n\t\t\tmigrateToQuoteV2( attributes );\n\n\t\tdeprecated( 'Value attribute on the quote block', {\n\t\t\tsince: '6.0',\n\t\t\tversion: '6.5',\n\t\t\talternative: 'inner blocks',\n\t\t} );\n\n\t\tregistry.batch( () => {\n\t\t\tupdateBlockAttributes( clientId, newAttributes );\n\t\t\treplaceInnerBlocks( clientId, newInnerBlocks );\n\t\t} );\n\t}, [ attributes.value ] );\n};\n\nexport default function QuoteEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tclientId,\n\tclassName,\n\tstyle,\n\tisSelected,\n} ) {\n\tconst { textAlign, allowedBlocks } = attributes;\n\n\tuseMigrateOnLoad( attributes, clientId );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\t...( ! isWebPlatform && { style } ),\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\ttemplateInsertUpdatesSelection: true,\n\t\t__experimentalCaptureToolbars: true,\n\t\trenderAppender: false,\n\t\tallowedBlocks,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockQuotation { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t<Caption\n\t\t\t\t\tattributeKey=\"citation\"\n\t\t\t\t\ttagName={ isWebPlatform ? 'cite' : 'p' }\n\t\t\t\t\tstyle={ isWebPlatform && { display: 'block' } }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\ticon={ verse }\n\t\t\t\t\tlabel={ __( 'Quote citation' ) }\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t// translators: placeholder text used for the\n\t\t\t\t\t\t// citation\n\t\t\t\t\t\t__( 'Add citation' )\n\t\t\t\t\t}\n\t\t\t\t\taddLabel={ __( 'Add citation' ) }\n\t\t\t\t\tremoveLabel={ __( 'Remove citation' ) }\n\t\t\t\t\texcludeElementClassName\n\t\t\t\t\tclassName=\"wp-block-quote__citation\"\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\t{ ...( ! isWebPlatform ? { textAlign } : {} ) }\n\t\t\t\t/>\n\t\t\t</BlockQuotation>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/quote\",\n\t\"title\": \"Quote\",\n\t\"category\": \"text\",\n\t\"description\": \"Give quoted text visual emphasis. \\\"In quoting others, we cite ourselves.\\\" \u2014 Julio Cort\u00E1zar\",\n\t\"keywords\": [ \"blockquote\", \"cite\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"value\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"html\",\n\t\t\t\"selector\": \"blockquote\",\n\t\t\t\"multiline\": \"p\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"citation\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"cite\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"left\", \"right\", \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"minHeight\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"minHeight\": false\n\t\t\t}\n\t\t},\n\t\t\"__experimentalOnEnter\": true,\n\t\t\"__experimentalOnMerge\": true,\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"heading\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"layout\": {\n\t\t\t\"allowEditing\": false\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"allowedBlocks\": true\n\t},\n\t\"styles\": [\n\t\t{\n\t\t\t\"name\": \"default\",\n\t\t\t\"label\": \"Default\",\n\t\t\t\"isDefault\": true\n\t\t},\n\t\t{ \"name\": \"plain\", \"label\": \"Plain\" }\n\t],\n\t\"editorStyle\": \"wp-block-quote-editor\",\n\t\"style\": \"wp-block-quote\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks, RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { textAlign, citation } = attributes;\n\n\tconst className = clsx( {\n\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t} );\n\n\treturn (\n\t\t<blockquote { ...useBlockProps.save( { className } ) }>\n\t\t\t<InnerBlocks.Content />\n\t\t\t{ ! RichText.isEmpty( citation ) && (\n\t\t\t\t<RichText.Content tagName=\"cite\" value={ citation } />\n\t\t\t) }\n\t\t</blockquote>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\nimport { createBlock, switchToBlockType } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/verse' ],\n\t\t\ttransform: ( { content } ) => {\n\t\t\t\treturn createBlock( 'core/quote', {}, [\n\t\t\t\t\tcreateBlock( 'core/paragraph', { content } ),\n\t\t\t\t] );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/pullquote' ],\n\t\t\ttransform: ( {\n\t\t\t\tvalue,\n\t\t\t\talign,\n\t\t\t\tcitation,\n\t\t\t\tanchor,\n\t\t\t\tfontSize,\n\t\t\t\tstyle,\n\t\t\t} ) => {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/quote',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tcitation,\n\t\t\t\t\t\tanchor,\n\t\t\t\t\t\tfontSize,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t},\n\t\t\t\t\t[ createBlock( 'core/paragraph', { content: value } ) ]\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'prefix',\n\t\t\tprefix: '>',\n\t\t\ttransform: ( content ) =>\n\t\t\t\tcreateBlock( 'core/quote', {}, [\n\t\t\t\t\tcreateBlock( 'core/paragraph', { content } ),\n\t\t\t\t] ),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tschema: () => ( {\n\t\t\t\tblockquote: {\n\t\t\t\t\tchildren: '*',\n\t\t\t\t},\n\t\t\t} ),\n\t\t\tselector: 'blockquote',\n\t\t\ttransform: ( node, handler ) => {\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/quote',\n\t\t\t\t\t// Don't try to parse any `cite` out of this content.\n\t\t\t\t\t// * There may be more than one cite.\n\t\t\t\t\t// * There may be more attribution text than just the cite.\n\t\t\t\t\t// * If the cite is nested in the quoted text, it's wrong to\n\t\t\t\t\t// remove it.\n\t\t\t\t\t{},\n\t\t\t\t\thandler( {\n\t\t\t\t\t\tHTML: node.innerHTML,\n\t\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\tisMatch: ( {}, blocks ) => {\n\t\t\t\t// When a single block is selected make the transformation\n\t\t\t\t// available only to specific blocks that make sense.\n\t\t\t\tif ( blocks.length === 1 ) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t'core/list',\n\t\t\t\t\t\t'core/pullquote',\n\t\t\t\t\t].includes( blocks[ 0 ].name );\n\t\t\t\t}\n\t\t\t\treturn ! blocks.some( ( { name } ) => name === 'core/quote' );\n\t\t\t},\n\t\t\t__experimentalConvert: ( blocks ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/quote',\n\t\t\t\t\t{},\n\t\t\t\t\tblocks.map( ( block ) =>\n\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/verse' ],\n\t\t\tisMatch: ( {}, block ) => {\n\t\t\t\treturn block.innerBlocks.every( ( innerBlock ) => {\n\t\t\t\t\t// Paragraphs are already in the target format\n\t\t\t\t\tif ( innerBlock.name === 'core/paragraph' ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\t// Check if other blocks can be converted to paragraphs\n\t\t\t\t\tconst converted = switchToBlockType(\n\t\t\t\t\t\tinnerBlock,\n\t\t\t\t\t\t'core/paragraph'\n\t\t\t\t\t);\n\t\t\t\t\treturn converted !== null;\n\t\t\t\t} );\n\t\t\t},\n\t\t\ttransform: ( {}, innerBlocks ) => {\n\t\t\t\tconst paragraphs = innerBlocks.flatMap( ( innerBlock ) => {\n\t\t\t\t\t// If already a paragraph, use it directly\n\t\t\t\t\tif ( innerBlock.name === 'core/paragraph' ) {\n\t\t\t\t\t\treturn innerBlock;\n\t\t\t\t\t}\n\t\t\t\t\t// Otherwise convert to paragraph\n\t\t\t\t\treturn (\n\t\t\t\t\t\tswitchToBlockType( innerBlock, 'core/paragraph' ) || []\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t\tconst content = paragraphs\n\t\t\t\t\t.map( ( { attributes } ) => attributes.content || '' )\n\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t.join( '<br>' );\n\t\t\t\treturn createBlock( 'core/verse', { content } );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\tisMatch: ( { citation }, block ) => {\n\t\t\t\tconst innerBlocks = block.innerBlocks;\n\t\t\t\tif ( ! innerBlocks.length ) {\n\t\t\t\t\treturn ! RichText.isEmpty( citation );\n\t\t\t\t}\n\n\t\t\t\treturn innerBlocks.every( ( innerBlock ) => {\n\t\t\t\t\tif ( innerBlock.name === 'core/paragraph' ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tconst converted = switchToBlockType(\n\t\t\t\t\t\tinnerBlock,\n\t\t\t\t\t\t'core/paragraph'\n\t\t\t\t\t);\n\t\t\t\t\treturn converted !== null;\n\t\t\t\t} );\n\t\t\t},\n\t\t\ttransform: ( { citation }, innerBlocks ) => {\n\t\t\t\tconst paragraphs = innerBlocks.flatMap( ( innerBlock ) => {\n\t\t\t\t\tif ( innerBlock.name === 'core/paragraph' ) {\n\t\t\t\t\t\treturn innerBlock;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\tswitchToBlockType( innerBlock, 'core/paragraph' ) || []\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t\treturn RichText.isEmpty( citation )\n\t\t\t\t\t? paragraphs\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t...paragraphs,\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t ];\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/group' ],\n\t\t\ttransform: ( { citation, anchor }, innerBlocks ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{ anchor },\n\t\t\t\t\tRichText.isEmpty( citation )\n\t\t\t\t\t\t? innerBlocks\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t...innerBlocks,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t ]\n\t\t\t\t),\n\t\t},\n\t],\n\tungroup: ( { citation }, innerBlocks ) =>\n\t\tRichText.isEmpty( citation )\n\t\t\t? innerBlocks\n\t\t\t: [\n\t\t\t\t\t...innerBlocks,\n\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t} ),\n\t\t\t ],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { symbol as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\ticon,\n\t__experimentalLabel: ( { ref } ) => {\n\t\tif ( ! ref ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst entity = select( coreStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_block',\n\t\t\tref\n\t\t);\n\t\tif ( ! entity?.title ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn decodeEntities( entity.title );\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/block\",\n\t\"title\": \"Pattern\",\n\t\"category\": \"reusable\",\n\t\"description\": \"Reuse this design across your site.\",\n\t\"keywords\": [ \"reusable\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"ref\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"content\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"default\": {}\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"pattern/overrides\": \"content\"\n\t},\n\t\"supports\": {\n\t\t\"customClassName\": false,\n\t\t\"html\": false,\n\t\t\"inserter\": false,\n\t\t\"renaming\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo } from '@wordpress/element';\nimport {\n\tuseEntityRecord,\n\tstore as coreStore,\n\tuseEntityBlockEditor,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n\tInnerBlocks,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { getBlockBindingsSource } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nconst NOOP = () => {};\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockControl( {\n\trecordId,\n\tcanOverrideBlocks,\n\thasContent,\n\thandleEditOriginal,\n\tresetContent,\n} ) {\n\tconst canUserEdit = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( coreStore ).canUser( 'update', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_block',\n\t\t\t\tid: recordId,\n\t\t\t} ),\n\t\t[ recordId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ canUserEdit && !! handleEditOriginal && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! hasContent }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nconst EMPTY_OBJECT = {};\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tsetAttributes,\n} ) {\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', 'wp_block', {\n\t\tid: ref,\n\t} );\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tonNavigateToEntityRecord,\n\t\thasPatternOverridesSource,\n\t\tsupportedBlockTypesRaw,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\treturn {\n\t\t\tonNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,\n\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t'core/pattern-overrides'\n\t\t\t),\n\t\t\tsupportedBlockTypesRaw:\n\t\t\t\tgetSettings().__experimentalBlockBindingsSupportedAttributes ||\n\t\t\t\tEMPTY_OBJECT,\n\t\t};\n\t}, [] );\n\n\tconst canOverrideBlocks = useMemo( () => {\n\t\tconst supportedBlockTypes = Object.keys( supportedBlockTypesRaw );\n\t\tconst hasOverridableBlocks = ( _blocks ) =>\n\t\t\t_blocks.some( ( block ) => {\n\t\t\t\tif (\n\t\t\t\t\tsupportedBlockTypes.includes( block.name ) &&\n\t\t\t\t\tisOverridableBlock( block )\n\t\t\t\t) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t\t\t} );\n\t\treturn hasPatternOverridesSource && hasOverridableBlocks( blocks );\n\t}, [ hasPatternOverridesSource, blocks, supportedBlockTypesRaw ] );\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tlayout,\n\t\tvalue: blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\t// Make sure any previous changes are persisted before resetting.\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tsetAttributes( { content: undefined } );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ hasResolved && ! isMissing && (\n\t\t\t\t<ReusableBlockControl\n\t\t\t\t\trecordId={ ref }\n\t\t\t\t\tcanOverrideBlocks={ canOverrideBlocks }\n\t\t\t\t\thasContent={ !! content }\n\t\t\t\t\thandleEditOriginal={\n\t\t\t\t\t\tonNavigateToEntityRecord\n\t\t\t\t\t\t\t? handleEditOriginal\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tresetContent={ resetContent }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "const isObject = ( obj ) =>\n\ttypeof obj === 'object' && ! Array.isArray( obj ) && obj !== null;\n\n// v2: Migrate to a more condensed version of the 'content' attribute attribute.\nconst v2 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's a values sub-property that's an object.\n\t//\n\t// This could fail in the future if a block ever has binding to a `values` attribute.\n\t// Some extra protection is added to ensure `values` is an object, but this only reduces\n\t// the likelihood, it doesn't solve it completely.\n\tisEligible( { content } ) {\n\t\treturn (\n\t\t\t!! content &&\n\t\t\tObject.keys( content ).every(\n\t\t\t\t( contentKey ) =>\n\t\t\t\t\tcontent[ contentKey ].values &&\n\t\t\t\t\tisObject( content[ contentKey ].values )\n\t\t\t)\n\t\t);\n\t},\n\t/*\n\t * Old attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * \t \t\t// The attribute values are now stored as a 'values' sub-property.\n\t * values: { content: 'My content value' },\n\t * \t // ... additional metadata, like the block name can be stored here.\n\t * }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * content: 'My content value',\n\t * }\n\t * }\n\t */\n\tmigrate( attributes ) {\n\t\tconst { content, ...retainedAttributes } = attributes;\n\n\t\tif ( content && Object.keys( content ).length ) {\n\t\t\tconst updatedContent = { ...content };\n\n\t\t\tfor ( const contentKey in content ) {\n\t\t\t\tupdatedContent[ contentKey ] = content[ contentKey ].values;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...retainedAttributes,\n\t\t\t\tcontent: updatedContent,\n\t\t\t};\n\t\t}\n\n\t\treturn attributes;\n\t},\n};\n\n// v1: Rename the `overrides` attribute to the `content` attribute.\nconst v1 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\toverrides: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's an `overrides` object.\n\tisEligible( { overrides } ) {\n\t\treturn !! overrides;\n\t},\n\t/*\n\t * Old attribute format:\n\t * overrides: {\n\t * // An key is an id that represents a block.\n\t * // The values are the attribute values of the block.\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t */\n\tmigrate( attributes ) {\n\t\tconst { overrides, ...retainedAttributes } = attributes;\n\n\t\tconst content = {};\n\n\t\tObject.keys( overrides ).forEach( ( id ) => {\n\t\t\tcontent[ id ] = overrides[ id ];\n\t\t} );\n\n\t\treturn {\n\t\t\t...retainedAttributes,\n\t\t\tcontent,\n\t\t};\n\t},\n};\n\nexport default [ v2, v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { link as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {\n\t\tattributes: {\n\t\t\tcontent: __( 'Read more' ),\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/read-more\",\n\t\"title\": \"Read More\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the link of a post, page, or any other content-type.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"postId\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true,\n\t\t\t\t\"textDecoration\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-read-more\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function ReadMore( {\n\tattributes: { content, linkTarget },\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => setAttributes( { linkTarget: '_self' } ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<RichText\n\t\t\t\tidentifier=\"content\"\n\t\t\t\ttagName=\"a\"\n\t\t\t\taria-label={ __( '\u201CRead more\u201D link text' ) }\n\t\t\t\tplaceholder={ __( 'Read more' ) }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\tsetAttributes( { content: newValue } )\n\t\t\t\t}\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t{ ...blockProps }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/rss\",\n\t\"title\": \"RSS\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Display entries from any RSS or Atom feed.\",\n\t\"keywords\": [ \"atom\", \"feed\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"columns\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t},\n\t\t\"blockLayout\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"list\"\n\t\t},\n\t\t\"feedURL\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"itemsToShow\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5\n\t\t},\n\t\t\"displayExcerpt\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"displayAuthor\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"displayDate\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"excerptLength\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 55\n\t\t},\n\t\t\"openInNewTab\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"padding\": false,\n\t\t\t\t\"margin\": false\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"text\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-rss-editor\",\n\t\"style\": \"wp-block-rss\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tPlaceholder,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n\tTextControl,\n\tExternalLink,\n\t__experimentalInputControl as InputControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { createInterpolateElement, useState } from '@wordpress/element';\nimport { grid, list, pencil, rss } from '@wordpress/icons';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { prependHTTP } from '@wordpress/url';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 20;\n\nexport default function RSSEdit( { attributes, setAttributes, name } ) {\n\tconst [ isEditing, setIsEditing ] = useState( ! attributes.feedURL );\n\n\tconst {\n\t\tblockLayout,\n\t\tcolumns,\n\t\tdisplayAuthor,\n\t\tdisplayDate,\n\t\tdisplayExcerpt,\n\t\texcerptLength,\n\t\tfeedURL,\n\t\titemsToShow,\n\t\topenInNewTab,\n\t\trel,\n\t} = attributes;\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tfunction toggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = attributes[ propName ];\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tfunction onSubmitURL( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( feedURL ) {\n\t\t\tsetAttributes( { feedURL: prependHTTP( feedURL ) } );\n\t\t\tsetIsEditing( false );\n\t\t}\n\t}\n\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: isEditing ? null : disabledRef } );\n\n\tconst label = __( 'RSS URL' );\n\n\tif ( isEditing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ rss }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Display entries from any RSS or Atom feed.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ onSubmitURL }\n\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-form\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL here\u2026' ) }\n\t\t\t\t\t\t\tvalue={ feedURL }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { feedURL: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName=\"wp-block-rss__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst toolbarControls = [\n\t\t{\n\t\t\ticon: pencil,\n\t\t\ttitle: __( 'Edit RSS URL' ),\n\t\t\tonClick: () => setIsEditing( true ),\n\t\t},\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: _x( 'List view', 'RSS block display setting' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'list' } ),\n\t\t\tisActive: blockLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: _x( 'Grid view', 'RSS block display setting' ),\n\t\t\tonClick: () => setAttributes( { blockLayout: 'grid' } ),\n\t\t\tisActive: blockLayout === 'grid',\n\t\t},\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ toolbarControls } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\titemsToShow: 5,\n\t\t\t\t\t\t\tdisplayAuthor: false,\n\t\t\t\t\t\t\tdisplayDate: false,\n\t\t\t\t\t\t\tdisplayExcerpt: false,\n\t\t\t\t\t\t\texcerptLength: 55,\n\t\t\t\t\t\t\tcolumns: 2,\n\t\t\t\t\t\t\topenInNewTab: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\thasValue={ () => itemsToShow !== 5 }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { itemsToShow: 5 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\t\tvalue={ itemsToShow }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { itemsToShow: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ DEFAULT_MIN_ITEMS }\n\t\t\t\t\t\t\tmax={ DEFAULT_MAX_ITEMS }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\thasValue={ () => !! displayAuthor }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAuthor: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAuthor' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\thasValue={ () => !! displayDate }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayDate: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayDate' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\thasValue={ () => !! displayExcerpt }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayExcerpt: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'displayExcerpt' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t{ displayExcerpt && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\thasValue={ () => excerptLength !== 55 }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: 55 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\n\t\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 10 }\n\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ blockLayout === 'grid' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\thasValue={ () => columns !== 2 }\n\t\t\t\t\t\t\tonDeselect={ () => setAttributes( { columns: 2 } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\thasValue={ () => !! openInNewTab }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { openInNewTab: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\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\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { rss as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tfeedURL: 'https://wordpress.org',\n\t\t},\n\t},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'label',\n\t\t\tlabel: __( 'Label' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'buttonText',\n\t\t\tlabel: __( 'Button text' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t\t{\n\t\t\tid: 'placeholder',\n\t\t\tlabel: __( 'Placeholder' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'label', 'buttonText', 'placeholder' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/search\",\n\t\"title\": \"Search\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Help visitors find your content.\",\n\t\"keywords\": [ \"find\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"showLabel\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"placeholder\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"widthUnit\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"buttonText\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"buttonPosition\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"button-outside\"\n\t\t},\n\t\t\"buttonUseIcon\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"query\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"default\": {}\n\t\t},\n\t\t\"isSearchFieldHidden\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"left\", \"center\", \"right\" ],\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": true,\n\t\t\"typography\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalSelector\": \".wp-block-search__label, .wp-block-search__input, .wp-block-search__button\",\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"color\": true,\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"html\": false\n\t},\n\t\"editorStyle\": \"wp-block-search-editor\",\n\t\"style\": \"wp-block-search\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tSelectControl,\n\tToggleControl,\n\tResizableBox,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tisPercentageUnit,\n} from './utils.js';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\nconst PERCENTAGE_WIDTHS = [ 25, 50, 75, 100 ];\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tisSearchFieldHidden,\n\t\tstyle,\n\t} = attributes;\n\n\tconst wasJustInsertedIntoNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( wasJustInsertedIntoNavigationBlock ) {\n\t\t\t// This side-effect should not create an undo level.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tshowLabel: false,\n\t\t\t\tbuttonUseIcon: true,\n\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t} );\n\t\t}\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\twasJustInsertedIntoNavigationBlock,\n\t\tsetAttributes,\n\t] );\n\n\tconst borderRadius = style?.border?.radius;\n\tlet borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps = {\n\t\t\t...borderProps,\n\t\t\tstyle: {\n\t\t\t\t...borderProps.style,\n\t\t\t\tborderRadius: `${ borderRadius }px`,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst [ fluidTypographySettings, layout ] = useSettings(\n\t\t'typography.fluid',\n\t\t'layout'\n\t);\n\tconst typographyProps = useTypographyProps( attributes, {\n\t\ttypography: {\n\t\t\tfluid: fluidTypographySettings,\n\t\t},\n\t\tlayout: {\n\t\t\twideSize: layout?.wideSize,\n\t\t},\n\t} );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\tconst searchFieldRef = useRef();\n\tconst buttonRef = useRef();\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tuseEffect( () => {\n\t\tif ( hasOnlyButton && ! isSelected ) {\n\t\t\tsetAttributes( {\n\t\t\t\tisSearchFieldHidden: true,\n\t\t\t} );\n\t\t}\n\t}, [ hasOnlyButton, isSelected, setAttributes ] );\n\n\t// Show the search field when width changes.\n\tuseEffect( () => {\n\t\tif ( ! hasOnlyButton || ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tisSearchFieldHidden: false,\n\t\t} );\n\t}, [ hasOnlyButton, isSelected, setAttributes, width ] );\n\n\tconst getBlockClassNames = () => {\n\t\treturn clsx(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined,\n\t\t\thasOnlyButton && isSearchFieldHidden\n\t\t\t\t? 'wp-block-search__searchfield-hidden'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\tlabel: __( 'Button outside' ),\n\t\t\tvalue: 'button-outside',\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Button inside' ),\n\t\t\tvalue: 'button-inside',\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'No button' ),\n\t\t\tvalue: 'no-button',\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Button only' ),\n\t\t\tvalue: 'button-only',\n\t\t},\n\t];\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = clsx(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\ttypographyProps.className\n\t\t);\n\t\tconst textFieldStyles = {\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? {\n\t\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderTopLeftRadius,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t\t }\n\t\t\t\t: borderProps.style ),\n\t\t\t...typographyProps.style,\n\t\t\ttextDecoration: undefined,\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder\u2026' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t\tref={ searchFieldRef }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = clsx(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\ttypographyProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...typographyProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? {\n\t\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\t\tborderTopLeftRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderTopLeftRadius,\n\t\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t\t }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\t\tconst handleButtonClick = () => {\n\t\t\tif ( hasOnlyButton ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tisSearchFieldHidden: ! isSearchFieldHidden,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t\tref={ buttonRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"buttonText\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text\u2026' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={ handleButtonClick }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst controls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\twidthUnit: undefined,\n\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t\tbuttonUseIcon: false,\n\t\t\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => ! showLabel }\n\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowLabel: value,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => buttonPosition !== 'button-outside' }\n\t\t\t\t\t\tlabel={ __( 'Button position' ) }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tvalue={ buttonPosition }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Button position' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonPosition: value,\n\t\t\t\t\t\t\t\t\tisSearchFieldHidden:\n\t\t\t\t\t\t\t\t\t\tvalue === 'button-only',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\toptions={ buttonPositionControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ buttonPosition !== 'no-button' && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! buttonUseIcon }\n\t\t\t\t\t\t\tlabel={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: false,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tchecked={ buttonUseIcon }\n\t\t\t\t\t\t\t\tlabel={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tbuttonUseIcon: value,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! width }\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\t\t\twidthUnit: undefined,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tid={ unitControlInputId } // Unused, kept for backwards compatibility\n\t\t\t\t\t\t\t\tmin={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t: MIN_WIDTH\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit )\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\t\tconst parsedNewWidth =\n\t\t\t\t\t\t\t\t\t\tnewWidth === ''\n\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t: parseInt( newWidth, 10 );\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\twidth: parsedNewWidth,\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\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\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\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\tPERCENTAGE_WIDTHS.includes( width ) &&\n\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t? width\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\twidth: newWidth,\n\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\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\tisBlock\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ PERCENTAGE_WIDTHS.map( ( widthValue ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ widthValue }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: %d: Percentage value. */\n\t\t\t\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\t\t\t\twidthValue\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\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</ToggleGroupControl>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst isNonZeroBorderRadius = ( radius ) =>\n\t\tradius !== undefined && parseInt( radius, 10 ) !== 0;\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tisNonZeroBorderRadius( radius )\n\t\t\t? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`\n\t\t\t: undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tif ( isButtonPositionInside ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst {\n\t\t\t\t\tborderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius,\n\t\t\t\t} = borderProps.style;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( borderTopLeftRadius ),\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tpadBorderRadius( borderTopRightRadius ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius(\n\t\t\t\t\t\tborderBottomLeftRadius\n\t\t\t\t\t),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius(\n\t\t\t\t\t\tborderBottomRightRadius\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t\tstyle: {\n\t\t\t...typographyProps.style,\n\t\t\t// Input opts out of text decoration.\n\t\t\ttextDecoration: undefined,\n\t\t},\n\t} );\n\n\tconst labelClassnames = clsx(\n\t\t'wp-block-search__label',\n\t\ttypographyProps.className\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\tclassName={ labelClassnames }\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label\u2026' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t\tstyle={ typographyProps.style }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth:\n\t\t\t\t\t\twidth === undefined\n\t\t\t\t\t\t\t? 'auto'\n\t\t\t\t\t\t\t: `${ width }${ widthUnit }`,\n\t\t\t\t\theight: 'auto',\n\t\t\t\t} }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside ||\n\t\t\t\t\tisButtonPositionOutside ||\n\t\t\t\t\thasOnlyButton ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n", "/**\n * Constants\n */\nexport const PC_WIDTH_DEFAULT = 50;\nexport const PX_WIDTH_DEFAULT = 350;\nexport const MIN_WIDTH = 220;\n\n/**\n * Returns a boolean whether passed unit is percentage\n *\n * @param {string} unit Block width unit.\n *\n * @return {boolean} \tWhether unit is '%'.\n */\nexport function isPercentageUnit( unit ) {\n\treturn unit === '%';\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'default',\n\t\tisDefault: true,\n\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t},\n];\n\nexport default variations;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetColorClassName,\n\tInspectorControls,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { HorizontalRule, SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDeprecatedOpacity from './use-deprecated-opacity';\n\nconst HtmlElementControl = ( { tagName, setAttributes } ) => {\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\tvalue={ tagName }\n\t\t\tonChange={ ( newValue ) => setAttributes( { tagName: newValue } ) }\n\t\t\toptions={ [\n\t\t\t\t{ label: __( 'Default (<hr>)' ), value: 'hr' },\n\t\t\t\t{ label: '<div>', value: 'div' },\n\t\t\t] }\n\t\t\thelp={\n\t\t\t\ttagName === 'hr'\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Only select <hr> if the separator conveys important information and should be announced by screen readers.'\n\t\t\t\t\t )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'The <div> element should only be used if the block is a design element with no semantic meaning.'\n\t\t\t\t\t )\n\t\t\t}\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n};\n\nexport default function SeparatorEdit( { attributes, setAttributes } ) {\n\tconst { backgroundColor, opacity, style, tagName } = attributes;\n\tconst colorProps = useColorProps( attributes );\n\tconst currentColor = colorProps?.style?.backgroundColor;\n\tconst hasCustomColor = !! style?.color?.background;\n\n\tuseDeprecatedOpacity( opacity, currentColor, setAttributes );\n\n\t// The dots styles uses text for the dots, to change those dots color is\n\t// using color, not backgroundColor.\n\tconst colorClass = getColorClassName( 'color', backgroundColor );\n\n\tconst className = clsx(\n\t\t{\n\t\t\t'has-text-color': backgroundColor || currentColor,\n\t\t\t[ colorClass ]: colorClass,\n\t\t\t'has-css-opacity': opacity === 'css',\n\t\t\t'has-alpha-channel-opacity': opacity === 'alpha-channel',\n\t\t},\n\t\tcolorProps.className\n\t);\n\n\tconst styles = {\n\t\tcolor: currentColor,\n\t\tbackgroundColor: currentColor,\n\t};\n\tconst Wrapper = tagName === 'hr' ? HorizontalRule : tagName;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<HtmlElementControl\n\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<Wrapper\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName,\n\t\t\t\t\tstyle: hasCustomColor ? styles : undefined,\n\t\t\t\t} ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\n\nexport default function useDeprecatedOpacity(\n\topacity,\n\tcurrentColor,\n\tsetAttributes\n) {\n\tconst [ deprecatedOpacityWithNoColor, setDeprecatedOpacityWithNoColor ] =\n\t\tuseState( false );\n\tconst previousColor = usePrevious( currentColor );\n\n\t// A separator with no color set will always have previousColor set to undefined,\n\t// and we need to differentiate these from those with color set that will return\n\t// previousColor as undefined on the first render.\n\tuseEffect( () => {\n\t\tif ( opacity === 'css' && ! currentColor && ! previousColor ) {\n\t\t\tsetDeprecatedOpacityWithNoColor( true );\n\t\t}\n\t}, [ currentColor, previousColor, opacity ] );\n\n\t// For deprecated blocks, that have a default 0.4 css opacity set, we\n\t// need to remove this if the current color is changed, or a color is added.\n\t// In these instances the opacity attribute is set back to the default of\n\t// alpha-channel which allows a new custom opacity to be set via the color picker.\n\tuseEffect( () => {\n\t\tif (\n\t\t\topacity === 'css' &&\n\t\t\t( ( deprecatedOpacityWithNoColor && currentColor ) ||\n\t\t\t\t( previousColor && currentColor !== previousColor ) )\n\t\t) {\n\t\t\tsetAttributes( { opacity: 'alpha-channel' } );\n\t\t\tsetDeprecatedOpacityWithNoColor( false );\n\t\t}\n\t}, [ deprecatedOpacityWithNoColor, currentColor, previousColor ] );\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/separator\",\n\t\"title\": \"Separator\",\n\t\"category\": \"design\",\n\t\"description\": \"Create a break between ideas or sections with a horizontal separator.\",\n\t\"keywords\": [ \"horizontal-line\", \"hr\", \"divider\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"opacity\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"alpha-channel\"\n\t\t},\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"hr\", \"div\" ],\n\t\t\t\"default\": \"hr\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"center\", \"wide\", \"full\" ],\n\t\t\"color\": {\n\t\t\t\"enableContrastChecker\": false,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"background\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ]\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{ \"name\": \"default\", \"label\": \"Default\", \"isDefault\": true },\n\t\t{ \"name\": \"wide\", \"label\": \"Wide Line\" },\n\t\t{ \"name\": \"dots\", \"label\": \"Dots\" }\n\t],\n\t\"editorStyle\": \"wp-block-separator-editor\",\n\t\"style\": \"wp-block-separator\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetColorClassName,\n\tuseBlockProps,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function separatorSave( { attributes } ) {\n\tconst { backgroundColor, style, opacity, tagName: Tag } = attributes;\n\tconst customColor = style?.color?.background;\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\t// The hr support changing color using border-color, since border-color\n\t// is not yet supported in the color palette, we use background-color.\n\n\t// The dots styles uses text for the dots, to change those dots color is\n\t// using color, not backgroundColor.\n\tconst colorClass = getColorClassName( 'color', backgroundColor );\n\n\tconst className = clsx(\n\t\t{\n\t\t\t'has-text-color': backgroundColor || customColor,\n\t\t\t[ colorClass ]: colorClass,\n\t\t\t'has-css-opacity': opacity === 'css',\n\t\t\t'has-alpha-channel-opacity': opacity === 'alpha-channel',\n\t\t},\n\t\tcolorProps.className\n\t);\n\n\tconst styles = {\n\t\tbackgroundColor: colorProps?.style?.backgroundColor,\n\t\tcolor: colorClass ? undefined : customColor,\n\t};\n\treturn <Tag { ...useBlockProps.save( { className, style: styles } ) } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'input',\n\t\t\tregExp: /^-{3,}$/,\n\t\t\ttransform: () => [\n\t\t\t\tcreateBlock( 'core/separator' ),\n\t\t\t\tcreateBlock( getDefaultBlockName() ),\n\t\t\t],\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'hr',\n\t\t\tschema: {\n\t\t\t\thr: {},\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/spacer' ], // Transform to Spacer.\n\t\t\ttransform: ( { anchor } ) => {\n\t\t\t\treturn createBlock( 'core/spacer', {\n\t\t\t\t\tanchor: anchor || undefined,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { getColorClassName, useBlockProps } from '@wordpress/block-editor';\n\nconst v1 = {\n\tattributes: {\n\t\tcolor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { color, customColor } = attributes;\n\n\t\t// the hr support changing color using border-color, since border-color\n\t\t// is not yet supported in the color palette, we use background-color\n\t\tconst backgroundClass = getColorClassName( 'background-color', color );\n\t\t// the dots styles uses text for the dots, to change those dots color is\n\t\t// using color, not backgroundColor\n\t\tconst colorClass = getColorClassName( 'color', color );\n\n\t\tconst className = clsx( {\n\t\t\t'has-text-color has-background': color || customColor,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t[ colorClass ]: colorClass,\n\t\t} );\n\n\t\tconst style = {\n\t\t\tbackgroundColor: backgroundClass ? undefined : customColor,\n\t\t\tcolor: colorClass ? undefined : customColor,\n\t\t};\n\n\t\treturn <hr { ...useBlockProps.save( { className, style } ) } />;\n\t},\n\tmigrate( attributes ) {\n\t\tconst { color, customColor, ...restAttributes } = attributes;\n\t\treturn {\n\t\t\t...restAttributes,\n\t\t\tbackgroundColor: color ? color : undefined,\n\t\t\topacity: 'css',\n\t\t\tstyle: customColor\n\t\t\t\t? { color: { background: customColor } }\n\t\t\t\t: undefined,\n\t\t\ttagName: 'hr',\n\t\t};\n\t},\n};\n\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { separator as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tcustomColor: '#065174',\n\t\t\tclassName: 'is-style-wide',\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PlainText, useBlockProps } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Placeholder } from '@wordpress/components';\nimport { shortcode } from '@wordpress/icons';\n\nexport default function ShortcodeEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( ShortcodeEdit );\n\tconst inputId = `blocks-shortcode-input-${ instanceId }`;\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<Placeholder icon={ shortcode } label={ __( 'Shortcode' ) }>\n\t\t\t\t<PlainText\n\t\t\t\t\tclassName=\"blocks-shortcode__textarea\"\n\t\t\t\t\tid={ inputId }\n\t\t\t\t\tvalue={ attributes.text }\n\t\t\t\t\taria-label={ __( 'Shortcode text' ) }\n\t\t\t\t\tplaceholder={ __( 'Write shortcode here\u2026' ) }\n\t\t\t\t\tonChange={ ( text ) => setAttributes( { text } ) }\n\t\t\t\t/>\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save( { attributes } ) {\n\treturn <RawHTML>{ attributes.text }</RawHTML>;\n}\n", "/**\n * WordPress dependencies\n */\nimport { removep, autop } from '@wordpress/autop';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\t// Per \"Shortcode names should be all lowercase and use all\n\t\t\t// letters, but numbers and underscores should work fine too.\n\t\t\t// Be wary of using hyphens (dashes), you'll be better off not\n\t\t\t// using them.\" in https://codex.wordpress.org/Shortcode_API\n\t\t\t// Require that the first character be a letter. This notably\n\t\t\t// prevents footnote markings ([1]) from being caught as\n\t\t\t// shortcodes.\n\t\t\ttag: '[a-z][a-z0-9_-]*',\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( attrs, { content } ) => {\n\t\t\t\t\t\treturn removep( autop( content ) );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tpriority: 20,\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/shortcode\",\n\t\"title\": \"Shortcode\",\n\t\"category\": \"widgets\",\n\t\"description\": \"Insert additional custom elements with a WordPress shortcode.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"text\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"raw\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"className\": false,\n\t\t\"customClassName\": false,\n\t\t\"html\": false\n\t},\n\t\"editorStyle\": \"wp-block-shortcode-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { shortcode as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport transforms from './transforms';\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/site-logo\",\n\t\"title\": \"Site Logo\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display an image to represent this site. Update this block and the changes apply everywhere.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"width\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"shouldSyncIcon\": {\n\t\t\t\"type\": \"boolean\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 500,\n\t\t\"attributes\": {\n\t\t\t\"width\": 350,\n\t\t\t\"className\": \"block-editor-block-types-list__site-logo-example\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"align\": true,\n\t\t\"alignWide\": false,\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": false\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"filter\": {\n\t\t\t\"duotone\": true\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{\n\t\t\t\"name\": \"default\",\n\t\t\t\"label\": \"Default\",\n\t\t\t\"isDefault\": true\n\t\t},\n\t\t{ \"name\": \"rounded\", \"label\": \"Rounded\" }\n\t],\n\t\"selectors\": {\n\t\t\"filter\": {\n\t\t\t\"duotone\": \".wp-block-site-logo img, .wp-block-site-logo .components-placeholder__illustration, .wp-block-site-logo .components-placeholder::before\"\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-site-logo-editor\",\n\t\"style\": \"wp-block-site-logo\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { MIN_SIZE } from '../image/constants';\nimport { MediaControl, MediaControlPreview } from '../utils/media-control';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Check if we're in contentOnly mode\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.maxWidth,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<>\n\t\t\t<img\n\t\t\t\tclassName=\"custom-logo\"\n\t\t\t\tsrc={ logoUrl }\n\t\t\t\talt={ alt }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetNaturalSize( {\n\t\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isBlobURL( logoUrl ) && <Spinner /> }\n\t\t</>\n\t);\n\n\tlet imgWrapper = img;\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName=\"custom-logo-link\"\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t);\n\t}\n\n\tif ( ! isResizable || ! naturalWidth || ! naturalHeight ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\t// Hide crop and dimensions editing in write mode\n\tconst shouldShowCropAndDimensions = ! isContentOnlyMode;\n\n\tlet imgEdit;\n\tif ( canEditImage && isEditingImage ) {\n\t\timgEdit = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// Always render ResizableBox but disable resize functionality in contentOnly mode\n\t\timgEdit = (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected && shouldShowCropAndDimensions }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={ siteIconSettingsUrl }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! width }\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => linkTarget === '_blank' }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\thasValue={ () => !! shouldSyncIcon }\n\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t\t\t\t\t\t\tsetIcon( undefined );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ canEditImage &&\n\t\t\t\t! isEditingImage &&\n\t\t\t\tshouldShowCropAndDimensions && (\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t) }\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'attachment',\n\t\t\t\t_siteLogoId,\n\t\t\t\t{\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t}\n\t\t\t);\n\t\tconst _isRequestingMediaItem =\n\t\t\t!! _siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\t'attachment',\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\tconst [ temporaryURL, setTemporaryURL ] = useState();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetTemporaryURL( media.url );\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetTemporaryURL();\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetTemporaryURL( image.url );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tname: ! logoUrl ? __( 'Choose logo' ) : __( 'Replace' ),\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonReset: onRemoveLogo,\n\t};\n\tconst controls = canUserEdit && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvariant=\"toolbar\"\n\t\t\t/>\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\n\t// Reset temporary url when logoUrl is available.\n\tuseEffect( () => {\n\t\tif ( logoUrl && temporaryURL ) {\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}, [ logoUrl, temporaryURL ] );\n\n\tif ( !! logoUrl || !! temporaryURL ) {\n\t\tlogoImage = (\n\t\t\t<>\n\t\t\t\t<SiteLogo\n\t\t\t\t\talt={ alt }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tlogoUrl={ temporaryURL || logoUrl }\n\t\t\t\t\tsetLogo={ setLogo }\n\t\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\t\tsiteUrl={ url }\n\t\t\t\t\tsetIcon={ setIcon }\n\t\t\t\t\ticonId={ siteIconId }\n\t\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t\t/>\n\t\t\t\t{ canUserEdit && <DropZone onFilesDrop={ onFilesDrop } /> }\n\t\t\t</>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = clsx(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-default-size': ! width,\n\t\t'is-transient': temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( { className: classes } );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Media' ) }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ ! canUserEdit ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-container\"\n\t\t\t\t\t\tstyle={ { gridColumn: '1 / -1' } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<MediaControlPreview\n\t\t\t\t\t\t\turl={ mediaItemData?.source_url }\n\t\t\t\t\t\t\talt={ mediaItemData?.alt_text }\n\t\t\t\t\t\t\tfilename={\n\t\t\t\t\t\t\t\tmediaItemData?.media_details?.sizes?.full\n\t\t\t\t\t\t\t\t\t?.file || mediaItemData?.slug\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! logoUrl }\n\t\t\t\t\t\tlabel={ __( 'Logo' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<MediaControl\n\t\t\t\t\t\t\tmediaId={ siteLogoId }\n\t\t\t\t\t\t\tmediaUrl={ logoUrl }\n\t\t\t\t\t\t\talt={ mediaItemData?.alt_text }\n\t\t\t\t\t\t\tfilename={\n\t\t\t\t\t\t\t\tmediaItemData?.media_details?.sizes?.full\n\t\t\t\t\t\t\t\t\t?.file || mediaItemData?.slug\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tonSelect={ onSelectLogo }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ onRemoveLogo }\n\t\t\t\t\t\t\tisUploading={ !! temporaryURL }\n\t\t\t\t\t\t\temptyLabel={ __( 'Choose logo' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ ( !! logoUrl || !! temporaryURL ) && logoImage }\n\t\t\t{ ( isLoading ||\n\t\t\t\t( ! temporaryURL && ! logoUrl && ! canUserEdit ) ) && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\" withIllustration>\n\t\t\t\t\t{ isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\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</Placeholder>\n\t\t\t) }\n\t\t\t{ ! isLoading && ! temporaryURL && ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Choose logo' ) }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"middle right\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\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</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/site-title' ],\n\t\t\ttransform: ( { isLink, linkTarget } ) => {\n\t\t\t\treturn createBlock( 'core/site-title', {\n\t\t\t\t\tisLink,\n\t\t\t\t\tlinkTarget,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { siteLogo as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/site-tagline\",\n\t\"title\": \"Site Tagline\",\n\t\"category\": \"theme\",\n\t\"description\": \"Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.\",\n\t\"keywords\": [ \"description\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [ 0, 1, 2, 3, 4, 5, 6 ]\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 350,\n\t\t\"attributes\": {\n\t\t\t\"textAlign\": \"center\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"contentRole\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-site-tagline-editor\",\n\t\"style\": \"wp-block-site-tagline\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tAlignmentControl,\n\tuseBlockProps,\n\tBlockControls,\n\tHeadingLevelDropdown,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function SiteTaglineEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst { textAlign, level, levelOptions } = attributes;\n\tconst { canUserEdit, tagline } = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst canEdit = canUser( 'update', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tconst settings = canEdit ? getEditedEntityRecord( 'root', 'site' ) : {};\n\t\tconst readOnlySettings = getEntityRecord( 'root', '__unstableBase' );\n\n\t\treturn {\n\t\t\tcanUserEdit: canEdit,\n\t\t\ttagline: canEdit\n\t\t\t\t? settings?.description\n\t\t\t\t: readOnlySettings?.description,\n\t\t};\n\t}, [] );\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tfunction setTagline( newTagline ) {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdescription: newTagline,\n\t\t} );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t'wp-block-site-tagline__placeholder': ! canUserEdit && ! tagline,\n\t\t} ),\n\t} );\n\tconst siteTaglineContent = canUserEdit ? (\n\t\t<RichText\n\t\t\tallowedFormats={ [] }\n\t\t\tonChange={ setTagline }\n\t\t\taria-label={ __( 'Site tagline text' ) }\n\t\t\tplaceholder={ __( 'Write site tagline\u2026' ) }\n\t\t\ttagName={ TagName }\n\t\t\tvalue={ tagline }\n\t\t\tdisableLineBreaks\n\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t}\n\t\t\t{ ...blockProps }\n\t\t/>\n\t) : (\n\t\t<TagName { ...blockProps }>\n\t\t\t{ tagline || __( 'Site Tagline placeholder' ) }\n\t\t</TagName>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\tsetAttributes( { textAlign: newAlign } )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ siteTaglineContent }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport default (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\">\n\t\t<Path d=\"M4 10.5h16V9H4v1.5ZM4 15h9v-1.5H4V15Z\" />\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/site-title\",\n\t\"title\": \"Site Title\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the name of this site. Update the block, and the changes apply everywhere it\u2019s used. This will also appear in the browser title bar and in search results.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 1\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [ 0, 1, 2, 3, 4, 5, 6 ]\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"linkTarget\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"_self\",\n\t\t\t\"role\": \"content\"\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"viewportWidth\": 500\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-site-title-editor\",\n\t\"style\": \"wp-block-site-title\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tAlignmentControl,\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tHeadingLevelDropdown,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function SiteTitleEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst { level, levelOptions, textAlign, isLink, linkTarget } = attributes;\n\tconst { canUserEdit, title } = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst canEdit = canUser( 'update', {\n\t\t\tkind: 'root',\n\t\t\tname: 'site',\n\t\t} );\n\t\tconst settings = canEdit ? getEditedEntityRecord( 'root', 'site' ) : {};\n\t\tconst readOnlySettings = getEntityRecord( 'root', '__unstableBase' );\n\n\t\treturn {\n\t\t\tcanUserEdit: canEdit,\n\t\t\ttitle: canEdit ? settings?.title : readOnlySettings?.name,\n\t\t};\n\t}, [] );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tfunction setTitle( newTitle ) {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\ttitle: newTitle.trim(),\n\t\t} );\n\t}\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t'wp-block-site-title__placeholder': ! canUserEdit && ! title,\n\t\t} ),\n\t} );\n\tconst siteTitleContent = canUserEdit ? (\n\t\t<TagName { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName={ isLink ? 'a' : 'span' }\n\t\t\t\thref={ isLink ? '#site-title-pseudo-link' : undefined }\n\t\t\t\taria-label={ __( 'Site title text' ) }\n\t\t\t\tplaceholder={ __( 'Write site title\u2026' ) }\n\t\t\t\tvalue={ title }\n\t\t\t\tonChange={ setTitle }\n\t\t\t\tallowedFormats={ [] }\n\t\t\t\tdisableLineBreaks\n\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</TagName>\n\t) : (\n\t\t<TagName { ...blockProps }>\n\t\t\t{ isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#site-title-pseudo-link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t{ decodeEntities( title ) ||\n\t\t\t\t\t\t__( 'Site Title placeholder' ) }\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<span>\n\t\t\t\t\t{ decodeEntities( title ) ||\n\t\t\t\t\t\t__( 'Site Title placeholder' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</TagName>\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\t\tvalue={ level }\n\t\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: true,\n\t\t\t\t\t\t\tlinkTarget: '_self',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => ! isLink }\n\t\t\t\t\t\tlabel={ __( 'Make title link to home' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: true } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Make title link to home' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => linkTarget !== '_self' }\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { linkTarget: '_self' } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ siteTitleContent }\n\t\t</>\n\t);\n}\n", "/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\tlevel: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 1,\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tisLink: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tlinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '_self',\n\t\t},\n\t},\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t\thtml: false,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t\tmargin: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t},\n\t},\n\tsave() {\n\t\treturn null;\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v1 ];\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/site-logo' ],\n\t\t\ttransform: ( { isLink, linkTarget } ) => {\n\t\t\t\treturn createBlock( 'core/site-logo', {\n\t\t\t\t\tisLink,\n\t\t\t\t\tlinkTarget,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { mapMarker as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport deprecated from './deprecated';\nimport transforms from './transforms';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tviewportWidth: 350,\n\t\tattributes: {\n\t\t\ttextAlign: 'center',\n\t\t},\n\t},\n\tedit,\n\ttransforms,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { share as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport variations from './variations';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'url',\n\t\t\tEdit: 'link', // TODO: replace with custom component\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\turl: item.url,\n\t\t\t\trel: item.rel,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\turl: value.url,\n\t\t\t\trel: value.rel,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'label',\n\t\t\tlabel: __( 'Label' ),\n\t\t\ttype: 'text',\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'link', 'label' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockEditingMode,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef, createInterpolateElement } from '@wordpress/element';\nimport {\n\tIcon,\n\tButton,\n\tDropdown,\n\tTextControl,\n\tToolbarButton,\n\tExternalLink,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getSocialService } from './social-list';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n\tname,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst isContentOnlyMode = useBlockEditingMode() === 'contentOnly';\n\n\tconst { activeVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\treturn {\n\t\t\t\tactiveVariation: getActiveBlockVariation( name, attributes ),\n\t\t\t};\n\t\t},\n\t\t[ name, attributes ]\n\t);\n\n\tconst { icon, label: socialLinkName } = getSocialService( activeVariation );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ isContentOnlyMode && showLabels && (\n\t\t\t\t// Add an extra control to modify the label attribute when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit this attribute.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { placement: 'bottom-start' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Text' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tclassName=\"wp-block-social-link__toolbar_content_text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Provide a text label or use the default.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplaceholder={ socialLinkName }\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</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\thasValue={ () => !! label }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( { label: undefined } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Link relation' ) }\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t<ExternalLink href=\"https://developer.mozilla.org/docs/Web/HTML/Attributes/rel\" />\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\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { ChainIcon } from './icons';\n\n/**\n * Retrieves the social service's icon component and label.\n *\n * @param {Object} variation The object of the social service variation.\n * @return {Object} An object containing the Icon component for social service and label.\n */\nexport function getSocialService( variation ) {\n\tif ( ! variation?.name ) {\n\t\treturn {\n\t\t\ticon: ChainIcon,\n\t\t\tlabel: __( 'Social Icon' ),\n\t\t};\n\t}\n\n\treturn {\n\t\ticon: variation?.icon ?? ChainIcon,\n\t\tlabel: variation?.title ?? __( 'Social Icon' ),\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const AmazonIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\n\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const BandcampIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const BehanceIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const BlueskyIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const ChainIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const CodepenIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const DeviantArtIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const DiscordIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M20.317 4.369A19.88 19.88 0 0 0 15.894 3a14.145 14.145 0 0 0-.719 1.518 19.205 19.205 0 0 0-5.351 0A14.183 14.183 0 0 0 9.104 3 19.896 19.896 0 0 0 4.682 4.369a18.921 18.921 0 0 0-3.012 12.52 19.929 19.929 0 0 0 6.081 3.097c.487-.65.922-1.339 1.3-2.061a12.445 12.445 0 0 1-1.958-.896c.165-.12.326-.246.483-.374a12.445 12.445 0 0 0 8.946 0c.157.128.318.253.483.374-.627.371-1.281.683-1.958.896.379.722.813 1.41 1.3 2.061a19.94 19.94 0 0 0 6.081-3.097 18.921 18.921 0 0 0-3.012-12.52ZM8.12 15.233c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Zm7.757 0c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const DribbbleIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const DropboxIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const EtsyIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const FacebookIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const FeedIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const FivehundredpxIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const FlickrIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const FoursquareIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const GoodreadsIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const GoogleIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const GitHubIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const GravatarIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M10.8001 4.69937V10.6494C10.8001 11.1001 10.9791 11.5323 11.2978 11.851C11.6165 12.1697 12.0487 12.3487 12.4994 12.3487C12.9501 12.3487 13.3824 12.1697 13.7011 11.851C14.0198 11.5323 14.1988 11.1001 14.1988 10.6494V6.69089C15.2418 7.05861 16.1371 7.75537 16.7496 8.67617C17.3622 9.59698 17.6589 10.6919 17.595 11.796C17.5311 12.9001 17.1101 13.9535 16.3954 14.7975C15.6807 15.6415 14.711 16.2303 13.6325 16.4753C12.5541 16.7202 11.4252 16.608 10.4161 16.1555C9.40691 15.703 8.57217 14.9348 8.03763 13.9667C7.50308 12.9985 7.29769 11.8828 7.45242 10.7877C7.60714 9.69266 8.11359 8.67755 8.89545 7.89537C9.20904 7.57521 9.38364 7.14426 9.38132 6.69611C9.37899 6.24797 9.19994 5.81884 8.88305 5.50195C8.56616 5.18506 8.13704 5.00601 7.68889 5.00369C7.24075 5.00137 6.80979 5.17597 6.48964 5.48956C5.09907 6.8801 4.23369 8.7098 4.04094 10.6669C3.84819 12.624 4.34 14.5873 5.43257 16.2224C6.52515 17.8575 8.15088 19.0632 10.0328 19.634C11.9146 20.2049 13.9362 20.1055 15.753 19.3529C17.5699 18.6003 19.0695 17.241 19.9965 15.5066C20.9234 13.7722 21.2203 11.7701 20.8366 9.84133C20.4528 7.91259 19.4122 6.17658 17.892 4.92911C16.3717 3.68163 14.466 2.99987 12.4994 3C12.0487 3 11.6165 3.17904 11.2978 3.49773C10.9791 3.81643 10.8001 4.24867 10.8001 4.69937Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const InstagramIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const LastfmIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M 12.0002 1.5 C 6.2006 1.5 1.5 6.2011 1.5 11.9998 C 1.5 17.799 6.2006 22.5 12.0002 22.5 C 17.799 22.5 22.5 17.799 22.5 11.9998 C 22.5 6.2011 17.799 1.5 12.0002 1.5 Z M 16.1974 16.2204 C 14.8164 16.2152 13.9346 15.587 13.3345 14.1859 L 13.1816 13.8451 L 11.8541 10.8101 C 11.4271 9.7688 10.3526 9.0712 9.1801 9.0712 C 7.5695 9.0712 6.2593 10.3851 6.2593 12.001 C 6.2593 13.6165 7.5695 14.9303 9.1801 14.9303 C 10.272 14.9303 11.2651 14.3275 11.772 13.3567 C 11.7893 13.3235 11.8239 13.302 11.863 13.3038 C 11.9007 13.3054 11.9353 13.3288 11.9504 13.3632 L 12.4865 14.6046 C 12.5016 14.639 12.4956 14.6778 12.4723 14.7069 C 11.6605 15.6995 10.4602 16.2683 9.1801 16.2683 C 6.8331 16.2683 4.9234 14.3536 4.9234 12.001 C 4.9234 9.6468 6.833 7.732 9.1801 7.732 C 10.9572 7.732 12.3909 8.6907 13.1138 10.3636 C 13.1206 10.3802 13.8412 12.0708 14.4744 13.5191 C 14.8486 14.374 15.1462 14.896 16.1288 14.9292 C 17.0663 14.9613 17.7538 14.4122 17.7538 13.6485 C 17.7538 12.9691 17.3321 12.8004 16.3803 12.4822 C 14.7365 11.9398 13.845 11.3861 13.845 10.0182 C 13.845 8.6809 14.7667 7.8162 16.192 7.8162 C 17.1288 7.8162 17.8155 8.2287 18.2921 9.0768 C 18.305 9.1006 18.3079 9.1281 18.3004 9.1542 C 18.2929 9.1803 18.2748 9.2021 18.2507 9.2138 L 17.3614 9.669 C 17.3178 9.692 17.2643 9.6781 17.2356 9.6385 C 16.9329 9.2135 16.5956 9.0251 16.1423 9.0251 C 15.5512 9.0251 15.122 9.429 15.122 9.9865 C 15.122 10.6738 15.6529 10.8414 16.5339 11.1192 C 16.6491 11.1558 16.7696 11.194 16.8939 11.2343 C 18.2763 11.6865 19.0768 12.2311 19.0768 13.6836 C 19.0769 15.1297 17.8389 16.2204 16.1974 16.2204 Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const LinkedInIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const MailIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm.5 12c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l7.5 5.6 7.5-5.6V17zm0-9.1L12 13.6 4.5 7.9V7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v.9z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const MastodonIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const MeetupIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const MediumIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M13.2,12c0,3-2.4,5.4-5.3,5.4S2.6,15,2.6,12s2.4-5.4,5.3-5.4S13.2,9,13.2,12 M19.1,12c0,2.8-1.2,5-2.7,5s-2.7-2.3-2.7-5s1.2-5,2.7-5C17.9,7,19.1,9.2,19.1,12 M21.4,12c0,2.5-0.4,4.5-0.9,4.5c-0.5,0-0.9-2-0.9-4.5s0.4-4.5,0.9-4.5C21,7.5,21.4,9.5,21.4,12\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const PatreonIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M20 8.40755C19.9969 6.10922 18.2543 4.22555 16.2097 3.54588C13.6708 2.70188 10.3222 2.82421 7.89775 3.99921C4.95932 5.42355 4.03626 8.54355 4.00186 11.6552C3.97363 14.2136 4.2222 20.9517 7.92225 20.9997C10.6715 21.0356 11.0809 17.3967 12.3529 15.6442C13.258 14.3974 14.4233 14.0452 15.8578 13.6806C18.3233 13.0537 20.0036 11.0551 20 8.40755Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const PinterestIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const PocketIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const RedditIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M5.27 9.221A2.775 2.775 0 0 0 2.498 11.993a2.785 2.785 0 0 0 1.6 2.511 5.337 5.337 0 0 0 2.374 4.11 9.386 9.386 0 0 0 5.539 1.7 9.386 9.386 0 0 0 5.541-1.7 5.331 5.331 0 0 0 2.372-4.114 2.787 2.787 0 0 0 1.583-2.5 2.775 2.775 0 0 0-2.772-2.772 2.742 2.742 0 0 0-1.688.574 9.482 9.482 0 0 0-4.637-1.348v-.008a2.349 2.349 0 0 1 2.011-2.316 1.97 1.97 0 0 0 1.926 1.521 1.98 1.98 0 0 0 1.978-1.978 1.98 1.98 0 0 0-1.978-1.978 1.985 1.985 0 0 0-1.938 1.578 3.183 3.183 0 0 0-2.849 3.172v.011a9.463 9.463 0 0 0-4.59 1.35 2.741 2.741 0 0 0-1.688-.574Zm6.736 9.1a3.162 3.162 0 0 1-2.921-1.944.215.215 0 0 1 .014-.2.219.219 0 0 1 .168-.106 27.327 27.327 0 0 1 2.74-.133 27.357 27.357 0 0 1 2.74.133.219.219 0 0 1 .168.106.215.215 0 0 1 .014.2 3.158 3.158 0 0 1-2.921 1.944Zm3.743-3.157a1.265 1.265 0 0 1-1.4-1.371 1.954 1.954 0 0 1 .482-1.442 1.15 1.15 0 0 1 .842-.379 1.7 1.7 0 0 1 1.49 1.777 1.323 1.323 0 0 1-.325 1.015 1.476 1.476 0 0 1-1.089.4Zm-7.485 0a1.476 1.476 0 0 1-1.086-.4 1.323 1.323 0 0 1-.325-1.016 1.7 1.7 0 0 1 1.49-1.777 1.151 1.151 0 0 1 .843.379 1.951 1.951 0 0 1 .481 1.441 1.276 1.276 0 0 1-1.403 1.373Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const SkypeIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const SnapchatIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const SoundCloudIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M23.994 14.552a3.36 3.36 0 01-3.401 3.171h-8.176a.685.685 0 01-.679-.681V8.238a.749.749 0 01.452-.716S12.942 7 14.526 7a5.357 5.357 0 012.748.755 5.44 5.44 0 012.56 3.546c.282-.08.574-.12.868-.119a3.273 3.273 0 013.292 3.37zM10.718 8.795a.266.266 0 10-.528 0c-.224 2.96-.397 5.735 0 8.685a.265.265 0 00.528 0c.425-2.976.246-5.7 0-8.685zM9.066 9.82a.278.278 0 00-.553 0 33.183 33.183 0 000 7.663.278.278 0 00.55 0c.33-2.544.332-5.12.003-7.664zM7.406 9.56a.269.269 0 00-.535 0c-.253 2.7-.38 5.222 0 7.917a.266.266 0 10.531 0c.394-2.73.272-5.181.004-7.917zM5.754 10.331a.275.275 0 10-.55 0 28.035 28.035 0 000 7.155.272.272 0 00.54 0c.332-2.373.335-4.78.01-7.155zM4.087 12.12a.272.272 0 00-.544 0c-.393 1.843-.208 3.52.016 5.386a.26.26 0 00.512 0c.247-1.892.435-3.53.016-5.386zM2.433 11.838a.282.282 0 00-.56 0c-.349 1.882-.234 3.54.01 5.418.025.285.508.282.54 0 .269-1.907.394-3.517.01-5.418zM.762 12.76a.282.282 0 00-.56 0c-.32 1.264-.22 2.31.023 3.578a.262.262 0 00.521 0c.282-1.293.42-2.317.016-3.578z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const SpotifyIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const TelegramIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 128 128\" version=\"1.1\">\n\t\t<Path d=\"M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const ThreadsIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const TiktokIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.4044 3.01519C13.4086 3 14.4072 3.009 15.4045 3C15.465 4.14812 15.8874 5.31762 16.7472 6.12935C17.6053 6.96134 18.819 7.34217 20 7.47099V10.4912C18.8933 10.4558 17.7814 10.2308 16.7771 9.76499C16.3397 9.57148 15.9323 9.32227 15.5334 9.06745C15.5283 11.2591 15.5426 13.4479 15.5191 15.6305C15.4592 16.679 15.1053 17.7225 14.4814 18.5866C13.4777 20.025 11.7356 20.9627 9.94635 20.992C8.84885 21.0533 7.7525 20.7608 6.81729 20.2219C5.26743 19.3286 4.17683 17.6933 4.01799 15.9382C3.99957 15.563 3.99324 15.1883 4.00878 14.8221C4.14691 13.395 4.86917 12.0297 5.99027 11.101C7.26101 10.0192 9.04107 9.50397 10.7078 9.80886C10.7233 10.9199 10.6778 12.0297 10.6778 13.1407C9.91643 12.9 9.02668 12.9675 8.36139 13.4192C7.87566 13.7269 7.50675 14.1983 7.31453 14.7316C7.15569 15.1118 7.20116 15.5343 7.21036 15.9382C7.3928 17.169 8.60368 18.2035 9.89628 18.0916C10.7532 18.0826 11.5745 17.5965 12.0211 16.8849C12.1655 16.6357 12.3273 16.3809 12.3359 16.0878C12.4113 14.7462 12.3814 13.4102 12.3906 12.0685C12.3969 9.04495 12.3814 6.02979 12.4049 3.01575L12.4044 3.01519Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const TumblrIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const TwitchIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const TwitterIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const VimeoIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const VkIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const WhatsAppIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const WordPressIcon = () => (\n\t<SVG\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t\tversion=\"1.1\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<Path d=\"M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const XIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const YelpIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const YouTubeIcon = () => (\n\t<SVG width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\">\n\t\t<Path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\" />\n\t</SVG>\n);\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/social-link\",\n\t\"title\": \"Social Icon\",\n\t\"category\": \"widgets\",\n\t\"parent\": [ \"core/social-links\" ],\n\t\"description\": \"Display an icon linking to a social profile or site.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"url\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"service\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"rel\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [\n\t\t\"openInNewTab\",\n\t\t\"showLabels\",\n\t\t\"iconColor\",\n\t\t\"iconColorValue\",\n\t\t\"iconBackgroundColor\",\n\t\t\"iconBackgroundColorValue\"\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-social-link-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tAmazonIcon,\n\tBandcampIcon,\n\tBehanceIcon,\n\tBlueskyIcon,\n\tChainIcon,\n\tCodepenIcon,\n\tDeviantArtIcon,\n\tDiscordIcon,\n\tDribbbleIcon,\n\tDropboxIcon,\n\tEtsyIcon,\n\tFacebookIcon,\n\tFeedIcon,\n\tFivehundredpxIcon,\n\tFlickrIcon,\n\tFoursquareIcon,\n\tGoodreadsIcon,\n\tGoogleIcon,\n\tGitHubIcon,\n\tGravatarIcon,\n\tInstagramIcon,\n\tLastfmIcon,\n\tLinkedInIcon,\n\tMailIcon,\n\tMastodonIcon,\n\tMeetupIcon,\n\tMediumIcon,\n\tPatreonIcon,\n\tPinterestIcon,\n\tPocketIcon,\n\tRedditIcon,\n\tSkypeIcon,\n\tSnapchatIcon,\n\tSoundCloudIcon,\n\tSpotifyIcon,\n\tTelegramIcon,\n\tThreadsIcon,\n\tTiktokIcon,\n\tTumblrIcon,\n\tTwitchIcon,\n\tTwitterIcon,\n\tVimeoIcon,\n\tVkIcon,\n\tWhatsAppIcon,\n\tWordPressIcon,\n\tXIcon,\n\tYelpIcon,\n\tYouTubeIcon,\n} from './icons';\n\nconst variations = [\n\t{\n\t\tisDefault: true,\n\t\tname: 'wordpress',\n\t\tattributes: { service: 'wordpress' },\n\t\ttitle: _x( 'WordPress', 'social link block variation name' ),\n\t\ticon: WordPressIcon,\n\t},\n\n\t{\n\t\tname: 'fivehundredpx',\n\t\tattributes: { service: 'fivehundredpx' },\n\t\ttitle: _x( '500px', 'social link block variation name' ),\n\t\ticon: FivehundredpxIcon,\n\t},\n\t{\n\t\tname: 'amazon',\n\t\tattributes: { service: 'amazon' },\n\t\ttitle: _x( 'Amazon', 'social link block variation name' ),\n\t\ticon: AmazonIcon,\n\t},\n\t{\n\t\tname: 'bandcamp',\n\t\tattributes: { service: 'bandcamp' },\n\t\ttitle: _x( 'Bandcamp', 'social link block variation name' ),\n\t\ticon: BandcampIcon,\n\t},\n\t{\n\t\tname: 'behance',\n\t\tattributes: { service: 'behance' },\n\t\ttitle: _x( 'Behance', 'social link block variation name' ),\n\t\ticon: BehanceIcon,\n\t},\n\t{\n\t\tname: 'bluesky',\n\t\tattributes: { service: 'bluesky' },\n\t\ttitle: _x( 'Bluesky', 'social link block variation name' ),\n\t\ticon: BlueskyIcon,\n\t},\n\t{\n\t\tname: 'chain',\n\t\tattributes: { service: 'chain' },\n\t\ttitle: _x( 'Link', 'social link block variation name' ),\n\t\ticon: ChainIcon,\n\t},\n\t{\n\t\tname: 'codepen',\n\t\tattributes: { service: 'codepen' },\n\t\ttitle: _x( 'CodePen', 'social link block variation name' ),\n\t\ticon: CodepenIcon,\n\t},\n\t{\n\t\tname: 'deviantart',\n\t\tattributes: { service: 'deviantart' },\n\t\ttitle: _x( 'DeviantArt', 'social link block variation name' ),\n\t\ticon: DeviantArtIcon,\n\t},\n\t{\n\t\tname: 'discord',\n\t\tattributes: { service: 'discord' },\n\t\ttitle: _x( 'Discord', 'social link block variation name' ),\n\t\ticon: DiscordIcon,\n\t},\n\t{\n\t\tname: 'dribbble',\n\t\tattributes: { service: 'dribbble' },\n\t\ttitle: _x( 'Dribbble', 'social link block variation name' ),\n\t\ticon: DribbbleIcon,\n\t},\n\t{\n\t\tname: 'dropbox',\n\t\tattributes: { service: 'dropbox' },\n\t\ttitle: _x( 'Dropbox', 'social link block variation name' ),\n\t\ticon: DropboxIcon,\n\t},\n\t{\n\t\tname: 'etsy',\n\t\tattributes: { service: 'etsy' },\n\t\ttitle: _x( 'Etsy', 'social link block variation name' ),\n\t\ticon: EtsyIcon,\n\t},\n\t{\n\t\tname: 'facebook',\n\t\tattributes: { service: 'facebook' },\n\t\ttitle: _x( 'Facebook', 'social link block variation name' ),\n\t\ticon: FacebookIcon,\n\t},\n\t{\n\t\tname: 'feed',\n\t\tattributes: { service: 'feed' },\n\t\ttitle: _x( 'RSS Feed', 'social link block variation name' ),\n\t\ticon: FeedIcon,\n\t},\n\t{\n\t\tname: 'flickr',\n\t\tattributes: { service: 'flickr' },\n\t\ttitle: _x( 'Flickr', 'social link block variation name' ),\n\t\ticon: FlickrIcon,\n\t},\n\t{\n\t\tname: 'foursquare',\n\t\tattributes: { service: 'foursquare' },\n\t\ttitle: _x( 'Foursquare', 'social link block variation name' ),\n\t\ticon: FoursquareIcon,\n\t},\n\t{\n\t\tname: 'goodreads',\n\t\tattributes: { service: 'goodreads' },\n\t\ttitle: _x( 'Goodreads', 'social link block variation name' ),\n\t\ticon: GoodreadsIcon,\n\t},\n\t{\n\t\tname: 'google',\n\t\tattributes: { service: 'google' },\n\t\ttitle: _x( 'Google', 'social link block variation name' ),\n\t\ticon: GoogleIcon,\n\t},\n\t{\n\t\tname: 'github',\n\t\tattributes: { service: 'github' },\n\t\ttitle: _x( 'GitHub', 'social link block variation name' ),\n\t\ticon: GitHubIcon,\n\t},\n\t{\n\t\tname: 'gravatar',\n\t\tattributes: { service: 'gravatar' },\n\t\ttitle: _x( 'Gravatar', 'social link block variation name' ),\n\t\ticon: GravatarIcon,\n\t},\n\t{\n\t\tname: 'instagram',\n\t\tattributes: { service: 'instagram' },\n\t\ttitle: _x( 'Instagram', 'social link block variation name' ),\n\t\ticon: InstagramIcon,\n\t},\n\t{\n\t\tname: 'lastfm',\n\t\tattributes: { service: 'lastfm' },\n\t\ttitle: _x( 'Last.fm', 'social link block variation name' ),\n\t\ticon: LastfmIcon,\n\t},\n\t{\n\t\tname: 'linkedin',\n\t\tattributes: { service: 'linkedin' },\n\t\ttitle: _x( 'LinkedIn', 'social link block variation name' ),\n\t\ticon: LinkedInIcon,\n\t},\n\t{\n\t\tname: 'mail',\n\t\tattributes: { service: 'mail' },\n\t\ttitle: _x( 'Mail', 'social link block variation name' ),\n\t\tkeywords: [ 'email', 'e-mail' ],\n\t\ticon: MailIcon,\n\t},\n\t{\n\t\tname: 'mastodon',\n\t\tattributes: { service: 'mastodon' },\n\t\ttitle: _x( 'Mastodon', 'social link block variation name' ),\n\t\ticon: MastodonIcon,\n\t},\n\t{\n\t\tname: 'meetup',\n\t\tattributes: { service: 'meetup' },\n\t\ttitle: _x( 'Meetup', 'social link block variation name' ),\n\t\ticon: MeetupIcon,\n\t},\n\t{\n\t\tname: 'medium',\n\t\tattributes: { service: 'medium' },\n\t\ttitle: _x( 'Medium', 'social link block variation name' ),\n\t\ticon: MediumIcon,\n\t},\n\t{\n\t\tname: 'patreon',\n\t\tattributes: { service: 'patreon' },\n\t\ttitle: _x( 'Patreon', 'social link block variation name' ),\n\t\ticon: PatreonIcon,\n\t},\n\t{\n\t\tname: 'pinterest',\n\t\tattributes: { service: 'pinterest' },\n\t\ttitle: _x( 'Pinterest', 'social link block variation name' ),\n\t\ticon: PinterestIcon,\n\t},\n\t{\n\t\tname: 'pocket',\n\t\tattributes: { service: 'pocket' },\n\t\ttitle: _x( 'Pocket', 'social link block variation name' ),\n\t\ticon: PocketIcon,\n\t},\n\t{\n\t\tname: 'reddit',\n\t\tattributes: { service: 'reddit' },\n\t\ttitle: _x( 'Reddit', 'social link block variation name' ),\n\t\ticon: RedditIcon,\n\t},\n\t{\n\t\tname: 'skype',\n\t\tattributes: { service: 'skype' },\n\t\ttitle: _x( 'Skype', 'social link block variation name' ),\n\t\ticon: SkypeIcon,\n\t\t// Deprecated: Skype service is no longer available.\n\t\tscope: [],\n\t},\n\t{\n\t\tname: 'snapchat',\n\t\tattributes: { service: 'snapchat' },\n\t\ttitle: _x( 'Snapchat', 'social link block variation name' ),\n\t\ticon: SnapchatIcon,\n\t},\n\t{\n\t\tname: 'soundcloud',\n\t\tattributes: { service: 'soundcloud' },\n\t\ttitle: _x( 'SoundCloud', 'social link block variation name' ),\n\t\ticon: SoundCloudIcon,\n\t},\n\t{\n\t\tname: 'spotify',\n\t\tattributes: { service: 'spotify' },\n\t\ttitle: _x( 'Spotify', 'social link block variation name' ),\n\t\ticon: SpotifyIcon,\n\t},\n\t{\n\t\tname: 'telegram',\n\t\tattributes: { service: 'telegram' },\n\t\ttitle: _x( 'Telegram', 'social link block variation name' ),\n\t\ticon: TelegramIcon,\n\t},\n\t{\n\t\tname: 'threads',\n\t\tattributes: { service: 'threads' },\n\t\ttitle: _x( 'Threads', 'social link block variation name' ),\n\t\ticon: ThreadsIcon,\n\t},\n\t{\n\t\tname: 'tiktok',\n\t\tattributes: { service: 'tiktok' },\n\t\ttitle: _x( 'TikTok', 'social link block variation name' ),\n\t\ticon: TiktokIcon,\n\t},\n\t{\n\t\tname: 'tumblr',\n\t\tattributes: { service: 'tumblr' },\n\t\ttitle: _x( 'Tumblr', 'social link block variation name' ),\n\t\ticon: TumblrIcon,\n\t},\n\t{\n\t\tname: 'twitch',\n\t\tattributes: { service: 'twitch' },\n\t\ttitle: _x( 'Twitch', 'social link block variation name' ),\n\t\ticon: TwitchIcon,\n\t},\n\t{\n\t\tname: 'twitter',\n\t\tattributes: { service: 'twitter' },\n\t\ttitle: _x( 'Twitter', 'social link block variation name' ),\n\t\ticon: TwitterIcon,\n\t},\n\t{\n\t\tname: 'vimeo',\n\t\tattributes: { service: 'vimeo' },\n\t\ttitle: _x( 'Vimeo', 'social link block variation name' ),\n\t\ticon: VimeoIcon,\n\t},\n\t{\n\t\tname: 'vk',\n\t\tattributes: { service: 'vk' },\n\t\ttitle: _x( 'VK', 'social link block variation name' ),\n\t\ticon: VkIcon,\n\t},\n\t{\n\t\tname: 'whatsapp',\n\t\tattributes: { service: 'whatsapp' },\n\t\ttitle: _x( 'WhatsApp', 'social link block variation name' ),\n\t\ticon: WhatsAppIcon,\n\t},\n\t{\n\t\tname: 'x',\n\t\tattributes: { service: 'x' },\n\t\tkeywords: [ 'twitter' ],\n\t\ttitle: _x( 'X', 'social link block variation name' ),\n\t\ticon: XIcon,\n\t},\n\t{\n\t\tname: 'yelp',\n\t\tattributes: { service: 'yelp' },\n\t\ttitle: _x( 'Yelp', 'social link block variation name' ),\n\t\ticon: YelpIcon,\n\t},\n\t{\n\t\tname: 'youtube',\n\t\tattributes: { service: 'youtube' },\n\t\ttitle: _x( 'YouTube', 'social link block variation name' ),\n\t\ticon: YouTubeIcon,\n\t},\n];\n\n/**\n * Add `isActive` function to all `social link` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( variation.isActive ) {\n\t\treturn;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.service === variationAttributes.service;\n} );\n\nexport default variations;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * The specific handling by `className` below is needed because `itemsJustification`\n * was introduced in https://github.com/WordPress/gutenberg/pull/28980/files and wasn't\n * declared in block.json.\n *\n * @param {Object} attributes Block's attributes.\n */\nconst migrateWithLayout = ( attributes ) => {\n\tif ( !! attributes.layout ) {\n\t\treturn attributes;\n\t}\n\tconst { className } = attributes;\n\t// Matches classes with `items-justified-` prefix.\n\tconst prefix = `items-justified-`;\n\tconst justifiedItemsRegex = new RegExp( `\\\\b${ prefix }[^ ]*[ ]?\\\\b`, 'g' );\n\tconst newAttributes = {\n\t\t...attributes,\n\t\tclassName: className?.replace( justifiedItemsRegex, '' ).trim(),\n\t};\n\t/**\n\t * Add `layout` prop only if `justifyContent` is defined, for backwards\n\t * compatibility. In other cases the block's default layout will be used.\n\t * Also noting that due to the missing attribute, it's possible for a block\n\t * to have more than one of `justified` classes.\n\t */\n\tconst justifyContent = className\n\t\t?.match( justifiedItemsRegex )?.[ 0 ]\n\t\t?.trim();\n\tif ( justifyContent ) {\n\t\tObject.assign( newAttributes, {\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\tjustifyContent: justifyContent.slice( prefix.length ),\n\t\t\t},\n\t\t} );\n\t}\n\treturn newAttributes;\n};\n\n// Social Links block deprecations.\nconst deprecated = [\n\t// V1. Remove CSS variable use for colors.\n\t{\n\t\tattributes: {\n\t\t\ticonColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomIconColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ticonColorValue: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ticonBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\tcustomIconBackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ticonBackgroundColorValue: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\topenInNewTab: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdefault: false,\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t\tprovidesContext: {\n\t\t\topenInNewTab: 'openInNewTab',\n\t\t},\n\t\tsupports: {\n\t\t\talign: [ 'left', 'center', 'right' ],\n\t\t\tanchor: true,\n\t\t},\n\t\tmigrate: migrateWithLayout,\n\t\tsave: ( props ) => {\n\t\t\tconst {\n\t\t\t\tattributes: {\n\t\t\t\t\ticonBackgroundColorValue,\n\t\t\t\t\ticonColorValue,\n\t\t\t\t\titemsJustification,\n\t\t\t\t\tsize,\n\t\t\t\t},\n\t\t\t} = props;\n\n\t\t\tconst className = clsx( size, {\n\t\t\t\t'has-icon-color': iconColorValue,\n\t\t\t\t'has-icon-background-color': iconBackgroundColorValue,\n\t\t\t\t[ `items-justified-${ itemsJustification }` ]:\n\t\t\t\t\titemsJustification,\n\t\t\t} );\n\n\t\t\tconst style = {\n\t\t\t\t'--wp--social-links--icon-color': iconColorValue,\n\t\t\t\t'--wp--social-links--icon-background-color':\n\t\t\t\t\ticonBackgroundColorValue,\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t<ul { ...useBlockProps.save( { className, style } ) }>\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</ul>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport {\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\tInnerBlocks,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst sizeOptions = [\n\t{ label: __( 'Default' ), value: '' },\n\t{ label: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ label: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ label: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ label: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst { hasSocialIcons, hasSelectedChild } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn {\n\t\t\t\thasSocialIcons: getBlockCount( clientId ) > 0,\n\t\t\t\thasSelectedChild: hasSelectedInnerBlock( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasAnySelected = isSelected || hasSelectedChild;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tlet restore;\n\t\t\tsetAttributes( ( prev ) => {\n\t\t\t\trestore = {\n\t\t\t\t\ticonBackgroundColor: prev.iconBackgroundColor,\n\t\t\t\t\ticonBackgroundColorValue: prev.iconBackgroundColorValue,\n\t\t\t\t\tcustomIconBackgroundColor: prev.customIconBackgroundColor,\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\treturn () => setAttributes( { ...restore } );\n\t\t}\n\t}, [ logosOnly, setAttributes ] );\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = clsx( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t\trenderAppender:\n\t\t\t! hasSocialIcons || hasAnySelected\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: undefined,\n\t} );\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconColor( undefined );\n\t\t\t\tsetAttributes( { iconColorValue: undefined } );\n\t\t\t},\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconBackgroundColor( undefined );\n\t\t\t\tsetAttributes( { iconBackgroundColorValue: undefined } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\topenInNewTab: false,\n\t\t\t\t\t\t\tshowLabels: false,\n\t\t\t\t\t\t\tsize: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! size }\n\t\t\t\t\t\tlabel={ __( 'Icon size' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { size: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Icon size' ) }\n\t\t\t\t\t\t\tonChange={ ( newSize ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tsize: newSize === '' ? undefined : newSize,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tvalue={ size ?? '' }\n\t\t\t\t\t\t\toptions={ sizeOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\thasValue={ () => !! showLabels }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\thasValue={ () => !! openInNewTab }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\topenInNewTab: ! openInNewTab,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ colorGradientSettings.hasColorsOrGradients && (\n\t\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t\t{ colorSettings.map(\n\t\t\t\t\t\t( { onChange, label, value, resetAllFilter } ) => (\n\t\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\t\tkey={ `social-links-color-${ label }` }\n\t\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcolorValue: value,\n\t\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\t\tonColorChange: onChange,\n\t\t\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\t\t\tresetAllFilter,\n\t\t\t\t\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t\t\t\t\t\tclearable: true,\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\tpanelId={ clientId }\n\t\t\t\t\t\t\t\t{ ...colorGradientSettings }\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\t{ ! logosOnly && (\n\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/social-links\",\n\t\"title\": \"Social Icons\",\n\t\"category\": \"widgets\",\n\t\"allowedBlocks\": [ \"core/social-link\" ],\n\t\"description\": \"Display icons linking to your social profiles or sites.\",\n\t\"keywords\": [ \"links\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"iconColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customIconColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"iconColorValue\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"iconBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customIconBackgroundColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"iconBackgroundColorValue\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"openInNewTab\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"showLabels\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"size\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"openInNewTab\": \"openInNewTab\",\n\t\t\"showLabels\": \"showLabels\",\n\t\t\"iconColor\": \"iconColor\",\n\t\t\"iconColorValue\": \"iconColorValue\",\n\t\t\"iconBackgroundColor\": \"iconBackgroundColor\",\n\t\t\"iconBackgroundColorValue\": \"iconBackgroundColorValue\"\n\t},\n\t\"supports\": {\n\t\t\"align\": [ \"left\", \"center\", \"right\" ],\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"__experimentalExposeControlsToChildren\": true,\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": false,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"allowVerticalAlignment\": false,\n\t\t\t\"default\": {\n\t\t\t\t\"type\": \"flex\"\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"enableContrastChecker\": false,\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"text\": false,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": false\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"units\": [ \"px\", \"em\", \"rem\", \"vh\", \"vw\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true,\n\t\t\t\t\"margin\": true,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t},\n\t\t\"contentRole\": true,\n\t\t\"listView\": true\n\t},\n\t\"styles\": [\n\t\t{ \"name\": \"default\", \"label\": \"Default\", \"isDefault\": true },\n\t\t{ \"name\": \"logos-only\", \"label\": \"Logos Only\" },\n\t\t{ \"name\": \"pill-shape\", \"label\": \"Pill Shape\" }\n\t],\n\t\"editorStyle\": \"wp-block-social-links-editor\",\n\t\"style\": \"wp-block-social-links\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ticonBackgroundColorValue,\n\t\t\ticonColorValue,\n\t\t\tshowLabels,\n\t\t\tsize,\n\t\t},\n\t} = props;\n\n\tconst className = clsx( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColorValue,\n\t\t'has-icon-background-color': iconBackgroundColorValue,\n\t} );\n\tconst blockProps = useBlockProps.save( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <ul { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { share as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/social-link',\n\t\t\t\tattributes: {\n\t\t\t\t\tservice: 'wordpress',\n\t\t\t\t\turl: 'https://wordpress.org',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/social-link',\n\t\t\t\tattributes: {\n\t\t\t\t\tservice: 'facebook',\n\t\t\t\t\turl: 'https://www.facebook.com/WordPress/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/social-link',\n\t\t\t\tattributes: {\n\t\t\t\t\tservice: 'twitter',\n\t\t\t\t\turl: 'https://twitter.com/WordPress',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nconst deprecated = [\n\t{\n\t\tattributes: {\n\t\t\theight: {\n\t\t\t\ttype: 'number',\n\t\t\t\tdefault: 100,\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t\tmigrate( attributes ) {\n\t\t\tconst { height, width } = attributes;\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\twidth: width !== undefined ? `${ width }px` : undefined,\n\t\t\t\theight: height !== undefined ? `${ height }px` : undefined,\n\t\t\t};\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\t{ ...useBlockProps.save( {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\theight: attributes.height,\n\t\t\t\t\t\t\twidth: attributes.width,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'aria-hidden': true,\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t);\n\t\t},\n\t},\n];\n\nexport default deprecated;\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tgetCustomValueFromPreset,\n\tgetSpacingPresetCssVar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { View } from '@wordpress/primitives';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport SpacerControls from './controls';\nimport { MIN_SPACER_SIZE } from './constants';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nconst ResizableSpacer = ( {\n\torientation,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\tisSelected,\n\tisResizing,\n\tsetIsResizing,\n\t...props\n} ) => {\n\tconst getCurrentSize = ( elt ) => {\n\t\treturn orientation === 'horizontal'\n\t\t\t? elt.clientWidth\n\t\t\t: elt.clientHeight;\n\t};\n\n\tconst getNextVal = ( elt ) => {\n\t\treturn `${ getCurrentSize( elt ) }px`;\n\t};\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ clsx( 'block-library-spacer__resize-container', {\n\t\t\t\t'resize-horizontal': orientation === 'horizontal',\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getNextVal( elt );\n\t\t\t\tonResizeStart( nextVal );\n\t\t\t\tonResize( nextVal );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( getNextVal( elt ) );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getCurrentSize( elt );\n\t\t\t\tonResizeStop( `${ nextVal }px` );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t__experimentalShowTooltip\n\t\t\t__experimentalTooltipProps={ {\n\t\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t\t\tposition: 'corner',\n\t\t\t\tisVisible: isResizing,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n};\n\nconst SpacerEdit = ( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\ttoggleSelection,\n\tcontext,\n\t__unstableParentLayout: parentLayout,\n\tclassName,\n} ) => {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\tconst { orientation } = context;\n\tconst {\n\t\torientation: parentOrientation,\n\t\ttype,\n\t\tdefault: { type: defaultType } = {},\n\t} = parentLayout || {};\n\t// Check if the spacer is inside a flex container.\n\tconst isFlexLayout =\n\t\ttype === 'flex' || ( ! type && defaultType === 'flex' );\n\t// If the spacer is inside a flex container, it should either inherit the orientation\n\t// of the parent or use the flex default orientation.\n\tconst inheritedOrientation =\n\t\t! parentOrientation && isFlexLayout\n\t\t\t? 'horizontal'\n\t\t\t: parentOrientation || orientation;\n\tconst { height, width, style: blockStyle = {} } = attributes;\n\n\tconst { layout = {} } = blockStyle;\n\tconst { selfStretch, flexSize } = layout;\n\n\tconst spacingSizes = useSpacingSizes();\n\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ temporaryHeight, setTemporaryHeight ] = useState( null );\n\tconst [ temporaryWidth, setTemporaryWidth ] = useState( null );\n\n\tconst onResizeStart = () => toggleSelection( false );\n\tconst onResizeStop = () => toggleSelection( true );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst handleOnVerticalResizeStop = ( newHeight ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newHeight,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { height: newHeight } );\n\t\tsetTemporaryHeight( null );\n\t};\n\n\tconst handleOnHorizontalResizeStop = ( newWidth ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newWidth,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { width: newWidth } );\n\t\tsetTemporaryWidth( null );\n\t};\n\n\tconst getHeightForVerticalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryHeight || getSpacingPresetCssVar( height ) || undefined;\n\t};\n\n\tconst getWidthForHorizontalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryWidth || getSpacingPresetCssVar( width ) || undefined;\n\t};\n\n\tconst sizeConditionalOnOrientation =\n\t\tinheritedOrientation === 'horizontal'\n\t\t\t? temporaryWidth || flexSize\n\t\t\t: temporaryHeight || flexSize;\n\n\tconst style = {\n\t\theight:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? 24\n\t\t\t\t: getHeightForVerticalBlocks(),\n\t\twidth:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? getWidthForHorizontalBlocks()\n\t\t\t\t: undefined,\n\t\t// In vertical flex containers, the spacer shrinks to nothing without a minimum width.\n\t\tminWidth:\n\t\t\tinheritedOrientation === 'vertical' && isFlexLayout\n\t\t\t\t? 48\n\t\t\t\t: undefined,\n\t\t// Add flex-basis so temporary sizes are respected.\n\t\tflexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,\n\t\t// Remove flex-grow when resizing.\n\t\tflexGrow: isFlexLayout && isResizing ? 0 : undefined,\n\t};\n\n\tconst resizableBoxWithOrientation = ( blockOrientation ) => {\n\t\tif ( blockOrientation === 'horizontal' ) {\n\t\t\treturn (\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminWidth={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryWidth }\n\t\t\t\t\tonResizeStop={ handleOnHorizontalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminHeight={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryHeight }\n\t\t\t\t\tonResizeStop={ handleOnVerticalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\t// To avoid interfering with undo/redo operations any changes in this\n\t\t// effect must not make history and should be preceded by\n\t\t// `__unstableMarkNextChangeAsNotPersistent()`.\n\t\tconst setAttributesCovertly = ( nextAttributes ) => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( nextAttributes );\n\t\t};\n\n\t\tif (\n\t\t\tisFlexLayout &&\n\t\t\tselfStretch !== 'fill' &&\n\t\t\tselfStretch !== 'fit' &&\n\t\t\tflexSize === undefined\n\t\t) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\t// If spacer is moving from a vertical container to a horizontal container,\n\t\t\t\t// it might not have width but have height instead.\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\twidth: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\theight: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\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} else if (\n\t\t\tisFlexLayout &&\n\t\t\t( selfStretch === 'fill' || selfStretch === 'fit' )\n\t\t) {\n\t\t\tsetAttributesCovertly(\n\t\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: undefined }\n\t\t\t\t\t: { height: undefined }\n\t\t\t);\n\t\t} else if ( ! isFlexLayout && ( selfStretch || flexSize ) ) {\n\t\t\tsetAttributesCovertly( {\n\t\t\t\t...( inheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: flexSize }\n\t\t\t\t\t: { height: flexSize } ),\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: undefined,\n\t\t\t\t\t\tselfStretch: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tblockStyle,\n\t\tflexSize,\n\t\theight,\n\t\tinheritedOrientation,\n\t\tisFlexLayout,\n\t\tlayout,\n\t\tselfStretch,\n\t\tsetAttributes,\n\t\tspacingSizes,\n\t\twidth,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<View\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassName: clsx( className, {\n\t\t\t\t\t\t'custom-sizes-disabled': disableCustomSpacingSizes,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ blockEditingMode === 'default' &&\n\t\t\t\t\tresizableBoxWithOrientation( inheritedOrientation ) }\n\t\t\t</View>\n\t\t\t{ ! isFlexLayout && (\n\t\t\t\t<SpacerControls\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\theight={ temporaryHeight || height }\n\t\t\t\t\twidth={ temporaryWidth || width }\n\t\t\t\t\torientation={ inheritedOrientation }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default SpacerEdit;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseSettings,\n\t__experimentalSpacingSizesControl as SpacingSizesControl,\n\tisValueSpacingPreset,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { MIN_SPACER_SIZE } from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nfunction DimensionInput( { label, onChange, isResizing, value = '' } ) {\n\tconst inputId = useInstanceId( UnitControl, 'block-spacer-height-input' );\n\tconst spacingSizes = useSpacingSizes();\n\tconst [ spacingUnits ] = useSettings( 'spacing.units' );\n\t// In most contexts the spacer size cannot meaningfully be set to a\n\t// percentage, since this is relative to the parent container. This\n\t// unit is disabled from the UI.\n\tconst availableUnits = spacingUnits\n\t\t? spacingUnits.filter( ( unit ) => unit !== '%' )\n\t\t: [ 'px', 'em', 'rem', 'vw', 'vh' ];\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits,\n\t\tdefaultValues: { px: 100, em: 10, rem: 10, vw: 10, vh: 25 },\n\t} );\n\n\t// Force the unit to update to `px` when the Spacer is being resized.\n\tconst [ parsedQuantity, parsedUnit ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\tconst computedValue = isValueSpacingPreset( value )\n\t\t? value\n\t\t: [ parsedQuantity, isResizing ? 'px' : parsedUnit ].join( '' );\n\n\treturn (\n\t\t<>\n\t\t\t{ spacingSizes?.length < 2 ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tid={ inputId }\n\t\t\t\t\tisResetValueOnUnitChange\n\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalue={ computedValue }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<View className=\"tools-panel-item-spacing\">\n\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\tvalues={ { all: computedValue } }\n\t\t\t\t\t\tonChange={ ( { all } ) => {\n\t\t\t\t\t\t\tonChange( all );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tsides={ [ 'all' ] }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ false }\n\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function SpacerControls( {\n\tsetAttributes,\n\torientation,\n\theight,\n\twidth,\n\tisResizing,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\theight: '100px',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ orientation === 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => width !== undefined }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ orientation !== 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => height !== '100px' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { height: '100px' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { height: nextHeight } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n}\n", "export const MIN_SPACER_SIZE = 0;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/spacer\",\n\t\"title\": \"Spacer\",\n\t\"category\": \"design\",\n\t\"description\": \"Add white space between blocks and customize its height.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"height\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"100px\"\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"orientation\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": [ \"top\", \"bottom\" ],\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-spacer-editor\",\n\t\"style\": \"wp-block-spacer\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/separator' ], // Transform to Separator.\n\t\t\ttransform: ( { anchor } ) => {\n\t\t\t\treturn createBlock( 'core/separator', {\n\t\t\t\t\tanchor: anchor || undefined,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, getSpacingPresetCssVar } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { height, width, style } = attributes;\n\tconst { layout: { selfStretch } = {} } = style || {};\n\t// If selfStretch is set to 'fill' or 'fit', don't set default height.\n\tconst finalHeight =\n\t\tselfStretch === 'fill' || selfStretch === 'fit' ? undefined : height;\n\treturn (\n\t\t<div\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\tstyle: {\n\t\t\t\t\theight: getSpacingPresetCssVar( finalHeight ),\n\t\t\t\t\twidth: getSpacingPresetCssVar( width ),\n\t\t\t\t},\n\t\t\t\t'aria-hidden': true,\n\t\t\t} ) }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { resizeCornerNE as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport transforms from './transforms';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tgetTypographyClassesAndStyles as useTypographyProps,\n\t__experimentalUseColorProps as useColorProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseMemo,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseState,\n} from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\nimport slugFromLabel from './slug-from-label';\nimport TabsList from './tabs-list';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __( 'Type / to add a block to tab' ),\n\t\t},\n\t],\n];\n\nconst { requestAnimationFrame, cancelAnimationFrame } = window;\n\nexport default function Edit( {\n\tattributes,\n\tclientId,\n\tisSelected,\n\tsetAttributes,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\n\tconst innerBlocksRef = useRef( null );\n\tconst focusRef = useRef();\n\tconst [ isInitialMount, setIsInitialMount ] = useState( true );\n\tconst labelElementRef = useRef( null );\n\n\tconst { anchor, label } = attributes;\n\n\t// Callback ref that stores the element and focuses on initial mount.\n\tconst labelRef = useCallback(\n\t\t( node ) => {\n\t\t\tlabelElementRef.current = node;\n\t\t\tif ( node && isInitialMount ) {\n\t\t\t\t// Focus immediately when ref is set on initial mount.\n\t\t\t\tconst animationId = requestAnimationFrame( () => {\n\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\tnode.focus();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tfocusRef.current = animationId;\n\t\t\t\tsetIsInitialMount( false );\n\t\t\t}\n\t\t},\n\t\t[ isInitialMount ]\n\t);\n\n\t// Focus the label RichText component when no label exists (after initial mount).\n\tuseEffect( () => {\n\t\tif ( ! label && ! isInitialMount && labelElementRef.current ) {\n\t\t\tconst animationId = requestAnimationFrame( () => {\n\t\t\t\tif ( labelElementRef.current ) {\n\t\t\t\t\tlabelElementRef.current.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t\tfocusRef.current = animationId;\n\t\t\treturn () => cancelAnimationFrame( focusRef.current );\n\t\t}\n\t}, [ label, isInitialMount ] );\n\n\t// Clean up animation frames on unmount.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( focusRef.current ) {\n\t\t\t\tcancelAnimationFrame( focusRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\tblockIndex,\n\t\thasInnerBlocksSelected,\n\t\ttabsHasSelectedBlock,\n\t\ttabsClientId,\n\t\ttabsAttributes,\n\t\tforceDisplay,\n\t\tisTabsClientSelected,\n\t\tisDefaultTab,\n\t\tsiblingTabs,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlocks,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// Get data from core/tabs.\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst hasTabSelected = hasSelectedInnerBlock( rootClientId, true );\n\t\t\tconst rootAttributes = getBlockAttributes( rootClientId );\n\t\t\tconst { activeTabIndex } = rootAttributes;\n\t\t\tconst _isTabsClientSelected = isBlockSelected( rootClientId );\n\n\t\t\t// Get data about this instance of core/tab.\n\t\t\tconst _blockIndex = getBlockIndex( clientId );\n\t\t\tconst _isDefaultTab = activeTabIndex === _blockIndex;\n\t\t\tconst _hasInnerBlocksSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\t// Get all sibling tabs from parent.\n\t\t\tconst _siblingTabs = getBlocks( rootClientId );\n\n\t\t\treturn {\n\t\t\t\tblockIndex: _blockIndex,\n\t\t\t\thasInnerBlocksSelected: _hasInnerBlocksSelected,\n\t\t\t\ttabsClientId: rootClientId,\n\t\t\t\tforceDisplay: _isDefaultTab && _isTabsClientSelected,\n\t\t\t\ttabsHasSelectedBlock: hasTabSelected,\n\t\t\t\tisTabsClientSelected: _isTabsClientSelected,\n\t\t\t\tisDefaultTab: _isDefaultTab,\n\t\t\t\ttabsAttributes: rootAttributes,\n\t\t\t\tsiblingTabs: _siblingTabs,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t/**\n\t * This hook determines if the current tab is selected. This is true if it is the active tab, or if it is selected directly.\n\t */\n\tconst isSelectedTab = useMemo( () => {\n\t\tif ( isSelected || hasInnerBlocksSelected || forceDisplay ) {\n\t\t\treturn true;\n\t\t}\n\t\tif (\n\t\t\tisDefaultTab &&\n\t\t\t! isTabsClientSelected &&\n\t\t\t! isSelected &&\n\t\t\t! tabsHasSelectedBlock\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}, [\n\t\tisSelected,\n\t\thasInnerBlocksSelected,\n\t\tforceDisplay,\n\t\tisDefaultTab,\n\t\tisTabsClientSelected,\n\t\ttabsHasSelectedBlock,\n\t] );\n\n\t// Use a custom anchor, if set. Otherwise fall back to the slug generated from the label text.\n\tconst tabPanelId = useMemo(\n\t\t() => anchor || slugFromLabel( label, blockIndex ),\n\t\t[ anchor, label, blockIndex ]\n\t);\n\tconst tabLabelId = useMemo( () => `${ tabPanelId }--tab`, [ tabPanelId ] );\n\n\tconst tabItemColorProps = useColorProps( tabsAttributes );\n\tconst tabContentTypographyProps = useTypographyProps( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\thidden: ! isSelectedTab,\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\t'aria-labelledby': tabLabelId,\n\t\t\tid: tabPanelId,\n\t\t\trole: 'tabpanel',\n\t\t\tref: innerBlocksRef,\n\t\t\ttabIndex: isSelectedTab ? 0 : -1,\n\t\t\tclassName: clsx(\n\t\t\t\ttabContentTypographyProps.className,\n\t\t\t\t'tabs__tab-editor-content',\n\t\t\t\tlayoutClassNames\n\t\t\t),\n\t\t\tstyle: {\n\t\t\t\t...tabContentTypographyProps.style,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttemplate: TEMPLATE,\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Controls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t\t\tblockIndex={ blockIndex }\n\t\t\t\t\tisDefaultTab={ isDefaultTab }\n\t\t\t\t/>\n\t\t\t\t{ isSelectedTab && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<TabsList\n\t\t\t\t\t\t\tsiblingTabs={ siblingTabs }\n\t\t\t\t\t\t\tcurrentClientId={ clientId }\n\t\t\t\t\t\t\tcurrentBlockIndex={ blockIndex }\n\t\t\t\t\t\t\tcurrentLabel={ label }\n\t\t\t\t\t\t\ttabItemColorProps={ tabItemColorProps }\n\t\t\t\t\t\t\tonSelectTab={ selectBlock }\n\t\t\t\t\t\t\tonLabelChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tlabel: value,\n\t\t\t\t\t\t\t\t\tanchor: slugFromLabel( value, blockIndex ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlabelRef={ labelRef }\n\t\t\t\t\t\t\tfocusRef={ focusRef }\n\t\t\t\t\t\t\tlabelElementRef={ labelElementRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<section { ...innerBlocksProps } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from './add-tab-toolbar-control';\nimport slugFromLabel from './slug-from-label';\n\nexport default function Controls( {\n\tattributes,\n\tsetAttributes,\n\ttabsClientId,\n\tblockIndex,\n\tisDefaultTab,\n} ) {\n\tconst { label } = attributes;\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Tab Settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Tab Label' ) }\n\t\t\t\t\t\tvalue={ decodeEntities( label ) }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tlabel: value,\n\t\t\t\t\t\t\t\tanchor: slugFromLabel( value, blockIndex ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Default Tab' ) }\n\t\t\t\t\t\tchecked={ isDefaultTab }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\t\tactiveTabIndex: value ? blockIndex : 0,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'If toggled, this tab will be selected when the page loads.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * \"Add Tab\" button in the block toolbar for the tab block.\n * @param {Object} props\n * @param {Object} props.attributes The block attributes.\n * @param {string} props.tabsClientId The client ID of the parent tabs block.\n * @return {JSX.Element} The toolbar control element.\n */\nexport default function AddTabToolbarControl( { attributes, tabsClientId } ) {\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\n\tconst { className, fontFamily, fontSize } = attributes;\n\n\tconst addTab = () => {\n\t\tconst newTabBlock = createBlock( 'core/tab', {\n\t\t\tclassName,\n\t\t\tfontFamily,\n\t\t\tfontSize,\n\t\t} );\n\t\tinsertBlock( newTabBlock, undefined, tabsClientId );\n\t};\n\n\treturn (\n\t\t<BlockControls group=\"block\">\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tlabel={ __( 'Add Tab' ) }\n\t\t\t\t\tonClick={ addTab }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttext={ __( 'Add Tab' ) }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { cleanForSlug } from '@wordpress/url';\n\n/**\n * Generates a slug from a tab's text label.\n *\n * @param {string} label Tab label RichText value.\n * @param {number} tabIndex Tab index value.\n *\n * @return {string} The generated slug with HTML stripped out.\n */\nexport default function slugFromLabel( label, tabIndex ) {\n\t// Get just the text content, filtering out any HTML tags from the RichText value.\n\tconst htmlDocument = new window.DOMParser().parseFromString(\n\t\tlabel,\n\t\t'text/html'\n\t);\n\tif ( htmlDocument.body?.textContent ) {\n\t\treturn cleanForSlug( htmlDocument.body.textContent );\n\t}\n\n\t// Fall back to using the tab index if the label is empty.\n\treturn `tab-panel-${ tabIndex }`;\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/block-editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { RawHTML } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport slugFromLabel from './slug-from-label';\n\nfunction StaticLabel( { label, index } ) {\n\tif ( label ) {\n\t\treturn (\n\t\t\t<span>\n\t\t\t\t<RawHTML>{ decodeEntities( label ) }</RawHTML>\n\t\t\t</span>\n\t\t);\n\t}\n\treturn (\n\t\t<span>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d is the tab index + 1 */\n\t\t\t\t__( 'Tab %d' ),\n\t\t\t\tindex + 1\n\t\t\t) }\n\t\t</span>\n\t);\n}\n\nexport default function TabsList( {\n\tsiblingTabs,\n\tcurrentClientId,\n\tcurrentBlockIndex,\n\tcurrentLabel,\n\ttabItemColorProps,\n\tonSelectTab,\n\tonLabelChange,\n\tlabelRef,\n\tfocusRef,\n\tlabelElementRef,\n} ) {\n\treturn (\n\t\t<div role=\"tablist\" className=\"tabs__list\">\n\t\t\t{ siblingTabs.map( ( tab, index ) => {\n\t\t\t\tconst isCurrentTab = tab.clientId === currentClientId;\n\t\t\t\tconst isSiblingTabActive = index === currentBlockIndex;\n\t\t\t\tconst tabAttributes = tab.attributes || {};\n\t\t\t\tconst siblingLabel = tabAttributes.label || '';\n\t\t\t\tconst siblingAnchor =\n\t\t\t\t\ttabAttributes.anchor ||\n\t\t\t\t\tslugFromLabel( siblingLabel, index );\n\t\t\t\tconst siblingTabPanelId = siblingAnchor;\n\t\t\t\tconst siblingTabLabelId = `${ siblingTabPanelId }--tab`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={ tab.clientId }\n\t\t\t\t\t\taria-controls={ siblingTabPanelId }\n\t\t\t\t\t\taria-selected={ isSiblingTabActive }\n\t\t\t\t\t\tid={ siblingTabLabelId }\n\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'tabs__tab-label',\n\t\t\t\t\t\t\ttabItemColorProps.className\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t...tabItemColorProps.style,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttabIndex={ isSiblingTabActive ? 0 : -1 }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelectTab( tab.clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t// If shift is also pressed, do not select the block.\n\t\t\t\t\t\t\tif ( event.key === 'Enter' && ! event.shiftKey ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSelectTab( tab.clientId );\n\t\t\t\t\t\t\t\tif ( isCurrentTab ) {\n\t\t\t\t\t\t\t\t\tconst { requestAnimationFrame } = window;\n\t\t\t\t\t\t\t\t\tfocusRef.current = requestAnimationFrame(\n\t\t\t\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\t\t\t\tlabelElementRef.current?.focus();\n\t\t\t\t\t\t\t\t\t\t}\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} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isCurrentTab ? (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tref={ labelRef }\n\t\t\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %d is the tab index + 1 */\n\t\t\t\t\t\t\t\t\t__( 'Tab %d\u2026' ),\n\t\t\t\t\t\t\t\t\tcurrentBlockIndex + 1\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ decodeEntities( currentLabel ) }\n\t\t\t\t\t\t\t\tonChange={ onLabelChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<StaticLabel\n\t\t\t\t\t\t\t\tlabel={ siblingLabel }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function Save( { attributes } ) {\n\tconst { anchor } = attributes;\n\n\tconst tabPanelId = anchor;\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst blockProps = useBlockProps.save();\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <section { ...innerBlocksProps } id={ tabPanelId } />;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"__experimental\": true,\n\t\"apiVersion\": 3,\n\t\"name\": \"core/tab\",\n\t\"title\": \"Tab\",\n\t\"description\": \"Content for a tab in a tabbed interface.\",\n\t\"version\": \"1.0.0\",\n\t\"category\": \"design\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"label\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\"\n\t\t}\n\t},\n\t\"parent\": [ \"core/tabs\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"reusable\": false,\n\t\t\"layout\": {\n\t\t\t\"allowSwitching\": true,\n\t\t\t\"allowInheriting\": false,\n\t\t\t\"allowVerticalAlignment\": true,\n\t\t\t\"allowJustification\": true,\n\t\t\t\"allowOrientation\": true,\n\t\t\t\"allowSizingOnChildren\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": false\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true,\n\t\t\t\t\"__experimentalFontFamily\": true\n\t\t\t},\n\t\t\t\"__experimentalSkipSerialization\": true\n\t\t}\n\t},\n\t\"providesContext\": {\n\t\t\"core/tab-label\": \"label\"\n\t},\n\t\"editorScript\": \"file:./index.js\",\n\t\"style\": \"file:./style-index.css\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport default (\n\t<SVG\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M5.5498 10.3501V6.3501H9.8498V10.3501H11.3498V6.1001C11.3498 5.40974 10.7902 4.8501 10.0998 4.8501H5.2998C4.60945 4.8501 4.0498 5.40974 4.0498 6.1001V10.3501H5.5498ZM20 12.6001H4V14.1001L20 14.1001V12.6001ZM14 17.1001H4V18.6001H14V17.1001Z\"\n\t\t/>\n\t</SVG>\n);\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport icon from './icon';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { blockTable as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\thead: [\n\t\t\t\t{\n\t\t\t\t\tcells: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Version' ),\n\t\t\t\t\t\t\ttag: 'th',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Jazz Musician' ),\n\t\t\t\t\t\t\ttag: 'th',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Release Date' ),\n\t\t\t\t\t\t\ttag: 'th',\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\tbody: [\n\t\t\t\t{\n\t\t\t\t\tcells: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: '5.2',\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Jaco Pastorius' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'May 7, 2019' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcells: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: '5.1',\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Betty Carter' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'February 21, 2019' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcells: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: '5.0',\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'Bebo Vald\u00E9s' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontent: __( 'December 6, 2018' ),\n\t\t\t\t\t\t\ttag: 'td',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tviewportWidth: 450,\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tgetColorClassName,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\n// As the previous arbitrary colors won't match theme color palettes, the hex\n// value will be mapped to the style.color.background attribute as if it was\n// a custom color selection.\nconst oldColors = {\n\t'subtle-light-gray': '#f3f4f5',\n\t'subtle-pale-green': '#e9fbe5',\n\t'subtle-pale-blue': '#e7f5fe',\n\t'subtle-pale-pink': '#fcf0ef',\n};\n\n// Fixed width table cells on by default.\nconst v4Query = {\n\tcontent: {\n\t\ttype: 'rich-text',\n\t\tsource: 'rich-text',\n\t},\n\ttag: {\n\t\ttype: 'string',\n\t\tdefault: 'td',\n\t\tsource: 'tag',\n\t},\n\tscope: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'scope',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'data-align',\n\t},\n\tcolspan: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'colspan',\n\t},\n\trowspan: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'rowspan',\n\t},\n};\n\nconst v4 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'rich-text',\n\t\t\tsource: 'rich-text',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v4Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v4Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v4Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tmargin: false,\n\t\t\t\tpadding: false,\n\t\t\t},\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tcolor: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: '.wp-block-table > table',\n\t\tinteractivity: {\n\t\t\tclientNavigation: true,\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot, caption } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = clsx( colorProps.className, borderProps.className, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\t\t\ttag,\n\t\t\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst cellClasses = clsx( {\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\t\t\t/>\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</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classes === '' ? undefined : classes }\n\t\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t\t{ hasCaption && (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n// In #41140 support was added to global styles for caption elements which\n// added a `wp-element-caption` classname to the embed figcaption element.\nconst v3Query = {\n\tcontent: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t},\n\ttag: {\n\t\ttype: 'string',\n\t\tdefault: 'td',\n\t\tsource: 'tag',\n\t},\n\tscope: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'scope',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'data-align',\n\t},\n};\n\nconst v3 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\tdefault: '',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v3Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v3Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v3Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\tcolor: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tgradients: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tbackground: true,\n\t\t\t\ttext: true,\n\t\t\t},\n\t\t},\n\t\tspacing: {\n\t\t\tmargin: true,\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\tlineHeight: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t\t__experimentalFontStyle: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalLetterSpacing: true,\n\t\t\t__experimentalTextTransform: true,\n\t\t\t__experimentalTextDecoration: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tfontSize: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\tcolor: true,\n\t\t\tstyle: true,\n\t\t\twidth: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tcolor: true,\n\t\t\t\tstyle: true,\n\t\t\t\twidth: true,\n\t\t\t},\n\t\t},\n\t\t__experimentalSelector: '.wp-block-table > table',\n\t},\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot, caption } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\t\tconst classes = clsx( colorProps.className, borderProps.className, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{ content, tag, scope, align },\n\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst cellClasses = clsx( {\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\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</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classes === '' ? undefined : classes }\n\t\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t\t{ hasCaption && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\n// Deprecation migrating table block to use colors block support feature.\nconst v2Query = {\n\tcontent: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t},\n\ttag: {\n\t\ttype: 'string',\n\t\tdefault: 'td',\n\t\tsource: 'tag',\n\t},\n\tscope: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'scope',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'data-align',\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcaption: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t\tdefault: '',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v2Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v2Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v2Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\talign: true,\n\t\t__experimentalSelector: '.wp-block-table > table',\n\t},\n\tsave: ( { attributes } ) => {\n\t\tconst { hasFixedLayout, head, body, foot, backgroundColor, caption } =\n\t\t\tattributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tconst classes = clsx( backgroundClass, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t'has-background': !! backgroundClass,\n\t\t} );\n\n\t\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t{ content, tag, scope, align },\n\t\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\tconst cellClasses = clsx( {\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\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</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t<table className={ classes === '' ? undefined : classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t\t{ hasCaption && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n\tisEligible: ( attributes ) => {\n\t\treturn (\n\t\t\tattributes.backgroundColor &&\n\t\t\tattributes.backgroundColor in oldColors &&\n\t\t\t! attributes.style\n\t\t);\n\t},\n\n\t// This version is the first to introduce the style attribute to the\n\t// table block. As a result, we'll explicitly override that.\n\tmigrate: ( attributes ) => {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tbackgroundColor: undefined,\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\tbackground: oldColors[ attributes.backgroundColor ],\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n};\n\nconst v1Query = {\n\tcontent: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t},\n\ttag: {\n\t\ttype: 'string',\n\t\tdefault: 'td',\n\t\tsource: 'tag',\n\t},\n\tscope: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'scope',\n\t},\n};\n\nconst v1 = {\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\thead: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'thead tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v1Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbody: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tbody tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v1Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tfoot: {\n\t\t\ttype: 'array',\n\t\t\tdefault: [],\n\t\t\tsource: 'query',\n\t\t\tselector: 'tfoot tr',\n\t\t\tquery: {\n\t\t\t\tcells: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tdefault: [],\n\t\t\t\t\tsource: 'query',\n\t\t\t\t\tselector: 'td,th',\n\t\t\t\t\tquery: v1Query,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n\tsupports: {\n\t\talign: true,\n\t},\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot, backgroundColor } =\n\t\t\tattributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst backgroundClass = getColorClassName(\n\t\t\t'background-color',\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tconst classes = clsx( backgroundClass, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t'has-background': !! backgroundClass,\n\t\t} );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t\t( { content, tag, scope }, cellIndex ) => (\n\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t}\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</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<table className={ classes }>\n\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t</table>\n\t\t);\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v4, v3, v2, v1 ];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tBlockIcon,\n\tAlignmentControl,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport {\n\talignLeft,\n\talignRight,\n\talignCenter,\n\tblockTable as icon,\n\ttableColumnAfter,\n\ttableColumnBefore,\n\ttableColumnDelete,\n\ttableRowAfter,\n\ttableRowBefore,\n\ttableRowDelete,\n\ttable,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateSelectedCell,\n\tgetCellAttribute,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n\ttoggleSection,\n\tisEmptyTableSection,\n} from './state';\nimport { Caption } from '../utils/caption';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align column left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align column center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align column right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst cellAriaLabel = {\n\thead: __( 'Header cell text' ),\n\tbody: __( 'Body cell text' ),\n\tfoot: __( 'Footer cell text' ),\n};\n\nconst placeholder = {\n\thead: __( 'Header label' ),\n\tfoot: __( 'Footer label' ),\n};\n\nfunction TSection( { name, ...props } ) {\n\tconst TagName = `t${ name }`;\n\treturn <TagName { ...props } />;\n}\n\nfunction TableEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tisSelected: isSingleSelected,\n} ) {\n\tconst { hasFixedLayout, head, foot } = attributes;\n\tconst [ initialRowCount, setInitialRowCount ] = useState( 2 );\n\tconst [ initialColumnCount, setInitialColumnCount ] = useState( 2 );\n\tconst [ selectedCell, setSelectedCell ] = useState();\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} count New initial column count.\n\t */\n\tfunction onChangeInitialColumnCount( count ) {\n\t\tsetInitialColumnCount( count );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} count New initial row count.\n\t */\n\tfunction onChangeInitialRowCount( count ) {\n\t\tsetInitialRowCount( count );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tfunction onCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tsetAttributes(\n\t\t\tcreateTable( {\n\t\t\t\trowCount: parseInt( initialRowCount, 10 ) || 2,\n\t\t\t\tcolumnCount: parseInt( initialColumnCount, 10 ) || 2,\n\t\t\t} )\n\t\t);\n\t\tsetHasTableCreated( true );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tfunction onChangeFixedLayout() {\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tconst onChange = useCallback(\n\t\tfunction ( content ) {\n\t\t\tif ( ! selectedCell ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetAttributes( ( currentAttributes ) =>\n\t\t\t\tupdateSelectedCell(\n\t\t\t\t\tcurrentAttributes,\n\t\t\t\t\tselectedCell,\n\t\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t\t...cellAttributes,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} )\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\t[ selectedCell, setAttributes ]\n\t);\n\n\t/**\n\t * Align text within the a column.\n\t *\n\t * @param {string} align The new alignment to apply to the column.\n\t */\n\tfunction onChangeColumnAlignment( align ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the cell selection to a column selection so that alignment\n\t\t// is applied to the entire column.\n\t\tconst columnSelection = {\n\t\t\ttype: 'column',\n\t\t\tcolumnIndex: selectedCell.columnIndex,\n\t\t};\n\n\t\tconst newAttributes = updateSelectedCell(\n\t\t\tattributes,\n\t\t\tcolumnSelection,\n\t\t\t( cellAttributes ) => ( {\n\t\t\t\t...cellAttributes,\n\t\t\t\talign,\n\t\t\t} )\n\t\t);\n\t\tsetAttributes( newAttributes );\n\t}\n\n\t/**\n\t * Get the alignment of the currently selected cell.\n\t *\n\t * @return {string | undefined} The new alignment to apply to the column.\n\t */\n\tfunction getCellAlignment() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getCellAttribute( attributes, selectedCell, 'align' );\n\t}\n\n\t/**\n\t * Add or remove a `head` table section.\n\t */\n\tfunction onToggleHeaderSection() {\n\t\tsetAttributes( toggleSection( attributes, 'head' ) );\n\t}\n\n\t/**\n\t * Add or remove a `foot` table section.\n\t */\n\tfunction onToggleFooterSection() {\n\t\tsetAttributes( toggleSection( attributes, 'foot' ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tfunction onInsertRow( delta ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\t\tconst newRowIndex = rowIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertRow( attributes, {\n\t\t\t\tsectionName,\n\t\t\t\trowIndex: newRowIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new row.\n\t\tsetSelectedCell( {\n\t\t\tsectionName,\n\t\t\trowIndex: newRowIndex,\n\t\t\tcolumnIndex: 0,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tfunction onInsertRowBefore() {\n\t\tonInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tfunction onInsertRowAfter() {\n\t\tonInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tfunction onDeleteRow() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes( deleteRow( attributes, { sectionName, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tfunction onInsertColumn( delta = 0 ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { columnIndex } = selectedCell;\n\t\tconst newColumnIndex = columnIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertColumn( attributes, {\n\t\t\t\tcolumnIndex: newColumnIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new column.\n\t\tsetSelectedCell( {\n\t\t\trowIndex: 0,\n\t\t\tcolumnIndex: newColumnIndex,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tfunction onInsertColumnBefore() {\n\t\tonInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tfunction onInsertColumnAfter() {\n\t\tonInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tfunction onDeleteColumn() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, columnIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes(\n\t\t\tdeleteColumn( attributes, { sectionName, columnIndex } )\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSingleSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSingleSelected ] );\n\n\tuseEffect( () => {\n\t\tif ( hasTableCreated ) {\n\t\t\ttableRef?.current\n\t\t\t\t?.querySelector( 'td div[contentEditable=\"true\"]' )\n\t\t\t\t?.focus();\n\t\t\tsetHasTableCreated( false );\n\t\t}\n\t}, [ hasTableCreated ] );\n\n\tconst sections = [ 'head', 'body', 'foot' ].filter(\n\t\t( name ) => ! isEmptyTableSection( attributes[ name ] )\n\t);\n\n\tconst tableControls = [\n\t\t{\n\t\t\ticon: tableRowBefore,\n\t\t\ttitle: __( 'Insert row before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowAfter,\n\t\t\ttitle: __( 'Insert row after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowDelete,\n\t\t\ttitle: __( 'Delete row' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteRow,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnBefore,\n\t\t\ttitle: __( 'Insert column before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnAfter,\n\t\t\ttitle: __( 'Insert column after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnDelete,\n\t\t\ttitle: __( 'Delete column' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteColumn,\n\t\t},\n\t];\n\n\tconst renderedSections = sections.map( ( name ) => (\n\t\t<TSection name={ name } key={ name }>\n\t\t\t{ attributes[ name ].map( ( { cells }, rowIndex ) => (\n\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t{ cells.map( ( cellProps, columnIndex ) => {\n\t\t\t\t\t\tconst isSelected =\n\t\t\t\t\t\t\tselectedCell?.sectionName === name &&\n\t\t\t\t\t\t\tselectedCell?.rowIndex === rowIndex &&\n\t\t\t\t\t\t\tselectedCell?.columnIndex === columnIndex;\n\n\t\t\t\t\t\t// Important - the Cell component is memoized to improve typing performance.\n\t\t\t\t\t\t// ensure all props passed have stable references.\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Cell\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\t\trowIndex={ rowIndex }\n\t\t\t\t\t\t\t\tcolumnIndex={ columnIndex }\n\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t// Only pass the `onChange` handler to the selectedCell.\n\t\t\t\t\t\t\t\t\t// Cell components are memoized, so it's best to avoid\n\t\t\t\t\t\t\t\t\t// passing in a value that will cause all cells to re-render\n\t\t\t\t\t\t\t\t\t// whenever it changes.\n\t\t\t\t\t\t\t\t\tisSelected ? onChange : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetSelectedCell={ setSelectedCell }\n\t\t\t\t\t\t\t\t{ ...cellProps }\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</tr>\n\t\t\t) ) }\n\t\t</TSection>\n\t) );\n\n\tconst isEmpty = ! sections.length;\n\n\treturn (\n\t\t<figure { ...useBlockProps( { ref: tableRef } ) }>\n\t\t\t{ ! isEmpty && blockEditingMode === 'default' && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tlabel={ __( 'Change column alignment' ) }\n\t\t\t\t\t\t\talignmentControls={ ALIGNMENT_CONTROLS }\n\t\t\t\t\t\t\tvalue={ getCellAlignment() }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) =>\n\t\t\t\t\t\t\t\tonChangeColumnAlignment( nextAlign )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\ticon={ table }\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ tableControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\thasFixedLayout: true,\n\t\t\t\t\t\t\thead: [],\n\t\t\t\t\t\t\tfoot: [],\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => hasFixedLayout !== true }\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { hasFixedLayout: true } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => head && head.length }\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { head: [] } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\t\thasValue={ () => foot && foot.length }\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { foot: [] } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<table\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t\t\t\t\t\t// This is required in the editor only to overcome\n\t\t\t\t\t\t\t// the fact the editor rewrites individual border\n\t\t\t\t\t\t\t// widths into a shorthand format.\n\t\t\t\t\t\t\t'has-individual-borders': hasSplitBorders(\n\t\t\t\t\t\t\t\tattributes?.style?.border\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\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t{ renderedSections }\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ isEmpty ? (\n\t\t\t\t<Placeholder\n\t\t\t\t\tlabel={ __( 'Table' ) }\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tinstructions={ __( 'Insert a table for sharing data.' ) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"blocks-table__placeholder-form\"\n\t\t\t\t\t\tonSubmit={ onCreateTable }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Column count' ) }\n\t\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialColumnCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Row count' ) }\n\t\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialRowCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create Table' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t) : (\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Table caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && blockEditingMode === 'default'\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nconst Cell = memo( function ( {\n\ttag: CellTag,\n\tname,\n\tscope,\n\tcolspan,\n\trowspan,\n\trowIndex,\n\tcolumnIndex,\n\talign,\n\tcontent,\n\tonChange,\n\tsetSelectedCell,\n} ) {\n\treturn (\n\t\t<CellTag\n\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\tcolSpan={ colspan }\n\t\t\trowSpan={ rowspan }\n\t\t\tclassName={ clsx(\n\t\t\t\t{\n\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t},\n\t\t\t\t'wp-block-table__cell-content'\n\t\t\t) }\n\t\t>\n\t\t\t<RichText\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonFocus={ () => {\n\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\ttype: 'cell',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\tplaceholder={ placeholder[ name ] }\n\t\t\t/>\n\t\t</CellTag>\n\t);\n} );\n\nexport default TableEdit;\n", "const INHERITED_COLUMN_ATTRIBUTES = [ 'align' ];\n\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( { rowCount, columnCount } ) {\n\treturn {\n\t\tbody: Array.from( { length: rowCount } ).map( () => ( {\n\t\t\tcells: Array.from( { length: columnCount } ).map( () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object | undefined} The first table row.\n */\nexport function getFirstRow( state ) {\n\tif ( ! isEmptyTableSection( state.head ) ) {\n\t\treturn state.head[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.body ) ) {\n\t\treturn state.body[ 0 ];\n\t}\n\tif ( ! isEmptyTableSection( state.foot ) ) {\n\t\treturn state.foot[ 0 ];\n\t}\n}\n\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state Current table state.\n * @param {Object} cellLocation The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\nexport function getCellAttribute( state, cellLocation, attributeName ) {\n\tconst { sectionName, rowIndex, columnIndex } = cellLocation;\n\treturn state[ sectionName ]?.[ rowIndex ]?.cells?.[ columnIndex ]?.[\n\t\tattributeName\n\t];\n}\n\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object} state The block attributes.\n * @param {Object} selection The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\nexport function updateSelectedCell( state, selection, updateCell ) {\n\tif ( ! selection ) {\n\t\treturn state;\n\t}\n\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\tconst { sectionName: selectionSectionName, rowIndex: selectionRowIndex } =\n\t\tselection;\n\n\treturn Object.fromEntries(\n\t\tObject.entries( tableSections ).map( ( [ sectionName, section ] ) => {\n\t\t\tif (\n\t\t\t\tselectionSectionName &&\n\t\t\t\tselectionSectionName !== sectionName\n\t\t\t) {\n\t\t\t\treturn [ sectionName, section ];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tsectionName,\n\t\t\t\tsection.map( ( row, rowIndex ) => {\n\t\t\t\t\tif ( selectionRowIndex && selectionRowIndex !== rowIndex ) {\n\t\t\t\t\t\treturn row;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcells: row.cells.map(\n\t\t\t\t\t\t\t( cellAttributes, columnIndex ) => {\n\t\t\t\t\t\t\t\tconst cellLocation = {\n\t\t\t\t\t\t\t\t\tsectionName,\n\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t! isCellSelected( cellLocation, selection )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn cellAttributes;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn updateCell( cellAttributes );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t];\n\t\t} )\n\t);\n}\n\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\nexport function isCellSelected( cellLocation, selection ) {\n\tif ( ! cellLocation || ! selection ) {\n\t\treturn false;\n\t}\n\n\tswitch ( selection.type ) {\n\t\tcase 'column':\n\t\t\treturn (\n\t\t\t\tselection.type === 'column' &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex\n\t\t\t);\n\t\tcase 'cell':\n\t\t\treturn (\n\t\t\t\tselection.type === 'cell' &&\n\t\t\t\tcellLocation.sectionName === selection.sectionName &&\n\t\t\t\tcellLocation.columnIndex === selection.columnIndex &&\n\t\t\t\tcellLocation.rowIndex === selection.rowIndex\n\t\t\t);\n\t}\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, { sectionName, rowIndex, columnCount } ) {\n\tconst firstRow = getFirstRow( state );\n\tconst cellCount =\n\t\tcolumnCount === undefined ? firstRow?.cells?.length : columnCount;\n\n\t// Bail early if the function cannot determine how many cells to add.\n\tif ( ! cellCount ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\t[ sectionName ]: [\n\t\t\t...state[ sectionName ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: Array.from( { length: cellCount } ).map(\n\t\t\t\t\t( _, index ) => {\n\t\t\t\t\t\tconst firstCellInColumn =\n\t\t\t\t\t\t\tfirstRow?.cells?.[ index ] ?? {};\n\n\t\t\t\t\t\tconst inheritedAttributes = Object.fromEntries(\n\t\t\t\t\t\t\tObject.entries( firstCellInColumn ).filter(\n\t\t\t\t\t\t\t\t( [ key ] ) =>\n\t\t\t\t\t\t\t\t\tINHERITED_COLUMN_ATTRIBUTES.includes( key )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...inheritedAttributes,\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t},\n\t\t\t...state[ sectionName ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, { sectionName, rowIndex } ) {\n\treturn {\n\t\t[ sectionName ]: state[ sectionName ].filter(\n\t\t\t( row, index ) => index !== rowIndex\n\t\t),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn Object.fromEntries(\n\t\tObject.entries( tableSections ).map( ( [ sectionName, section ] ) => {\n\t\t\t// Bail early if the table section is empty.\n\t\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\t\treturn [ sectionName, section ];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tsectionName,\n\t\t\t\tsection.map( ( row ) => {\n\t\t\t\t\t// Bail early if the row is empty or it's an attempt to insert past\n\t\t\t\t\t// the last possible index of the array.\n\t\t\t\t\tif ( isEmptyRow( row ) || row.cells.length < columnIndex ) {\n\t\t\t\t\t\treturn row;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcells: [\n\t\t\t\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\t\ttag: sectionName === 'head' ? 'th' : 'td',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t\t\t\t],\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t];\n\t\t} )\n\t);\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, { columnIndex } ) {\n\tconst tableSections = Object.fromEntries(\n\t\tObject.entries( state ).filter( ( [ key ] ) =>\n\t\t\t[ 'head', 'body', 'foot' ].includes( key )\n\t\t)\n\t);\n\n\treturn Object.fromEntries(\n\t\tObject.entries( tableSections ).map( ( [ sectionName, section ] ) => {\n\t\t\t// Bail early if the table section is empty.\n\t\t\tif ( isEmptyTableSection( section ) ) {\n\t\t\t\treturn [ sectionName, section ];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tsectionName,\n\t\t\t\tsection\n\t\t\t\t\t.map( ( row ) => ( {\n\t\t\t\t\t\tcells:\n\t\t\t\t\t\t\trow.cells.length >= columnIndex\n\t\t\t\t\t\t\t\t? row.cells.filter(\n\t\t\t\t\t\t\t\t\t\t( cell, index ) => index !== columnIndex\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: row.cells,\n\t\t\t\t\t} ) )\n\t\t\t\t\t.filter( ( row ) => row.cells.length ),\n\t\t\t];\n\t\t} )\n\t);\n}\n\n/**\n * Toggles the existence of a section.\n *\n * @param {Object} state Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\nexport function toggleSection( state, sectionName ) {\n\t// Section exists, replace it with an empty row to remove it.\n\tif ( ! isEmptyTableSection( state[ sectionName ] ) ) {\n\t\treturn { [ sectionName ]: [] };\n\t}\n\n\t// Get the length of the first row of the body to use when creating the header.\n\tconst columnCount = state.body?.[ 0 ]?.cells?.length ?? 1;\n\n\t// Section doesn't exist, insert an empty row to create the section.\n\treturn insertRow( state, { sectionName, rowIndex: 0, columnCount } );\n}\n\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyTableSection( section ) {\n\treturn ! section || ! section.length || section.every( isEmptyRow );\n}\n\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\nexport function isEmptyRow( row ) {\n\treturn ! ( row.cells && row.cells.length );\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/table\",\n\t\"title\": \"Table\",\n\t\"category\": \"text\",\n\t\"description\": \"Create structured content in rows and columns to display information.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"hasFixedLayout\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"figcaption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"head\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [],\n\t\t\t\"source\": \"query\",\n\t\t\t\"selector\": \"thead tr\",\n\t\t\t\"query\": {\n\t\t\t\t\"cells\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"default\": [],\n\t\t\t\t\t\"source\": \"query\",\n\t\t\t\t\t\"selector\": \"td,th\",\n\t\t\t\t\t\"query\": {\n\t\t\t\t\t\t\"content\": {\n\t\t\t\t\t\t\t\"type\": \"rich-text\",\n\t\t\t\t\t\t\t\"source\": \"rich-text\",\n\t\t\t\t\t\t\t\"role\": \"content\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"tag\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"default\": \"td\",\n\t\t\t\t\t\t\t\"source\": \"tag\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"scope\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"scope\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"align\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"data-align\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"colspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"colspan\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"rowspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"rowspan\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"body\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [],\n\t\t\t\"source\": \"query\",\n\t\t\t\"selector\": \"tbody tr\",\n\t\t\t\"query\": {\n\t\t\t\t\"cells\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"default\": [],\n\t\t\t\t\t\"source\": \"query\",\n\t\t\t\t\t\"selector\": \"td,th\",\n\t\t\t\t\t\"query\": {\n\t\t\t\t\t\t\"content\": {\n\t\t\t\t\t\t\t\"type\": \"rich-text\",\n\t\t\t\t\t\t\t\"source\": \"rich-text\",\n\t\t\t\t\t\t\t\"role\": \"content\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"tag\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"default\": \"td\",\n\t\t\t\t\t\t\t\"source\": \"tag\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"scope\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"scope\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"align\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"data-align\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"colspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"colspan\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"rowspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"rowspan\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"foot\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"default\": [],\n\t\t\t\"source\": \"query\",\n\t\t\t\"selector\": \"tfoot tr\",\n\t\t\t\"query\": {\n\t\t\t\t\"cells\": {\n\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\"default\": [],\n\t\t\t\t\t\"source\": \"query\",\n\t\t\t\t\t\"selector\": \"td,th\",\n\t\t\t\t\t\"query\": {\n\t\t\t\t\t\t\"content\": {\n\t\t\t\t\t\t\t\"type\": \"rich-text\",\n\t\t\t\t\t\t\t\"source\": \"rich-text\",\n\t\t\t\t\t\t\t\"role\": \"content\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"tag\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"default\": \"td\",\n\t\t\t\t\t\t\t\"source\": \"tag\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"scope\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"scope\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"align\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"data-align\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"colspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"colspan\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"rowspan\": {\n\t\t\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\t\t\"source\": \"attribute\",\n\t\t\t\t\t\t\t\"attribute\": \"rowspan\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"color\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"color\": true,\n\t\t\t\"style\": true,\n\t\t\t\"width\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"style\": true,\n\t\t\t\t\"width\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"selectors\": {\n\t\t\"root\": \".wp-block-table > table\",\n\t\t\"spacing\": \".wp-block-table\"\n\t},\n\t\"styles\": [\n\t\t{\n\t\t\t\"name\": \"regular\",\n\t\t\t\"label\": \"Default\",\n\t\t\t\"isDefault\": true\n\t\t},\n\t\t{ \"name\": \"stripes\", \"label\": \"Stripes\" }\n\t],\n\t\"editorStyle\": \"wp-block-table-editor\",\n\t\"style\": \"wp-block-table\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { hasFixedLayout, head, body, foot, caption } = attributes;\n\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\tif ( isEmpty ) {\n\t\treturn null;\n\t}\n\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\n\tconst classes = clsx( colorProps.className, borderProps.className, {\n\t\t'has-fixed-layout': hasFixedLayout,\n\t} );\n\n\tconst hasCaption = ! RichText.isEmpty( caption );\n\n\tconst Section = ( { type, rows } ) => {\n\t\tif ( ! rows.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst Tag = `t${ type }`;\n\n\t\treturn (\n\t\t\t<Tag>\n\t\t\t\t{ rows.map( ( { cells }, rowIndex ) => (\n\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\t\ttag,\n\t\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcellIndex\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tconst cellClasses = clsx( {\n\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\tcellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t? cellClasses\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdata-align={ align }\n\t\t\t\t\t\t\t\t\t\ttagName={ tag }\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tkey={ cellIndex }\n\t\t\t\t\t\t\t\t\t\tscope={\n\t\t\t\t\t\t\t\t\t\t\ttag === 'th' ? scope : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\t\t\trowSpan={ rowspan }\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) }\n\t\t\t\t\t</tr>\n\t\t\t\t) ) }\n\t\t\t</Tag>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...useBlockProps.save() }>\n\t\t\t<table\n\t\t\t\tclassName={ classes === '' ? undefined : classes }\n\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t>\n\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t</table>\n\t\t\t{ hasCaption && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { normalizeRowColSpan } from './utils';\n\nconst tableContentPasteSchema = ( { phrasingContentSchema } ) => ( {\n\ttr: {\n\t\tallowEmpty: true,\n\t\tchildren: {\n\t\t\tth: {\n\t\t\t\tallowEmpty: true,\n\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\tattributes: [ 'scope', 'colspan', 'rowspan', 'style' ],\n\t\t\t},\n\t\t\ttd: {\n\t\t\t\tallowEmpty: true,\n\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\tattributes: [ 'colspan', 'rowspan', 'style' ],\n\t\t\t},\n\t\t},\n\t},\n} );\n\nconst tablePasteSchema = ( args ) => ( {\n\ttable: {\n\t\tchildren: {\n\t\t\tthead: {\n\t\t\t\tallowEmpty: true,\n\t\t\t\tchildren: tableContentPasteSchema( args ),\n\t\t\t},\n\t\t\ttfoot: {\n\t\t\t\tallowEmpty: true,\n\t\t\t\tchildren: tableContentPasteSchema( args ),\n\t\t\t},\n\t\t\ttbody: {\n\t\t\t\tallowEmpty: true,\n\t\t\t\tchildren: tableContentPasteSchema( args ),\n\t\t\t},\n\t\t},\n\t},\n} );\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'table',\n\t\t\tschema: tablePasteSchema,\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst attributes = Array.from( node.children ).reduce(\n\t\t\t\t\t( sectionAcc, section ) => {\n\t\t\t\t\t\tif ( ! section.children.length ) {\n\t\t\t\t\t\t\treturn sectionAcc;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst sectionName = section.nodeName\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.slice( 1 );\n\n\t\t\t\t\t\tconst sectionAttributes = Array.from(\n\t\t\t\t\t\t\tsection.children\n\t\t\t\t\t\t).reduce( ( rowAcc, row ) => {\n\t\t\t\t\t\t\tif ( ! row.children.length ) {\n\t\t\t\t\t\t\t\treturn rowAcc;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst rowAttributes = Array.from(\n\t\t\t\t\t\t\t\trow.children\n\t\t\t\t\t\t\t).reduce( ( colAcc, col ) => {\n\t\t\t\t\t\t\t\tconst rowspan = normalizeRowColSpan(\n\t\t\t\t\t\t\t\t\tcol.getAttribute( 'rowspan' )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tconst colspan = normalizeRowColSpan(\n\t\t\t\t\t\t\t\t\tcol.getAttribute( 'colspan' )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tconst { textAlign } = col.style || {};\n\n\t\t\t\t\t\t\t\tlet align;\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\talign = textAlign;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcolAcc.push( {\n\t\t\t\t\t\t\t\t\ttag: col.nodeName.toLowerCase(),\n\t\t\t\t\t\t\t\t\tcontent: col.innerHTML,\n\t\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\treturn colAcc;\n\t\t\t\t\t\t\t}, [] );\n\n\t\t\t\t\t\t\trowAcc.push( {\n\t\t\t\t\t\t\t\tcells: rowAttributes,\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\treturn rowAcc;\n\t\t\t\t\t\t}, [] );\n\n\t\t\t\t\t\tsectionAcc[ sectionName ] = sectionAttributes;\n\t\t\t\t\t\treturn sectionAcc;\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\treturn createBlock( 'core/table', attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * Normalize the rowspan/colspan value.\n * Returns undefined if the parameter is not a positive number\n * or the default value (1) for rowspan/colspan.\n *\n * @param {number|undefined} rowColSpan rowspan/colspan value.\n *\n * @return {string|undefined} normalized rowspan/colspan value.\n */\nexport function normalizeRowColSpan( rowColSpan ) {\n\tconst parsedValue = parseInt( rowColSpan, 10 );\n\tif ( ! Number.isInteger( parsedValue ) ) {\n\t\treturn undefined;\n\t}\n\treturn parsedValue < 0 || parsedValue === 1\n\t\t? undefined\n\t\t: parsedValue.toString();\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { tableOfContents as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 2,\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/heading',\n\t\t\t\tattributes: {\n\t\t\t\t\tlevel: 3,\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tattributes: {\n\t\t\theadings: [\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Heading' ),\n\t\t\t\t\tlevel: 2,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcontent: __( 'Subheading' ),\n\t\t\t\t\tlevel: 3,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"__experimental\": true,\n\t\"name\": \"core/table-of-contents\",\n\t\"title\": \"Table of Contents\",\n\t\"category\": \"design\",\n\t\"description\": \"Summarize your post with a list of headings. Add HTML anchors to Heading blocks to link them here.\",\n\t\"keywords\": [ \"document outline\", \"summary\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"headings\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\"\n\t\t\t},\n\t\t\t\"default\": []\n\t\t},\n\t\t\"onlyIncludeCurrentPage\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"maxLevel\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"ordered\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": true\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"ariaLabel\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"text\": true,\n\t\t\t\"background\": true,\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-table-of-contents\"\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tToggleControl,\n\tSelectControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { renderToString } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as noticeStore } from '@wordpress/notices';\nimport {\n\ttableOfContents as icon,\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\nimport { useObserveHeadings } from './hooks';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings The list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {number|undefined} props.attributes.maxLevel The maximum heading level to include, or null to include all levels.\n * @param {boolean} props.attributes.ordered Whether to display as an ordered list (true) or unordered list (false).\n * @param {string} props.clientId The client id.\n * @param {(attributes: Object) => void} props.setAttributes The set attributes function.\n *\n * @return {Component} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: {\n\t\theadings = [],\n\t\tonlyIncludeCurrentPage,\n\t\tmaxLevel,\n\t\tordered = true,\n\t},\n\tclientId,\n\tsetAttributes,\n} ) {\n\tuseObserveHeadings( clientId );\n\n\tconst blockProps = useBlockProps();\n\tconst instanceId = useInstanceId(\n\t\tTableOfContentsEdit,\n\t\t'table-of-contents'\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/table-of-contents/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: false } ) }\n\t\t\t\t\tisActive={ ordered === false }\n\t\t\t\t/>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={\n\t\t\t\t\t\tisRTL() ? formatListNumberedRTL : formatListNumbered\n\t\t\t\t\t}\n\t\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: true } ) }\n\t\t\t\t\tisActive={ ordered === true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ canInsertList && (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\t\tordered,\n\t\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t\t\t\t\t\t/>\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}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tonlyIncludeCurrentPage: false,\n\t\t\t\t\t\tmaxLevel: undefined,\n\t\t\t\t\t\tordered: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! onlyIncludeCurrentPage }\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\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\t\t\t'Include headings from all pages (if the post is paginated).'\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</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! maxLevel }\n\t\t\t\t\tlabel={ __( 'Limit heading levels' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { maxLevel: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Include headings down to level' ) }\n\t\t\t\t\t\tvalue={ maxLevel || '' }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'All levels' ) },\n\t\t\t\t\t\t\t{ value: '1', label: __( 'Heading 1' ) },\n\t\t\t\t\t\t\t{ value: '2', label: __( 'Heading 2' ) },\n\t\t\t\t\t\t\t{ value: '3', label: __( 'Heading 3' ) },\n\t\t\t\t\t\t\t{ value: '4', label: __( 'Heading 4' ) },\n\t\t\t\t\t\t\t{ value: '5', label: __( 'Heading 5' ) },\n\t\t\t\t\t\t\t{ value: '6', label: __( 'Heading 6' ) },\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmaxLevel: value ? parseInt( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t! maxLevel\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'Including all heading levels in the table of contents.'\n\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\t\t\t'Only include headings up to and including this level.'\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</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel={ __( 'Table of Contents' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\tconst ListTag = ordered ? 'ol' : 'ul';\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ListTag>\n\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\tdisableLinkActivation\n\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t/>\n\t\t\t\t</ListTag>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport type { MouseEvent, ReactElement } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { NestedHeadingData } from './utils';\n\nconst ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';\n\nexport default function TableOfContentsList( {\n\tnestedHeadingList,\n\tdisableLinkActivation,\n\tonClick,\n\tordered = true,\n}: {\n\tnestedHeadingList: NestedHeadingData[];\n\tdisableLinkActivation?: boolean;\n\tonClick?: ( event: MouseEvent< HTMLAnchorElement > ) => void;\n\tordered?: boolean;\n} ): ReactElement {\n\treturn (\n\t\t<>\n\t\t\t{ nestedHeadingList.map( ( node, index ) => {\n\t\t\t\tconst { content, link } = node.heading;\n\n\t\t\t\tconst entry = link ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ ENTRY_CLASS_NAME }\n\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\taria-disabled={ disableLinkActivation || undefined }\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tdisableLinkActivation &&\n\t\t\t\t\t\t\t'function' === typeof onClick\n\t\t\t\t\t\t\t\t? onClick\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ content }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<span className={ ENTRY_CLASS_NAME }>{ content }</span>\n\t\t\t\t);\n\n\t\t\t\tconst NestedListTag = ordered ? 'ol' : 'ul';\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t{ entry }\n\t\t\t\t\t\t{ node.children ? (\n\t\t\t\t\t\t\t<NestedListTag>\n\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\tnestedHeadingList={ node.children }\n\t\t\t\t\t\t\t\t\tdisableLinkActivation={\n\t\t\t\t\t\t\t\t\t\tdisableLinkActivation\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\tdisableLinkActivation &&\n\t\t\t\t\t\t\t\t\t\t'function' === typeof onClick\n\t\t\t\t\t\t\t\t\t\t\t? onClick\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</NestedListTag>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n", "export interface HeadingData {\n\t/** The plain text content of the heading. */\n\tcontent: string;\n\t/** The heading level. */\n\tlevel: number;\n\t/** Link to the heading. */\n\tlink: string;\n}\n\nexport interface NestedHeadingData {\n\t/** The heading content, level, and link. */\n\theading: HeadingData;\n\t/** The sub-headings of this heading, if any. */\n\tchildren: NestedHeadingData[] | null;\n}\n\n/**\n * Takes a flat list of heading parameters and nests them based on each header's\n * immediate parent's level.\n *\n * @param headingList The flat list of headings to nest.\n *\n * @return The nested list of headings.\n */\nexport function linearToNestedHeadingList(\n\theadingList: HeadingData[]\n): NestedHeadingData[] {\n\tconst nestedHeadingList: NestedHeadingData[] = [];\n\n\theadingList.forEach( ( heading, key ) => {\n\t\tif ( heading.content === '' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure we are only working with the same level as the first iteration in our set.\n\t\tif ( heading.level === headingList[ 0 ].level ) {\n\t\t\t// Check that the next iteration will return a value.\n\t\t\t// If it does and the next level is greater than the current level,\n\t\t\t// the next iteration becomes a child of the current iteration.\n\t\t\tif ( headingList[ key + 1 ]?.level > heading.level ) {\n\t\t\t\t// We must calculate the last index before the next iteration that\n\t\t\t\t// has the same level (siblings). We then use this index to slice\n\t\t\t\t// the array for use in recursion. This prevents duplicate nodes.\n\t\t\t\tlet endOfSlice = headingList.length;\n\t\t\t\tfor ( let i = key + 1; i < headingList.length; i++ ) {\n\t\t\t\t\tif ( headingList[ i ].level === heading.level ) {\n\t\t\t\t\t\tendOfSlice = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// We found a child node: Push a new node onto the return array\n\t\t\t\t// with children.\n\t\t\t\tnestedHeadingList.push( {\n\t\t\t\t\theading,\n\t\t\t\t\tchildren: linearToNestedHeadingList(\n\t\t\t\t\t\theadingList.slice( key + 1, endOfSlice )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\t// No child node: Push a new node onto the return array.\n\t\t\t\tnestedHeadingList.push( {\n\t\t\t\t\theading,\n\t\t\t\t\tchildren: null,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn nestedHeadingList;\n}\n", "/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6/index.js';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { useEffect } from '@wordpress/element';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction getLatestHeadings( select, clientId ) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockName,\n\t\tgetBlocksByName,\n\t\tgetClientIdsOfDescendants,\n\t} = select( blockEditorStore );\n\n\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t// declaring @wordpress/editor as a dependency, we must access its\n\t// store by string. When the store is not available, editorSelectors\n\t// will be null, and the block's saved markup will lack permalinks.\n\tconst permalink = select( 'core/editor' ).getPermalink() ?? null;\n\n\tconst isPaginated = getBlocksByName( 'core/nextpage' ).length !== 0;\n\tconst { onlyIncludeCurrentPage, maxLevel } =\n\t\tgetBlockAttributes( clientId ) ?? {};\n\n\t// Get post-content block client ID.\n\tconst [ postContentClientId = '' ] = getBlocksByName( 'core/post-content' );\n\n\t// Get the client ids of all blocks in the editor.\n\tconst allBlockClientIds = getClientIdsOfDescendants( postContentClientId );\n\n\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\tlet tocPage = 1;\n\n\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t// We can't use getBlockIndex because it only returns the index\n\t\t// relative to sibling blocks.\n\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\tfor ( const [\n\t\t\tblockIndex,\n\t\t\tblockClientId,\n\t\t] of allBlockClientIds.entries() ) {\n\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t// finished calculating which page the block is on.\n\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\ttocPage++;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst latestHeadings = [];\n\n\t/** The page (of a paginated post) a heading will be part of. */\n\tlet headingPage = 1;\n\tlet headingPageLink = null;\n\n\t// If the core/editor store is available, we can add permalinks to the\n\t// generated table of contents.\n\tif ( typeof permalink === 'string' ) {\n\t\theadingPageLink = isPaginated\n\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t: permalink;\n\t}\n\n\tfor ( const blockClientId of allBlockClientIds ) {\n\t\tconst blockName = getBlockName( blockClientId );\n\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\theadingPage++;\n\n\t\t\t// If we're only including headings from the current page (of\n\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t// pages after the one with the Table of Contents block.\n\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t{ page: headingPage }\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// If we're including all headings or we've reached headings on\n\t\t// the same page as the Table of Contents block, add them to the\n\t\t// list.\n\t\telse if ( ! onlyIncludeCurrentPage || headingPage === tocPage ) {\n\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\tconst headingAttributes = getBlockAttributes( blockClientId );\n\n\t\t\t\t// Skip headings that are deeper than maxLevel\n\t\t\t\tif ( maxLevel && headingAttributes.level > maxLevel ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst canBeLinked =\n\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\tlatestHeadings.push( {\n\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\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\tlevel: headingAttributes.level,\n\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t: null,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn latestHeadings;\n}\n\nfunction observeCallback( select, dispatch, clientId ) {\n\tconst { getBlockAttributes } = select( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tdispatch( blockEditorStore );\n\n\t/**\n\t * If the block no longer exists in the store, skip the update.\n\t * The \"undo\" action recreates the block and provides a new `clientId`.\n\t * The hook still might be observing the changes while the old block unmounts.\n\t */\n\tconst attributes = getBlockAttributes( clientId );\n\tif ( attributes === null ) {\n\t\treturn;\n\t}\n\n\tconst headings = getLatestHeadings( select, clientId );\n\tif ( ! fastDeepEqual( headings, attributes.headings ) ) {\n\t\t// Executing the update in a microtask ensures that the non-persistent marker doesn't affect an attribute triggering the change.\n\t\twindow.queueMicrotask( () => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( clientId, { headings } );\n\t\t} );\n\t}\n}\n\nexport function useObserveHeadings( clientId ) {\n\tconst registry = useRegistry();\n\tuseEffect( () => {\n\t\t// Todo: Limit subscription to block editor store when data no longer depends on `getPermalink`.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/45513\n\t\treturn registry.subscribe( () =>\n\t\t\tobserveCallback( registry.select, registry.dispatch, clientId )\n\t\t);\n\t}, [ registry, clientId ] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\nexport default function save( {\n\tattributes: { headings = [], ordered = true },\n} ) {\n\tif ( headings.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst ListTag = ordered ? 'ol' : 'ul';\n\treturn (\n\t\t<nav { ...useBlockProps.save() }>\n\t\t\t<ListTag>\n\t\t\t\t<TableOfContentsList\n\t\t\t\t\tnestedHeadingList={ linearToNestedHeadingList( headings ) }\n\t\t\t\t\tordered={ ordered }\n\t\t\t\t/>\n\t\t\t</ListTag>\n\t\t</nav>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\twithColors,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport StyleEngine from './style-engine';\nimport Controls from './controls';\n\nconst TABS_TEMPLATE = [ [ 'core/tab', {} ] ];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/tab',\n\tattributesToCopy: [ 'className', 'fontFamily', 'fontSize' ],\n};\n\nfunction Edit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\ttabInactiveColor,\n\tsetTabInactiveColor,\n\ttabHoverColor,\n\tsetTabHoverColor,\n\ttabActiveColor,\n\tsetTabActiveColor,\n\ttabTextColor,\n\tsetTabTextColor,\n\ttabActiveTextColor,\n\tsetTabActiveTextColor,\n\ttabHoverTextColor,\n\tsetTabHoverTextColor,\n} ) {\n\tconst { style, orientation } = attributes;\n\n\t/**\n\t * Block props for the tabs container.\n\t */\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'vertical' === orientation ? 'is-vertical' : 'is-horizontal'\n\t\t),\n\t\tstyle: {\n\t\t\t...style,\n\t\t},\n\t} );\n\n\t/**\n\t * Innerblocks props for the tabs list.\n\t */\n\tconst innerBlockProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\t__experimentalCaptureToolbars: true,\n\t\tclientId,\n\t\torientation,\n\t\ttemplate: TABS_TEMPLATE,\n\t\trenderAppender: false, // Appender is rendered by individual tab blocks.\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...innerBlockProps }>\n\t\t\t\t{ innerBlockProps.children }\n\t\t\t\t<StyleEngine attributes={ attributes } clientId={ clientId } />\n\t\t\t\t<Controls\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\ttabInactiveColor,\n\t\t\t\t\t\tsetTabInactiveColor,\n\t\t\t\t\t\ttabHoverColor,\n\t\t\t\t\t\tsetTabHoverColor,\n\t\t\t\t\t\ttabActiveColor,\n\t\t\t\t\t\tsetTabActiveColor,\n\t\t\t\t\t\ttabTextColor,\n\t\t\t\t\t\tsetTabTextColor,\n\t\t\t\t\t\ttabActiveTextColor,\n\t\t\t\t\t\tsetTabActiveTextColor,\n\t\t\t\t\t\ttabHoverTextColor,\n\t\t\t\t\t\tsetTabHoverTextColor,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withColors(\n\t'tabInactiveColor',\n\t'tabHoverColor',\n\t'tabActiveColor',\n\t'tabTextColor',\n\t'tabActiveTextColor',\n\t'tabHoverTextColor'\n)( Edit );\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGetGapCSSValue as getGapCSSValue,\n\tuseStyleOverride,\n} from '@wordpress/block-editor';\n\n/**\n * Gets the gap styles for the tab block.\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for gap styles\n */\nfunction getGapStyles( { attributes } ) {\n\tconst { style, orientation } = attributes || {};\n\tconst { spacing } = style || {};\n\tconst { blockGap } = spacing || {};\n\t//--wp--style--tabs-list-gap-default should be used by themes that want to set a default\n\t// gap on the tabs list.\n\tconst fallbackValue = `var( --wp--style--tabs-gap-default, var( --wp--style--block-gap, 0.5em ) )`;\n\tlet listGapValue = fallbackValue;\n\tlet gapValue = fallbackValue;\n\n\t// Check for a value.\n\tif ( !! blockGap ) {\n\t\tlistGapValue =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.left ) || fallbackValue;\n\t\tgapValue =\n\t\t\ttypeof blockGap === 'string'\n\t\t\t\t? getGapCSSValue( blockGap )\n\t\t\t\t: getGapCSSValue( blockGap?.top ) || fallbackValue;\n\t}\n\n\tif ( orientation === 'vertical' ) {\n\t\tconst _listGapValue = listGapValue;\n\t\tconst _gapValue = gapValue;\n\t\tlistGapValue = _gapValue;\n\t\tgapValue = _listGapValue;\n\t}\n\n\t// The unstable tabs list gap calculation requires a real value (such as `0px`) and not `0`.\n\tconst gapMap = {\n\t\t'--wp--style--unstable-tabs-list-gap':\n\t\t\tlistGapValue === '0' ? '0px' : listGapValue,\n\t\t'--wp--style--unstable-tabs-gap': gapValue,\n\t};\n\n\treturn gapMap;\n}\n\n/**\n * Gets the color styles for the tab block.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for color styles\n */\nfunction getColorStyles( { attributes } ) {\n\tconst {\n\t\tcustomTabInactiveColor,\n\t\tcustomTabHoverColor,\n\t\tcustomTabActiveColor,\n\t\tcustomTabTextColor,\n\t\tcustomTabActiveTextColor,\n\t\tcustomTabHoverTextColor,\n\t} = attributes || {};\n\n\t// Helper to normalize color objects (preset { slug } vs direct value).\n\tfunction getColorValue( color ) {\n\t\tif ( ! color ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof color === 'object' && color.slug ) {\n\t\t\treturn `var(--wp--preset--color--${ color.slug })`;\n\t\t}\n\t\treturn color;\n\t}\n\n\tconst colorVarMap = {\n\t\t'--custom-tab-inactive-color': getColorValue( customTabInactiveColor ),\n\t\t'--custom-tab-active-color': getColorValue( customTabActiveColor ),\n\t\t'--custom-tab-hover-color': getColorValue( customTabHoverColor ),\n\t\t'--custom-tab-text-color': getColorValue( customTabTextColor ),\n\t\t'--custom-tab-active-text-color': getColorValue(\n\t\t\tcustomTabActiveTextColor\n\t\t),\n\t\t'--custom-tab-hover-text-color': getColorValue(\n\t\t\tcustomTabHoverTextColor\n\t\t),\n\t};\n\n\treturn colorVarMap;\n}\n\n/**\n * Gets the border styles for the tab block.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @return {Object} CSS custom properties for border styles\n */\nfunction getBorderStyles( { attributes } ) {\n\tconst { radius } = attributes?.style?.border || {};\n\n\tif ( ! radius ) {\n\t\treturn {};\n\t}\n\n\tlet radiusValue = radius;\n\n\tif ( typeof radius === 'object' ) {\n\t\tconst {\n\t\t\ttopLeft = '0',\n\t\t\ttopRight = '0',\n\t\t\tbottomRight = '0',\n\t\t\tbottomLeft = '0',\n\t\t} = radius;\n\t\tradiusValue = `${ topLeft } ${ topRight } ${ bottomRight } ${ bottomLeft }`;\n\t}\n\n\tconst borderMap = {\n\t\t'--tab-border-radius': radiusValue,\n\t};\n\n\treturn borderMap;\n}\n\n/**\n * Injects color CSS custom properties for the tabs block, mirroring the pattern\n * used by gap-styles (scoped to `#block-{ clientId }`). This replaces the prior\n * inline-style object return value approach so that these values participate in\n * style engine cascade like other dynamic style overrides.\n *\n * @param {Object} props\n * @param {Object} props.attributes Block attributes\n * @param {string} props.clientId Block client ID\n * @return {null} No UI output\n */\nexport default function StyleEngine( { attributes, clientId } ) {\n\tconst gapVarMap = getGapStyles( { attributes } );\n\tconst colorVarMap = getColorStyles( { attributes } );\n\tconst borderVarMap = getBorderStyles( { attributes } );\n\n\tconst styleVarMap = {\n\t\t...gapVarMap,\n\t\t...colorVarMap,\n\t\t...borderVarMap,\n\t};\n\n\t// Build scoped CSS only for defined values to avoid unnecessary empty declarations.\n\tconst declarations = Object.entries( styleVarMap )\n\t\t.filter( ( [ , value ] ) => !! value )\n\t\t.map( ( [ name, value ] ) => `\\t${ name }: ${ value };` )\n\t\t.join( '\\n' );\n\n\tuseStyleOverride( {\n\t\tcss: clientId ? `#block-${ clientId } {\\n${ declarations }\\n}` : '',\n\t} );\n\n\treturn null;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToggleControl, PanelBody, TextControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tContrastChecker,\n\tInspectorControls,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\n\nfunction ContrastCheckerMatrix( { attributes } ) {\n\tconst {\n\t\tclassName,\n\t\tfontSize,\n\t\ttabActiveColor,\n\t\tcustomTabActiveColor,\n\t\ttabActiveTextColor,\n\t\tcustomTabActiveTextColor,\n\t\ttabInactiveColor,\n\t\tcustomTabInactiveColor,\n\t\ttabTextColor,\n\t\tcustomTabTextColor,\n\t\ttabHoverColor,\n\t\tcustomTabHoverColor,\n\t\ttabHoverTextColor,\n\t\tcustomTabHoverTextColor,\n\t} = attributes;\n\n\tconst activeBackground = useMemo( () => {\n\t\tif ( className?.includes( 'is-style-links' ) ) {\n\t\t\treturn '#fff';\n\t\t}\n\t\tif ( tabActiveColor?.color ) {\n\t\t\treturn tabActiveColor.color;\n\t\t}\n\t\treturn customTabActiveColor;\n\t}, [ tabActiveColor, customTabActiveColor, className ] );\n\n\tconst activeText = useMemo( () => {\n\t\tif ( tabActiveTextColor?.color ) {\n\t\t\treturn tabActiveTextColor.color;\n\t\t}\n\t\treturn customTabActiveTextColor;\n\t}, [ tabActiveTextColor, customTabActiveTextColor ] );\n\n\tconst inactiveBackground = useMemo( () => {\n\t\tif ( className?.includes( 'is-style-links' ) ) {\n\t\t\treturn '#fff';\n\t\t}\n\t\tif ( tabInactiveColor?.color ) {\n\t\t\treturn tabInactiveColor.color;\n\t\t}\n\t\treturn customTabInactiveColor;\n\t}, [ tabInactiveColor, customTabInactiveColor, className ] );\n\n\tconst inactiveText = useMemo( () => {\n\t\tif ( tabTextColor?.color ) {\n\t\t\treturn tabTextColor.color;\n\t\t}\n\t\treturn customTabTextColor;\n\t}, [ tabTextColor, customTabTextColor ] );\n\n\tconst hoverBackground = useMemo( () => {\n\t\tif ( tabHoverColor?.color ) {\n\t\t\treturn tabHoverColor.color;\n\t\t}\n\t\treturn customTabHoverColor;\n\t}, [ tabHoverColor, customTabHoverColor ] );\n\n\tconst hoverText = useMemo( () => {\n\t\tif ( tabHoverTextColor?.color ) {\n\t\t\treturn tabHoverTextColor.color;\n\t\t}\n\t\treturn customTabHoverTextColor;\n\t}, [ tabHoverTextColor, customTabHoverTextColor ] );\n\n\treturn (\n\t\t<>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ activeBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ activeText }\n\t\t\t/>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ inactiveBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ inactiveText }\n\t\t\t/>\n\t\t\t<ContrastChecker\n\t\t\t\tbackgroundColor={ hoverBackground }\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\ttextColor={ hoverText }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default function Controls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\ttabInactiveColor,\n\tsetTabInactiveColor,\n\ttabHoverColor,\n\tsetTabHoverColor,\n\ttabActiveColor,\n\tsetTabActiveColor,\n\ttabTextColor,\n\tsetTabTextColor,\n\ttabActiveTextColor,\n\tsetTabActiveTextColor,\n\ttabHoverTextColor,\n\tsetTabHoverTextColor,\n} ) {\n\tconst {\n\t\tcustomTabInactiveColor,\n\t\tcustomTabActiveColor,\n\t\tcustomTabHoverColor,\n\t\tcustomTabTextColor,\n\t\tcustomTabActiveTextColor,\n\t\tcustomTabHoverTextColor,\n\t\torientation,\n\t\tmetadata = {\n\t\t\tname: '',\n\t\t},\n\t} = attributes;\n\t/**\n\t * Get the color settings for the block.\n\t */\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl\n\t\t\t\ttabsClientId={ clientId }\n\t\t\t\tattributes={ attributes }\n\t\t\t/>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Tabs Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Vertical Tabs' ) }\n\t\t\t\t\t\tchecked={ 'vertical' === orientation }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torientation:\n\t\t\t\t\t\t\t\t\t'vertical' === orientation\n\t\t\t\t\t\t\t\t\t\t? 'horizontal'\n\t\t\t\t\t\t\t\t\t\t: 'vertical',\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\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Tabs Title' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The tabs title is used by screen readers to describe the purpose and content of the tabs.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ metadata.name }\n\t\t\t\t\t\tplaceholder={ __( 'Tab Contents' ) }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmetadata: { ...metadata, name: value },\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Active Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabActiveColor?.color ?? customTabActiveColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabActiveColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabActiveColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Active Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabActiveTextColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabActiveTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabActiveTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabActiveTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Inactive Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabInactiveColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabInactiveColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabInactiveColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabInactiveColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Inactive Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabTextColor?.color ?? customTabTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Hover Background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabHoverColor?.color ?? customTabHoverColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabHoverColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabHoverColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Tab Hover Text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\ttabHoverTextColor?.color ??\n\t\t\t\t\t\t\t\tcustomTabHoverTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetTabHoverTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomTabHoverTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\tdisableCustomColors={ false }\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t{ ...colorSettings }\n\t\t\t\t/>\n\t\t\t\t<ContrastCheckerMatrix attributes={ attributes } />\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function Save( { attributes } ) {\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst blockProps = useBlockProps.save();\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst innerBlocksProps = useInnerBlocksProps.save( {} );\n\n\tconst title = attributes?.metadata?.name || 'Tab Contents';\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<h3 className=\"tabs__title\">{ title }</h3>\n\t\t\t<ul className=\"tabs__list\"></ul>\n\t\t\t{ innerBlocksProps.children }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport default (\n\t<SVG\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M5.2998 4.8501C4.60945 4.8501 4.0498 5.40974 4.0498 6.1001V10.3501H11.3498V6.1001C11.3498 5.40974 10.7902 4.8501 10.0998 4.8501H5.2998ZM14.2002 10.3501V7.1001H18.5002V10.3501H20.0002V6.8501C20.0002 6.15974 19.4406 5.6001 18.7502 5.6001H13.9502C13.2598 5.6001 12.7002 6.15974 12.7002 6.8501V10.3501H14.2002ZM20 12.6001H4V14.1001H20V12.6001ZM14 17.1001H4V18.6001H14V17.1001Z\"\n\t\t/>\n\t</SVG>\n);\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"__experimental\": true,\n\t\"apiVersion\": 3,\n\t\"name\": \"core/tabs\",\n\t\"title\": \"Tabs\",\n\t\"description\": \"Display content in a tabbed interface to help users navigate detailed content with ease.\",\n\t\"version\": \"1.0.0\",\n\t\"category\": \"design\",\n\t\"textdomain\": \"default\",\n\t\"allowedBlocks\": [ \"core/tab\" ],\n\t\"attributes\": {\n\t\t\"tabsId\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"\"\n\t\t},\n\t\t\"orientation\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"horizontal\",\n\t\t\t\"enum\": [ \"horizontal\", \"vertical\" ]\n\t\t},\n\t\t\"activeTabIndex\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"tabInactiveColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabInactiveColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tabHoverColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabHoverColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tabActiveColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabActiveColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tabTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tabActiveTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabActiveTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tabHoverTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"customTabHoverTextColor\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{\n\t\t\t\"name\": \"tab\",\n\t\t\t\"label\": \"Tabs\",\n\t\t\t\"isDefault\": true\n\t\t},\n\t\t{\n\t\t\t\"name\": \"links\",\n\t\t\t\"label\": \"Links\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"button\",\n\t\t\t\"label\": \"Button\"\n\t\t}\n\t],\n\t\"supports\": {\n\t\t\"align\": true,\n\t\t\"color\": {\n\t\t\t\"text\": false,\n\t\t\t\"background\": false\n\t\t},\n\t\t\"html\": false,\n\t\t\"interactivity\": true,\n\t\t\"spacing\": {\n\t\t\t\"blockGap\": [ \"horizontal\", \"vertical\" ],\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": false\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"__experimentalFontFamily\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"__experimentalSkipSerialization\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"example\": {\n\t\t\"attributes\": {\n\t\t\t\"className\": \"is-example\"\n\t\t},\n\t\t\"innerBlocks\": [\n\t\t\t{\n\t\t\t\t\"name\": \"core/tab\",\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"label\": \"Tab 1\"\n\t\t\t\t},\n\t\t\t\t\"innerBlocks\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"core/paragraph\",\n\t\t\t\t\t\t\"attributes\": {\n\t\t\t\t\t\t\t\"content\": \"Pariatur commodo sint mollit. Veniam Lorem labore voluptate fugiat. Ad nulla est labore cillum cillum qui nostrud do incididunt eiusmod. Aliqua aliqua sunt consequat consequat in duis deserunt.\"\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"name\": \"core/paragraph\",\n\t\t\t\t\t\t\"attributes\": {\n\t\t\t\t\t\t\t\"content\": \"Adipisicing ullamco nisi in eu laborum adipisicing aliquip aliqua. Fugiat labore officia consequat nisi veniam velit commodo cillum enim duis quis ad.\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"core/tab\",\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"label\": \"Tab 2\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"core/tab\",\n\t\t\t\t\"attributes\": {\n\t\t\t\t\t\"label\": \"Tab 3\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t\"providesContext\": {\n\t\t\"core/tabs-id\": \"tabsId\"\n\t},\n\t\"editorScript\": \"file:./index.js\",\n\t\"editorStyle\": \"file:./index.css\",\n\t\"style\": \"file:./style-index.css\",\n\t\"viewScriptModule\": \"@wordpress/block-library/tabs/view\"\n}\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport icon from './icon';\n\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/categories' ],\n\t\t\ttransform: () => createBlock( 'core/tag-cloud' ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/categories' ],\n\t\t\ttransform: () => createBlock( 'core/categories' ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/tag-cloud\",\n\t\"title\": \"Tag Cloud\",\n\t\"category\": \"widgets\",\n\t\"description\": \"A cloud of popular keywords, each sized by how often it appears.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"numberOfTags\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 45,\n\t\t\t\"minimum\": 1,\n\t\t\t\"maximum\": 100\n\t\t},\n\t\t\"taxonomy\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"post_tag\"\n\t\t},\n\t\t\"showTagCounts\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"smallestFontSize\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"8pt\"\n\t\t},\n\t\t\"largestFontSize\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"22pt\"\n\t\t}\n\t},\n\t\"styles\": [\n\t\t{ \"name\": \"default\", \"label\": \"Default\", \"isDefault\": true },\n\t\t{ \"name\": \"outline\", \"label\": \"Outline\" }\n\t],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"align\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalLetterSpacing\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tToggleControl,\n\tSelectControl,\n\tSpinner,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useServerSideRender } from '@wordpress/server-side-render';\nimport { useDisabled } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport HtmlRenderer from '../utils/html-renderer';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes, name } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// The `pt` unit is used as the default value and is therefore\n\t// always considered an available unit.\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits\n\t\t\t? [ ...availableUnits, 'pt' ]\n\t\t\t: [ '%', 'px', 'em', 'rem', 'pt' ],\n\t} );\n\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\ttaxonomy: 'post_tag',\n\t\t\t\t\t\tshowTagCounts: false,\n\t\t\t\t\t\tnumberOfTags: 45,\n\t\t\t\t\t\tsmallestFontSize: '8pt',\n\t\t\t\t\t\tlargestFontSize: '22pt',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => taxonomy !== 'post_tag' }\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: 'post_tag' } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () =>\n\t\t\t\t\t\tsmallestFontSize !== '8pt' || largestFontSize !== '22pt'\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tsmallestFontSize: '8pt',\n\t\t\t\t\t\t\tlargestFontSize: '22pt',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<Flex gap={ 4 }>\n\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tonFontSizeChange(\n\t\t\t\t\t\t\t\t\t\t'smallestFontSize',\n\t\t\t\t\t\t\t\t\t\tvalue\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\tunits={ units }\n\t\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tonFontSizeChange(\n\t\t\t\t\t\t\t\t\t\t'largestFontSize',\n\t\t\t\t\t\t\t\t\t\tvalue\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\tunits={ units }\n\t\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => numberOfTags !== 45 }\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tonDeselect={ () => setAttributes( { numberOfTags: 45 } ) }\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => showTagCounts !== false }\n\t\t\t\t\tlabel={ __( 'Show tag counts' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show tag counts' ) }\n\t\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n\n\tconst { content, status, error } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: name,\n\t} );\n\n\tconst disabledRef = useDisabled();\n\tconst blockProps = useBlockProps( { ref: disabledRef } );\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t{ status === 'loading' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'error' && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: error message returned when rendering the block. */\n\t\t\t\t\t\t\t__( 'Error: %s' ),\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ status === 'success' && (\n\t\t\t\t<HtmlRenderer wrapperProps={ blockProps } html={ content } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default TagCloudEdit;\n", "/**\n * WordPress dependencies\n */\nimport { tag as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport transforms from './transforms';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport { capitalCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { symbolFilled } from '@wordpress/icons';\nimport { addFilter } from '@wordpress/hooks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport { enhanceTemplatePartVariations } from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: symbolFilled,\n\t__experimentalLabel: ( { slug, theme } ) => {\n\t\t// Attempt to find entity title if block is a template part.\n\t\t// Require slug to request, otherwise entity is uncreated and will throw 404.\n\t\tif ( ! slug ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { getCurrentTheme, getEditedEntityRecord } =\n\t\t\tselect( coreDataStore );\n\t\tconst entity = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t( theme || getCurrentTheme()?.stylesheet ) + '//' + slug\n\t\t);\n\t\tif ( ! entity ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tdecodeEntities( entity.title ) || capitalCase( entity.slug || '' )\n\t\t);\n\t},\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/template-part',\n\t\tenhanceTemplatePartVariations\n\t);\n\n\t// Prevent adding template parts inside post templates.\n\tconst DISALLOWED_PARENTS = [ 'core/post-template', 'core/post-content' ];\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/block-library/removeTemplatePartsFromPostTemplates',\n\t\t(\n\t\t\tcanInsert,\n\t\t\tblockType,\n\t\t\trootClientId,\n\t\t\t{ getBlock, getBlockParentsByBlockName }\n\t\t) => {\n\t\t\tif ( blockType.name !== 'core/template-part' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\t\tconst hasDisallowedParent =\n\t\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tdisallowedParentType\n\t\t\t\t\t).length;\n\t\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/template-part\",\n\t\"title\": \"Template Part\",\n\t\"category\": \"theme\",\n\t\"description\": \"Edit the different global regions of your site, like the header, footer, sidebar, or create your own.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"slug\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"theme\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"area\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"align\": true,\n\t\t\"html\": false,\n\t\t\"reusable\": false,\n\t\t\"renaming\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-template-part-editor\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { serialize } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInspectorControls,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSpinner,\n\tModal,\n\tMenuItem,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartPlaceholder from './placeholder';\nimport TemplatePartSelectionModal from './selection-modal';\nimport { TemplatePartAdvancedControls } from './advanced-controls';\nimport TemplatePartInnerBlocks from './inner-blocks';\nimport { createTemplatePartId } from './utils/create-template-part-id';\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseTemplatePartArea,\n} from './utils/hooks';\n\nconst SUPPORTED_AREAS = [ 'header', 'footer' ];\n\n/**\n * Returns the list of supported template part areas for pattern replacement.\n * Includes 'overlay' only if the navigation overlays experiment is enabled.\n *\n * @return {string[]} Array of supported area names.\n */\nfunction getSupportedAreas() {\n\tconst isOverlayExperimentEnabled =\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__experimentalNavigationOverlays === true;\n\treturn isOverlayExperimentEnabled\n\t\t? [ ...SUPPORTED_AREAS, 'navigation-overlay' ]\n\t\t: SUPPORTED_AREAS;\n}\n\nfunction ReplaceButton( {\n\tisEntityAvailable,\n\tarea,\n\ttemplatePartId,\n\tisTemplatePartSelectionOpen,\n\tsetIsTemplatePartSelectionOpen,\n} ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst hasReplacements = !! templateParts.length;\n\tconst supportedAreas = getSupportedAreas();\n\tconst canReplace =\n\t\tisEntityAvailable && hasReplacements && supportedAreas.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tsetIsTemplatePartSelectionOpen( true );\n\t\t\t} }\n\t\t\taria-expanded={ isTemplatePartSelectionOpen }\n\t\t\taria-haspopup=\"dialog\"\n\t\t>\n\t\t\t{ __( 'Replace' ) }\n\t\t</MenuItem>\n\t);\n}\n\nfunction TemplatesList( { area, clientId, isEntityAvailable, onSelect } ) {\n\t// This hook fetches patterns, so don't run it unconditionally in the main\n\t// edit function!\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst supportedAreas = getSupportedAreas();\n\tconst canReplace =\n\t\tisEntityAvailable &&\n\t\t!! blockPatterns.length &&\n\t\tsupportedAreas.includes( area );\n\n\tif ( ! canReplace ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Design' ) }>\n\t\t\t<BlockPatternsList\n\t\t\t\tlabel={ __( 'Templates' ) }\n\t\t\t\tblockPatterns={ blockPatterns }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t\tshowTitlesAsTooltip\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nexport default function TemplatePartEdit( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.stylesheet,\n\t\t[]\n\t);\n\tconst { slug, theme = currentTheme, tagName, layout = {} } = attributes;\n\tconst templatePartId = createTemplatePartId( theme, slug );\n\tconst hasAlreadyRendered = useHasRecursion( templatePartId );\n\tconst [ isTemplatePartSelectionOpen, setIsTemplatePartSelectionOpen ] =\n\t\tuseState( false );\n\n\tconst {\n\t\tisResolved,\n\t\thasInnerBlocks,\n\t\tisMissing,\n\t\tarea,\n\t\tonNavigateToEntityRecord,\n\t\ttitle,\n\t\tcanUserEdit,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getBlockCount, getSettings } = select( blockEditorStore );\n\n\t\t\tconst getEntityArgs = [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\ttemplatePartId,\n\t\t\t];\n\t\t\tconst entityRecord = templatePartId\n\t\t\t\t? getEditedEntityRecord( ...getEntityArgs )\n\t\t\t\t: null;\n\t\t\tconst _area = entityRecord?.area || attributes.area;\n\t\t\tconst hasResolvedEntity = templatePartId\n\t\t\t\t? hasFinishedResolution(\n\t\t\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t\t\tgetEntityArgs\n\t\t\t\t )\n\t\t\t\t: false;\n\n\t\t\tconst _canUserEdit = hasResolvedEntity\n\t\t\t\t? select( coreStore ).canUser( 'update', {\n\t\t\t\t\t\tkind: 'postType',\n\t\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\t\tid: templatePartId,\n\t\t\t\t } )\n\t\t\t\t: false;\n\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: getBlockCount( clientId ) > 0,\n\t\t\t\tisResolved: hasResolvedEntity,\n\t\t\t\tisMissing:\n\t\t\t\t\thasResolvedEntity &&\n\t\t\t\t\t( ! entityRecord ||\n\t\t\t\t\t\tObject.keys( entityRecord ).length === 0 ),\n\t\t\t\tarea: _area,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\ttitle: entityRecord?.title,\n\t\t\t\tcanUserEdit: !! _canUserEdit,\n\t\t\t};\n\t\t},\n\t\t[ templatePartId, attributes.area, clientId ]\n\t);\n\n\tconst areaObject = useTemplatePartArea( area );\n\tconst blockProps = useBlockProps();\n\tconst isPlaceholder = ! slug;\n\tconst isEntityAvailable = ! isPlaceholder && ! isMissing && isResolved;\n\tconst TagName = tagName || areaObject.tagName;\n\n\tconst onPatternSelect = async ( pattern ) => {\n\t\tawait editEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\ttemplatePartId,\n\t\t\t{\n\t\t\t\tblocks: pattern.blocks,\n\t\t\t\tcontent: serialize( pattern.blocks ),\n\t\t\t}\n\t\t);\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" updated.' ),\n\t\t\t\ttitle || slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t};\n\n\t// We don't want to render a missing state if we have any inner blocks.\n\t// A new template part is automatically created if we have any inner blocks but no entity.\n\tif (\n\t\t! hasInnerBlocks &&\n\t\t( ( slug && ! theme ) || ( slug && isMissing ) )\n\t) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Template part slug. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Template part has been deleted or is unavailable: %s'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tslug\n\t\t\t\t\t) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\tif ( isEntityAvailable && hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<TagName { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</TagName>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<RecursionProvider uniqueId={ templatePartId }>\n\t\t\t\t{ isEntityAvailable &&\n\t\t\t\t\tonNavigateToEntityRecord &&\n\t\t\t\t\tcanUserEdit && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\t\t\tpostId: templatePartId,\n\t\t\t\t\t\t\t\t\t\tpostType: 'wp_template_part',\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\t\t{ window?.__experimentalContentOnlyPatternInsertion\n\t\t\t\t\t\t\t\t\t? __( 'Edit section' )\n\t\t\t\t\t\t\t\t\t: __( 'Edit' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t) }\n\t\t\t\t{ isPlaceholder && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<TemplatePartPlaceholder\n\t\t\t\t\t\t\tarea={ attributes.area }\n\t\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tonOpenSelectionModal={ () =>\n\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t\t<BlockSettingsMenuControls>\n\t\t\t\t\t{ ( { selectedClientIds } ) => {\n\t\t\t\t\t\t// Only enable for single selection that matches the current block.\n\t\t\t\t\t\t// Ensures menu item doesn't render multiple times.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\tselectedClientIds.length === 1 &&\n\t\t\t\t\t\t\t\tclientId === selectedClientIds[ 0 ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ReplaceButton\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisEntityAvailable,\n\t\t\t\t\t\t\t\t\tarea,\n\t\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\t\ttemplatePartId,\n\t\t\t\t\t\t\t\t\tisTemplatePartSelectionOpen,\n\t\t\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen,\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</BlockSettingsMenuControls>\n\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\tonSelect={ ( pattern ) => onPatternSelect( pattern ) }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t{ isEntityAvailable && (\n\t\t\t\t\t<TemplatePartInnerBlocks\n\t\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tpostId={ templatePartId }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t\tlayout={ layout }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isPlaceholder && ! isResolved && (\n\t\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</TagName>\n\t\t\t\t) }\n\t\t\t</RecursionProvider>\n\t\t\t{ isTemplatePartSelectionOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\toverlayClassName=\"block-editor-template-part__selection-modal\"\n\t\t\t\t\ttitle={ sprintf(\n\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t__( 'Choose a %s' ),\n\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ () =>\n\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t}\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<TemplatePartSelectionModal\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tonClose={ () =>\n\t\t\t\t\t\t\tsetIsTemplatePartSelectionOpen( false )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n\tuseTemplatePartArea,\n} from './utils/hooks';\nimport TitleModal from './title-modal';\nimport { getTemplatePartIcon } from './utils/get-template-part-icon';\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tonOpenSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst { templateParts, isResolving } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst { isBlockBasedTheme, canCreateTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ showTitleModal, setShowTitleModal ] = useState( false );\n\tconst areaObject = useTemplatePartArea( area );\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ getTemplatePartIcon( areaObject.icon ) }\n\t\t\tlabel={ areaObject.label }\n\t\t\tinstructions={\n\t\t\t\tisBlockBasedTheme\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t}\n\t\t>\n\t\t\t{ isResolving && <Spinner /> }\n\n\t\t\t{ ! isResolving &&\n\t\t\t\t!! ( templateParts.length || blockPatterns.length ) && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onOpenSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t{ ! isResolving && isBlockBasedTheme && canCreateTemplatePart && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowTitleModal( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showTitleModal && (\n\t\t\t\t<TitleModal\n\t\t\t\t\tareaLabel={ areaObject.label }\n\t\t\t\t\tonClose={ () => setShowTitleModal( false ) }\n\t\t\t\t\tonSubmit={ ( title ) => {\n\t\t\t\t\t\tcreateFromBlocks( [], title );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n}\n", "/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from './create-template-part-id';\n\n/**\n * Retrieves the available template parts for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} excludedId Template part ID to exclude.\n *\n * @return {{ templateParts: Array, isResolving: boolean }} array of template parts.\n */\nexport function useAlternativeTemplateParts( area, excludedId ) {\n\tconst { templateParts, isResolving } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords, isResolving: _isResolving } =\n\t\t\tselect( coreStore );\n\t\tconst query = { per_page: -1 };\n\t\treturn {\n\t\t\ttemplateParts: getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery\n\t\t\t),\n\t\t\tisResolving: _isResolving( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tquery,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tif ( ! templateParts ) {\n\t\t\treturn [];\n\t\t}\n\t\treturn (\n\t\t\ttemplateParts.filter(\n\t\t\t\t( templatePart ) =>\n\t\t\t\t\tcreateTemplatePartId(\n\t\t\t\t\t\ttemplatePart.theme,\n\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t) !== excludedId &&\n\t\t\t\t\t( ! area ||\n\t\t\t\t\t\t'uncategorized' === area ||\n\t\t\t\t\t\ttemplatePart.area === area )\n\t\t\t) || []\n\t\t);\n\t}, [ templateParts, area, excludedId ] );\n\n\treturn {\n\t\ttemplateParts: filteredTemplateParts,\n\t\tisResolving,\n\t};\n}\n\n/**\n * Retrieves the available block patterns for the given area.\n *\n * @param {string} area Template part area.\n * @param {string} clientId Block Client ID. (The container of the block can impact allowed blocks).\n *\n * @return {Array} array of block patterns.\n */\nexport function useAlternativeBlockPatterns( area, clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst blockNameWithArea = area\n\t\t\t\t? `core/template-part/${ area }`\n\t\t\t\t: 'core/template-part';\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t// Use rootClientId to determine which patterns can be used in the current context.\n\t\t\t// If revisiting the idea of template parts being spotlighted when edited, it may\n\t\t\t// be worth either passing null or the template part's clientId instead.\n\t\t\t// See the following PRs for context:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/73736\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/73419\n\t\t\treturn getPatternsByBlockTypes( blockNameWithArea, rootClientId );\n\t\t},\n\t\t[ area, clientId ]\n\t);\n}\n\nexport function useCreateTemplatePartFromBlocks( area, setAttributes ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\treturn async ( blocks = [], title = __( 'Untitled Template Part' ) ) => {\n\t\t// Currently template parts only allow latin chars.\n\t\t// Fallback slug will receive suffix by default.\n\t\tconst cleanSlug =\n\t\t\tkebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n\n\t\t// If we have `area` set from block attributes, means an exposed\n\t\t// block variation was inserted. So add this prop to the template\n\t\t// part entity on creation. Afterwards remove `area` value from\n\t\t// block attributes.\n\t\tconst record = {\n\t\t\ttitle,\n\t\t\tslug: cleanSlug,\n\t\t\tcontent: serialize( blocks ),\n\t\t\t// `area` is filterable on the server and defaults to `UNCATEGORIZED`\n\t\t\t// if provided value is not allowed.\n\t\t\tarea,\n\t\t};\n\t\tconst templatePart = await saveEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\trecord\n\t\t);\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t};\n}\n\n/**\n * Retrieves the template part area object.\n *\n * @param {string} area Template part area identifier.\n *\n * @return {{icon: Object, label: string, tagName: string}} Template Part area.\n */\nexport function useTemplatePartArea( area ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst definedAreas =\n\t\t\t\tselect( coreStore ).getCurrentTheme()\n\t\t\t\t\t?.default_template_part_areas || [];\n\n\t\t\tconst selectedArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === area\n\t\t\t);\n\t\t\tconst defaultArea = definedAreas.find(\n\t\t\t\t( definedArea ) => definedArea.area === 'uncategorized'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ticon: selectedArea?.icon || defaultArea?.icon,\n\t\t\t\tlabel: selectedArea?.label || __( 'Template Part' ),\n\t\t\t\ttagName: selectedArea?.area_tag ?? 'div',\n\t\t\t};\n\t\t},\n\t\t[ area ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tTextControl,\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nexport default function TitleModal( { areaLabel, onClose, onSubmit } ) {\n\t// Restructure onCreate to set the blocks on local state.\n\t// Add modal to confirm title and trigger onCreate.\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst submitForCreation = ( event ) => {\n\t\tevent.preventDefault();\n\t\tonSubmit( title );\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t__( 'Create new %s' ),\n\t\t\t\tareaLabel.toLowerCase()\n\t\t\t) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form onSubmit={ submitForCreation }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'Custom Template Part' ) }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\tsetTitle( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! title.length }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport {\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n} from './utils/hooks';\nimport { mapTemplatePartToBlockPattern } from './utils/map-template-part-to-block-pattern';\nimport { searchPatterns } from '../../utils/search-patterns';\n\nexport default function TemplatePartSelectionModal( {\n\tsetAttributes,\n\tonClose,\n\ttemplatePartId = null,\n\tarea,\n\tclientId,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { templateParts } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\n\t// We can map template parts to block patters to reuse the BlockPatternsList UI\n\tconst filteredTemplateParts = useMemo( () => {\n\t\tconst partsAsPatterns = templateParts.map( ( templatePart ) =>\n\t\t\tmapTemplatePartToBlockPattern( templatePart )\n\t\t);\n\n\t\treturn searchPatterns( partsAsPatterns, searchValue );\n\t}, [ templateParts, searchValue ] );\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst onTemplatePartSelect = ( templatePart ) => {\n\t\tsetAttributes( {\n\t\t\tslug: templatePart.slug,\n\t\t\ttheme: templatePart.theme,\n\t\t\tarea: undefined,\n\t\t} );\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: template part title. */\n\t\t\t\t__( 'Template Part \"%s\" inserted.' ),\n\t\t\t\ttemplatePart.title?.rendered || templatePart.slug\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t\tonClose();\n\t};\n\n\tconst hasTemplateParts = !! filteredTemplateParts.length;\n\tconst hasBlockPatterns = !! filteredBlockPatterns.length;\n\n\treturn (\n\t\t<div className=\"block-library-template-part__selection-content\">\n\t\t\t<div className=\"block-library-template-part__selection-search\">\n\t\t\t\t<SearchControl\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ hasTemplateParts && (\n\t\t\t\t<div>\n\t\t\t\t\t<h2>{ __( 'Existing template parts' ) }</h2>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredTemplateParts }\n\t\t\t\t\t\tonClickPattern={ ( pattern ) => {\n\t\t\t\t\t\t\tonTemplatePartSelect( pattern.templatePart );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! hasTemplateParts && ! hasBlockPatterns && (\n\t\t\t\t<HStack alignment=\"center\">\n\t\t\t\t\t<p>{ __( 'No results found.' ) }</p>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { createTemplatePartId } from './create-template-part-id';\n\n/**\n * This maps the properties of a template part to those of a block pattern.\n * @param {Object} templatePart\n * @return {Object} The template part in the shape of block pattern.\n */\nexport function mapTemplatePartToBlockPattern( templatePart ) {\n\treturn {\n\t\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\t\ttitle: templatePart.title.rendered,\n\t\tblocks: parse( templatePart.content.raw ),\n\t\ttemplatePart,\n\t};\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { SelectControl, TextControl } from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { TemplatePartImportControls } from './import-controls';\nimport { unlock } from '../../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nexport function TemplatePartAdvancedControls( {\n\ttagName,\n\tsetAttributes,\n\tisEntityAvailable,\n\ttemplatePartId,\n\tdefaultWrapper,\n\thasInnerBlocks,\n\tclientId,\n} ) {\n\tconst [ area, setArea ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t'area',\n\t\ttemplatePartId\n\t);\n\n\tconst [ title, setTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t'title',\n\t\ttemplatePartId\n\t);\n\n\tconst defaultTemplatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getCurrentTheme()\n\t\t\t\t?.default_template_part_areas || [],\n\t\t[]\n\t);\n\n\tconst areaOptions = defaultTemplatePartAreas.map(\n\t\t( { label, area: _area } ) => ( {\n\t\t\tlabel,\n\t\t\tvalue: _area,\n\t\t} )\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ isEntityAvailable && (\n\t\t\t\t<>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetTitle( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonFocus={ ( event ) => event.target.select() }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\toptions={ areaOptions }\n\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\tonChange={ setArea }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ tagName || '' }\n\t\t\t\tonChange={ ( value ) => setAttributes( { tagName: value } ) }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: HTML tag based on area. */\n\t\t\t\t\t\t\t__( 'Default based on area (%s)' ),\n\t\t\t\t\t\t\t`<${ defaultWrapper }>`\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t},\n\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t\t{ label: '<div>', value: 'div' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t\t{ ! hasInnerBlocks && (\n\t\t\t\t<TemplatePartImportControls\n\t\t\t\t\tarea={ area }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { useDispatch, useSelect, useRegistry } from '@wordpress/data';\nimport {\n\tButton,\n\tFlexBlock,\n\tFlexItem,\n\tSelectControl,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useCreateTemplatePartFromBlocks } from './utils/hooks';\nimport { transformWidgetToBlock } from './utils/transformers';\n\nconst SIDEBARS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,description,status,widgets',\n};\n\nexport function TemplatePartImportControls( { area, setAttributes } ) {\n\tconst [ selectedSidebar, setSelectedSidebar ] = useState( '' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\n\tconst registry = useRegistry();\n\tconst { sidebars, hasResolved } = useSelect( ( select ) => {\n\t\tconst { getSidebars, hasFinishedResolution } = select( coreStore );\n\n\t\treturn {\n\t\t\tsidebars: getSidebars( SIDEBARS_QUERY ),\n\t\t\thasResolved: hasFinishedResolution( 'getSidebars', [\n\t\t\t\tSIDEBARS_QUERY,\n\t\t\t] ),\n\t\t};\n\t}, [] );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\tconst options = useMemo( () => {\n\t\tconst sidebarOptions = ( sidebars ?? [] )\n\t\t\t.filter(\n\t\t\t\t( widgetArea ) =>\n\t\t\t\t\twidgetArea.id !== 'wp_inactive_widgets' &&\n\t\t\t\t\twidgetArea.widgets.length > 0\n\t\t\t)\n\t\t\t.map( ( widgetArea ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: widgetArea.id,\n\t\t\t\t\tlabel: widgetArea.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\tif ( ! sidebarOptions.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{ value: '', label: __( 'Select widget area' ) },\n\t\t\t...sidebarOptions,\n\t\t];\n\t}, [ sidebars ] );\n\n\t// Render an empty node while data is loading to avoid SlotFill re-positioning bug.\n\t// See: https://github.com/WordPress/gutenberg/issues/15641.\n\tif ( ! hasResolved ) {\n\t\treturn <Spacer marginBottom=\"0\" />;\n\t}\n\n\tif ( hasResolved && ! options.length ) {\n\t\treturn null;\n\t}\n\n\tasync function createFromWidgets( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isBusy || ! selectedSidebar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsBusy( true );\n\n\t\tconst sidebar = options.find(\n\t\t\t( { value } ) => value === selectedSidebar\n\t\t);\n\t\tconst { getWidgets } = registry.resolveSelect( coreStore );\n\n\t\t// The widgets API always returns a successful response.\n\t\tconst widgets = await getWidgets( {\n\t\t\tsidebar: sidebar.value,\n\t\t\t_embed: 'about',\n\t\t} );\n\n\t\tconst skippedWidgets = new Set();\n\t\tconst blocks = widgets.flatMap( ( widget ) => {\n\t\t\tconst block = transformWidgetToBlock( widget );\n\n\t\t\t// Skip the block if we have no matching transformations.\n\t\t\tif ( ! block ) {\n\t\t\t\tskippedWidgets.add( widget.id_base );\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn block;\n\t\t} );\n\n\t\tawait createFromBlocks(\n\t\t\tblocks,\n\t\t\t/* translators: %s: name of the widget area */\n\t\t\tsprintf( __( 'Widget area: %s' ), sidebar.label )\n\t\t);\n\n\t\tif ( skippedWidgets.size ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: the list of widgets */\n\t\t\t\t\t__( 'Unable to import the following widgets: %s.' ),\n\t\t\t\t\tArray.from( skippedWidgets ).join( ', ' )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tsetIsBusy( false );\n\t}\n\n\treturn (\n\t\t<Spacer marginBottom=\"4\">\n\t\t\t<HStack as=\"form\" onSubmit={ createFromWidgets }>\n\t\t\t\t<FlexBlock>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Import widget area' ) }\n\t\t\t\t\t\tvalue={ selectedSidebar }\n\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\tonChange={ ( value ) => setSelectedSidebar( value ) }\n\t\t\t\t\t\tdisabled={ ! options.length }\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t/>\n\t\t\t\t</FlexBlock>\n\t\t\t\t<FlexItem\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginBottom: '8px',\n\t\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy || ! selectedSidebar }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ _x( 'Import', 'button label' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tparse,\n\tcloneBlock,\n\tcreateBlock,\n\tgetGroupingBlockName,\n\tgetPossibleBlockTransformations,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\n\n/**\n * Converts a widget entity record into a block.\n *\n * @param {Object} widget The widget entity record.\n * @return {Object} a block (converted from the entity record).\n */\nexport function transformWidgetToBlock( widget ) {\n\tif ( widget.id_base !== 'block' ) {\n\t\tlet attributes;\n\t\tif ( widget._embedded.about[ 0 ].is_multi ) {\n\t\t\tattributes = {\n\t\t\t\tidBase: widget.id_base,\n\t\t\t\tinstance: widget.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tattributes = {\n\t\t\t\tid: widget.id,\n\t\t\t};\n\t\t}\n\n\t\treturn switchLegacyWidgetType(\n\t\t\tcreateBlock( 'core/legacy-widget', attributes )\n\t\t);\n\t}\n\n\tconst parsedBlocks = parse( widget.instance.raw.content, {\n\t\t__unstableSkipAutop: true,\n\t} );\n\n\tif ( ! parsedBlocks.length ) {\n\t\treturn undefined;\n\t}\n\n\tconst block = parsedBlocks[ 0 ];\n\n\tif ( block.name === 'core/widget-group' ) {\n\t\treturn createBlock(\n\t\t\tgetGroupingBlockName(),\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\tif ( block.innerBlocks.length > 0 ) {\n\t\treturn cloneBlock(\n\t\t\tblock,\n\t\t\tundefined,\n\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t);\n\t}\n\n\treturn block;\n}\n\n/**\n * Switch Legacy Widget to the first matching transformation block.\n *\n * @param {Object} block Legacy Widget block object\n * @return {Object|undefined} a block\n */\nfunction switchLegacyWidgetType( block ) {\n\tconst transforms = getPossibleBlockTransformations( [ block ] ).filter(\n\t\t( item ) => {\n\t\t\t// The block without any transformations can't be a wildcard.\n\t\t\tif ( ! item.transforms ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst hasWildCardFrom = item.transforms?.from?.find(\n\t\t\t\t( from ) => from.blocks && from.blocks.includes( '*' )\n\t\t\t);\n\t\t\tconst hasWildCardTo = item.transforms?.to?.find(\n\t\t\t\t( to ) => to.blocks && to.blocks.includes( '*' )\n\t\t\t);\n\n\t\t\t// Skip wildcard transformations.\n\t\t\treturn ! hasWildCardFrom && ! hasWildCardTo;\n\t\t}\n\t);\n\n\tif ( ! transforms.length ) {\n\t\treturn undefined;\n\t}\n\n\treturn switchToBlockType( block, transforms[ 0 ].name );\n}\n\nfunction transformInnerBlocks( innerBlocks = [] ) {\n\treturn innerBlocks\n\t\t.flatMap( ( block ) => {\n\t\t\tif ( block.name === 'core/legacy-widget' ) {\n\t\t\t\treturn switchLegacyWidgetType( block );\n\t\t\t}\n\n\t\t\treturn createBlock(\n\t\t\t\tblock.name,\n\t\t\t\tblock.attributes,\n\t\t\t\ttransformInnerBlocks( block.innerBlocks )\n\t\t\t);\n\t\t} )\n\t\t.filter( ( block ) => !! block );\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tuseSettings,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\n\nfunction useRenderAppender( hasInnerBlocks ) {\n\tconst blockEditingMode = useBlockEditingMode();\n\t// Disable appending when the editing mode is 'contentOnly'. This is so that the user can't\n\t// append into a template part when editing a page in the site editor. See\n\t// DisableNonPageContentBlocks. Ideally instead of (mis)using editing mode there would be a\n\t// block editor API for achieving this.\n\tif ( blockEditingMode === 'contentOnly' ) {\n\t\treturn false;\n\t}\n\tif ( ! hasInnerBlocks ) {\n\t\treturn InnerBlocks.ButtonBlockAppender;\n\t}\n}\n\nfunction useLayout( layout ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings()?.supportsLayout;\n\t}, [] );\n\tconst [ defaultLayout ] = useSettings( 'layout' );\n\tif ( themeSupportsLayout ) {\n\t\treturn layout?.inherit ? defaultLayout || {} : layout;\n\t}\n}\n\nfunction NonEditableTemplatePartPreview( {\n\tpostId: id,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tuseBlockEditingMode( 'disabled' );\n\n\tconst { content, editedBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst editedRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\tid,\n\t\t\t\t{ context: 'view' }\n\t\t\t);\n\t\t\treturn {\n\t\t\t\teditedBlocks: editedRecord.blocks,\n\t\t\t\tcontent: editedRecord.content,\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! id ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif ( editedBlocks ) {\n\t\t\treturn editedBlocks;\n\t\t}\n\n\t\tif ( ! content || typeof content !== 'string' ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn parse( content );\n\t}, [ id, editedBlocks, content ] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput: () => {},\n\t\tonChange: () => {},\n\t\trenderAppender: false,\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\treturn <TagName { ...innerBlocksProps } />;\n}\n\nfunction EditableTemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst onNavigateToEntityRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().onNavigateToEntityRecord,\n\t\t[]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_template_part',\n\t\t{ id }\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: useRenderAppender( hasInnerBlocks ),\n\t\tlayout: useLayout( layout ),\n\t} );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst customProps =\n\t\tblockEditingMode === 'contentOnly' && onNavigateToEntityRecord\n\t\t\t? {\n\t\t\t\t\tonDoubleClick: () =>\n\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\tpostId: id,\n\t\t\t\t\t\t\tpostType: 'wp_template_part',\n\t\t\t\t\t\t} ),\n\t\t\t }\n\t\t\t: {};\n\n\treturn <TagName { ...innerBlocksProps } { ...customProps } />;\n}\n\nexport default function TemplatePartInnerBlocks( {\n\tpostId: id,\n\thasInnerBlocks,\n\tlayout,\n\ttagName: TagName,\n\tblockProps,\n} ) {\n\tconst { canViewTemplatePart, canEditTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tcanViewTemplatePart: !! select( coreStore ).canUser( 'read', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t\tcanEditTemplatePart: !! select( coreStore ).canUser( 'update', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t\tid,\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[ id ]\n\t);\n\n\tif ( ! canViewTemplatePart ) {\n\t\treturn null;\n\t}\n\n\tconst TemplatePartInnerBlocksComponent = canEditTemplatePart\n\t\t? EditableTemplatePartInnerBlocks\n\t\t: NonEditableTemplatePartPreview;\n\n\treturn (\n\t\t<TemplatePartInnerBlocksComponent\n\t\t\tpostId={ id }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tlayout={ layout }\n\t\t\ttagName={ TagName }\n\t\t\tblockProps={ blockProps }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { getTemplatePartIcon } from './edit/utils/get-template-part-icon';\n\nexport function enhanceTemplatePartVariations( settings, name ) {\n\tif ( name !== 'core/template-part' ) {\n\t\treturn settings;\n\t}\n\n\tif ( settings.variations ) {\n\t\tconst isActive = ( blockAttributes, variationAttributes ) => {\n\t\t\tconst { area, theme, slug } = blockAttributes;\n\t\t\t// We first check the `area` block attribute which is set during insertion.\n\t\t\t// This property is removed on the creation of a template part.\n\t\t\tif ( area ) {\n\t\t\t\treturn area === variationAttributes.area;\n\t\t\t}\n\t\t\t// Find a matching variation from the created template part\n\t\t\t// by checking the entity's `area` property.\n\t\t\tif ( ! slug ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getCurrentTheme, getEntityRecord } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst entity = getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t`${ theme || getCurrentTheme()?.stylesheet }//${ slug }`\n\t\t\t);\n\n\t\t\tif ( entity?.slug ) {\n\t\t\t\treturn entity.slug === variationAttributes.slug;\n\t\t\t}\n\t\t\treturn entity?.area === variationAttributes.area;\n\t\t};\n\n\t\tconst variations = settings.variations.map( ( variation ) => {\n\t\t\treturn {\n\t\t\t\t...variation,\n\t\t\t\t...( ! variation.isActive && { isActive } ),\n\t\t\t\t...( typeof variation.icon === 'string' && {\n\t\t\t\t\ticon: getTemplatePartIcon( variation.icon ),\n\t\t\t\t} ),\n\t\t\t};\n\t\t} );\n\n\t\treturn {\n\t\t\t...settings,\n\t\t\tvariations,\n\t\t};\n\t}\n\treturn settings;\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/term-count\",\n\t\"title\": \"Term Count\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the post count of a taxonomy term.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"termId\", \"taxonomy\" ],\n\t\"attributes\": {\n\t\t\"bracketType\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"enum\": [ \"none\", \"round\", \"square\", \"curly\", \"angle\" ],\n\t\t\t\"default\": \"round\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-term-count\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, BlockControls } from '@wordpress/block-editor';\nimport { ToolbarDropdownMenu } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbareNumber,\n\tnumberInParenthesis,\n\tnumberInSquareBrackets,\n\tnumberInCurlyBrackets,\n\tnumberInAngleBrackets,\n} from './icons';\nimport { useTermCount } from './use-term-count';\n\nconst BRACKET_TYPES = {\n\tnone: { label: __( 'No brackets' ), icon: bareNumber },\n\tround: {\n\t\tlabel: __( 'Round brackets' ),\n\t\ticon: numberInParenthesis,\n\t\tbefore: '(',\n\t\tafter: ')',\n\t},\n\tsquare: {\n\t\tlabel: __( 'Square brackets' ),\n\t\ticon: numberInSquareBrackets,\n\t\tbefore: '[',\n\t\tafter: ']',\n\t},\n\tcurly: {\n\t\tlabel: __( 'Curly brackets' ),\n\t\ticon: numberInCurlyBrackets,\n\t\tbefore: '{',\n\t\tafter: '}',\n\t},\n\tangle: {\n\t\tlabel: __( 'Angle brackets' ),\n\t\ticon: numberInAngleBrackets,\n\t\tbefore: '<',\n\t\tafter: '>',\n\t},\n};\n\nexport default function TermCountEdit( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { termId, taxonomy },\n} ) {\n\tconst { bracketType } = attributes;\n\tconst term = useTermCount( termId, taxonomy );\n\n\tconst termCount = term?.termCount || 0;\n\n\tconst blockProps = useBlockProps();\n\n\tconst bracketTypeControls = Object.entries( BRACKET_TYPES ).map(\n\t\t( [ type, { label, icon } ] ) => ( {\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: label,\n\t\t\tisActive: bracketType === type,\n\t\t\ticon,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( { bracketType: type } );\n\t\t\t},\n\t\t} )\n\t);\n\n\tconst formatTermCount = ( count, type ) => {\n\t\tconst { before = '', after = '' } = BRACKET_TYPES[ type ] || {};\n\t\treturn `${ before }${ count }${ after }`;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\ticon={ BRACKET_TYPES[ bracketType ]?.icon ?? bareNumber }\n\t\t\t\t\tlabel={ __( 'Change bracket type' ) }\n\t\t\t\t\tcontrols={ bracketTypeControls }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ formatTermCount( termCount, bracketType ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport const bareNumber = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 10 6 L 9.609375 9 L 7 9 L 7 10.5 L 9.4121094 10.5 L 9.0878906 13 L 7 13 L 7 14.5 L 8.890625 14.5 L 8.5 17.5 L 10 17.5 L 10.390625 14.5 L 12.890625 14.5 L 12.5 17.5 L 14 17.5 L 14.390625 14.5 L 17 14.5 L 17 13 L 14.587891 13 L 14.912109 10.5 L 17 10.5 L 17 9 L 15.109375 9 L 15.5 6 L 14 6 L 13.609375 9 L 11.109375 9 L 11.5 6 L 10 6 z M 10.912109 10.5 L 13.412109 10.5 L 13.087891 13 L 10.587891 13 L 10.912109 10.5 z\" />\n\t</SVG>\n);\n\nexport const numberInParenthesis = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 10,6 9.609375,9 H 7 v 1.5 H 9.4121094 L 9.0878906,13 H 7 v 1.5 H 8.890625 L 8.5,17.5 H 10 l 0.390625,-3 h 2.5 L 12.5,17.5 H 14 l 0.390625,-3 H 17 V 13 h -2.412109 l 0.324218,-2.5 H 17 V 9 H 15.109375 L 15.5,6 H 14 l -0.390625,3 h -2.5 L 11.5,6 Z m 0.912109,4.5 h 2.5 L 13.087891,13 h -2.5 z M 18.5,3 c 0,0 1.5,4.004036 1.5,9 0,4.995964 -1.5,9 -1.5,9 H 20 c 0,0 1.5,-4.004036 1.5,-9 C 21.5,7.004036 20,3 20,3 Z M 5.5,21 C 5.5,21 4,16.995964 4,12 4,7.0040356 5.5,3 5.5,3 H 4 c 0,0 -1.5,4.004036 -1.5,9 0,4.995964 1.5,9 1.5,9 z\" />\n\t</SVG>\n);\n\nexport const numberInSquareBrackets = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 21.5,21 V 3 H 18 v 1.5 h 2 v 15 H 18 V 21 Z M 2.5,3 V 21 H 6 V 19.5 H 4 V 4.5 H 6 V 3 Z M 10,6 9.609375,9 H 7 v 1.5 H 9.4121094 L 9.0878906,13 H 7 v 1.5 H 8.890625 L 8.5,17.5 H 10 l 0.390625,-3 h 2.5 L 12.5,17.5 H 14 l 0.390625,-3 H 17 V 13 h -2.412109 l 0.324218,-2.5 H 17 V 9 H 15.109375 L 15.5,6 H 14 l -0.390625,3 h -2.5 L 11.5,6 Z m 0.912109,4.5 h 2.5 L 13.087891,13 h -2.5 z\" />\n\t</SVG>\n);\n\nexport const numberInCurlyBrackets = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 10,6 9.609375,9 H 7 v 1.5 H 9.4121094 L 9.0878906,13 H 7 v 1.5 H 8.890625 L 8.5,17.5 H 10 l 0.390625,-3 h 2.5 L 12.5,17.5 H 14 l 0.390625,-3 H 17 V 13 h -2.412109 l 0.324218,-2.5 H 17 V 9 H 15.109375 L 15.5,6 H 14 l -0.390625,3 h -2.5 L 11.5,6 Z m 0.912109,4.5 h 2.5 L 13.087891,13 h -2.5 z M 18.5,21 c 1.104567,0 2,-0.895433 2,-2 v -4 c 0,-1.104567 0.895433,-2 2,-2 v -2 c -1.104567,0 -2,-0.895433 -2,-2 V 5 c 0,-1.104567 -0.895433,-2 -2,-2 H 17 v 1.5 h 1.5 A 0.5,0.5 0 0 1 19,5 v 5 c 0,1.104567 0.895433,2 2,2 -1.104567,0 -2,0.895433 -2,2 v 5 c 0,0.276142 -0.223858,0.5 -0.5,0.5 H 17 V 21 Z M 5.5,3 c -1.1045668,0 -2,0.8954327 -2,2 v 4 c 0,1.104567 -0.8954332,2 -2,2 v 2 c 1.1045668,0 2,0.895433 2,2 v 4 c 0,1.104567 0.8954332,2 2,2 H 7 V 19.5 H 5.5 A 0.5,0.5 0 0 1 5,19 V 14 C 5,12.895433 4.1045668,12 3,12 4.1045668,12 5,11.104567 5,10 V 5 C 5,4.7238579 5.2238579,4.5 5.5,4.5 H 7 V 3 Z\" />\n\t</SVG>\n);\n\nexport const numberInAngleBrackets = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M 18.970703,16.53125 23.5,12 18.970703,7.46875 17.910156,8.53125 21.378906,12 17.910156,15.46875 Z M 5.0292969,7.46875 0.5,12 5.0292969,16.53125 6.0898438,15.46875 2.6210938,12 6.0898438,8.53125 Z M 10,6 9.609375,9 H 7 v 1.5 H 9.4121094 L 9.0878906,13 H 7 v 1.5 H 8.890625 L 8.5,17.5 H 10 l 0.390625,-3 h 2.5 L 12.5,17.5 H 14 l 0.390625,-3 H 17 V 13 h -2.412109 l 0.324218,-2.5 H 17 V 9 H 15.109375 L 15.5,6 H 14 l -0.390625,3 h -2.5 L 11.5,6 Z m 0.912109,4.5 h 2.5 L 13.087891,13 h -2.5 z\" />\n\t</SVG>\n);\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term count based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermCount( termId, taxonomy ) {\n\tconst [ count ] = useEntityProp( 'taxonomy', taxonomy, 'count', termId );\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\ttermCount: hasContext ? count || '' : templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].count || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { termCount as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/term-description\",\n\t\"title\": \"Term Description\",\n\t\"category\": \"theme\",\n\t\"description\": \"Display the description of categories, tags and custom taxonomies when viewing an archive.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"termId\", \"taxonomy\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true,\n\t\t\t\"margin\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": true,\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t}\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tAlignmentControl,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { useTermDescription } from './use-term-description';\n\nexport default function TermDescriptionEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergedStyle,\n\tcontext: { termId, taxonomy },\n} ) {\n\tconst { textAlign } = attributes;\n\tconst { termDescription } = useTermDescription( termId, taxonomy );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle: mergedStyle,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ termDescription ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tdangerouslySetInnerHTML={ { __html: termDescription } }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"wp-block-term-description__placeholder\">\n\t\t\t\t\t\t<span>{ __( 'Term Description' ) }</span>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term description based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermDescription( termId, taxonomy ) {\n\tconst [ description, setDescription, fullDescription ] = useEntityProp(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\t'description',\n\t\ttermId\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedData = useTemplateBasedTermData();\n\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tsetDescription,\n\t\ttermDescription: hasContext\n\t\t\t? fullDescription?.rendered || description || ''\n\t\t\t: templateBasedData,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context (backward compatibility).\n * This maintains the same logic as the original implementation for cases where\n * no termId/taxonomy context is provided.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for all taxonomies of a type (e.g., category, tag).\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ].description || '';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { termDescription as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/term-name\",\n\t\"title\": \"Term Name\",\n\t\"category\": \"theme\",\n\t\"description\": \"Displays the name of a taxonomy term.\",\n\t\"keywords\": [ \"term title\" ],\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"termId\", \"taxonomy\" ],\n\t\"attributes\": {\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"level\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 0\n\t\t},\n\t\t\"isLink\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"default\": false\n\t\t},\n\t\t\"levelOptions\": {\n\t\t\t\"type\": \"array\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true,\n\t\t\t\t\"link\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"padding\": true\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"color\": true,\n\t\t\t\t\"width\": true,\n\t\t\t\t\"style\": true\n\t\t\t}\n\t\t}\n\t},\n\t\"style\": \"wp-block-term-name\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tAlignmentControl,\n\tInspectorControls,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { useTermName } from './use-term-name';\n\nexport default function TermNameEdit( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { termId, taxonomy },\n} ) {\n\tconst { textAlign, level = 0, isLink, levelOptions } = attributes;\n\tconst { term } = useTermName( termId, taxonomy );\n\n\tconst termName = term?.name\n\t\t? decodeEntities( term.name )\n\t\t: __( 'Term Name' );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\n\tlet termNameDisplay = termName;\n\tif ( isLink ) {\n\t\ttermNameDisplay = (\n\t\t\t<a\n\t\t\t\thref=\"#term-name-pseudo-link\"\n\t\t\t\tonClick={ ( e ) => e.preventDefault() }\n\t\t\t>\n\t\t\t\t{ termName }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) => {\n\t\t\t\t\t\tsetAttributes( { level: newLevel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! isLink }\n\t\t\t\t\t\tlabel={ __( 'Make term name a link' ) }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Make term name a link' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<TagName { ...blockProps }>{ termNameDisplay }</TagName>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Hook to fetch term name based on context or fallback to template parsing.\n *\n * This hook prioritizes context-provided termId and taxonomy, but falls back to\n * template-based detection when no context is available.\n *\n * @param {string|number} termId The term ID from context\n * @param {string} taxonomy The taxonomy name from context\n */\nexport function useTermName( termId, taxonomy ) {\n\t// Get term from context if available.\n\tconst contextBasedTerm = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! termId || ! taxonomy ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId\n\t\t\t);\n\t\t},\n\t\t[ termId, taxonomy ]\n\t);\n\n\t// Fallback approach: Parse template slug when no context is available.\n\tconst templateBasedTerm = useTemplateBasedTermData();\n\tconst hasContext = Boolean( termId && taxonomy );\n\n\treturn {\n\t\thasContext,\n\t\tterm: hasContext ? contextBasedTerm : templateBasedTerm,\n\t};\n}\n\n/**\n * Fallback hook to fetch term data from template context.\n * Parses the template slug to determine if we're on a specific term archive.\n */\nfunction useTemplateBasedTermData() {\n\tconst templateSlug = useSelect( ( select ) => {\n\t\t// Access core/editor by string to avoid @wordpress/editor dependency.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getCurrentPostId, getCurrentPostType, getCurrentTemplateId } =\n\t\t\tselect( 'core/editor' );\n\t\tconst currentPostType = getCurrentPostType();\n\t\tconst templateId =\n\t\t\tgetCurrentTemplateId() ||\n\t\t\t( currentPostType === 'wp_template' ? getCurrentPostId() : null );\n\n\t\treturn templateId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_template',\n\t\t\t\t\ttemplateId\n\t\t\t )?.slug\n\t\t\t: null;\n\t}, [] );\n\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\n\tlet taxonomy;\n\tlet termSlug;\n\n\tif ( taxonomyMatches ) {\n\t\t// If it's for a specific term (e.g., category-news, tag-featured).\n\t\tif ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\ttermSlug = taxonomyMatches[ 7 ];\n\t\t}\n\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\t}\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! taxonomy || ! termSlug ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\tconst termRecords = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\tslug: termSlug,\n\t\t\t\tper_page: 1,\n\t\t\t} );\n\n\t\t\tif ( termRecords && termRecords[ 0 ] ) {\n\t\t\t\treturn termRecords[ 0 ];\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\t[ taxonomy, termSlug ]\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { termName as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/terms-query\",\n\t\"title\": \"Terms Query\",\n\t\"category\": \"theme\",\n\t\"description\": \"An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.\",\n\t\"keywords\": [ \"terms\", \"taxonomy\", \"categories\", \"tags\", \"list\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"termQuery\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"default\": {\n\t\t\t\t\"perPage\": 10,\n\t\t\t\t\"taxonomy\": \"category\",\n\t\t\t\t\"order\": \"asc\",\n\t\t\t\t\"orderBy\": \"name\",\n\t\t\t\t\"include\": [],\n\t\t\t\t\"hideEmpty\": true,\n\t\t\t\t\"showNested\": false,\n\t\t\t\t\"inherit\": false\n\t\t\t}\n\t\t},\n\t\t\"tagName\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"default\": \"div\"\n\t\t}\n\t},\n\t\"usesContext\": [ \"templateSlug\" ],\n\t\"providesContext\": {\n\t\t\"termQuery\": \"termQuery\"\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"html\": false,\n\t\t\"layout\": true,\n\t\t\"interactivity\": true\n\t}\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport TermsQueryContent from './terms-query-content';\nimport TermsQueryPlaceholder from './terms-query-placeholder';\n\nconst TermsQueryEdit = ( props ) => {\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( blockEditorStore ).getBlocks( props.clientId ).length,\n\t\t[ props.clientId ]\n\t);\n\tconst Component = hasInnerBlocks\n\t\t? TermsQueryContent\n\t\t: TermsQueryPlaceholder;\n\treturn <Component { ...props } />;\n};\n\nexport default TermsQueryEdit;\n", "/**\n * WordPress dependencies\n */\nimport { useCallback } from '@wordpress/element';\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport TermsQueryInspectorControls from './inspector-controls';\n\nconst TEMPLATE = [ [ 'core/term-template' ] ];\n\nexport default function TermsQueryContent( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\tcontext,\n} ) {\n\tconst { tagName: TagName } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\tconst setQuery = useCallback(\n\t\t( newQuery ) =>\n\t\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\t\ttermQuery: { ...prevAttributes.termQuery, ...newQuery },\n\t\t\t} ) ),\n\t\t[ setAttributes ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t<TermsQueryInspectorControls\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetQuery={ setQuery }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t\ttemplateSlug={ context?.templateSlug }\n\t\t\t/>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\nimport { usePublicTaxonomies } from '../../utils';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderControl from './order-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport NestedTermsControl from './nested-terms-control';\nimport InheritControl from './inherit-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\nimport IncludeControl from './include-control';\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tclientId,\n\ttemplateSlug,\n} ) {\n\tconst { termQuery, tagName: TagName } = attributes;\n\tconst {\n\t\ttaxonomy,\n\t\torderBy,\n\t\torder,\n\t\thideEmpty,\n\t\tinherit,\n\t\tshowNested,\n\t\tperPage,\n\t\tinclude,\n\t} = termQuery;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( _taxonomy ) => _taxonomy.slug === taxonomy\n\t)?.hierarchical;\n\tconst inheritQuery = !! inherit;\n\t// Display the inherit control when we're in a taxonomy-related\n\t// template (category, tag, or custom taxonomy).\n\tconst displayInheritControl =\n\t\t[ 'taxonomy', 'category', 'tag', 'archive' ].includes( templateSlug ) ||\n\t\ttemplateSlug?.startsWith( 'taxonomy-' ) ||\n\t\ttemplateSlug?.startsWith( 'category-' ) ||\n\t\ttemplateSlug?.startsWith( 'tag-' );\n\t// Display the showNested control if the taxonomy is hierarchical.\n\tconst displayShowNestedControl = isTaxonomyHierarchical;\n\tconst hasIncludeFilter = !! include?.length;\n\n\t// Labels shared between ToolsPanelItem and its child control.\n\tconst queryTypeControlLabel = __( 'Query type' );\n\tconst taxonomyControlLabel = __( 'Taxonomy' );\n\tconst orderByControlLabel = __( 'Order by' );\n\tconst emptyTermsControlLabel = __( 'Show empty terms' );\n\tconst nestedTermsControlLabel = __( 'Show nested terms' );\n\tconst maxTermsControlLabel = __( 'Max terms' );\n\tconst includeControlLabel = __( 'Selected terms' );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttermQuery: {\n\t\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\tshowNested: false,\n\t\t\t\t\t\t\t\tinherit: false,\n\t\t\t\t\t\t\t\tperPage: 10,\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\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ displayInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => inherit !== false }\n\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: false } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<InheritControl\n\t\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\t\tvalue={ inherit }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => taxonomy !== 'category' }\n\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { taxonomy: 'category' } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TaxonomyControl\n\t\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t// We also need to reset the include filter when changing taxonomy.\n\t\t\t\t\t\t\t\t\tsetQuery( { taxonomy: value, include: [] } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => orderBy !== 'name' || order !== 'asc' }\n\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetQuery( { orderBy: 'name', order: 'asc' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\t\t{ ...{ orderBy, order } }\n\t\t\t\t\t\t\tonChange={ ( newOrderBy, newOrder ) => {\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, the order is based on their selection order.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! include?.length }\n\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IncludeControl\n\t\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\t\tvalue={ include }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { include: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => hideEmpty !== true }\n\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ hideEmpty }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { hideEmpty: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t{ displayShowNestedControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => showNested !== false }\n\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { showNested: false } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<NestedTermsControl\n\t\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\t\tvalue={ showNested }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { showNested: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, only those are displayed.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => perPage !== 10 }\n\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ perPage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { perPage: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<AdvancedControls\n\t\t\t\tTagName={ TagName }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Retrieve publicly-queryable taxonomies.\n *\n * @return {Object[]} Array of public taxonomy objects.\n */\nexport function usePublicTaxonomies() {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\ttaxonomies?.filter(\n\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t) || []\n\t\t);\n\t}, [ taxonomies ] );\n}\n", "/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { usePublicTaxonomies } from '../../utils';\n\nexport default function TaxonomyControl( { value, onChange, ...props } ) {\n\tconst taxonomies = usePublicTaxonomies();\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\toptions={ taxonomyOptions }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\n\nexport default function OrderControl( { orderBy, order, onChange, ...props } ) {\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize\n\t\t\toptions={ [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: A \u2192 Z' ),\n\t\t\t\t\tvalue: 'name/asc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Name: Z \u2192 A' ),\n\t\t\t\t\tvalue: 'name/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, high to low' ),\n\t\t\t\t\tvalue: 'count/desc',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Count, low to high' ),\n\t\t\t\t\tvalue: 'count/asc',\n\t\t\t\t},\n\t\t\t] }\n\t\t\tvalue={ orderBy + '/' + order }\n\t\t\tonChange={ ( value ) => {\n\t\t\t\tconst [ newOrderBy, newOrder ] = value.split( '/' );\n\t\t\t\tonChange( newOrderBy, newOrder );\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\n\nexport default function EmptyTermsControl( { value, onChange, ...props } ) {\n\treturn (\n\t\t<ToggleControl\n\t\t\tchecked={ ! value }\n\t\t\tonChange={ ( showEmpty ) => onChange( ! showEmpty ) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\n\nexport default function NestedTermsControl( { value, onChange, ...props } ) {\n\treturn (\n\t\t<ToggleControl checked={ value } onChange={ onChange } { ...props } />\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function InheritControl( { value, onChange, label } ) {\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ label }\n\t\t\tisBlock\n\t\t\tonChange={ ( newValue ) => {\n\t\t\t\tonChange( {\n\t\t\t\t\tinherit: newValue === 'default',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\thelp={\n\t\t\t\tvalue\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'Display terms based on the current taxonomy archive. For hierarchical taxonomies, shows children of the current term. For non-hierarchical taxonomies, shows all terms.'\n\t\t\t\t\t )\n\t\t\t\t\t: __( 'Display terms based on specific criteria.' )\n\t\t\t}\n\t\t\tvalue={ value ? 'default' : 'custom' }\n\t\t>\n\t\t\t<ToggleGroupControlOption\n\t\t\t\tvalue=\"default\"\n\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControlOption value=\"custom\" label={ __( 'Custom' ) } />\n\t\t</ToggleGroupControl>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RangeControl } from '@wordpress/components';\n\nexport default function MaxTermsControl( { value, onChange, ...props } ) {\n\treturn (\n\t\t<RangeControl\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tmin={ 0 }\n\t\t\tmax={ 100 }\n\t\t\tonChange={ onChange }\n\t\t\thelp={ __(\n\t\t\t\t'Limit the number of terms you want to show. To show all terms, use 0 (zero).'\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nexport default function AdvancedControls( {\n\tTagName,\n\tsetAttributes,\n\tclientId,\n} ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonChange={ ( value ) => setAttributes( { tagName: value } ) }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { FormTokenField } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst EMPTY_ARRAY = [];\nconst BASE_QUERY = {\n\torder: 'asc',\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nexport default function IncludeControl( {\n\tvalue: include,\n\ttaxonomy,\n\tonChange,\n\t...props\n} ) {\n\tconst [ search, setSearch ] = useState( '' );\n\tconst [ value, setValue ] = useState( EMPTY_ARRAY );\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tconst debouncedSearch = useDebounce( setSearch, 250 );\n\n\tconst { searchResults, searchHasResolved } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! search ) {\n\t\t\t\treturn { searchResults: EMPTY_ARRAY, searchHasResolved: true };\n\t\t\t}\n\t\t\tconst { getEntityRecords, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst selectorArgs = [\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy,\n\t\t\t\t{\n\t\t\t\t\t...BASE_QUERY,\n\t\t\t\t\tsearch,\n\t\t\t\t\torderby: 'name',\n\t\t\t\t\texclude: include,\n\t\t\t\t\tper_page: 20,\n\t\t\t\t},\n\t\t\t];\n\t\t\treturn {\n\t\t\t\tsearchResults: getEntityRecords( ...selectorArgs ),\n\t\t\t\tsearchHasResolved: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\tselectorArgs\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ search, taxonomy, include ]\n\t);\n\n\tconst currentTerms = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! include?.length ) {\n\t\t\t\treturn EMPTY_ARRAY;\n\t\t\t}\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\treturn getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t...BASE_QUERY,\n\t\t\t\tinclude,\n\t\t\t\tper_page: include.length,\n\t\t\t} );\n\t\t},\n\t\t[ include, taxonomy ]\n\t);\n\n\t// Update the `value` state only after the selectors are resolved\n\t// to avoid emptying the input when we're changing terms.\n\tuseEffect( () => {\n\t\tif ( ! include?.length ) {\n\t\t\tsetValue( EMPTY_ARRAY );\n\t\t}\n\t\tif ( ! currentTerms?.length ) {\n\t\t\treturn;\n\t\t}\n\t\t// Returns only the existing entity ids. This prevents the component\n\t\t// from crashing in the editor, when non existing ids are provided.\n\t\tconst sanitizedValue = include.reduce( ( accumulator, id ) => {\n\t\t\tconst entity = currentTerms.find( ( term ) => term.id === id );\n\t\t\tif ( entity ) {\n\t\t\t\taccumulator.push( {\n\t\t\t\t\tid,\n\t\t\t\t\tvalue: decodeEntities( entity.name ),\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, [] );\n\t\tsetValue( sanitizedValue );\n\t}, [ include, currentTerms ] );\n\n\tconst entitiesInfo = useMemo( () => {\n\t\tif ( ! searchResults?.length ) {\n\t\t\treturn { names: EMPTY_ARRAY, mapByName: {} };\n\t\t}\n\t\tconst names = [];\n\t\tconst mapByName = {};\n\t\tsearchResults.forEach( ( result ) => {\n\t\t\tconst decodedName = decodeEntities( result.name );\n\t\t\tnames.push( decodedName );\n\t\t\tmapByName[ decodedName ] = result;\n\t\t} );\n\t\treturn { names, mapByName };\n\t}, [ searchResults ] );\n\n\t// Update suggestions only when the query has resolved.\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) {\n\t\t\treturn;\n\t\t}\n\t\tsetSuggestions( entitiesInfo.names );\n\t}, [ entitiesInfo.names, searchHasResolved ] );\n\n\tconst getIdByValue = ( entitiesMappedByName, entity ) =>\n\t\tentity?.id || entitiesMappedByName?.[ entity ]?.id;\n\n\tconst onTermChange = ( newValue ) => {\n\t\tconst ids = Array.from(\n\t\t\tnewValue.reduce( ( accumulator, entity ) => {\n\t\t\t\t// Verify that new values point to existing entities.\n\t\t\t\tconst id = getIdByValue( entitiesInfo.mapByName, entity );\n\t\t\t\tif ( id ) {\n\t\t\t\t\taccumulator.add( id );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t}, new Set() )\n\t\t);\n\t\tsetSuggestions( EMPTY_ARRAY );\n\t\tonChange( ids );\n\t};\n\n\treturn (\n\t\t<FormTokenField\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tonInputChange={ debouncedSearch }\n\t\t\tsuggestions={ suggestions }\n\t\t\tonChange={ onTermChange }\n\t\t\t__experimentalShowHowTo={ false }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\nexport default function TermsQueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n} ) {\n\tconst { blockType, activeBlockVariation, scopeVariations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t\tgetBlockType,\n\t\t\t\tgetBlockVariations,\n\t\t\t} = select( blocksStore );\n\t\t\treturn {\n\t\t\t\tblockType: getBlockType( name ),\n\t\t\t\tactiveBlockVariation: getActiveBlockVariation(\n\t\t\t\t\tname,\n\t\t\t\t\tattributes\n\t\t\t\t),\n\t\t\t\tscopeVariations: getBlockVariations( name, 'block' ),\n\t\t\t};\n\t\t},\n\t\t[ name, attributes ]\n\t);\n\tconst icon =\n\t\tactiveBlockVariation?.icon?.src ||\n\t\tactiveBlockVariation?.icon ||\n\t\tblockType?.icon?.src;\n\tconst label = activeBlockVariation?.title || blockType?.title;\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<__experimentalBlockVariationPicker\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tvariations={ scopeVariations }\n\t\t\t\tonSelect={ ( variation ) => {\n\t\t\t\t\tif ( variation.innerBlocks ) {\n\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\tvariation.innerBlocks\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tfalse\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</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes: { tagName: Tag = 'div' } } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\treturn <Tag { ...innerBlocksProps } />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Path, SVG } from '@wordpress/components';\n\nexport const titleDate = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"M 41,9 H 7 v 3 h 34 z m 0,9 H 7 v 3 h 34 z m 0,18 H 7 v 3 h 34 z m 0,-9 H 7 v 3 h 34 z\" />\n\t</SVG>\n);\n\nexport const titleExcerpt = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\">\n\t\t<Path d=\"m 36,36 h 5 v 3 h -5 z m 0,-9 h 5 v 3 h -5 z m 0,-9 h 5 v 3 h -5 z m 0,-9 h 5 v 3 H 36 Z M 31,9 H 7 v 3 h 24 z m 0,9 H 7 v 3 h 24 z m 0,18 H 7 v 3 h 24 z m 0,-9 H 7 v 3 h 24 z\" />\n\t</SVG>\n);\n\nconst termName = [\n\t'core/term-name',\n\t{\n\t\tisLink: true,\n\t},\n];\n\nconst variations = [\n\t{\n\t\tname: 'name',\n\t\ttitle: __( 'Name' ),\n\t\tdescription: __( \"Display the terms' names.\" ),\n\t\tattributes: {},\n\t\ticon: titleDate,\n\t\tscope: [ 'block' ],\n\t\tinnerBlocks: [ [ 'core/term-template', {}, [ termName ] ] ],\n\t},\n\t{\n\t\tname: 'name-count',\n\t\ttitle: __( 'Name & Count' ),\n\t\tdescription: __(\n\t\t\t\"Display the terms' names and number of posts assigned to each term.\"\n\t\t),\n\t\tattributes: {},\n\t\ticon: titleExcerpt,\n\t\tscope: [ 'block' ],\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/term-template',\n\t\t\t\t{},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/group',\n\t\t\t\t\t\t{ layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\t\t\t\t\t[ termName, [ 'core/term-count' ] ],\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t],\n\t\t],\n\t},\n];\n\nexport default variations;\n", "/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/term-template\",\n\t\"title\": \"Term Template\",\n\t\"category\": \"theme\",\n\t\"ancestor\": [ \"core/terms-query\" ],\n\t\"description\": \"Contains the block elements used to render a taxonomy term, like the name, description, and more.\",\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"termQuery\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"reusable\": false,\n\t\t\"html\": false,\n\t\t\"align\": [ \"wide\", \"full\" ],\n\t\t\"layout\": true,\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"blockGap\": {\n\t\t\t\t\"__experimentalDefault\": \"1.25em\"\n\t\t\t},\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"blockGap\": true,\n\t\t\t\t\"padding\": false,\n\t\t\t\t\"margin\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-term-template\",\n\t\"editorStyle\": \"wp-block-term-template-editor\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { ToolbarGroup } from '@wordpress/components';\nimport { list, grid } from '@wordpress/icons';\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\n\nconst TEMPLATE = [ [ 'core/term-name' ] ];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tattributes: { layout },\n\tsetAttributes,\n\tcontext: {\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\tshowNested = false,\n\t\t\tperPage,\n\t\t\tinclude,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst { type: layoutType, columnCount = 3 } = layout || {};\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\n\tconst queryArgs = {\n\t\thide_empty: hideEmpty,\n\t\torder,\n\t\torderby: orderBy,\n\t\t// There is a mismatch between `WP_Term_Query` and the REST API parameter default\n\t\t// values to fetch all items. In `WP_Term_Query`, the default is `''|0` and in\n\t\t// the REST API is `-1`.\n\t\tper_page: perPage || -1,\n\t};\n\n\t// Nested terms are returned by default from REST API as long as parent is not set.\n\t// If we want to show nested terms, we must not set parent at all.\n\tif ( ! showNested && ! include?.length ) {\n\t\tqueryArgs.parent = 0;\n\t}\n\n\tif ( include?.length ) {\n\t\tqueryArgs.include = include;\n\t\t// If we are using `include` update the `order` and `orderby` arguments to preserve the order.\n\t\tqueryArgs.orderby = 'include';\n\t\tqueryArgs.order = 'asc';\n\t}\n\n\tconst { records: terms } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\tconst blocks = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tterms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ terms, taxonomy ]\n\t);\n\n\tif ( ! terms ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! terms.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst setDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( ( prevAttributes ) => ( {\n\t\t\tlayout: { ...prevAttributes.layout, ...newDisplayLayout },\n\t\t} ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tcontrols={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ticon: list,\n\t\t\t\t\t\t\ttitle: _x(\n\t\t\t\t\t\t\t\t'List view',\n\t\t\t\t\t\t\t\t'Term template block display setting'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\tsetDisplayLayout( { type: 'default' } ),\n\t\t\t\t\t\t\tisActive:\n\t\t\t\t\t\t\t\tlayoutType === 'default' ||\n\t\t\t\t\t\t\t\tlayoutType === 'constrained',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ticon: grid,\n\t\t\t\t\t\t\ttitle: _x(\n\t\t\t\t\t\t\t\t'Grid view',\n\t\t\t\t\t\t\t\t'Term template block display setting'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\t\t\t\tcolumnCount,\n\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\tisActive: layoutType === 'grid',\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ blockContexts?.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function TermTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n", "/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport deprecated from '@wordpress/deprecated';\n\nexport default function TextColumnsEdit( { attributes, setAttributes } ) {\n\tconst { width, content, columns } = attributes;\n\n\tdeprecated( 'The Text Columns block', {\n\t\tsince: '5.3',\n\t\talternative: 'the Columns block',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ width }\n\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t}\n\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tclassName: `align${ width } columns-${ columns }`,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ Array.from( { length: columns } ).map( ( _, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"wp-block-column\"\n\t\t\t\t\t\t\tkey={ `column-${ index }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\tvalue={ content?.[ index ]?.children }\n\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t],\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\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %d: column index (starting with 1)\n\t\t\t\t\t\t\t\t\t__( 'Column %d text' ),\n\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/text-columns\",\n\t\"title\": \"Text Columns (deprecated)\",\n\t\"icon\": \"columns\",\n\t\"category\": \"design\",\n\t\"description\": \"This block is deprecated. Please use the Columns block instead.\",\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"array\",\n\t\t\t\"source\": \"query\",\n\t\t\t\"selector\": \"p\",\n\t\t\t\"query\": {\n\t\t\t\t\"children\": {\n\t\t\t\t\t\"type\": \"string\",\n\t\t\t\t\t\"source\": \"html\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"default\": [ {}, {} ]\n\t\t},\n\t\t\"columns\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 2\n\t\t},\n\t\t\"width\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"inserter\": false,\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-text-columns-editor\",\n\t\"style\": \"wp-block-text-columns\"\n}\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { width, content, columns } = attributes;\n\treturn (\n\t\t<div\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\tclassName: `align${ width } columns-${ columns }`,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ Array.from( { length: columns } ).map( ( _, index ) => (\n\t\t\t\t<div className=\"wp-block-column\" key={ `column-${ index }` }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tvalue={ content?.[ index ]?.children }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/columns' ],\n\t\t\ttransform: ( { className, columns, content, width } ) =>\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign:\n\t\t\t\t\t\t\t'wide' === width || 'full' === width\n\t\t\t\t\t\t\t\t? width\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tcolumns,\n\t\t\t\t\t},\n\t\t\t\t\tcontent.map( ( { children } ) =>\n\t\t\t\t\t\tcreateBlock( 'core/column', {}, [\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: children,\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t] )\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ttransforms,\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { width } = attributes;\n\t\tif ( 'wide' === width || 'full' === width ) {\n\t\t\treturn { 'data-align': width };\n\t\t}\n\t},\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { verse as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.\n\t\t\tcontent: __(\n\t\t\t\t'WHAT was he doing, the great god Pan,\\n\tDown in the reeds by the river?\\nSpreading ruin and scattering ban,\\nSplashing and paddling with hoofs of a goat,\\nAnd breaking the golden lilies afloat\\n With the dragon-fly on the river.'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tdeprecated,\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\n\nconst v1 = {\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t\tdefault: '',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tstyle={ { textAlign } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nconst v2 = {\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t\tdefault: '',\n\t\t\t__unstablePreserveWhiteSpace: true,\n\t\t\trole: 'content',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\tcolor: {\n\t\t\tgradients: true,\n\t\t\tlink: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontFamily: true,\n\t\t},\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\tconst className = clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} );\n\n\t\treturn (\n\t\t\t<pre { ...useBlockProps.save( { className } ) }>\n\t\t\t\t<RichText.Content value={ content } />\n\t\t\t</pre>\n\t\t);\n\t},\n\tmigrate: migrateFontFamily,\n\tisEligible( { style } ) {\n\t\treturn style?.typography?.fontFamily;\n\t},\n};\n\n/**\n * New deprecations need to be placed first\n * for them to have higher priority.\n *\n * Old deprecations may need to be updated as well.\n *\n * See block-deprecation.md\n */\nexport default [ v2, v1 ];\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function VerseEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tonRemove,\n\tinsertBlocksAfter,\n\tstyle,\n} ) {\n\tconst { textAlign, content } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t\tstyle,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<RichText\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tidentifier=\"content\"\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\taria-label={ __( 'Verse text' ) }\n\t\t\t\tplaceholder={ __( 'Write verse\u2026' ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\ttextAlign={ textAlign }\n\t\t\t\t{ ...blockProps }\n\t\t\t\t__unstablePastePlainText\n\t\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/verse\",\n\t\"title\": \"Verse\",\n\t\"category\": \"text\",\n\t\"description\": \"Insert poetry. Use special spacing formats. Or quote song lyrics.\",\n\t\"keywords\": [ \"poetry\", \"poem\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"pre\",\n\t\t\t\"__unstablePreserveWhiteSpace\": true,\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"textAlign\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"background\": {\n\t\t\t\"backgroundImage\": true,\n\t\t\t\"backgroundSize\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"backgroundImage\": true\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"gradients\": true,\n\t\t\t\"link\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"background\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"dimensions\": {\n\t\t\t\"minHeight\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"minHeight\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"width\": true,\n\t\t\t\"color\": true,\n\t\t\t\"style\": true\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-verse\",\n\t\"editorStyle\": \"wp-block-verse-editor\"\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { textAlign, content } = attributes;\n\n\tconst className = clsx( {\n\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t} );\n\n\treturn (\n\t\t<pre { ...useBlockProps.save( { className } ) }>\n\t\t\t<RichText.Content value={ content } />\n\t\t</pre>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tcreateBlock( 'core/verse', attributes ),\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { video as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tsrc: 'https://upload.wikimedia.org/wikipedia/commons/c/ca/Wood_thrush_in_Central_Park_switch_sides_%2816510%29.webm',\n\t\t\t// translators: Caption accompanying a video of the wood thrush singing, which serves as an example for the Video block.\n\t\t\tcaption: __( 'Wood thrush singing in Central Park, NYC.' ),\n\t\t},\n\t},\n\ttransforms,\n\tdeprecated,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'video',\n\t\t\tlabel: __( 'Video' ),\n\t\t\ttype: 'media',\n\t\t\tEdit: {\n\t\t\t\tcontrol: 'media', // TODO: replace with custom component\n\t\t\t\tallowedTypes: [ 'video' ],\n\t\t\t\tmultiple: false,\n\t\t\t},\n\t\t\tgetValue: ( { item } ) => ( {\n\t\t\t\tid: item.id,\n\t\t\t\turl: item.src,\n\t\t\t\tcaption: item.caption,\n\t\t\t\tposter: item.poster,\n\t\t\t} ),\n\t\t\tsetValue: ( { value } ) => ( {\n\t\t\t\tid: value.id,\n\t\t\t\tsrc: value.url,\n\t\t\t\tcaption: value.caption,\n\t\t\t\tposter: value.poster,\n\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\tid: 'caption',\n\t\t\tlabel: __( 'Caption' ),\n\t\t\ttype: 'text',\n\t\t\tEdit: 'rich-text', // TODO: replace with custom component\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'video', 'caption' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n", "/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport Tracks from './tracks';\n\nconst { attributes: blockAttributes } = metadata;\n\n// In #41140 support was added to global styles for caption elements which added a `wp-element-caption` classname\n// to the video figcaption element.\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tautoplay,\n\t\t\tcaption,\n\t\t\tcontrols,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tposter,\n\t\t\tpreload,\n\t\t\tsrc,\n\t\t\tplaysInline,\n\t\t\ttracks,\n\t\t} = attributes;\n\t\treturn (\n\t\t\t<figure { ...useBlockProps.save() }>\n\t\t\t\t{ src && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tloop={ loop }\n\t\t\t\t\t\tmuted={ muted }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tplaysInline={ playsInline }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/video\",\n\t\"title\": \"Video\",\n\t\"category\": \"media\",\n\t\"description\": \"Embed a video from your media library or upload a new one.\",\n\t\"keywords\": [ \"movie\" ],\n\t\"textdomain\": \"default\",\n\t\"attributes\": {\n\t\t\"autoplay\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"autoplay\"\n\t\t},\n\t\t\"caption\": {\n\t\t\t\"type\": \"rich-text\",\n\t\t\t\"source\": \"rich-text\",\n\t\t\t\"selector\": \"figcaption\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"controls\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"controls\",\n\t\t\t\"default\": true\n\t\t},\n\t\t\"id\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"loop\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"loop\"\n\t\t},\n\t\t\"muted\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"muted\"\n\t\t},\n\t\t\"poster\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"poster\"\n\t\t},\n\t\t\"preload\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"preload\",\n\t\t\t\"default\": \"metadata\"\n\t\t},\n\t\t\"blob\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"role\": \"local\"\n\t\t},\n\t\t\"src\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"src\",\n\t\t\t\"role\": \"content\"\n\t\t},\n\t\t\"playsInline\": {\n\t\t\t\"type\": \"boolean\",\n\t\t\t\"source\": \"attribute\",\n\t\t\t\"selector\": \"video\",\n\t\t\t\"attribute\": \"playsinline\"\n\t\t},\n\t\t\"tracks\": {\n\t\t\t\"role\": \"content\",\n\t\t\t\"type\": \"array\",\n\t\t\t\"items\": {\n\t\t\t\t\"type\": \"object\"\n\t\t\t},\n\t\t\t\"default\": []\n\t\t}\n\t},\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"align\": true,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"editorStyle\": \"wp-block-video-editor\",\n\t\"style\": \"wp-block-video\"\n}\n", "export default function Tracks( { tracks = [] } ) {\n\treturn tracks.map( ( track ) => {\n\t\tconst { id, ...trackAttrs } = track;\n\t\treturn <track key={ id ?? trackAttrs.src } { ...trackAttrs } />;\n\t} );\n}\n", "/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\nimport PosterImage from '../utils/poster-image';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\t// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tposter: posterImage?.url,\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && hasNonContentControls\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n", "/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t[ attribute ]: newValue,\n\t\t\t\t\t// Set muted and playsInLine when autoplay changes\n\t\t\t\t\t// playsInline is set to true when autoplay is true to support iOS devices\n\t\t\t\t\t...( attribute === 'autoplay' && {\n\t\t\t\t\t\tmuted: newValue,\n\t\t\t\t\t\tplaysInline: newValue,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! autoplay }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { autoplay: false, muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\t\tchecked={ !! autoplay }\n\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! loop }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { loop: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\t\tchecked={ !! loop }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! muted }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\t\tchecked={ !! muted }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay ? __( 'Muted because of Autoplay.' ) : null\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! controls }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { controls: true } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\t\tchecked={ !! controls }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! playsInline }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { playsInline: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t/* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */\n\t\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\t\tchecked={ !! playsInline }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay\n\t\t\t\t\t\t\t? __( 'Play inline enabled because of Autoplay.' )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'When enabled, videos will play directly within the webpage on mobile browsers, instead of opening in a fullscreen player.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => preload !== 'metadata' }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { preload: 'metadata' } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\tvalue={ preload }\n\t\t\t\t\tonChange={ onChangePreload }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n", "/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tNavigableMenu,\n\tMenuItem,\n\tFormFileUpload,\n\tMenuGroup,\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\tButton,\n\tTextControl,\n\tSelectControl,\n\tToggleControl,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { upload, media } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nconst ALLOWED_TYPES = [ 'text/vtt' ];\n\nconst DEFAULT_KIND = 'subtitles';\n\nconst KIND_OPTIONS = [\n\t{ label: __( 'Subtitles' ), value: 'subtitles' },\n\t{ label: __( 'Captions' ), value: 'captions' },\n\t{ label: __( 'Descriptions' ), value: 'descriptions' },\n\t{ label: __( 'Chapters' ), value: 'chapters' },\n\t{ label: __( 'Metadata' ), value: 'metadata' },\n];\n\nconst DEFAULT_TRACK = {\n\tsrc: '',\n\tlabel: '',\n\tsrcLang: 'en',\n\tkind: DEFAULT_KIND,\n\tdefault: false,\n};\n\nfunction TrackList( { tracks, onEditPress } ) {\n\tconst content = tracks.map( ( track, index ) => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tkey={ track.id ?? track.src }\n\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t>\n\t\t\t\t<span>{ track.label }</span>\n\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t{ track.default && <Badge>{ __( 'Default' ) }</Badge> }\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => onEditPress( index ) }\n\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Label of the video text track e.g: \"French subtitles\". */\n\t\t\t\t\t\t\t_x( 'Edit %s', 'text tracks' ),\n\t\t\t\t\t\t\ttrack.label\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<MenuGroup\n\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\tclassName=\"block-library-video-tracks-editor__track-list\"\n\t\t>\n\t\t\t{ content }\n\t\t</MenuGroup>\n\t);\n}\n\nfunction SingleTrackEditor( {\n\ttrack,\n\tonChange,\n\tonClose,\n\tonRemove,\n\tallowSettingDefault,\n} ) {\n\tconst [ trackState, setTrackState ] = useState( {\n\t\t...DEFAULT_TRACK,\n\t\t...track,\n\t} );\n\n\tconst { src, label, srcLang, kind, default: isDefaultTrack } = trackState;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\tspacing=\"4\"\n\t\t>\n\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t</span>\n\t\t\t<span>\n\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t</span>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t/>\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\tvalue={ kind }\n\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\tonChange={ ( newKind ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tkind: newKind,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Set as default track' ) }\n\t\t\t\t\tchecked={ isDefaultTrack }\n\t\t\t\t\tdisabled={ ! allowSettingDefault }\n\t\t\t\t\tonChange={ ( defaultTrack ) =>\n\t\t\t\t\t\tsetTrackState( ( prevTrackState ) => ( {\n\t\t\t\t\t\t\t...prevTrackState,\n\t\t\t\t\t\t\tdefault: defaultTrack,\n\t\t\t\t\t\t} ) )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove track' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( trackState );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function TracksEditor( { tracks = [], onChange } ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst [ trackBeingEdited, setTrackBeingEdited ] = useState( null );\n\tconst dropdownPopoverRef = useRef();\n\n\tconst handleTrackSelect = ( selectedTracks = [], appendTracks = false ) => {\n\t\tconst existingTracksMap = new Map(\n\t\t\ttracks.map( ( track ) => [ track.id, track ] )\n\t\t);\n\t\tconst tracksToAdd = selectedTracks.map( ( { id, title, url } ) => {\n\t\t\t// Reuse existing tracks to preserve user-configured metadata.\n\t\t\tif ( existingTracksMap.has( id ) ) {\n\t\t\t\treturn existingTracksMap.get( id );\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...DEFAULT_TRACK,\n\t\t\t\tid,\n\t\t\t\tlabel: title || '',\n\t\t\t\tsrc: url,\n\t\t\t};\n\t\t} );\n\n\t\tif ( tracksToAdd.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( [ ...( appendTracks ? tracks : [] ), ...tracksToAdd ] );\n\t};\n\n\tfunction uploadFiles( event ) {\n\t\tconst files = event.target.files;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( selectedTracks ) => {\n\t\t\t\tif ( ! Array.isArray( selectedTracks ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Wait until the track has been uploaded.\n\t\t\t\tconst uploadedTracks = selectedTracks.filter(\n\t\t\t\t\t( track ) => !! track?.id\n\t\t\t\t);\n\n\t\t\t\tif ( ! uploadedTracks.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\thandleTrackSelect( uploadedTracks, true );\n\t\t\t},\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tdropdownPopoverRef.current?.focus();\n\t}, [ trackBeingEdited ] );\n\n\tif ( ! mediaUpload ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-library-video-tracks-editor\"\n\t\t\tfocusOnMount\n\t\t\tpopoverProps={ {\n\t\t\t\tref: dropdownPopoverRef,\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst handleOnToggle = () => {\n\t\t\t\t\tif ( ! isOpen ) {\n\t\t\t\t\t\t// When the Popover opens make sure the initial view is\n\t\t\t\t\t\t// always the track list rather than the edit track UI.\n\t\t\t\t\t\tsetTrackBeingEdited( null );\n\t\t\t\t\t}\n\t\t\t\t\tonToggle();\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\tonClick={ handleOnToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => {\n\t\t\t\tif ( trackBeingEdited !== null ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<SingleTrackEditor\n\t\t\t\t\t\t\ttrack={ tracks[ trackBeingEdited ] }\n\t\t\t\t\t\t\tonChange={ ( newTrack ) => {\n\t\t\t\t\t\t\t\tconst newTracks = [ ...tracks ];\n\t\t\t\t\t\t\t\tnewTracks[ trackBeingEdited ] = newTrack;\n\t\t\t\t\t\t\t\tonChange( newTracks );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonClose={ () => setTrackBeingEdited( null ) }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\ttracks.filter(\n\t\t\t\t\t\t\t\t\t\t( _track, index ) =>\n\t\t\t\t\t\t\t\t\t\t\tindex !== trackBeingEdited\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\tsetTrackBeingEdited( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tallowSettingDefault={\n\t\t\t\t\t\t\t\t! tracks.some( ( track ) => track.default ) ||\n\t\t\t\t\t\t\t\ttracks[ trackBeingEdited ].default\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\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tracks.length === 0 && (\n\t\t\t\t\t\t\t<div className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t\t\t\t\t<h2 className=\"block-library-video-tracks-editor__tracks-informative-message-title\">\n\t\t\t\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message-description\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<NavigableMenu>\n\t\t\t\t\t\t\t<TrackList\n\t\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\t\tonEditPress={ setTrackBeingEdited }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<MenuGroup\n\t\t\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__add-tracks-container\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Add tracks' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ handleTrackSelect }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ tracks.map( ( { id } ) => id ) }\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ uploadFiles }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\n\t\t\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ _x( 'Upload', 'verb' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Tracks from './tracks';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\tautoplay,\n\t\tcaption,\n\t\tcontrols,\n\t\tloop,\n\t\tmuted,\n\t\tposter,\n\t\tpreload,\n\t\tsrc,\n\t\tplaysInline,\n\t\ttracks,\n\t} = attributes;\n\treturn (\n\t\t<figure { ...useBlockProps.save() }>\n\t\t\t{ src && (\n\t\t\t\t<video\n\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\tloop={ loop }\n\t\t\t\t\tmuted={ muted }\n\t\t\t\t\tposter={ poster }\n\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\tsrc={ src }\n\t\t\t\t\tplaysInline={ playsInline }\n\t\t\t\t>\n\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t</video>\n\t\t\t) }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { createBlobURL, isBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'files',\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length === 1 &&\n\t\t\t\t\tfiles[ 0 ].type.indexOf( 'video/' ) === 0\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t// in the video block\n\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'video',\n\t\t\tattributes: {\n\t\t\t\tsrc: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( {\n\t\t\t\t\t\tnamed: { src, mp4, m4v, webm, ogv, flv },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\treturn src || mp4 || m4v || webm || ogv || flv;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tposter: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { poster } } ) => {\n\t\t\t\t\t\treturn poster;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tloop: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { loop } } ) => {\n\t\t\t\t\t\treturn loop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tautoplay: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { autoplay } } ) => {\n\t\t\t\t\t\treturn autoplay;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpreload: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { preload } } ) => {\n\t\t\t\t\t\treturn preload;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tisMatch: ( node ) =>\n\t\t\t\tnode.nodeName === 'P' &&\n\t\t\t\tnode.children.length === 1 &&\n\t\t\t\tnode.firstChild.nodeName === 'VIDEO',\n\t\t\ttransform: ( node ) => {\n\t\t\t\tconst videoElement = node.firstChild;\n\t\t\t\tconst attributes = {\n\t\t\t\t\tautoplay: videoElement.hasAttribute( 'autoplay' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcontrols: videoElement.hasAttribute( 'controls' )\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: false,\n\t\t\t\t\tloop: videoElement.hasAttribute( 'loop' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmuted: videoElement.hasAttribute( 'muted' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tpreload:\n\t\t\t\t\t\tvideoElement.getAttribute( 'preload' ) || undefined,\n\t\t\t\t\tplaysInline: videoElement.hasAttribute( 'playsinline' )\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tposter: videoElement.getAttribute( 'poster' ) || undefined,\n\t\t\t\t\tsrc: videoElement.getAttribute( 'src' ) || undefined,\n\t\t\t\t};\n\t\t\t\tif ( isBlobURL( attributes.src ) ) {\n\t\t\t\t\tattributes.blob = attributes.src;\n\t\t\t\t\tdelete attributes.src;\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/video', attributes );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n", "/**\n * WordPress dependencies\n */\nimport { formatListNumbered as icon } from '@wordpress/icons';\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport { formatName, format } from './format';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\nexport const init = () => {\n\tregisterFormatType( formatName, format );\n\tinitBlock( { name, metadata, settings } );\n};\n", "/**\n * WordPress dependencies\n */\nimport { BlockIcon, RichText, useBlockProps } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { Placeholder } from '@wordpress/components';\nimport { formatListNumbered as icon } from '@wordpress/icons';\n\nexport default function FootnotesEdit( { context: { postType, postId } } ) {\n\tconst [ meta, updateMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\tconst footnotesSupported = 'string' === typeof meta?.footnotes;\n\tconst footnotes = meta?.footnotes ? JSON.parse( meta.footnotes ) : [];\n\tconst blockProps = useBlockProps();\n\n\tif ( ! footnotesSupported ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabel={ __( 'Footnotes' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Footnotes are not supported here. Add this block to post or page content.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! footnotes.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabel={ __( 'Footnotes' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Footnotes found in blocks within this document will be displayed here.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ol { ...blockProps }>\n\t\t\t{ footnotes.map( ( { id, content } ) => (\n\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */\n\t\t\t\t<li\n\t\t\t\t\tkey={ id }\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// When clicking on the list item (not on descendants),\n\t\t\t\t\t\t// focus the rich text element since it's only 1px wide when\n\t\t\t\t\t\t// empty.\n\t\t\t\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\t\t\t\tevent.target.firstElementChild.focus();\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\tidentifier={ id }\n\t\t\t\t\t\t// To do: figure out why the browser is not scrolling\n\t\t\t\t\t\t// into view when it receives focus.\n\t\t\t\t\t\tonFocus={ ( event ) => {\n\t\t\t\t\t\t\tif ( ! event.target.textContent.trim() ) {\n\t\t\t\t\t\t\t\tevent.target.scrollIntoView();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( nextFootnote ) => {\n\t\t\t\t\t\t\tupdateMeta( {\n\t\t\t\t\t\t\t\t...meta,\n\t\t\t\t\t\t\t\tfootnotes: JSON.stringify(\n\t\t\t\t\t\t\t\t\tfootnotes.map( ( footnote ) => {\n\t\t\t\t\t\t\t\t\t\treturn footnote.id === id\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: nextFootnote,\n\t\t\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: footnote;\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} }\n\t\t\t\t\t/>{ ' ' }\n\t\t\t\t\t<a href={ `#${ id }-link` }>\u21A9\uFE0E</a>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t</ol>\n\t);\n}\n", "{\n\t\"$schema\": \"https://schemas.wp.org/trunk/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"core/footnotes\",\n\t\"title\": \"Footnotes\",\n\t\"category\": \"text\",\n\t\"description\": \"Display footnotes added to the page.\",\n\t\"keywords\": [ \"references\" ],\n\t\"textdomain\": \"default\",\n\t\"usesContext\": [ \"postId\", \"postType\" ],\n\t\"supports\": {\n\t\t\"anchor\": true,\n\t\t\"__experimentalBorder\": {\n\t\t\t\"radius\": true,\n\t\t\t\"color\": true,\n\t\t\t\"width\": true,\n\t\t\t\"style\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"radius\": false,\n\t\t\t\t\"color\": false,\n\t\t\t\t\"width\": false,\n\t\t\t\t\"style\": false\n\t\t\t}\n\t\t},\n\t\t\"color\": {\n\t\t\t\"background\": true,\n\t\t\t\"link\": true,\n\t\t\t\"text\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"link\": true,\n\t\t\t\t\"text\": true\n\t\t\t}\n\t\t},\n\t\t\"html\": false,\n\t\t\"multiple\": false,\n\t\t\"reusable\": false,\n\t\t\"inserter\": false,\n\t\t\"spacing\": {\n\t\t\t\"margin\": true,\n\t\t\t\"padding\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"margin\": false,\n\t\t\t\t\"padding\": false\n\t\t\t}\n\t\t},\n\t\t\"typography\": {\n\t\t\t\"fontSize\": true,\n\t\t\t\"lineHeight\": true,\n\t\t\t\"__experimentalFontFamily\": true,\n\t\t\t\"__experimentalTextDecoration\": true,\n\t\t\t\"__experimentalFontStyle\": true,\n\t\t\t\"__experimentalFontWeight\": true,\n\t\t\t\"__experimentalLetterSpacing\": true,\n\t\t\t\"__experimentalTextTransform\": true,\n\t\t\t\"__experimentalWritingMode\": true,\n\t\t\t\"__experimentalDefaultControls\": {\n\t\t\t\t\"fontSize\": true\n\t\t\t}\n\t\t},\n\t\t\"interactivity\": {\n\t\t\t\"clientNavigation\": true\n\t\t}\n\t},\n\t\"style\": \"wp-block-footnotes\"\n}\n", "// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}", "import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;", "const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};", "import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;", "/**\n * External dependencies\n */\nimport { v4 as createId } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { formatListNumbered as icon } from '@wordpress/icons';\nimport { insertObject } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tstore as blockEditorStore,\n\tprivateApis,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { name as FOOTNOTES_BLOCK_NAME } from './';\n\nexport const formatName = 'core/footnote';\n\nconst { usesContextKey } = unlock( privateApis );\nconst POST_CONTENT_BLOCK_NAME = 'core/post-content';\nconst SYNCED_PATTERN_BLOCK_NAME = 'core/block';\n\nexport const format = {\n\ttitle: __( 'Footnote' ),\n\ttagName: 'sup',\n\tclassName: 'fn',\n\tattributes: {\n\t\t'data-fn': 'data-fn',\n\t},\n\tinteractive: true,\n\tcontentEditable: false,\n\t[ usesContextKey ]: [ 'postType', 'postId' ],\n\tedit: function Edit( {\n\t\tvalue,\n\t\tonChange,\n\t\tisObjectActive,\n\t\tcontext: { postType, postId },\n\t} ) {\n\t\tconst registry = useRegistry();\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockName,\n\t\t\tgetBlockParentsByBlockName,\n\t\t} = registry.select( blockEditorStore );\n\t\tconst isFootnotesSupported = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tif (\n\t\t\t\t\t! select( blocksStore ).getBlockType( 'core/footnotes' )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst allowedBlocks =\n\t\t\t\t\tselect( blockEditorStore ).getSettings().allowedBlockTypes;\n\t\t\t\tif (\n\t\t\t\t\tallowedBlocks === false ||\n\t\t\t\t\t( Array.isArray( allowedBlocks ) &&\n\t\t\t\t\t\t! allowedBlocks.includes( 'core/footnotes' ) )\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst entityRecord = select( coreDataStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t);\n\n\t\t\t\tif ( 'string' !== typeof entityRecord?.meta?.footnotes ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Checks if the selected block lives within a pattern.\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockParentsByBlockName: _getBlockParentsByBlockName,\n\t\t\t\t\tgetSelectedBlockClientId: _getSelectedBlockClientId,\n\t\t\t\t\tgetBlockName: _getBlockName,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst selectedClientId = _getSelectedBlockClientId();\n\n\t\t\t\tif ( ! selectedClientId ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Check if the selected block itself is a footnotes block.\n\t\t\t\tif (\n\t\t\t\t\t_getBlockName( selectedClientId ) === FOOTNOTES_BLOCK_NAME\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst parentCoreBlocks = _getBlockParentsByBlockName(\n\t\t\t\t\tselectedClientId,\n\t\t\t\t\tSYNCED_PATTERN_BLOCK_NAME\n\t\t\t\t);\n\t\t\t\treturn ! parentCoreBlocks || parentCoreBlocks.length === 0;\n\t\t\t},\n\t\t\t[ postType, postId ]\n\t\t);\n\n\t\tconst { selectionChange, insertBlock } =\n\t\t\tuseDispatch( blockEditorStore );\n\n\t\tif ( ! isFootnotesSupported ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfunction onClick() {\n\t\t\tregistry.batch( () => {\n\t\t\t\tlet id;\n\t\t\t\tif ( isObjectActive ) {\n\t\t\t\t\tconst object = value.replacements[ value.start ];\n\t\t\t\t\tid = object?.attributes?.[ 'data-fn' ];\n\t\t\t\t} else {\n\t\t\t\t\tid = createId();\n\t\t\t\t\tconst newValue = insertObject(\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: formatName,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t'data-fn': id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tinnerHTML: `<a href=\"#${ id }\" id=\"${ id }-link\">*</a>`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue.end,\n\t\t\t\t\t\tvalue.end\n\t\t\t\t\t);\n\t\t\t\t\tnewValue.start = newValue.end - 1;\n\t\t\t\t\tonChange( newValue );\n\t\t\t\t}\n\n\t\t\t\tconst selectedClientId = getSelectedBlockClientId();\n\n\t\t\t\t/*\n\t\t\t\t * Attempts to find a common parent post content block.\n\t\t\t\t * This allows for locating blocks within a page edited in the site editor.\n\t\t\t\t */\n\t\t\t\tconst parentPostContent = getBlockParentsByBlockName(\n\t\t\t\t\tselectedClientId,\n\t\t\t\t\tPOST_CONTENT_BLOCK_NAME\n\t\t\t\t);\n\n\t\t\t\t// When called with a post content block, getBlocks will return\n\t\t\t\t// the block with controlled inner blocks included.\n\t\t\t\tconst blocks = parentPostContent.length\n\t\t\t\t\t? getBlocks( parentPostContent[ 0 ] )\n\t\t\t\t\t: getBlocks();\n\n\t\t\t\t// BFS search to find the first footnote block.\n\t\t\t\tlet fnBlock = null;\n\t\t\t\t{\n\t\t\t\t\tconst queue = [ ...blocks ];\n\t\t\t\t\twhile ( queue.length ) {\n\t\t\t\t\t\tconst block = queue.shift();\n\t\t\t\t\t\tif ( block.name === 'core/footnotes' ) {\n\t\t\t\t\t\t\tfnBlock = block;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqueue.push( ...block.innerBlocks );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Maybe this should all also be moved to the entity provider.\n\t\t\t\t// When there is no footnotes block in the post, create one and\n\t\t\t\t// insert it at the bottom.\n\t\t\t\tif ( ! fnBlock ) {\n\t\t\t\t\tlet rootClientId = getBlockRootClientId( selectedClientId );\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\trootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) !== POST_CONTENT_BLOCK_NAME\n\t\t\t\t\t) {\n\t\t\t\t\t\trootClientId = getBlockRootClientId( rootClientId );\n\t\t\t\t\t}\n\n\t\t\t\t\tfnBlock = createBlock( 'core/footnotes' );\n\n\t\t\t\t\tinsertBlock( fnBlock, undefined, rootClientId );\n\t\t\t\t}\n\n\t\t\t\tselectionChange( fnBlock.clientId, id, 0, 0 );\n\t\t\t} );\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ icon }\n\t\t\t\ttitle={ __( 'Footnote' ) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t);\n\t},\n};\n", "/**\n * Checks if the block is experimental based on the metadata loaded\n * from block.json.\n *\n * @param {Object} metadata Parsed block.json metadata.\n * @return {boolean} Is the block experimental?\n */\nexport default function isBlockMetadataExperimental( metadata ) {\n\treturn (\n\t\tmetadata &&\n\t\t'__experimental' in metadata &&\n\t\tmetadata.__experimental !== false\n\t);\n}\n", "/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockKeyboardShortcuts() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTransformHeadingAndParagraph = ( event, level ) => {\n\t\tevent.preventDefault();\n\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tconst isParagraph = blockName === 'core/paragraph';\n\t\tconst isHeading = blockName === 'core/heading';\n\n\t\tif ( ! isParagraph && ! isHeading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\n\t\t// Avoid unnecessary block transform when attempting to transform to\n\t\t// the same block type and/or same level.\n\t\tif (\n\t\t\t( isParagraph && level === 0 ) ||\n\t\t\t( isHeading && attributes.level === level )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst newAttributes = {\n\t\t\tcontent: attributes.content,\n\t\t};\n\n\t\t// Read textAlign from source block (could be in old or new format)\n\t\tconst sourceTextAlign =\n\t\t\tattributes.textAlign || attributes.style?.typography?.textAlign;\n\n\t\t// When destination is heading, set the level\n\t\tif ( destinationBlockName === 'core/heading' ) {\n\t\t\tnewAttributes.level = level;\n\t\t}\n\n\t\tif ( sourceTextAlign ) {\n\t\t\tnewAttributes.style = {\n\t\t\t\ttypography: {\n\t\t\t\t\ttextAlign: sourceTextAlign,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, newAttributes )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '0',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: '7',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-1',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 1 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-2',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 2 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-3',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 3 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-4',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 4 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-5',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 5 )\n\t);\n\tuseShortcut(\n\t\t'core/block-editor/transform-paragraph-to-heading-6',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 6 )\n\t);\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n", "/**\n * Internal dependencies\n */\nimport { default as BlockKeyboardShortcuts } from './block-keyboard-shortcuts';\nimport { NAVIGATION_OVERLAY_TEMPLATE_PART_AREA } from './navigation/constants';\nimport { lock } from './lock-unlock';\n\n/**\n * @private\n */\nexport const privateApis = {};\nlock( privateApis, {\n\tBlockKeyboardShortcuts,\n\tNAVIGATION_OVERLAY_TEMPLATE_PART_AREA,\n} );\n"],
"mappings": "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K;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,QAAK;AAAA,QACL,QAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,gBAAM;AAAA,QACN,gBAAM;AAAA,QACN,cAAM;AAAA,QACN,cAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,UAAK;AAAA,QACL,UAAK;AAAA,QACL,UAAK;AAAA,QACL,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,WAAM;AAAA,QACN,gBAAM;AAAA,QACN,gBAAM;AAAA,QACN,UAAK;AAAA,QACL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",
"names": ["ElementType", "d", "b", "p", "__", "__assign", "t", "s", "i", "n", "Node", "DataNode", "Text", "Comment", "ProcessingInstruction", "name", "NodeWithChildren", "CDATA", "Document", "Element", "require_lib", "o", "m", "k", "k2", "exports", "p", "DomHandler", "options", "name", "attributes", "require_lib", "name", "capitalize", "style", "options", "i", "m", "c", "style", "capitalize", "options", "style", "options", "style", "attributesToProps", "attributes", "domToReact", "options", "cloneElement", "createElement", "require_lib", "ElementType", "require_node", "d", "b", "p", "__", "__assign", "t", "s", "i", "n", "Node", "DataNode", "Text", "Comment", "ProcessingInstruction", "name", "NodeWithChildren", "CDATA", "Document", "Element", "require_lib", "o", "m", "k", "k2", "exports", "p", "DomHandler", "options", "name", "HTMLReactParser", "options", "removeAccents", "a", "b", "i", "import_blocks", "import_compose", "import_data", "import_block_editor", "import_server_side_render", "import_i18n", "e", "t", "f", "n", "o", "import_lib", "HTMLReactParser", "options", "name", "TagName", "import_i18n", "import_block_editor", "import_data", "name", "select", "coreStore", "getSettings", "blockEditorStore", "import_jsx_runtime", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOption", "import_block_editor", "import_jsx_runtime", "import_blocks", "settings", "name", "import_jsx_runtime", "import_i18n", "import_block_editor", "import_data", "import_components", "import_jsx_runtime", "Edit", "attributes", "select", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "import_block_editor", "import_jsx_runtime", "save", "attributes", "block_default", "import_primitives", "import_jsx_runtime", "icon_default", "name", "block_default", "settings", "icon_default", "Edit", "save", "init", "import_i18n", "import_element", "import_block_editor", "import_data", "import_jsx_runtime", "Edit", "attributes", "TagName", "blockEditorStore", "useTypographyProps", "useSpacingProps", "import_block_editor", "import_jsx_runtime", "save", "attributes", "TagName", "getSpacingClassesAndStyles", "block_default", "import_primitives", "import_jsx_runtime", "icon_default", "import_block_editor", "import_jsx_runtime", "attributes", "TagName", "getSpacingClassesAndStyles", "name", "block_default", "settings", "icon_default", "Edit", "save", "init", "import_block_editor", "import_data", "import_jsx_runtime", "Edit", "attributes", "select", "blockEditorStore", "import_block_editor", "import_jsx_runtime", "save", "block_default", "import_primitives", "import_jsx_runtime", "icon_default", "name", "block_default", "settings", "icon_default", "Edit", "save", "init", "import_element", "icon_default", "icon", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "block_default", "import_components", "import_i18n", "import_block_editor", "import_compose", "import_jsx_runtime", "attributes", "name", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_core_data", "import_i18n", "import_data", "select", "coreStore", "import_i18n", "import_components", "import_data", "import_core_data", "import_element", "import_compose", "import_jsx_runtime", "select", "coreStore", "options", "import_jsx_runtime", "attributes", "ToolsPanel", "ToolsPanelItem", "useBorderProps", "Edit", "name", "block_default", "settings", "Edit", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "deprecated_default", "attributes", "import_blob", "import_components", "import_block_editor", "import_i18n", "import_data", "import_element", "options", "i", "import_components", "import_element", "import_blocks", "block_default", "import_jsx_runtime", "block_default", "componentsPrivateApis", "name", "attributes", "import_element", "import_compose", "import_i18n", "import_block_editor", "import_components", "import_blocks", "import_jsx_runtime", "attributes", "placeholder", "icon", "RichText", "blockEditorPrivateApis", "import_jsx_runtime", "attributes", "noticesStore", "ToolsPanel", "ToolsPanelItem", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blob", "import_blocks", "blocksPrivateApis", "name", "block_default", "settings", "deprecated_default", "save", "init", "block_default", "import_i18n", "import_block_editor", "import_components", "import_data", "import_core_data", "import_element", "import_server_side_render", "import_compose", "import_jsx_runtime", "attributes", "name", "select", "coreStore", "c", "placeholder", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "import_i18n", "import_blocks", "import_block_editor", "import_compose", "import_block_editor", "blockEditorPrivateApis", "attributes", "attributes", "import_jsx_runtime", "attributes", "style", "TagName", "getBorderClassesAndStyles", "getColorClassesAndStyles", "getSpacingClassesAndStyles", "getShadowClassesAndStyles", "deprecated_default", "import_i18n", "import_element", "import_components", "import_block_editor", "import_blocks", "import_compose", "import_data", "import_url", "import_compose", "import_element", "import_deprecated", "import_data", "import_block_editor", "name", "attributes", "blockEditorStore", "deprecated", "import_jsx_runtime", "blockEditorPrivateApis", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOption", "attributes", "placeholder", "style", "TagName", "useBorderProps", "useColorProps", "useSpacingProps", "useShadowProps", "select", "useTypographyProps", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "style", "TagName", "getBorderClassesAndStyles", "getColorClassesAndStyles", "getSpacingClassesAndStyles", "getShadowClassesAndStyles", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "edit_default", "save", "deprecated_default", "a", "attributes", "init", "import_i18n", "import_block_editor", "import_jsx_runtime", "attributes", "deprecated", "deprecated_default", "import_blocks", "import_blocks", "attributes", "transforms", "attributes", "createElement", "transforms_default", "import_block_editor", "import_data", "import_blocks", "import_jsx_runtime", "attributes", "style", "select", "blocksStore", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "style", "name", "block_default", "settings", "deprecated_default", "transforms_default", "edit_default", "save", "init", "block_default", "import_components", "import_data", "import_server_side_render", "import_block_editor", "import_core_data", "import_i18n", "import_compose", "import_jsx_runtime", "attributes", "name", "select", "coreStore", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "init", "block_default", "import_components", "import_compose", "import_block_editor", "import_html_entities", "import_i18n", "import_core_data", "import_data", "import_notices", "import_jsx_runtime", "t", "noticeStore", "name", "TagName", "ToolsPanel", "ToolsPanelItem", "import_i18n", "blockAttributes", "name", "block_default", "settings", "init", "import_block_editor", "import_data", "import_components", "import_element", "import_i18n", "import_i18n", "import_components", "import_data", "import_blocks", "import_block_editor", "import_jsx_runtime", "blockEditorStore", "select", "import_block_editor", "import_components", "import_element", "import_i18n", "import_data", "import_compose", "import_jsx_runtime", "select", "settings", "import_jsx_runtime", "attributes", "select", "blockEditorStore", "block_default", "import_element", "import_jsx_runtime", "save", "attributes", "name", "block_default", "settings", "save", "init", "import_i18n", "import_blocks", "import_i18n", "import_block_editor", "import_blocks", "import_jsx_runtime", "attributes", "block_default", "import_block_editor", "import_compose", "import_jsx_runtime", "save", "attributes", "import_blocks", "import_rich_text", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "transforms_default", "save", "init", "import_block_editor", "import_jsx_runtime", "deprecated", "attributes", "style", "deprecated_default", "import_block_editor", "import_components", "import_data", "import_i18n", "import_jsx_runtime", "useCustomUnits", "ToolsPanel", "ToolsPanelItem", "UnitControl", "select", "blockEditorStore", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "style", "name", "block_default", "settings", "edit_default", "save", "deprecated_default", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "attributes", "style", "deprecated_default", "import_i18n", "import_components", "import_block_editor", "import_data", "import_blocks", "import_jsx_runtime", "DEFAULT_BLOCK", "ColumnInspectorControls", "select", "blockEditorStore", "ToolsPanel", "VStack", "ToolsPanelItem", "attributes", "Placeholder", "name", "variations", "getBlockVariations", "getBlockType", "blocksStore", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_components", "import_i18n", "import_jsx_runtime", "variations", "variations_default", "import_blocks", "transforms", "name", "attributes", "style", "mediaPosition", "transforms_default", "name", "block_default", "settings", "variations_default", "deprecated_default", "edit_default", "save", "transforms_default", "init", "block_default", "import_block_editor", "import_jsx_runtime", "v1", "deprecated_default", "import_block_editor", "import_i18n", "import_block_editor", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "import_block_editor", "import_i18n", "import_components", "import_block_editor", "import_i18n", "import_data", "import_core_data", "import_element", "import_i18n", "import_block_editor", "import_components", "import_compose", "import_core_data", "import_data", "import_jsx_runtime", "select", "blockEditorStore", "coreStore", "import_jsx_runtime", "select", "blockEditorStore", "import_jsx_runtime", "attributes", "TEMPLATE", "import_jsx_runtime", "attributes", "TagName", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "save", "deprecated_default", "init", "block_default", "import_block_editor", "import_components", "import_core_data", "import_data", "import_i18n", "import_jsx_runtime", "Edit", "attributes", "useSpacingProps", "select", "blockEditorStore", "name", "block_default", "settings", "Edit", "init", "block_default", "import_i18n", "import_data", "import_block_editor", "import_core_data", "import_components", "import_jsx_runtime", "Edit", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "v2", "attributes", "v1", "style", "deprecated_default", "name", "block_default", "settings", "Edit", "deprecated_default", "init", "block_default", "import_i18n", "import_element", "import_components", "import_core_data", "import_block_editor", "import_jsx_runtime", "Edit", "v1", "attributes", "deprecated_default", "name", "block_default", "settings", "Edit", "deprecated_default", "init", "block_default", "import_core_data", "import_block_editor", "import_components", "import_i18n", "import_jsx_runtime", "Edit", "format", "getDateSettings", "ToolsPanel", "ToolsPanelItem", "DateFormatPicker", "v1", "style", "deprecated_default", "name", "block_default", "settings", "Edit", "deprecated_default", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_jsx_runtime", "Edit", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "Edit", "init", "block_default", "import_i18n", "import_block_editor", "import_jsx_runtime", "Edit", "edit_default", "name", "block_default", "settings", "edit_default", "init", "block_default", "import_element", "import_data", "import_i18n", "import_block_editor", "import_components", "import_core_data", "import_element", "import_data", "import_block_editor", "import_url", "select", "getSettings", "blockEditorStore", "apiFetch", "import_jsx_runtime", "TEMPLATE", "useBlockPreview", "style", "select", "getSettings", "blockEditorStore", "coreStore", "import_block_editor", "import_jsx_runtime", "name", "block_default", "settings", "init", "import_i18n", "block_default", "import_i18n", "import_block_editor", "import_jsx_runtime", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_block_editor", "import_data", "import_components", "import_i18n", "import_components", "import_jsx_runtime", "ToggleGroupControl", "ToggleGroupControlOption", "import_jsx_runtime", "TEMPLATE", "select", "blockEditorStore", "getSettings", "ToolsPanel", "ToolsPanelItem", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "save", "init", "import_i18n", "block_default", "import_i18n", "import_block_editor", "import_jsx_runtime", "arrowMap", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_jsx_runtime", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_i18n", "import_core_data", "import_components", "import_element", "import_data", "import_api_fetch", "import_url", "import_jsx_runtime", "Edit", "TagName", "select", "getSettings", "blockEditorStore", "apiFetch", "ToolsPanel", "ToolsPanelItem", "placeholder", "block_default", "deprecated_default", "name", "block_default", "settings", "Edit", "deprecated_default", "init", "import_i18n", "import_blocks", "import_blocks", "import_block_editor", "import_i18n", "import_compose", "import_blob", "ALLOWED_MEDIA_TYPES", "x", "y", "import_jsx_runtime", "attributes", "blockAttributes", "v14", "isDark", "style", "v13", "v12", "v11", "v10", "v2", "v1", "deprecated_default", "import_core_data", "import_element", "import_components", "import_compose", "import_block_editor", "import_i18n", "import_data", "import_blob", "import_notices", "import_element", "import_components", "import_compose", "import_block_editor", "import_i18n", "import_data", "import_core_data", "import_block_editor", "import_notices", "import_components", "import_blob", "import_i18n", "import_element", "import_compose", "import_data", "import_jsx_runtime", "getSettings", "blockEditorStore", "noticesStore", "ToolsPanelItem", "HStack", "import_jsx_runtime", "cleanEmptyObject", "HTMLElementControl", "blockEditorPrivateApis", "UnitControl", "useCustomUnits", "parseQuantityAndUnitFromRawValue", "attributes", "getSettings", "blockEditorStore", "select", "coreStore", "name", "useMultipleOriginColorsAndGradients", "ToolsPanel", "ToolsPanelItem", "ColorGradientSettingsDropdown", "import_element", "import_block_editor", "import_i18n", "import_components", "import_element", "import_components", "import_i18n", "import_blocks", "DEFAULT_EMBED_BLOCK", "DEFAULT_EMBED_BLOCK", "import_jsx_runtime", "ConfirmDialog", "VStack", "import_jsx_runtime", "cleanEmptyObject", "blockEditorPrivateApis", "attributes", "BlockAlignmentMatrixControl", "FullHeightAlignmentControl", "ALLOWED_MEDIA_TYPES", "import_block_editor", "import_i18n", "import_jsx_runtime", "style", "ALLOWED_MEDIA_TYPES", "import_element", "import_block_editor", "import_jsx_runtime", "blockEditorPrivateApis", "r", "t", "n", "e", "u", "a", "o", "i", "s", "h", "r", "t", "n", "e", "u", "i", "a", "e", "f", "a", "r", "d", "l", "i", "n", "o", "t", "b", "c", "g", "u", "i", "options", "name", "FastAverageColor", "e", "import_hooks", "r", "g", "b", "a", "import_jsx_runtime", "attributes", "isDark", "TagName", "getSettings", "blockEditorStore", "select", "coreStore", "noticesStore", "style", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "isDark", "style", "import_blocks", "import_block_editor", "cleanEmptyObject", "blockEditorPrivateApis", "transforms", "style", "attributes", "transforms_default", "import_i18n", "variations", "variations_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "save", "edit_default", "deprecated_default", "variations_default", "init", "import_i18n", "import_blocks", "block_default", "import_block_editor", "import_components", "import_i18n", "import_element", "import_data", "import_jsx_runtime", "componentsPrivateApis", "TEMPLATE", "attributes", "name", "placeholder", "select", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "name", "import_blocks", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "save", "edit_default", "transforms_default", "init", "import_i18n", "import_components", "import_block_editor", "import_jsx_runtime", "ToolsPanel", "ToolsPanelItem", "import_components", "import_jsx_runtime", "import_components", "import_jsx_runtime", "import_i18n", "import_components", "import_block_editor", "import_jsx_runtime", "icon", "fallback", "InputControl", "VStack", "HStack", "import_i18n", "import_components", "import_block_editor", "import_element", "import_url", "import_compose", "import_element", "import_jsx_runtime", "name", "import_jsx_runtime", "icon", "import_i18n", "import_element", "import_data", "import_block_editor", "import_core_data", "import_primitives", "import_url", "import_jsx_runtime", "attributes", "icon", "coreStore", "select", "className", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "block_default", "transforms", "transforms_default", "import_i18n", "variations", "blockAttributes", "variations_default", "import_block_editor", "import_jsx_runtime", "blockAttributes", "block_default", "v2", "attributes", "v1", "deprecated", "deprecated_default", "name", "block_default", "settings", "edit_default", "save", "transforms_default", "variations_default", "deprecated_default", "init", "import_i18n", "import_blocks", "import_block_editor", "import_i18n", "import_jsx_runtime", "v3", "attributes", "v2", "v1", "deprecated", "deprecated_default", "import_blob", "import_components", "import_data", "import_block_editor", "import_element", "import_compose", "import_i18n", "import_core_data", "import_notices", "import_url", "import_i18n", "import_components", "import_block_editor", "import_jsx_runtime", "ToolsPanel", "ToolsPanelItem", "e", "import_jsx_runtime", "noticesStore", "attributes", "select", "coreStore", "blockEditorStore", "getAnimateClassName", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blob", "import_blocks", "import_data", "import_core_data", "import_url", "transforms", "attributes", "coreStore", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "deprecated_default", "edit_default", "save", "init", "import_hooks", "import_i18n", "import_block_editor", "import_components", "import_data", "import_i18n", "import_jsx_runtime", "TEMPLATE", "Edit", "attributes", "select", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_i18n", "variations", "blockAttributes", "variations_default", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "getColorClassesAndStyles", "getSpacingClassesAndStyles", "deprecated_default", "import_primitives", "import_jsx_runtime", "name", "block_default", "settings", "edit_default", "save", "deprecated_default", "variations_default", "init", "import_block_editor", "import_dom", "import_jsx_runtime", "removeAccents", "stripHTML", "v2", "attributes", "name", "placeholder", "getBorderClassesAndStyles", "getColorClassesAndStyles", "TagName", "v1", "deprecated", "deprecated_default", "import_i18n", "import_block_editor", "import_components", "import_element", "import_jsx_runtime", "attributes", "name", "placeholder", "TagName", "useBorderProps", "useColorProps", "ToolsPanel", "ToolsPanelItem", "edit_default", "block_default", "import_remove_accents", "import_block_editor", "import_dom", "import_jsx_runtime", "removeAccents", "stripHTML", "save", "attributes", "name", "placeholder", "getBorderClassesAndStyles", "getColorClassesAndStyles", "TagName", "import_i18n", "variations", "blockAttributes", "variations_default", "import_primitives", "import_jsx_runtime", "icon", "name", "block_default", "settings", "icon", "deprecated_default", "edit_default", "save", "variations_default", "init", "import_i18n", "import_block_editor", "import_jsx_runtime", "TEMPLATE", "Edit", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "edit_default", "save", "init", "import_i18n", "import_block_editor", "import_data", "import_jsx_runtime", "TEMPLATE", "Edit", "attributes", "select", "blockEditorStore", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_i18n", "variations", "blockAttributes", "variations_default", "name", "block_default", "settings", "edit_default", "save", "variations_default", "init", "import_block_editor", "import_blocks", "DEFAULT_MEDIA_SIZE_SLUG", "import_jsx_runtime", "attributes", "v7", "v6", "v5", "v4", "v3", "v2", "v1", "deprecated_default", "import_components", "import_block_editor", "import_element", "import_i18n", "import_data", "import_primitives", "import_blocks", "import_blob", "import_notices", "import_block_editor", "import_jsx_runtime", "MIN_SIZE", "LINK_DESTINATION_NONE", "LINK_DESTINATION_MEDIA", "LINK_DESTINATION_ATTACHMENT", "NEW_TAB_REL", "ALLOWED_MEDIA_TYPES", "DEFAULT_MEDIA_SIZE_SLUG", "getHrefAndDestination", "attributes", "LINK_DESTINATION_MEDIA", "LINK_DESTINATION_ATTACHMENT", "LINK_DESTINATION_NONE", "NEW_TAB_REL", "ALLOWED_MEDIA_TYPES", "mediaPosition", "x", "y", "import_i18n", "import_primitives", "import_jsx_runtime", "attributes", "import_element", "getSettings", "name", "import_element", "import_data", "import_core_data", "select", "coreStore", "import_block_editor", "getGapCSSValue", "import_jsx_runtime", "ALLOWED_MEDIA_TYPES", "DEFAULT_BLOCK", "attributes", "blockEditorStore", "noticesStore", "getSettings", "select", "name", "getHrefAndDestination", "isValidFileType", "a", "b", "ToolsPanel", "DEFAULT_MEDIA_SIZE_SLUG", "ToolsPanelItem", "block_default", "import_block_editor", "import_jsx_runtime", "attributes", "import_blocks", "import_blob", "import_hooks", "transforms", "attributes", "transforms_default", "name", "block_default", "settings", "transforms_default", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_jsx_runtime", "attributes", "style", "deprecated", "deprecated_default", "import_data", "import_block_editor", "import_element", "import_i18n", "import_primitives", "import_data", "import_block_editor", "import_i18n", "import_blocks", "import_components", "import_element", "import_jsx_runtime", "name", "attributes", "style", "variations", "select", "blocksStore", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "attributes", "name", "select", "getSettings", "blockEditorStore", "TagName", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "import_blocks", "transforms", "transforms_default", "import_i18n", "variations", "variations_default", "name", "block_default", "settings", "transforms_default", "edit_default", "save", "deprecated_default", "variations_default", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "blockAttributes", "migrateCustomColors", "attributes", "style", "v1", "v2", "v3", "v4", "TagName", "v5", "v6", "deprecated", "deprecated_default", "import_i18n", "import_element", "import_data", "import_block_editor", "import_remove_accents", "removeAccents", "i", "import_jsx_runtime", "attributes", "style", "placeholder", "select", "getSettings", "blockEditorStore", "settings", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "TagName", "import_blocks", "transforms", "attributes", "style", "schema", "transforms_default", "import_i18n", "variations", "blockAttributes", "variations_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "transforms_default", "deprecated_default", "edit_default", "save", "variations_default", "init", "import_i18n", "block_default", "import_block_editor", "import_i18n", "import_data", "import_core_data", "import_jsx_runtime", "attributes", "select", "coreStore", "style", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "save", "init", "import_i18n", "import_i18n", "import_element", "import_block_editor", "import_components", "import_element", "import_block_editor", "import_components", "import_data", "import_i18n", "import_jsx_runtime", "select", "blockEditorStore", "style", "import_i18n", "import_element", "import_data", "import_components", "import_block_editor", "import_jsx_runtime", "componentsPrivateApis", "select", "settings", "blockEditorStore", "Grid", "HStack", "import_jsx_runtime", "attributes", "VStack", "block_default", "import_element", "import_jsx_runtime", "save", "attributes", "import_blocks", "import_rich_text", "transforms", "transforms_default", "name", "block_default", "settings", "save", "transforms_default", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "v2", "v3", "v4", "v5", "v6", "getBorderClassesAndStyles", "v7", "v8", "deprecated_default", "import_blob", "import_blocks", "import_components", "import_data", "import_block_editor", "import_element", "import_i18n", "import_notices", "import_compose", "import_blob", "import_components", "import_compose", "import_data", "import_block_editor", "import_element", "import_i18n", "import_url", "import_blocks", "import_notices", "import_core_data", "import_components", "import_block_editor", "import_i18n", "import_data", "import_jsx_runtime", "ItemGroup", "HStack", "Truncate", "getSettings", "blockEditorStore", "import_jsx_runtime", "ResolutionTool", "blockEditorPrivateApis", "attributes", "Image", "select", "coreStore", "getSettings", "blockEditorStore", "settings", "noticesStore", "name", "mediaPosition", "img", "ALLOWED_MEDIA_TYPES", "useCustomUnits", "DEFAULT_MEDIA_SIZE_SLUG", "ImageURLInputUI", "ToolsPanel", "ToolsPanelItem", "useBorderProps", "getShadowClassesAndStyles", "ImageEditor", "MIN_SIZE", "import_element", "import_compose", "import_jsx_runtime", "import_jsx_runtime", "pickRelevantMediaFiles", "attributes", "blockEditorStore", "getSettings", "noticesStore", "DEFAULT_MEDIA_SIZE_SLUG", "LINK_DESTINATION_NONE", "LINK_DESTINATION_MEDIA", "LINK_DESTINATION_ATTACHMENT", "ALLOWED_MEDIA_TYPES", "useBorderProps", "getShadowClassesAndStyles", "select", "placeholder", "Image", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "getBorderClassesAndStyles", "getShadowClassesAndStyles", "mediaPosition", "import_blob", "import_blocks", "attributes", "transforms", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "transforms_default", "edit_default", "save", "deprecated_default", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_server_side_render", "import_compose", "import_jsx_runtime", "attributes", "name", "ToolsPanel", "ToolsPanelItem", "v1", "attributes", "deprecated_default", "name", "block_default", "settings", "deprecated_default", "init", "block_default", "attributes", "block_default", "deprecated_default", "import_components", "import_i18n", "import_date", "import_block_editor", "import_data", "import_core_data", "import_notices", "import_compose", "import_element", "import_jsx_runtime", "attributes", "select", "coreStore", "settings", "blockEditorStore", "name", "ToolsPanel", "ToolsPanelItem", "ImageSizeControl", "ToggleGroupControl", "icon", "ToggleGroupControlOptionIcon", "noticeStore", "name", "block_default", "settings", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_blocks", "attributes", "import_jsx_runtime", "attributes", "TagName", "style", "v1", "v2", "v3", "deprecated_default", "import_block_editor", "import_components", "import_data", "import_i18n", "import_blocks", "import_element", "import_deprecated", "import_i18n", "import_block_editor", "import_components", "import_element", "import_jsx_runtime", "ToolsPanel", "ToolsPanelItem", "import_element", "import_jsx_runtime", "import_jsx_runtime", "DEFAULT_BLOCK", "TEMPLATE", "attributes", "blockEditorStore", "deprecated", "getBlockAttributes", "select", "Edit", "style", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "TagName", "import_blocks", "import_rich_text", "name", "attributes", "transforms", "blockAttributes", "transforms_default", "name", "block_default", "settings", "transforms_default", "Edit", "save", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_components", "import_element", "import_data", "import_jsx_runtime", "componentsPrivateApis", "attributes", "blockEditorStore", "VStack", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "deprecated_default", "name", "block_default", "settings", "save", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_blocks", "block_default", "import_block_editor", "import_i18n", "import_components", "import_compose", "import_data", "import_keycodes", "import_element", "import_data", "import_block_editor", "import_blocks", "blockEditorStore", "import_element", "import_data", "import_block_editor", "import_blocks", "blockEditorStore", "import_blocks", "import_element", "import_compose", "import_keycodes", "import_data", "import_block_editor", "useEnter", "blockEditorStore", "import_compose", "import_keycodes", "import_block_editor", "import_data", "blockEditorStore", "import_data", "import_block_editor", "import_blocks", "blockEditorStore", "import_jsx_runtime", "IndentUI", "select", "blockEditorStore", "attributes", "placeholder", "useEnter", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "save", "attributes", "transforms_default", "init", "import_block_editor", "import_components", "import_i18n", "import_jsx_runtime", "attributes", "ToolsPanel", "ToolsPanelItem", "block_default", "name", "block_default", "settings", "init", "import_i18n", "import_blocks", "import_block_editor", "import_compose", "import_i18n", "DEFAULT_MEDIA_SIZE_SLUG", "LINK_DESTINATION_MEDIA", "LINK_DESTINATION_ATTACHMENT", "TEMPLATE", "import_jsx_runtime", "migrateCustomColors", "attributes", "style", "v7", "mediaPosition", "DEFAULT_MEDIA_SIZE_SLUG", "v6", "v5", "v4", "v3", "v2", "v1", "deprecated_default", "import_i18n", "import_data", "import_element", "import_block_editor", "import_components", "import_blob", "import_core_data", "import_components", "import_block_editor", "import_i18n", "import_compose", "import_data", "import_element", "import_blob", "import_notices", "import_jsx_runtime", "ALLOWED_MEDIA_TYPES", "noop", "noticesStore", "mediaPosition", "isTemporaryMedia", "blockEditorStore", "import_jsx_runtime", "ResolutionTool", "blockEditorPrivateApis", "attributesFromMedia", "LINK_DESTINATION_MEDIA", "LINK_DESTINATION_ATTACHMENT", "select", "getSettings", "blockEditorStore", "name", "DEFAULT_MEDIA_SIZE_SLUG", "attributes", "mediaPosition", "coreStore", "style", "x", "y", "ToolsPanel", "ToolsPanelItem", "TEMPLATE", "ImageURLInputUI", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "DEFAULT_MEDIA_WIDTH", "noop", "save", "attributes", "mediaPosition", "DEFAULT_MEDIA_SIZE_SLUG", "style", "import_blocks", "transforms", "style", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "edit_default", "save", "deprecated_default", "init", "import_blocks", "import_i18n", "import_element", "import_components", "import_blocks", "import_data", "import_block_editor", "import_dom", "import_jsx_runtime", "attributes", "select", "blockEditorStore", "block_default", "import_element", "import_jsx_runtime", "save", "attributes", "name", "block_default", "settings", "attributes", "save", "init", "import_i18n", "import_blocks", "import_i18n", "import_components", "import_block_editor", "import_blocks", "import_jsx_runtime", "ToolsPanel", "ToolsPanelItem", "block_default", "import_element", "import_jsx_runtime", "save", "import_blocks", "transforms", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "transforms_default", "save", "init", "import_i18n", "import_data", "import_core_data", "import_html_entities", "block_default", "import_element", "import_block_editor", "import_core_data", "import_data", "import_components", "import_i18n", "import_a11y", "import_blocks", "import_compose", "import_core_data", "import_data", "DEFAULT_BLOCK", "select", "coreStore", "import_core_data", "import_components", "import_i18n", "import_a11y", "import_element", "import_i18n", "import_jsx_runtime", "icon_default", "import_components", "import_i18n", "import_html_entities", "import_element", "import_core_data", "import_jsx_runtime", "actionLabel", "import_jsx_runtime", "icon_default", "import_components", "import_i18n", "import_block_editor", "import_primitives", "import_jsx_runtime", "icon", "icon_default", "import_jsx_runtime", "icon", "icon_default", "import_core_data", "import_block_editor", "import_data", "import_element", "import_jsx_runtime", "select", "blockEditorStore", "placeholder", "DEFAULT_BLOCK", "import_components", "import_core_data", "import_i18n", "import_jsx_runtime", "import_block_editor", "import_components", "import_core_data", "import_data", "import_element", "x", "y", "import_jsx_runtime", "DEFAULT_BLOCK", "select", "coreStore", "import_components", "import_core_data", "import_data", "import_element", "import_i18n", "import_jsx_runtime", "coreStore", "ConfirmDialog", "import_element", "import_data", "import_notices", "name", "noticeStore", "import_components", "import_i18n", "import_jsx_runtime", "icon", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOption", "import_components", "import_i18n", "import_element", "import_core_data", "import_data", "import_components", "import_i18n", "import_html_entities", "import_notices", "import_element", "import_data", "import_core_data", "import_i18n", "import_blocks", "__assign", "t", "s", "i", "n", "p", "options", "input", "re", "options", "options", "options", "style", "coreStore", "templatePart", "import_jsx_runtime", "noticesStore", "options", "HStack", "import_components", "import_i18n", "import_jsx_runtime", "ToggleGroupControl", "ToggleGroupControlOption", "import_components", "import_i18n", "import_components", "import_i18n", "import_jsx_runtime", "icon", "VStack", "ToggleGroupControl", "ToggleGroupControlOption", "import_jsx_runtime", "icon", "icon_default", "VStack", "import_jsx_runtime", "icon", "VStack", "import_data", "import_core_data", "import_element", "import_i18n", "import_blocks", "import_hooks", "import_element", "import_block_editor", "import_data", "import_core_data", "attributes", "select", "coreStore", "a", "b", "block", "attributes", "coreStore", "import_blocks", "import_core_data", "import_data", "import_element", "import_components", "import_core_data", "import_data", "import_element", "import_i18n", "import_block_editor", "import_core_data", "import_data", "select", "blockEditorStore", "coreStore", "coreStore", "coreStore", "create", "import_data", "import_block_editor", "EMPTY_ARRAY", "select", "blockEditorStore", "import_url", "import_components", "import_i18n", "import_jsx_runtime", "import_block_editor", "import_components", "import_data", "import_i18n", "import_block_editor", "import_components", "import_i18n", "import_element", "import_jsx_runtime", "import_blocks", "import_components", "import_data", "import_i18n", "import_block_editor", "import_jsx_runtime", "blockEditorStore", "DEFAULT_BLOCK", "select", "import_components", "import_i18n", "import_dom", "import_block_editor", "import_data", "import_core_data", "import_element", "import_data", "import_block_editor", "import_url", "blockAttributes", "attributes", "attributes", "blockEditorStore", "import_dom", "import_components", "import_i18n", "import_block_editor", "import_element", "import_core_data", "import_compose", "import_components", "import_i18n", "import_data", "import_core_data", "import_notices", "import_html_entities", "import_element", "import_components", "import_i18n", "import_compose", "import_jsx_runtime", "e", "import_jsx_runtime", "select", "coreStore", "noticesStore", "VStack", "HStack", "import_i18n", "import_data", "import_block_editor", "import_jsx_runtime", "blockEditorPrivateApis", "select", "blockEditorStore", "import_jsx_runtime", "stripHTML", "VStack", "e", "import_i18n", "import_url", "import_block_editor", "blockEditorPrivateApis", "e", "import_jsx_runtime", "blockEditorPrivateApis", "Controls", "attributes", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "stripHTML", "import_data", "import_core_data", "import_block_editor", "select", "coreStore", "import_i18n", "import_html_entities", "import_jsx_runtime", "import_data", "import_block_editor", "select", "blockEditorStore", "import_jsx_runtime", "blockEditorPrivateApis", "blockEditorStore", "select", "HStack", "Heading", "import_components", "import_jsx_runtime", "import_core_data", "import_i18n", "import_jsx_runtime", "import_jsx_runtime", "blockEditorStore", "DEFAULT_BLOCK", "useMultipleOriginColorsAndGradients", "ColorGradientSettingsDropdown", "attributes", "icon", "select", "getSettings", "settings", "options", "coreStore", "TagName", "ToolsPanel", "ToolsPanelItem", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_block_editor", "import_compose", "import_jsx_runtime", "attributes", "migrateWithLayout", "v6", "v5", "v4", "style", "deprecated", "deprecated_default", "name", "block_default", "settings", "edit_default", "save", "coreStore", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_hooks", "import_blocks", "block_default", "import_blocks", "import_data", "import_components", "import_keycodes", "import_i18n", "import_block_editor", "import_url", "import_element", "import_compose", "import_jsx_runtime", "DEFAULT_BLOCK", "attributes", "blockEditorStore", "select", "Controls", "import_block_editor", "import_jsx_runtime", "save", "settings", "name", "blockAttributes", "variations", "import_blocks", "transforms", "attributes", "transforms_default", "import_jsx_runtime", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "save", "attributes", "transforms_default", "init", "import_i18n", "import_blocks", "block_default", "import_data", "import_components", "import_keycodes", "import_i18n", "import_block_editor", "import_url", "import_element", "import_a11y", "import_blocks", "import_compose", "import_components", "import_jsx_runtime", "import_jsx_runtime", "useIsDraggingWithin", "attributes", "blockEditorStore", "select", "DEFAULT_BLOCK", "Controls", "import_block_editor", "import_jsx_runtime", "save", "import_blocks", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "save", "transforms_default", "init", "import_i18n", "import_block_editor", "import_jsx_runtime", "block_default", "import_element", "import_jsx_runtime", "save", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "save", "init", "import_hooks", "import_data", "import_core_data", "coreStore", "import_block_editor", "import_components", "import_i18n", "import_jsx_runtime", "attributes", "ToolsPanel", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOption", "icon_default", "block_default", "import_primitives", "import_jsx_runtime", "icon_default", "name", "block_default", "settings", "icon_default", "init", "block_default", "import_blocks", "import_data", "import_element", "import_block_editor", "import_core_data", "import_i18n", "import_data", "name", "a", "b", "import_jsx_runtime", "attributes", "select", "blockEditorStore", "coreStore", "parsePatternDependencies", "edit_default", "name", "block_default", "settings", "edit_default", "init", "block_default", "import_blocks", "import_block_editor", "import_components", "import_i18n", "import_element", "import_core_data", "import_data", "import_blocks", "import_data", "import_block_editor", "attributes", "blockEditorStore", "import_components", "import_compose", "import_i18n", "import_jsx_runtime", "import_jsx_runtime", "attributes", "a", "b", "select", "blockEditorStore", "convertToNavigationLinks", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_data", "import_core_data", "import_element", "import_dom", "import_components", "import_jsx_runtime", "ItemSubmenuIcon", "import_jsx_runtime", "select", "coreStore", "attributes", "ItemSubmenuIcon", "name", "block_default", "settings", "init", "import_i18n", "import_blocks", "import_element", "import_block_editor", "import_i18n", "import_jsx_runtime", "supports", "blockAttributes", "attributes", "style", "migrateTextAlign", "deprecated", "deprecated_default", "import_i18n", "import_components", "import_block_editor", "import_blocks", "import_element", "import_compose", "import_keycodes", "import_data", "import_block_editor", "import_blocks", "blockEditorStore", "import_compose", "import_element", "import_deprecated", "import_data", "import_block_editor", "style", "blockEditorStore", "deprecated", "import_jsx_runtime", "attributes", "name", "style", "ToolsPanelItem", "placeholder", "edit_default", "block_default", "import_block_editor", "import_i18n", "import_jsx_runtime", "save", "attributes", "style", "import_blocks", "name", "block_default", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "attributes", "transforms_default", "deprecated_default", "edit_default", "save", "init", "import_i18n", "block_default", "import_block_editor", "import_components", "import_compose", "import_core_data", "import_data", "import_element", "import_html_entities", "import_i18n", "import_jsx_runtime", "AUTHORS_QUERY", "select", "coreStore", "attributes", "ToolsPanel", "ToolsPanelItem", "edit_default", "name", "block_default", "settings", "edit_default", "init", "block_default", "import_block_editor", "import_data", "import_i18n", "import_core_data", "import_components", "import_jsx_runtime", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "edit_default", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "edit_default", "init", "block_default", "import_block_editor", "import_data", "import_i18n", "import_core_data", "import_jsx_runtime", "select", "coreStore", "edit_default", "name", "block_default", "settings", "edit_default", "init", "block_default", "import_i18n", "import_components", "import_element", "import_block_editor", "import_jsx_runtime", "TEMPLATE", "Edit", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "Edit", "save", "init", "block_default", "import_block_editor", "import_element", "import_api_fetch", "import_url", "import_jsx_runtime", "attributes", "apiFetch", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "init", "block_default", "import_block_editor", "import_components", "import_compose", "import_i18n", "import_jsx_runtime", "attributes", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_element", "import_data", "import_api_fetch", "import_url", "import_i18n", "import_core_data", "import_jsx_runtime", "attributes", "apiFetch", "select", "coreStore", "edit_default", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "edit_default", "transforms_default", "init", "block_default", "import_i18n", "import_block_editor", "import_blocks", "import_core_data", "import_data", "import_element", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "TagName", "useBlockPreview", "select", "coreStore", "Placeholder", "name", "block_default", "settings", "init", "block_default", "import_core_data", "import_element", "import_date", "import_block_editor", "import_components", "import_i18n", "import_keycodes", "import_data", "import_blocks", "import_jsx_runtime", "attributes", "name", "format", "blockEditorStore", "getDateSettings", "select", "coreStore", "blocksStore", "postDate", "PublishDateTimePicker", "ToolsPanel", "ToolsPanelItem", "DateFormatPicker", "v3", "attributes", "v2", "v1", "style", "deprecated_default", "import_i18n", "variations", "blockAttributes", "variations_default", "name", "block_default", "settings", "deprecated_default", "variations_default", "init", "block_default", "import_core_data", "import_element", "import_block_editor", "import_components", "import_i18n", "import_data", "import_jsx_runtime", "select", "coreStore", "document", "ToolsPanel", "ToolsPanelItem", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "init", "block_default", "import_blob", "import_core_data", "import_data", "import_components", "import_block_editor", "import_element", "import_i18n", "import_notices", "import_i18n", "import_components", "import_block_editor", "import_jsx_runtime", "ToggleGroupControlOption", "useCustomUnits", "name", "ToolsPanelItem", "UnitControl", "ToggleGroupControl", "import_components", "import_block_editor", "import_compose", "import_i18n", "import_jsx_runtime", "attributes", "useGradient", "useMultipleOriginColorsAndGradients", "ColorGradientSettingsDropdown", "ToolsPanelItem", "import_block_editor", "import_compose", "dimRatioToClass", "import_jsx_runtime", "Overlay", "attributes", "useMultipleOriginColorsAndGradients", "useBorderProps", "dimRatioToClass", "import_jsx_runtime", "ALLOWED_MEDIA_TYPES", "ResolutionTool", "blockEditorPrivateApis", "DEFAULT_MEDIA_SIZE_SLUG", "select", "getSettings", "blockEditorStore", "name", "attributes", "coreStore", "useBorderProps", "getShadowClassesAndStyles", "placeholder", "noticesStore", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "import_i18n", "block_default", "import_components", "import_block_editor", "import_i18n", "import_data", "import_core_data", "import_jsx_runtime", "placeholder", "arrowMap", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "ToggleGroupControl", "ToggleGroupControlOption", "import_i18n", "variations", "blockAttributes", "variations_default", "name", "block_default", "settings", "variations_default", "init", "block_default", "import_element", "import_data", "import_i18n", "import_block_editor", "import_components", "import_core_data", "import_jsx_runtime", "TEMPLATE", "useBlockPreview", "style", "format", "select", "coreStore", "blockEditorStore", "import_block_editor", "import_jsx_runtime", "name", "block_default", "settings", "init", "import_hooks", "block_default", "import_block_editor", "import_blocks", "import_components", "import_data", "import_html_entities", "import_i18n", "import_core_data", "import_core_data", "import_data", "EMPTY_ARRAY", "select", "coreStore", "import_jsx_runtime", "attributes", "select", "coreStore", "settings", "name", "variations", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_element", "import_block_editor", "import_components", "import_blocks", "import_core_data", "import_jsx_runtime", "attributes", "wordCount", "ToolsPanel", "ToolsPanelItem", "edit_default", "import_i18n", "variations", "blockAttributes", "variations_default", "name", "block_default", "settings", "edit_default", "variations_default", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_blocks", "import_core_data", "import_data", "import_element", "import_jsx_runtime", "TagName", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "v1", "style", "deprecated_default", "name", "block_default", "settings", "deprecated_default", "init", "import_i18n", "import_blocks", "import_i18n", "import_block_editor", "import_blocks", "import_jsx_runtime", "attributes", "style", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "save", "attributes", "init", "import_i18n", "import_blocks", "import_block_editor", "import_data", "import_jsx_runtime", "blockAttributes", "v5", "attributes", "v4", "style", "v3", "v2", "blockEditorStore", "v1", "v0", "deprecated_default", "import_i18n", "import_block_editor", "import_blocks", "import_element", "import_jsx_runtime", "attributes", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "transforms", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "edit_default", "save", "deprecated_default", "init", "block_default", "import_data", "import_element", "import_block_editor", "import_data", "import_compose", "import_element", "import_block_editor", "import_i18n", "import_core_data", "import_components", "import_i18n", "import_data", "import_element", "import_core_data", "import_block_editor", "import_html_entities", "import_i18n", "import_blocks", "select", "coreStore", "attributes", "blocksStore", "blockEditorStore", "getBlockVariations", "variations", "name", "import_jsx_runtime", "import_components", "import_data", "import_core_data", "import_i18n", "import_compose", "import_element", "import_components", "import_i18n", "import_jsx_runtime", "import_i18n", "import_components", "import_data", "import_core_data", "import_jsx_runtime", "AUTHORS_QUERY", "select", "coreStore", "import_i18n", "import_components", "import_data", "import_core_data", "import_element", "import_compose", "import_jsx_runtime", "EMPTY_ARRAY", "select", "coreStore", "import_components", "import_data", "import_core_data", "import_element", "import_compose", "import_html_entities", "import_i18n", "import_jsx_runtime", "EMPTY_ARRAY", "BASE_QUERY", "VStack", "select", "coreStore", "import_components", "import_data", "import_core_data", "import_i18n", "import_jsx_runtime", "a", "b", "name", "format", "select", "coreStore", "import_components", "import_i18n", "import_jsx_runtime", "import_components", "import_i18n", "import_jsx_runtime", "import_components", "import_i18n", "import_jsx_runtime", "NumberControl", "import_components", "import_i18n", "import_jsx_runtime", "NumberControl", "import_jsx_runtime", "attributes", "format", "select", "coreStore", "ToolsPanel", "ToolsPanelItem", "VStack", "ToggleGroupControl", "ToggleGroupControlOption", "import_components", "import_i18n", "import_element", "import_jsx_runtime", "VStack", "import_components", "import_i18n", "import_data", "import_block_editor", "import_element", "import_data", "import_components", "import_block_editor", "import_i18n", "import_remove_accents", "removeAccents", "import_jsx_runtime", "attributes", "blockEditorStore", "BlockPatternsList", "import_jsx_runtime", "attributes", "DropdownContentWrapper", "select", "blockEditorStore", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "TEMPLATE", "attributes", "name", "TagName", "blockEditorStore", "select", "getSettings", "coreStore", "import_data", "import_blocks", "import_element", "import_block_editor", "import_components", "import_i18n", "import_compose", "import_jsx_runtime", "attributes", "name", "select", "getBlockType", "blocksStore", "icon", "blockEditorStore", "import_jsx_runtime", "attributes", "select", "blockEditorStore", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "import_i18n", "import_components", "import_jsx_runtime", "variations", "variations_default", "import_blocks", "import_block_editor", "import_jsx_runtime", "cleanEmptyObject", "blockEditorPrivateApis", "attributes", "style", "v1", "v2", "v3", "v4", "v5", "v6", "deprecated", "deprecated_default", "name", "block_default", "settings", "edit_default", "save", "variations_default", "deprecated_default", "init", "import_i18n", "block_default", "import_block_editor", "import_i18n", "import_jsx_runtime", "TEMPLATE", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "save", "init", "block_default", "import_i18n", "import_block_editor", "import_data", "import_components", "import_element", "import_i18n", "import_components", "import_jsx_runtime", "ToggleGroupControl", "ToggleGroupControlOption", "import_i18n", "import_components", "import_jsx_runtime", "import_jsx_runtime", "TEMPLATE", "QueryPaginationEdit", "select", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "import_block_editor", "import_jsx_runtime", "save", "import_block_editor", "import_jsx_runtime", "deprecated", "deprecated_default", "name", "block_default", "settings", "QueryPaginationEdit", "save", "deprecated_default", "init", "block_default", "import_i18n", "import_block_editor", "import_jsx_runtime", "arrowMap", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_block_editor", "import_components", "import_jsx_runtime", "i", "attributes", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_block_editor", "import_jsx_runtime", "arrowMap", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_core_data", "import_data", "select", "coreStore", "import_core_data", "import_data", "select", "coreStore", "import_jsx_runtime", "TagName", "ToolsPanel", "ToolsPanelItem", "import_i18n", "variations", "blockAttributes", "variations_default", "v1", "style", "deprecated_default", "name", "block_default", "settings", "variations_default", "deprecated_default", "init", "block_default", "import_block_editor", "import_components", "import_i18n", "import_components", "import_jsx_runtime", "import_jsx_runtime", "attributes", "name", "block_default", "settings", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "attributes", "TEXT_ALIGN_OPTIONS", "migrateTextAlign", "v4", "v3", "v2", "v1", "style", "v0", "deprecated_default", "import_i18n", "import_block_editor", "import_components", "import_data", "import_element", "import_deprecated", "import_jsx_runtime", "isWebPlatform", "TEMPLATE", "useMigrateOnLoad", "attributes", "blockEditorStore", "deprecated", "style", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_block_editor", "import_blocks", "transforms", "style", "name", "attributes", "transforms_default", "name", "block_default", "settings", "transforms_default", "save", "deprecated_default", "init", "import_core_data", "import_data", "import_html_entities", "block_default", "import_data", "import_element", "import_core_data", "import_components", "import_i18n", "import_block_editor", "import_blocks", "import_jsx_runtime", "blockEditorPrivateApis", "patternsPrivateApis", "NOOP", "select", "coreStore", "EMPTY_OBJECT", "name", "blockEditorStore", "getSettings", "v2", "attributes", "v1", "deprecated_default", "name", "block_default", "settings", "deprecated_default", "coreStore", "init", "import_i18n", "block_default", "import_block_editor", "import_components", "import_blocks", "import_i18n", "import_jsx_runtime", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "block_default", "import_block_editor", "import_components", "import_element", "import_i18n", "import_url", "import_server_side_render", "import_compose", "import_jsx_runtime", "attributes", "name", "InputControl", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "import_i18n", "import_blocks", "block_default", "import_block_editor", "import_data", "import_element", "import_components", "import_compose", "import_i18n", "import_dom", "import_jsx_runtime", "attributes", "placeholder", "style", "select", "blockEditorStore", "useBorderProps", "useColorProps", "useTypographyProps", "UnitControl", "useCustomUnits", "stripHTML", "icon_default", "ToolsPanel", "ToolsPanelItem", "VStack", "ToggleGroupControl", "ToggleGroupControlOption", "import_i18n", "variations", "variations_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "variations_default", "init", "import_block_editor", "import_components", "import_i18n", "import_element", "import_compose", "import_jsx_runtime", "attributes", "style", "useColorProps", "block_default", "import_block_editor", "import_jsx_runtime", "attributes", "style", "getColorClassesAndStyles", "import_blocks", "transforms", "transforms_default", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "style", "deprecated_default", "name", "block_default", "settings", "transforms_default", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_compose", "import_components", "import_jsx_runtime", "attributes", "import_element", "import_jsx_runtime", "save", "attributes", "transforms", "transforms_default", "block_default", "name", "block_default", "settings", "transforms_default", "save", "init", "block_default", "import_blob", "import_element", "import_i18n", "import_components", "import_compose", "import_block_editor", "import_data", "import_core_data", "import_notices", "import_jsx_runtime", "ALLOWED_MEDIA_TYPES", "blockEditorStore", "select", "settings", "coreStore", "MIN_SIZE", "ImageEditor", "ToolsPanel", "ToolsPanelItem", "attributes", "getSettings", "noticesStore", "placeholder", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "init", "block_default", "import_data", "import_core_data", "import_block_editor", "import_i18n", "import_blocks", "import_jsx_runtime", "attributes", "select", "coreStore", "settings", "TagName", "import_components", "import_jsx_runtime", "icon_default", "v1", "style", "deprecated_default", "name", "block_default", "settings", "icon_default", "deprecated_default", "init", "block_default", "import_data", "import_core_data", "import_i18n", "import_block_editor", "import_components", "import_blocks", "import_html_entities", "import_jsx_runtime", "attributes", "select", "coreStore", "settings", "TagName", "ToolsPanel", "ToolsPanelItem", "v1", "style", "deprecated_default", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "deprecated_default", "init", "import_i18n", "import_blocks", "import_keycodes", "import_data", "import_block_editor", "import_element", "import_components", "import_compose", "import_i18n", "import_blocks", "import_i18n", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_primitives", "import_jsx_runtime", "import_jsx_runtime", "blockEditorStore", "InputControlSuffixWrapper", "attributes", "name", "select", "blocksStore", "icon", "ToolsPanel", "ToolsPanelItem", "edit_default", "block_default", "import_i18n", "variations", "blockAttributes", "variations_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "edit_default", "variations_default", "init", "import_block_editor", "import_jsx_runtime", "migrateWithLayout", "attributes", "deprecated", "style", "deprecated_default", "import_element", "import_block_editor", "import_components", "import_i18n", "import_data", "import_jsx_runtime", "attributes", "select", "blockEditorStore", "useMultipleOriginColorsAndGradients", "ToolsPanel", "ToolsPanelItem", "ColorGradientSettingsDropdown", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "edit_default", "save", "deprecated_default", "init", "import_block_editor", "import_jsx_runtime", "deprecated", "attributes", "deprecated_default", "import_block_editor", "import_components", "import_element", "import_primitives", "import_data", "import_i18n", "import_block_editor", "import_components", "import_compose", "import_primitives", "import_jsx_runtime", "blockEditorPrivateApis", "UnitControl", "useCustomUnits", "parseQuantityAndUnitFromRawValue", "SpacingSizesControl", "ToolsPanel", "ToolsPanelItem", "import_jsx_runtime", "useSpacingSizes", "blockEditorPrivateApis", "attributes", "select", "blockEditorStore", "style", "edit_default", "block_default", "import_blocks", "transforms", "transforms_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "style", "name", "block_default", "settings", "transforms_default", "edit_default", "save", "deprecated_default", "init", "import_i18n", "import_block_editor", "import_data", "import_element", "import_block_editor", "import_components", "import_i18n", "import_data", "import_html_entities", "import_blocks", "import_block_editor", "import_components", "import_i18n", "import_data", "import_jsx_runtime", "attributes", "blockEditorStore", "import_url", "import_jsx_runtime", "Controls", "attributes", "blockEditorStore", "import_i18n", "import_block_editor", "import_html_entities", "import_element", "import_jsx_runtime", "requestAnimationFrame", "import_jsx_runtime", "TEMPLATE", "Edit", "attributes", "blockEditorStore", "select", "getBlockAttributes", "useColorProps", "useTypographyProps", "Controls", "import_block_editor", "import_jsx_runtime", "attributes", "block_default", "import_components", "import_jsx_runtime", "icon_default", "name", "block_default", "settings", "icon_default", "Edit", "init", "import_i18n", "import_block_editor", "import_jsx_runtime", "v4", "attributes", "getColorClassesAndStyles", "getBorderClassesAndStyles", "v3", "v2", "v1", "deprecated_default", "import_element", "import_block_editor", "import_i18n", "import_components", "import_jsx_runtime", "name", "TagName", "attributes", "useColorProps", "useBorderProps", "ToolsPanel", "ToolsPanelItem", "hasSplitBorders", "edit_default", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "getColorClassesAndStyles", "getBorderClassesAndStyles", "import_blocks", "transforms", "attributes", "transforms_default", "name", "block_default", "settings", "transforms_default", "edit_default", "save", "deprecated_default", "init", "import_i18n", "block_default", "import_block_editor", "import_blocks", "import_components", "import_data", "import_element", "import_i18n", "import_compose", "import_notices", "import_jsx_runtime", "i", "import_data", "import_dom", "import_element", "import_url", "import_block_editor", "select", "getBlockAttributes", "blockEditorStore", "stripHTML", "attributes", "fastDeepEqual", "import_jsx_runtime", "noticeStore", "select", "blockEditorStore", "ToolsPanel", "ToolsPanelItem", "import_block_editor", "import_jsx_runtime", "save", "name", "block_default", "settings", "save", "init", "import_block_editor", "import_block_editor", "attributes", "style", "getGapCSSValue", "name", "import_i18n", "import_components", "import_element", "import_block_editor", "import_jsx_runtime", "attributes", "Controls", "useMultipleOriginColorsAndGradients", "ColorGradientSettingsDropdown", "import_jsx_runtime", "DEFAULT_BLOCK", "Edit", "attributes", "style", "Controls", "edit_default", "import_block_editor", "import_jsx_runtime", "Save", "attributes", "import_components", "import_jsx_runtime", "icon_default", "block_default", "name", "block_default", "settings", "icon_default", "edit_default", "Save", "init", "import_blocks", "transforms", "transforms_default", "block_default", "import_components", "import_data", "import_i18n", "import_block_editor", "import_core_data", "import_server_side_render", "import_compose", "import_jsx_runtime", "attributes", "name", "useCustomUnits", "select", "coreStore", "parseQuantityAndUnitFromRawValue", "ToolsPanel", "ToolsPanelItem", "UnitControl", "edit_default", "name", "block_default", "settings", "edit_default", "transforms_default", "init", "import_core_data", "import_data", "import_hooks", "import_html_entities", "block_default", "import_blocks", "import_data", "import_block_editor", "import_components", "import_i18n", "import_core_data", "import_element", "import_notices", "import_i18n", "import_components", "import_element", "import_data", "import_core_data", "import_data", "import_core_data", "import_block_editor", "import_element", "import_blocks", "import_i18n", "select", "coreStore", "blockEditorStore", "import_element", "import_i18n", "import_components", "import_jsx_runtime", "VStack", "HStack", "import_jsx_runtime", "select", "coreStore", "import_element", "import_i18n", "import_notices", "import_data", "import_block_editor", "import_components", "import_blocks", "import_jsx_runtime", "noticesStore", "BlockPatternsList", "HStack", "import_core_data", "import_components", "import_i18n", "import_data", "import_block_editor", "import_i18n", "import_element", "import_data", "import_components", "import_core_data", "import_notices", "import_blocks", "attributes", "transforms", "import_jsx_runtime", "select", "coreStore", "noticesStore", "options", "Spacer", "HStack", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "select", "coreStore", "import_core_data", "import_block_editor", "import_data", "import_element", "import_blocks", "import_jsx_runtime", "select", "getSettings", "blockEditorStore", "TagName", "coreStore", "import_jsx_runtime", "BlockPatternsList", "attributes", "noticesStore", "coreStore", "select", "getSettings", "blockEditorStore", "TagName", "import_core_data", "import_data", "settings", "name", "blockAttributes", "coreDataStore", "variations", "name", "block_default", "settings", "coreDataStore", "init", "block_default", "import_i18n", "import_block_editor", "import_components", "import_components", "import_jsx_runtime", "import_core_data", "import_data", "select", "coreStore", "import_jsx_runtime", "attributes", "icon", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_block_editor", "import_core_data", "import_data", "useTemplateBasedTermData", "select", "coreStore", "import_jsx_runtime", "attributes", "name", "block_default", "settings", "init", "block_default", "import_i18n", "import_block_editor", "import_components", "import_html_entities", "import_core_data", "import_data", "select", "coreStore", "useTemplateBasedTermData", "import_jsx_runtime", "attributes", "termName", "TagName", "e", "ToolsPanel", "ToolsPanelItem", "name", "block_default", "settings", "init", "block_default", "import_data", "import_block_editor", "import_element", "import_block_editor", "import_i18n", "import_components", "import_block_editor", "import_core_data", "import_data", "import_element", "select", "coreStore", "import_components", "import_jsx_runtime", "import_i18n", "import_components", "import_jsx_runtime", "OrderControl", "import_components", "import_jsx_runtime", "import_components", "import_jsx_runtime", "import_components", "import_i18n", "import_jsx_runtime", "ToggleGroupControl", "ToggleGroupControlOption", "import_i18n", "import_components", "import_jsx_runtime", "import_i18n", "import_block_editor", "import_jsx_runtime", "HTMLElementControl", "blockEditorPrivateApis", "TagName", "import_components", "import_data", "import_core_data", "import_element", "import_compose", "import_html_entities", "import_jsx_runtime", "EMPTY_ARRAY", "BASE_QUERY", "select", "coreStore", "import_jsx_runtime", "attributes", "TagName", "ToolsPanel", "ToolsPanelItem", "OrderControl", "import_jsx_runtime", "TEMPLATE", "attributes", "TagName", "import_data", "import_blocks", "import_block_editor", "import_jsx_runtime", "attributes", "name", "select", "getBlockType", "getBlockVariations", "blocksStore", "icon", "blockEditorStore", "import_jsx_runtime", "select", "blockEditorStore", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "import_i18n", "import_components", "import_jsx_runtime", "titleDate", "titleExcerpt", "variations", "variations_default", "name", "block_default", "settings", "edit_default", "save", "variations_default", "init", "block_default", "import_components", "import_element", "import_data", "import_i18n", "import_block_editor", "import_core_data", "import_jsx_runtime", "TEMPLATE", "useBlockPreview", "style", "select", "blockEditorStore", "import_block_editor", "import_jsx_runtime", "name", "block_default", "settings", "init", "import_i18n", "import_components", "import_block_editor", "import_deprecated", "import_jsx_runtime", "attributes", "deprecated", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "transforms", "transforms_default", "name", "block_default", "settings", "transforms_default", "attributes", "save", "init", "import_i18n", "import_blocks", "import_block_editor", "import_jsx_runtime", "v1", "attributes", "v2", "style", "deprecated_default", "import_i18n", "import_block_editor", "import_blocks", "import_jsx_runtime", "attributes", "style", "block_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blocks", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "deprecated_default", "attributes", "save", "init", "import_i18n", "import_blocks", "import_block_editor", "block_default", "import_jsx_runtime", "import_jsx_runtime", "blockAttributes", "block_default", "v1", "attributes", "deprecated", "deprecated_default", "import_blob", "import_components", "import_block_editor", "import_element", "import_i18n", "import_data", "import_notices", "import_i18n", "import_components", "import_element", "import_jsx_runtime", "attributes", "ToolsPanelItem", "import_i18n", "import_components", "import_block_editor", "import_data", "import_element", "import_url", "import_jsx_runtime", "Badge", "componentsPrivateApis", "HStack", "VStack", "Grid", "select", "blockEditorStore", "import_jsx_runtime", "ALLOWED_MEDIA_TYPES", "attributes", "noticesStore", "placeholder", "ToolsPanel", "edit_default", "import_block_editor", "import_jsx_runtime", "save", "attributes", "import_blob", "import_blocks", "transforms", "attributes", "transforms_default", "fieldsKey", "formKey", "blocksPrivateApis", "name", "block_default", "settings", "transforms_default", "deprecated_default", "edit_default", "save", "init", "import_rich_text", "import_block_editor", "import_core_data", "import_i18n", "import_components", "import_jsx_runtime", "block_default", "i", "v4", "options", "i", "import_i18n", "import_rich_text", "import_block_editor", "import_data", "import_core_data", "import_blocks", "import_jsx_runtime", "format", "Edit", "blockEditorStore", "select", "blocksStore", "coreDataStore", "name", "name", "block_default", "settings", "init", "format", "import_element", "import_data", "import_i18n", "import_blocks", "import_block_editor", "keyboardShortcutsStore", "blockEditorStore", "getBlockAttributes", "attributes", "privateApis", "import_jsx_runtime", "init", "blocksStore", "Edit", "attributes", "name"]
}