File "index.min.js.map"
Full Path: /home/pumpbmko/public_html/wp-content/plugins/gutenberg/build/block-library/index.min.js.map
File size: 2.5 MB
MIME-type: text/plain
Charset: utf-8
{"version":3,"file":"./build/block-library/index.min.js","mappings":"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AAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,G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C,EAgDF,OA7CAzJ,EAAAA,GAAAA,YAAW,KACVgnH,EAAkB,CACjB93H,KAAM,mDACNK,SAAU,gBACVC,aAAakC,EAAAA,GAAAA,IAAI,mCACjB81H,eAAgB,CACfC,SAAU,SACVC,UAAW,KAEZC,QAAS,CACR,CACCF,SAAU,SACVC,UAAW,QAKd,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIlxG,SAAW/B,IAC/BuyG,EAAkB,CACjB93H,KAAO,oDAAoDulB,IAC3DllB,SAAU,gBACVC,aAAakC,EAAAA,GAAAA,IAAI,mCACjB81H,eAAgB,CACfC,SAAU,SACVC,UAAY,GAAGjzG,MAEd,GACD,GACD,KAEHmzG,EAAAA,GAAAA,aACC,oDACEjxH,GAAWuwH,EAAoCvwH,EAAO,KAGzD,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI6f,SAAW/B,KAI/BmzG,EAAAA,GAAAA,aACE,oDAAoDnzG,KACnD9d,GAAWuwH,EAAoCvwH,EAAO8d,IACxD,IAGK,IACR,ICmBA,MAAMozG,GAAeA,KACpB,MAAMt3G,EAAS,CAGdu3G,GACAvvE,EACAh8B,EACAwrG,EACAx0D,EACAqD,EACAoxD,GAGAC,EACAC,EACA1rG,EACAhM,EACA23G,EACAv0G,EACAqH,EACAkgC,EACAp9B,EACAqqG,EACA97E,EACA+7E,EACAC,EACApoH,EACAqC,EACAtS,EACAs4H,EACAv3D,EACAw3D,EACAC,EACAC,EACAC,EACAC,EACAC,GACAvrH,EACAwrH,GACAC,GACAC,GACAtnB,GACAxjE,GACA8vD,GACAxqF,GACAylH,GACAC,GACAC,GACAhV,GACAiV,GACAC,GACAnqB,GACA/iC,GACAypD,GAGAnjD,EACAyd,EACAopC,EACAC,GACAC,GACAC,GACAh2G,GACA4nG,GACArmH,EACAovB,GACA6vC,GACAy1D,GACA/+B,GACAg/B,GACAC,GACAC,GACAC,GACAC,GACAhjC,GACA0G,GACAu8B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAxmG,EACAymG,EACAC,EACApkG,EACAqkG,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,EACAC,EACAC,GACAC,GACAC,IA0BD,OAxBKn9H,QAAQo9H,iCACZn7G,EAAOvS,KAAM2tH,GACbp7G,EAAOvS,KAAM4tH,GACbr7G,EAAOvS,KAAM6tH,GACbt7G,EAAOvS,KAAM8tH,IAUbx9H,QAAQ0nB,IAAIC,YACV3nB,QAAQ0nB,IAAI+1G,oBACXz9H,QAAQ09H,8BACP,IAAIC,gBAAiB39H,QAAQ49H,UAAUhuF,QAAS3yC,IAClD,qBAGFglB,EAAOvS,KAAMmuH,GAGP57G,EAAO5b,OAAQgoD,QAAS,EAanByvE,GAA8BA,IAC1CvE,KAAelzH,QACd,EAAI3H,eAAkBq/H,KAA6Br/H,KAexCs/H,GAAqBA,CACjC/7G,EAAS67G,QAET77G,EAAOiG,SAAS,EAAIlkB,UAAYA,OAEhCi6H,EAAAA,GAAAA,qBAAqBzE,IAEpBx5H,OAAO0nB,IACP1nB,OAAO0nB,GAAGC,WACV1F,EAAOlT,MAAM,EAAInO,UAAYA,IAASi9H,OAEtCK,EAAAA,GAAAA,+BAA+BL,KAEhCM,EAAAA,GAAAA,gCAAgChE,KAChCiE,EAAAA,GAAAA,sBAAsBnqH,GAAY,EActBoqH,GAET,EAAIC,mBAAoB,CAAC,KACzB,MAAMC,EAAqB,CAAED,EAAkB,MAAQ,MACvD/E,KACElzH,QAAQ,EAAI3H,cACZq/H,KAA6Br/H,KAE7B2H,QACA,EAAI3H,UAAYC,sBACI,IAAnBA,GACA4/H,EAAmBnwH,SAAUzP,KAE9BupB,SAAS,EAAIlkB,UAAYA,KAAQ,C","sources":["webpack://wp/./node_modules/fast-deep-equal/es6/index.js","webpack://wp/./node_modules/remove-accents/index.js","../../packages/block-library/src/utils/is-block-metadata-experimental.js","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window [\"wp\",\"blocks\"]","webpack://wp/external window [\"wp\",\"primitives\"]","webpack://wp/external window \"ReactJSXRuntime\"","../../packages/icons/src/library/archive.js","../../packages/block-library/src/utils/init-block.js","webpack://wp/external window [\"wp\",\"components\"]","webpack://wp/external window [\"wp\",\"i18n\"]","webpack://wp/external window [\"wp\",\"blockEditor\"]","webpack://wp/external window [\"wp\",\"serverSideRender\"]","../../packages/block-library/src/archives/index.js","../../packages/block-library/src/archives/edit.js","../../packages/icons/src/library/comment-author-avatar.js","webpack://wp/./node_modules/clsx/dist/clsx.mjs","webpack://wp/external window [\"wp\",\"url\"]","webpack://wp/external window [\"wp\",\"coreData\"]","webpack://wp/external window [\"wp\",\"data\"]","../../packages/block-library/src/avatar/hooks.js","webpack://wp/external window [\"wp\",\"element\"]","../../packages/block-library/src/avatar/user-control.js","../../packages/block-library/src/avatar/edit.js","../../packages/block-library/src/avatar/index.js","../../packages/icons/src/library/audio.js","../../packages/block-library/src/audio/deprecated.js","webpack://wp/external window [\"wp\",\"blob\"]","webpack://wp/external window [\"wp\",\"notices\"]","webpack://wp/./node_modules/memize/dist/index.js","../../packages/block-library/src/embed/constants.js","webpack://wp/external window [\"wp\",\"privateApis\"]","../../packages/block-library/src/lock-unlock.js","../../packages/block-library/src/embed/util.js","webpack://wp/external window [\"wp\",\"compose\"]","../../packages/block-library/src/utils/hooks.js","../../packages/icons/src/library/caption.js","../../packages/block-library/src/utils/caption.js","../../packages/block-library/src/audio/edit.js","../../packages/block-library/src/audio/transforms.js","../../packages/block-library/src/audio/index.js","../../packages/block-library/src/audio/save.js","../../packages/icons/src/library/button.js","../../packages/block-library/src/utils/migrate-font-family.js","../../packages/block-library/src/button/deprecated.js","../../packages/block-library/src/button/constants.js","../../packages/block-library/src/utils/remove-anchor-tag.js","webpack://wp/external window [\"wp\",\"keycodes\"]","../../packages/icons/src/library/link.js","../../packages/icons/src/library/link-off.js","../../packages/block-library/src/button/edit.js","../../packages/block-library/src/button/index.js","../../packages/block-library/src/button/get-updated-link-attributes.js","../../packages/block-library/src/button/save.js","../../packages/icons/src/library/buttons.js","../../packages/block-library/src/buttons/deprecated.js","webpack://wp/external window [\"wp\",\"richText\"]","../../packages/block-library/src/utils/get-transformed-metadata.js","../../packages/block-library/src/buttons/transforms.js","../../packages/block-library/src/buttons/edit.js","../../packages/block-library/src/buttons/index.js","../../packages/block-library/src/buttons/save.js","../../packages/icons/src/library/calendar.js","../../packages/block-library/src/calendar/edit.js","../../packages/block-library/src/calendar/transforms.js","../../packages/block-library/src/calendar/index.js","../../packages/icons/src/library/category.js","webpack://wp/external window [\"wp\",\"htmlEntities\"]","../../packages/icons/src/library/pin.js","../../packages/block-library/src/categories/index.js","../../packages/block-library/src/categories/edit.js","../../packages/icons/src/library/classic.js","../../packages/block-library/src/freeform/convert-to-blocks-button.js","../../packages/icons/src/library/fullscreen.js","../../packages/block-library/src/freeform/modal.js","../../packages/block-library/src/freeform/edit.js","../../packages/block-library/src/freeform/index.js","../../packages/block-library/src/freeform/save.js","../../packages/icons/src/library/code.js","../../packages/block-library/src/code/utils.js","../../packages/block-library/src/code/transforms.js","../../packages/block-library/src/code/index.js","../../packages/block-library/src/code/edit.js","../../packages/block-library/src/code/save.js","../../packages/icons/src/library/column.js","../../packages/block-library/src/column/deprecated.js","../../packages/block-library/src/column/edit.js","../../packages/block-library/src/column/index.js","../../packages/block-library/src/column/save.js","../../packages/icons/src/library/columns.js","../../packages/block-library/src/columns/deprecated.js","../../packages/block-library/src/columns/utils.js","../../packages/block-library/src/columns/edit.js","../../packages/block-library/src/columns/variations.js","../../packages/block-library/src/columns/transforms.js","../../packages/block-library/src/columns/index.js","../../packages/block-library/src/columns/save.js","../../packages/icons/src/library/post-comments.js","../../packages/block-library/src/comments/deprecated.js","../../packages/block-library/src/comments/edit/comments-inspector-controls.js","../../packages/block-library/src/post-comments-form/form.js","../../packages/block-library/src/comments/edit/placeholder.js","../../packages/block-library/src/comments/edit/comments-legacy.js","../../packages/block-library/src/comments/edit/template.js","../../packages/block-library/src/comments/index.js","../../packages/block-library/src/comments/edit/index.js","../../packages/block-library/src/comments/save.js","../../packages/block-library/src/comment-author-avatar/index.js","../../packages/block-library/src/comment-author-avatar/edit.js","../../packages/icons/src/library/comment-author-name.js","../../packages/block-library/src/comment-author-name/deprecated.js","../../packages/block-library/src/comment-author-name/index.js","../../packages/block-library/src/comment-author-name/edit.js","../../packages/icons/src/library/comment-content.js","../../packages/block-library/src/comment-content/index.js","../../packages/block-library/src/comment-content/edit.js","../../packages/icons/src/library/post-date.js","webpack://wp/external window [\"wp\",\"date\"]","../../packages/block-library/src/comment-date/deprecated.js","../../packages/block-library/src/comment-date/index.js","../../packages/block-library/src/comment-date/edit.js","../../packages/icons/src/library/comment-edit-link.js","../../packages/block-library/src/comment-edit-link/index.js","../../packages/block-library/src/comment-edit-link/edit.js","../../packages/icons/src/library/comment-reply-link.js","../../packages/block-library/src/comment-reply-link/index.js","../../packages/block-library/src/comment-reply-link/edit.js","../../packages/icons/src/library/layout.js","webpack://wp/external window [\"wp\",\"apiFetch\"]","../../packages/block-library/src/comment-template/hooks.js","../../packages/block-library/src/comment-template/edit.js","../../packages/block-library/src/comment-template/index.js","../../packages/block-library/src/comment-template/save.js","../../packages/icons/src/library/query-pagination-previous.js","../../packages/block-library/src/comments-pagination-previous/edit.js","../../packages/block-library/src/comments-pagination-previous/index.js","../../packages/icons/src/library/query-pagination.js","../../packages/block-library/src/comments-pagination/comments-pagination-arrow-controls.js","../../packages/block-library/src/comments-pagination/edit.js","../../packages/block-library/src/comments-pagination/index.js","../../packages/block-library/src/comments-pagination/save.js","../../packages/icons/src/library/query-pagination-next.js","../../packages/block-library/src/comments-pagination-next/edit.js","../../packages/block-library/src/comments-pagination-next/index.js","../../packages/icons/src/library/query-pagination-numbers.js","../../packages/block-library/src/comments-pagination-numbers/edit.js","../../packages/block-library/src/comments-pagination-numbers/index.js","../../packages/icons/src/library/title.js","../../packages/block-library/src/comments-title/deprecated.js","../../packages/block-library/src/comments-title/index.js","../../packages/block-library/src/comments-title/edit.js","../../packages/icons/src/library/cover.js","../../packages/block-library/src/cover/shared.js","../../packages/block-library/src/cover/deprecated.js","../../packages/block-library/src/cover/edit/inspector-controls.js","../../packages/block-library/src/cover/edit/block-controls.js","../../packages/block-library/src/cover/edit/cover-placeholder.js","../../packages/block-library/src/cover/edit/resizable-cover-popover.js","webpack://wp/./node_modules/colord/index.mjs","webpack://wp/./node_modules/fast-average-color/dist/index.esm.js","webpack://wp/external window [\"wp\",\"hooks\"]","../../packages/block-library/src/cover/edit/color-utils.js","webpack://wp/./node_modules/colord/plugins/names.mjs","../../packages/block-library/src/cover/edit/index.js","../../packages/block-library/src/cover/transforms.js","../../packages/block-library/src/cover/variations.js","../../packages/block-library/src/cover/index.js","../../packages/block-library/src/cover/save.js","../../packages/icons/src/library/details.js","../../packages/block-library/src/details/edit.js","../../packages/block-library/src/details/index.js","../../packages/block-library/src/details/save.js","../../packages/icons/src/library/edit.js","../../packages/icons/src/library/pencil.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/wp-embed-preview.js","../../packages/block-library/src/embed/embed-preview.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/embed/edit.js","../../packages/block-library/src/embed/save.js","../../packages/icons/src/library/file.js","../../packages/block-library/src/file/deprecated.js","../../packages/block-library/src/file/inspector.js","../../packages/block-library/src/file/utils/index.js","../../packages/block-library/src/file/edit.js","../../packages/block-library/src/file/transforms.js","../../packages/block-library/src/file/index.js","../../packages/block-library/src/file/save.js","../../packages/block-library/src/form/utils.js","../../packages/block-library/src/form/edit.js","../../packages/block-library/src/form/variations.js","../../packages/block-library/src/form/index.js","../../packages/block-library/src/form/save.js","webpack://wp/external window [\"wp\",\"dom\"]","../../packages/block-library/src/form-input/deprecated.js","../../packages/block-library/src/form-input/variations.js","../../packages/block-library/src/form-input/index.js","../../packages/block-library/src/form-input/edit.js","../../packages/block-library/src/form-input/save.js","../../packages/block-library/src/form-submit-button/edit.js","../../packages/block-library/src/form-submit-button/index.js","../../packages/block-library/src/form-submit-button/save.js","../../packages/icons/src/library/group.js","../../packages/block-library/src/form-submission-notification/edit.js","../../packages/block-library/src/form-submission-notification/variations.js","../../packages/block-library/src/form-submission-notification/index.js","../../packages/block-library/src/form-submission-notification/save.js","../../packages/icons/src/library/gallery.js","../../packages/block-library/src/gallery/constants.js","../../packages/block-library/src/gallery/deprecated.js","webpack://wp/external window [\"wp\",\"viewport\"]","../../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-get-media.js","../../packages/block-library/src/gallery/gap-styles.js","../../packages/block-library/src/gallery/edit.js","../../packages/block-library/src/gallery/use-get-new-images.js","../../packages/block-library/src/gallery/use-image-sizes.js","../../packages/block-library/src/gallery/transforms.js","../../packages/block-library/src/gallery/index.js","../../packages/block-library/src/gallery/save.js","../../packages/block-library/src/group/deprecated.js","../../packages/block-library/src/group/placeholder.js","../../packages/block-library/src/group/edit.js","../../packages/block-library/src/group/transforms.js","../../packages/icons/src/library/row.js","../../packages/icons/src/library/stack.js","../../packages/icons/src/library/grid.js","../../packages/block-library/src/group/variations.js","../../packages/block-library/src/group/index.js","../../packages/block-library/src/group/save.js","../../packages/icons/src/library/heading.js","../../packages/block-library/src/heading/deprecated.js","../../packages/block-library/src/heading/autogenerate-anchors.js","../../packages/block-library/src/heading/transforms.js","../../packages/block-library/src/heading/shared.js","../../packages/block-library/src/heading/index.js","../../packages/block-library/src/heading/edit.js","../../packages/block-library/src/heading/save.js","../../packages/icons/src/library/home.js","../../packages/block-library/src/home-link/edit.js","../../packages/block-library/src/home-link/index.js","../../packages/block-library/src/home-link/save.js","../../packages/icons/src/library/html.js","../../packages/block-library/src/html/preview.js","../../packages/block-library/src/html/transforms.js","../../packages/block-library/src/html/index.js","../../packages/block-library/src/html/edit.js","../../packages/block-library/src/html/save.js","../../packages/icons/src/library/image.js","../../packages/block-library/src/image/deprecated.js","../../packages/icons/src/library/plugins.js","../../packages/icons/src/library/crop.js","../../packages/icons/src/library/overlay-text.js","../../packages/icons/src/library/upload.js","../../packages/block-library/src/image/image.js","../../packages/block-library/src/image/edit.js","../../packages/block-library/src/image/transforms.js","../../packages/block-library/src/image/index.js","../../packages/block-library/src/image/save.js","../../packages/icons/src/library/comment.js","../../packages/block-library/src/latest-comments/index.js","../../packages/block-library/src/latest-comments/edit.js","../../packages/icons/src/library/post-list.js","../../packages/block-library/src/latest-posts/deprecated.js","../../packages/icons/src/library/list.js","../../packages/block-library/src/latest-posts/edit.js","../../packages/block-library/src/latest-posts/index.js","../../packages/block-library/src/latest-posts/constants.js","../../packages/block-library/src/list/utils.js","../../packages/block-library/src/list/deprecated.js","../../packages/icons/src/library/format-outdent-rtl.js","../../packages/icons/src/library/format-outdent.js","../../packages/icons/src/library/format-list-bullets-rtl.js","../../packages/icons/src/library/format-list-bullets.js","../../packages/icons/src/library/format-list-numbered-rtl.js","../../packages/icons/src/library/format-list-numbered.js","webpack://wp/external window [\"wp\",\"deprecated\"]","../../packages/block-library/src/list/ordered-list-settings.js","../../packages/block-library/src/list/tag-name.js","../../packages/block-library/src/list/edit.js","../../packages/block-library/src/list/transforms.js","../../packages/block-library/src/list/index.js","../../packages/block-library/src/list/save.js","../../packages/icons/src/library/list-item.js","../../packages/icons/src/library/format-indent-rtl.js","../../packages/icons/src/library/format-indent.js","../../packages/block-library/src/list-item/hooks/use-indent-list-item.js","../../packages/block-library/src/list-item/hooks/use-outdent-list-item.js","../../packages/block-library/src/list-item/hooks/use-merge.js","../../packages/block-library/src/list-item/edit.js","../../packages/block-library/src/list-item/transforms.js","../../packages/block-library/src/list-item/index.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/save.js","../../packages/icons/src/library/login.js","../../packages/block-library/src/loginout/index.js","../../packages/block-library/src/loginout/edit.js","../../packages/icons/src/library/media-and-text.js","../../packages/block-library/src/media-text/constants.js","../../packages/block-library/src/media-text/deprecated.js","../../packages/icons/src/library/pull-left.js","../../packages/icons/src/library/pull-right.js","../../packages/icons/src/library/media.js","../../packages/block-library/src/media-text/media-container.js","../../packages/block-library/src/media-text/edit.js","../../packages/block-library/src/media-text/save.js","../../packages/block-library/src/media-text/transforms.js","../../packages/block-library/src/media-text/index.js","../../packages/block-library/src/missing/edit.js","../../packages/block-library/src/missing/index.js","../../packages/block-library/src/missing/save.js","../../packages/icons/src/library/more.js","../../packages/block-library/src/more/edit.js","../../packages/block-library/src/more/transforms.js","../../packages/block-library/src/more/index.js","../../packages/block-library/src/more/save.js","../../packages/icons/src/library/navigation.js","webpack://wp/external window [\"wp\",\"a11y\"]","../../packages/icons/src/icon/index.js","../../packages/icons/src/library/close.js","../../packages/block-library/src/navigation/constants.js","../../packages/block-library/src/navigation/use-navigation-menu.js","../../packages/block-library/src/navigation/use-navigation-entities.js","../../packages/block-library/src/navigation/edit/placeholder/placeholder-preview.js","../../packages/icons/src/library/more-vertical.js","../../packages/block-library/src/navigation/edit/navigation-menu-selector.js","../../packages/block-library/src/navigation/edit/placeholder/index.js","../../packages/icons/src/library/menu.js","../../packages/block-library/src/navigation/edit/overlay-menu-icon.js","../../packages/block-library/src/navigation/edit/responsive-wrapper.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/are-blocks-dirty.js","../../packages/block-library/src/navigation/edit/unsaved-inner-blocks.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/menu-items-to-blocks.js","../../packages/block-library/src/navigation/edit/use-convert-classic-menu-to-block-menu.js","../../packages/block-library/src/template-part/edit/utils/create-template-part-id.js","../../packages/block-library/src/navigation/edit/use-generate-default-navigation-title.js","../../packages/block-library/src/navigation/edit/use-create-navigation-menu.js","../../packages/block-library/src/navigation/edit/use-inner-blocks.js","../../packages/block-library/src/navigation/edit/utils.js","../../packages/block-library/src/navigation/edit/manage-menus-button.js","../../packages/block-library/src/navigation/edit/deleted-navigation-warning.js","../../packages/icons/src/library/add-submenu.js","../../packages/icons/src/library/chevron-up.js","../../packages/icons/src/library/chevron-down.js","../../packages/block-library/src/navigation/edit/leaf-more-menu.js","webpack://wp/external window [\"wp\",\"escapeHtml\"]","../../packages/block-library/src/navigation-link/update-attributes.js","../../packages/icons/src/library/chevron-left-small.js","../../packages/icons/src/library/plus.js","../../packages/block-library/src/navigation-link/link-ui.js","../../packages/block-library/src/navigation/edit/menu-inspector-controls.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/edit/index.js","../../packages/block-library/src/navigation/use-template-part-area-label.js","../../packages/block-library/src/navigation/deprecated.js","../../packages/block-library/src/navigation/index.js","../../packages/block-library/src/navigation/save.js","../../packages/icons/src/library/custom-link.js","../../packages/block-library/src/navigation-link/edit.js","../../packages/icons/src/library/page.js","../../packages/icons/src/library/tag.js","../../packages/icons/src/library/custom-post-type.js","../../packages/block-library/src/navigation-link/hooks.js","../../packages/block-library/src/navigation-link/transforms.js","../../packages/block-library/src/navigation-link/index.js","../../packages/block-library/src/navigation-link/save.js","../../packages/icons/src/library/remove-submenu.js","../../packages/block-library/src/navigation-submenu/icons.js","../../packages/block-library/src/navigation-submenu/edit.js","../../packages/block-library/src/navigation-submenu/transforms.js","../../packages/block-library/src/navigation-submenu/index.js","../../packages/block-library/src/navigation-submenu/save.js","../../packages/icons/src/library/page-break.js","../../packages/block-library/src/nextpage/transforms.js","../../packages/block-library/src/nextpage/index.js","../../packages/block-library/src/nextpage/edit.js","../../packages/block-library/src/nextpage/save.js","../../packages/block-library/src/pattern/recursion-detector.js","../../packages/block-library/src/pattern/edit.js","../../packages/block-library/src/pattern/index.js","../../packages/icons/src/library/pages.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/edit.js","../../packages/block-library/src/page-list/index.js","../../packages/block-library/src/navigation-link/icons.js","../../packages/block-library/src/page-list-item/index.js","../../packages/block-library/src/page-list-item/edit.js","../../packages/icons/src/library/paragraph.js","../../packages/block-library/src/paragraph/deprecated.js","../../packages/icons/src/library/format-ltr.js","../../packages/block-library/src/paragraph/use-enter.js","../../packages/block-library/src/paragraph/edit.js","../../packages/block-library/src/paragraph/transforms.js","../../packages/block-library/src/paragraph/index.js","../../packages/block-library/src/paragraph/save.js","../../packages/icons/src/library/post-author.js","../../packages/block-library/src/post-author/edit.js","../../packages/block-library/src/post-author/index.js","../../packages/block-library/src/post-author-name/transforms.js","../../packages/block-library/src/post-author-name/index.js","../../packages/block-library/src/post-author-name/edit.js","../../packages/block-library/src/post-author-biography/index.js","../../packages/block-library/src/post-author-biography/edit.js","../../packages/icons/src/library/block-default.js","../../packages/block-library/src/post-comment/edit.js","../../packages/block-library/src/post-comment/index.js","../../packages/block-library/src/post-comment/save.js","../../packages/icons/src/library/post-comments-count.js","../../packages/block-library/src/post-comments-count/index.js","../../packages/block-library/src/post-comments-count/edit.js","../../packages/icons/src/library/post-comments-form.js","../../packages/block-library/src/post-comments-form/index.js","../../packages/block-library/src/post-comments-form/edit.js","../../packages/block-library/src/post-comments-link/index.js","../../packages/block-library/src/post-comments-link/edit.js","../../packages/icons/src/library/post-content.js","../../packages/block-library/src/post-content/edit.js","../../packages/block-library/src/post-content/index.js","../../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/icons/src/library/post-excerpt.js","../../packages/block-library/src/post-excerpt/transforms.js","../../packages/block-library/src/post-excerpt/index.js","../../packages/block-library/src/post-excerpt/edit.js","../../packages/icons/src/library/post-featured-image.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/edit.js","../../packages/block-library/src/post-featured-image/index.js","../../packages/icons/src/library/next.js","../../packages/icons/src/library/previous.js","../../packages/block-library/src/post-navigation-link/variations.js","../../packages/block-library/src/post-navigation-link/index.js","../../packages/block-library/src/post-navigation-link/edit.js","../../packages/block-library/src/post-template/edit.js","../../packages/block-library/src/post-template/index.js","../../packages/block-library/src/post-template/save.js","../../packages/icons/src/library/post-categories.js","../../packages/block-library/src/post-terms/use-post-terms.js","../../packages/block-library/src/post-terms/edit.js","../../packages/icons/src/library/post-terms.js","../../packages/block-library/src/post-terms/hooks.js","../../packages/block-library/src/post-terms/index.js","webpack://wp/external window [\"wp\",\"wordcount\"]","../../packages/block-library/src/post-time-to-read/icon.js","../../packages/block-library/src/post-time-to-read/index.js","../../packages/block-library/src/post-time-to-read/edit.js","../../packages/block-library/src/post-title/deprecated.js","../../packages/block-library/src/post-title/index.js","../../packages/block-library/src/post-title/edit.js","../../packages/icons/src/library/preformatted.js","../../packages/block-library/src/preformatted/transforms.js","../../packages/block-library/src/preformatted/index.js","../../packages/block-library/src/preformatted/edit.js","../../packages/block-library/src/preformatted/save.js","../../packages/icons/src/library/pullquote.js","../../packages/block-library/src/pullquote/shared.js","../../packages/block-library/src/pullquote/deprecated.js","../../packages/block-library/src/pullquote/edit.js","../../packages/block-library/src/pullquote/transforms.js","../../packages/block-library/src/pullquote/index.js","../../packages/block-library/src/pullquote/figure.js","../../packages/block-library/src/pullquote/blockquote.js","../../packages/block-library/src/pullquote/save.js","../../packages/icons/src/library/loop.js","../../packages/icons/src/library/settings.js","../../packages/block-library/src/query/utils.js","../../packages/block-library/src/query/edit/query-toolbar.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/sticky-control.js","../../packages/block-library/src/query/edit/inspector-controls/enhanced-pagination-control.js","../../packages/block-library/src/query/edit/inspector-controls/create-new-post-link.js","../../packages/block-library/src/query/edit/inspector-controls/index.js","../../packages/block-library/src/query/edit/enhanced-pagination-modal.js","../../packages/block-library/src/query/edit/query-content.js","../../packages/block-library/src/query/edit/query-placeholder.js","../../packages/block-library/src/utils/search-patterns.js","../../packages/block-library/src/query/edit/pattern-selection-modal.js","../../packages/block-library/src/query/edit/index.js","../../packages/block-library/src/query/icons.js","../../packages/block-library/src/query/variations.js","../../packages/block-library/src/query/deprecated.js","../../packages/block-library/src/query/index.js","../../packages/block-library/src/query/save.js","../../packages/block-library/src/query-no-results/edit.js","../../packages/block-library/src/query-no-results/index.js","../../packages/block-library/src/query-no-results/save.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/edit.js","../../packages/block-library/src/query-pagination/deprecated.js","../../packages/block-library/src/query-pagination/index.js","../../packages/block-library/src/query-pagination/save.js","../../packages/block-library/src/query-pagination-next/edit.js","../../packages/block-library/src/query-pagination-next/index.js","../../packages/block-library/src/query-pagination-numbers/edit.js","../../packages/block-library/src/query-pagination-numbers/index.js","../../packages/block-library/src/query-pagination-previous/edit.js","../../packages/block-library/src/query-pagination-previous/index.js","../../packages/block-library/src/query-title/edit.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/src/query-title/use-archive-label.js","../../packages/icons/src/library/quote.js","../../packages/block-library/src/quote/deprecated.js","../../packages/icons/src/library/verse.js","../../packages/block-library/src/quote/edit.js","../../packages/block-library/src/quote/transforms.js","../../packages/block-library/src/quote/index.js","../../packages/block-library/src/quote/save.js","../../packages/icons/src/library/symbol.js","webpack://wp/external window [\"wp\",\"patterns\"]","../../packages/block-library/src/block/edit.js","../../packages/block-library/src/block/deprecated.js","../../packages/block-library/src/block/index.js","../../packages/block-library/src/read-more/index.js","../../packages/block-library/src/read-more/edit.js","../../packages/icons/src/library/rss.js","../../packages/block-library/src/rss/index.js","../../packages/block-library/src/rss/edit.js","../../packages/icons/src/library/search.js","../../packages/block-library/src/search/icons.js","../../packages/block-library/src/search/utils.js","../../packages/block-library/src/search/variations.js","../../packages/block-library/src/search/index.js","../../packages/block-library/src/search/edit.js","../../packages/icons/src/library/separator.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/separator/edit.js","../../packages/block-library/src/separator/use-deprecated-opacity.js","../../packages/block-library/src/separator/save.js","../../packages/icons/src/library/shortcode.js","webpack://wp/external window [\"wp\",\"autop\"]","../../packages/block-library/src/shortcode/transforms.js","../../packages/block-library/src/shortcode/index.js","../../packages/block-library/src/shortcode/edit.js","../../packages/block-library/src/shortcode/save.js","../../packages/icons/src/library/site-logo.js","../../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/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/icons/src/library/map-marker.js","../../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/icons/src/library/share.js","../../packages/icons/src/library/keyboard-return.js","../../packages/block-library/src/social-link/icons/chain.js","../../packages/block-library/src/social-link/variations.js","../../packages/block-library/src/social-link/icons/wordpress.js","../../packages/block-library/src/social-link/icons/fivehundredpx.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/codepen.js","../../packages/block-library/src/social-link/icons/deviantart.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/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/x.js","../../packages/block-library/src/social-link/icons/yelp.js","../../packages/block-library/src/social-link/icons/youtube.js","../../packages/block-library/src/social-link/edit.js","../../packages/block-library/src/social-link/index.js","../../packages/block-library/src/social-link/social-list.js","../../packages/block-library/src/social-links/deprecated.js","../../packages/icons/src/library/check.js","../../packages/block-library/src/social-links/edit.js","../../packages/block-library/src/social-links/index.js","../../packages/block-library/src/social-links/save.js","../../packages/icons/src/library/resize-corner-n-e.js","../../packages/block-library/src/spacer/deprecated.js","../../packages/block-library/src/spacer/constants.js","../../packages/block-library/src/spacer/controls.js","../../packages/block-library/src/spacer/edit.js","../../packages/block-library/src/spacer/index.js","../../packages/block-library/src/spacer/save.js","../../packages/icons/src/library/block-table.js","../../packages/block-library/src/table/deprecated.js","../../packages/icons/src/library/align-left.js","../../packages/icons/src/library/align-center.js","../../packages/icons/src/library/align-right.js","../../packages/icons/src/library/table-row-before.js","../../packages/icons/src/library/table-row-after.js","../../packages/icons/src/library/table-row-delete.js","../../packages/icons/src/library/table-column-before.js","../../packages/icons/src/library/table-column-after.js","../../packages/icons/src/library/table-column-delete.js","../../packages/icons/src/library/table.js","../../packages/block-library/src/table/state.js","../../packages/block-library/src/table/edit.js","../../packages/block-library/src/table/utils.js","../../packages/block-library/src/table/transforms.js","../../packages/block-library/src/table/index.js","../../packages/block-library/src/table/save.js","../../packages/icons/src/library/table-of-contents.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/index.js","../../packages/block-library/src/table-of-contents/edit.js","../../packages/block-library/src/table-of-contents/hooks.js","../../packages/block-library/src/table-of-contents/save.js","../../packages/block-library/src/tag-cloud/transforms.js","../../packages/block-library/src/tag-cloud/index.js","../../packages/block-library/src/tag-cloud/edit.js","webpack://wp/./node_modules/tslib/tslib.es6.mjs","webpack://wp/./node_modules/lower-case/src/index.ts","webpack://wp/./node_modules/no-case/src/index.ts","webpack://wp/./node_modules/capital-case/src/index.ts","webpack://wp/./node_modules/upper-case-first/src/index.ts","../../packages/icons/src/library/symbol-filled.js","webpack://wp/./node_modules/param-case/src/index.ts","webpack://wp/./node_modules/dot-case/src/index.ts","../../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/placeholder.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/utils/transformers.js","../../packages/block-library/src/template-part/edit/import-controls.js","../../packages/block-library/src/template-part/edit/advanced-controls.js","../../packages/block-library/src/template-part/edit/inner-blocks.js","../../packages/block-library/src/template-part/edit/index.js","../../packages/icons/src/library/header.js","../../packages/icons/src/library/footer.js","../../packages/icons/src/library/sidebar.js","../../packages/block-library/src/template-part/variations.js","../../packages/block-library/src/template-part/index.js","../../packages/icons/src/library/term-description.js","../../packages/block-library/src/term-description/index.js","../../packages/block-library/src/term-description/edit.js","../../packages/block-library/src/text-columns/transforms.js","../../packages/block-library/src/text-columns/index.js","../../packages/block-library/src/text-columns/edit.js","../../packages/block-library/src/text-columns/save.js","../../packages/block-library/src/verse/deprecated.js","../../packages/block-library/src/verse/transforms.js","../../packages/block-library/src/verse/index.js","../../packages/block-library/src/verse/edit.js","../../packages/block-library/src/verse/save.js","../../packages/icons/src/library/video.js","../../packages/block-library/src/video/tracks.js","../../packages/block-library/src/video/deprecated.js","../../packages/block-library/src/video/edit-common-settings.js","../../packages/block-library/src/video/tracks-editor.js","../../packages/block-library/src/video/edit.js","../../packages/block-library/src/video/transforms.js","../../packages/block-library/src/video/index.js","../../packages/block-library/src/video/save.js","webpack://wp/./packages/block-library/node_modules/uuid/dist/esm-browser/rng.js","webpack://wp/./packages/block-library/node_modules/uuid/dist/esm-browser/regex.js","webpack://wp/./packages/block-library/node_modules/uuid/dist/esm-browser/stringify.js","webpack://wp/./packages/block-library/node_modules/uuid/dist/esm-browser/validate.js","webpack://wp/./packages/block-library/node_modules/uuid/dist/esm-browser/v4.js","../../packages/block-library/src/footnotes/format.js","../../packages/block-library/src/footnotes/index.js","../../packages/block-library/src/footnotes/edit.js","webpack://wp/external window [\"wp\",\"keyboardShortcuts\"]","../../packages/block-library/src/private-apis.js","../../packages/block-library/src/block-keyboard-shortcuts/index.js","../../packages/block-library/src/index.js"],"sourcesContent":["'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","var characterMap = {\n\t\"À\": \"A\",\n\t\"Á\": \"A\",\n\t\"Â\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Ä\": \"A\",\n\t\"Å\": \"A\",\n\t\"Ấ\": \"A\",\n\t\"Ắ\": \"A\",\n\t\"Ẳ\": \"A\",\n\t\"Ẵ\": \"A\",\n\t\"Ặ\": \"A\",\n\t\"Æ\": \"AE\",\n\t\"Ầ\": \"A\",\n\t\"Ằ\": \"A\",\n\t\"Ȃ\": \"A\",\n\t\"Ả\": \"A\",\n\t\"Ạ\": \"A\",\n\t\"Ẩ\": \"A\",\n\t\"Ẫ\": \"A\",\n\t\"Ậ\": \"A\",\n\t\"Ç\": \"C\",\n\t\"Ḉ\": \"C\",\n\t\"È\": \"E\",\n\t\"É\": \"E\",\n\t\"Ê\": \"E\",\n\t\"Ë\": \"E\",\n\t\"Ế\": \"E\",\n\t\"Ḗ\": \"E\",\n\t\"Ề\": \"E\",\n\t\"Ḕ\": \"E\",\n\t\"Ḝ\": \"E\",\n\t\"Ȇ\": \"E\",\n\t\"Ẻ\": \"E\",\n\t\"Ẽ\": \"E\",\n\t\"Ẹ\": \"E\",\n\t\"Ể\": \"E\",\n\t\"Ễ\": \"E\",\n\t\"Ệ\": \"E\",\n\t\"Ì\": \"I\",\n\t\"Í\": \"I\",\n\t\"Î\": \"I\",\n\t\"Ï\": \"I\",\n\t\"Ḯ\": \"I\",\n\t\"Ȋ\": \"I\",\n\t\"Ỉ\": \"I\",\n\t\"Ị\": \"I\",\n\t\"Ð\": \"D\",\n\t\"Ñ\": \"N\",\n\t\"Ò\": \"O\",\n\t\"Ó\": \"O\",\n\t\"Ô\": \"O\",\n\t\"Õ\": \"O\",\n\t\"Ö\": \"O\",\n\t\"Ø\": \"O\",\n\t\"Ố\": \"O\",\n\t\"Ṍ\": \"O\",\n\t\"Ṓ\": \"O\",\n\t\"Ȏ\": \"O\",\n\t\"Ỏ\": \"O\",\n\t\"Ọ\": \"O\",\n\t\"Ổ\": \"O\",\n\t\"Ỗ\": \"O\",\n\t\"Ộ\": \"O\",\n\t\"Ờ\": \"O\",\n\t\"Ở\": \"O\",\n\t\"Ỡ\": \"O\",\n\t\"Ớ\": \"O\",\n\t\"Ợ\": \"O\",\n\t\"Ù\": \"U\",\n\t\"Ú\": \"U\",\n\t\"Û\": \"U\",\n\t\"Ü\": \"U\",\n\t\"Ủ\": \"U\",\n\t\"Ụ\": \"U\",\n\t\"Ử\": \"U\",\n\t\"Ữ\": \"U\",\n\t\"Ự\": \"U\",\n\t\"Ý\": \"Y\",\n\t\"à\": \"a\",\n\t\"á\": \"a\",\n\t\"â\": \"a\",\n\t\"ã\": \"a\",\n\t\"ä\": \"a\",\n\t\"å\": \"a\",\n\t\"ấ\": \"a\",\n\t\"ắ\": \"a\",\n\t\"ẳ\": \"a\",\n\t\"ẵ\": \"a\",\n\t\"ặ\": \"a\",\n\t\"æ\": \"ae\",\n\t\"ầ\": \"a\",\n\t\"ằ\": \"a\",\n\t\"ȃ\": \"a\",\n\t\"ả\": \"a\",\n\t\"ạ\": \"a\",\n\t\"ẩ\": \"a\",\n\t\"ẫ\": \"a\",\n\t\"ậ\": \"a\",\n\t\"ç\": \"c\",\n\t\"ḉ\": \"c\",\n\t\"è\": \"e\",\n\t\"é\": \"e\",\n\t\"ê\": \"e\",\n\t\"ë\": \"e\",\n\t\"ế\": \"e\",\n\t\"ḗ\": \"e\",\n\t\"ề\": \"e\",\n\t\"ḕ\": \"e\",\n\t\"ḝ\": \"e\",\n\t\"ȇ\": \"e\",\n\t\"ẻ\": \"e\",\n\t\"ẽ\": \"e\",\n\t\"ẹ\": \"e\",\n\t\"ể\": \"e\",\n\t\"ễ\": \"e\",\n\t\"ệ\": \"e\",\n\t\"ì\": \"i\",\n\t\"í\": \"i\",\n\t\"î\": \"i\",\n\t\"ï\": \"i\",\n\t\"ḯ\": \"i\",\n\t\"ȋ\": \"i\",\n\t\"ỉ\": \"i\",\n\t\"ị\": \"i\",\n\t\"ð\": \"d\",\n\t\"ñ\": \"n\",\n\t\"ò\": \"o\",\n\t\"ó\": \"o\",\n\t\"ô\": \"o\",\n\t\"õ\": \"o\",\n\t\"ö\": \"o\",\n\t\"ø\": \"o\",\n\t\"ố\": \"o\",\n\t\"ṍ\": \"o\",\n\t\"ṓ\": \"o\",\n\t\"ȏ\": \"o\",\n\t\"ỏ\": \"o\",\n\t\"ọ\": \"o\",\n\t\"ổ\": \"o\",\n\t\"ỗ\": \"o\",\n\t\"ộ\": \"o\",\n\t\"ờ\": \"o\",\n\t\"ở\": \"o\",\n\t\"ỡ\": \"o\",\n\t\"ớ\": \"o\",\n\t\"ợ\": \"o\",\n\t\"ù\": \"u\",\n\t\"ú\": \"u\",\n\t\"û\": \"u\",\n\t\"ü\": \"u\",\n\t\"ủ\": \"u\",\n\t\"ụ\": \"u\",\n\t\"ử\": \"u\",\n\t\"ữ\": \"u\",\n\t\"ự\": \"u\",\n\t\"ý\": \"y\",\n\t\"ÿ\": \"y\",\n\t\"Ā\": \"A\",\n\t\"ā\": \"a\",\n\t\"Ă\": \"A\",\n\t\"ă\": \"a\",\n\t\"Ą\": \"A\",\n\t\"ą\": \"a\",\n\t\"Ć\": \"C\",\n\t\"ć\": \"c\",\n\t\"Ĉ\": \"C\",\n\t\"ĉ\": \"c\",\n\t\"Ċ\": \"C\",\n\t\"ċ\": \"c\",\n\t\"Č\": \"C\",\n\t\"č\": \"c\",\n\t\"C̆\": \"C\",\n\t\"c̆\": \"c\",\n\t\"Ď\": \"D\",\n\t\"ď\": \"d\",\n\t\"Đ\": \"D\",\n\t\"đ\": \"d\",\n\t\"Ē\": \"E\",\n\t\"ē\": \"e\",\n\t\"Ĕ\": \"E\",\n\t\"ĕ\": \"e\",\n\t\"Ė\": \"E\",\n\t\"ė\": \"e\",\n\t\"Ę\": \"E\",\n\t\"ę\": \"e\",\n\t\"Ě\": \"E\",\n\t\"ě\": \"e\",\n\t\"Ĝ\": \"G\",\n\t\"Ǵ\": \"G\",\n\t\"ĝ\": \"g\",\n\t\"ǵ\": \"g\",\n\t\"Ğ\": \"G\",\n\t\"ğ\": \"g\",\n\t\"Ġ\": \"G\",\n\t\"ġ\": \"g\",\n\t\"Ģ\": \"G\",\n\t\"ģ\": \"g\",\n\t\"Ĥ\": \"H\",\n\t\"ĥ\": \"h\",\n\t\"Ħ\": \"H\",\n\t\"ħ\": \"h\",\n\t\"Ḫ\": \"H\",\n\t\"ḫ\": \"h\",\n\t\"Ĩ\": \"I\",\n\t\"ĩ\": \"i\",\n\t\"Ī\": \"I\",\n\t\"ī\": \"i\",\n\t\"Ĭ\": \"I\",\n\t\"ĭ\": \"i\",\n\t\"Į\": \"I\",\n\t\"į\": \"i\",\n\t\"İ\": \"I\",\n\t\"ı\": \"i\",\n\t\"IJ\": \"IJ\",\n\t\"ij\": \"ij\",\n\t\"Ĵ\": \"J\",\n\t\"ĵ\": \"j\",\n\t\"Ķ\": \"K\",\n\t\"ķ\": \"k\",\n\t\"Ḱ\": \"K\",\n\t\"ḱ\": \"k\",\n\t\"K̆\": \"K\",\n\t\"k̆\": \"k\",\n\t\"Ĺ\": \"L\",\n\t\"ĺ\": \"l\",\n\t\"Ļ\": \"L\",\n\t\"ļ\": \"l\",\n\t\"Ľ\": \"L\",\n\t\"ľ\": \"l\",\n\t\"Ŀ\": \"L\",\n\t\"ŀ\": \"l\",\n\t\"Ł\": \"l\",\n\t\"ł\": \"l\",\n\t\"Ḿ\": \"M\",\n\t\"ḿ\": \"m\",\n\t\"M̆\": \"M\",\n\t\"m̆\": \"m\",\n\t\"Ń\": \"N\",\n\t\"ń\": \"n\",\n\t\"Ņ\": \"N\",\n\t\"ņ\": \"n\",\n\t\"Ň\": \"N\",\n\t\"ň\": \"n\",\n\t\"ʼn\": \"n\",\n\t\"N̆\": \"N\",\n\t\"n̆\": \"n\",\n\t\"Ō\": \"O\",\n\t\"ō\": \"o\",\n\t\"Ŏ\": \"O\",\n\t\"ŏ\": \"o\",\n\t\"Ő\": \"O\",\n\t\"ő\": \"o\",\n\t\"Œ\": \"OE\",\n\t\"œ\": \"oe\",\n\t\"P̆\": \"P\",\n\t\"p̆\": \"p\",\n\t\"Ŕ\": \"R\",\n\t\"ŕ\": \"r\",\n\t\"Ŗ\": \"R\",\n\t\"ŗ\": \"r\",\n\t\"Ř\": \"R\",\n\t\"ř\": \"r\",\n\t\"R̆\": \"R\",\n\t\"r̆\": \"r\",\n\t\"Ȓ\": \"R\",\n\t\"ȓ\": \"r\",\n\t\"Ś\": \"S\",\n\t\"ś\": \"s\",\n\t\"Ŝ\": \"S\",\n\t\"ŝ\": \"s\",\n\t\"Ş\": \"S\",\n\t\"Ș\": \"S\",\n\t\"ș\": \"s\",\n\t\"ş\": \"s\",\n\t\"Š\": \"S\",\n\t\"š\": \"s\",\n\t\"Ţ\": \"T\",\n\t\"ţ\": \"t\",\n\t\"ț\": \"t\",\n\t\"Ț\": \"T\",\n\t\"Ť\": \"T\",\n\t\"ť\": \"t\",\n\t\"Ŧ\": \"T\",\n\t\"ŧ\": \"t\",\n\t\"T̆\": \"T\",\n\t\"t̆\": \"t\",\n\t\"Ũ\": \"U\",\n\t\"ũ\": \"u\",\n\t\"Ū\": \"U\",\n\t\"ū\": \"u\",\n\t\"Ŭ\": \"U\",\n\t\"ŭ\": \"u\",\n\t\"Ů\": \"U\",\n\t\"ů\": \"u\",\n\t\"Ű\": \"U\",\n\t\"ű\": \"u\",\n\t\"Ų\": \"U\",\n\t\"ų\": \"u\",\n\t\"Ȗ\": \"U\",\n\t\"ȗ\": \"u\",\n\t\"V̆\": \"V\",\n\t\"v̆\": \"v\",\n\t\"Ŵ\": \"W\",\n\t\"ŵ\": \"w\",\n\t\"Ẃ\": \"W\",\n\t\"ẃ\": \"w\",\n\t\"X̆\": \"X\",\n\t\"x̆\": \"x\",\n\t\"Ŷ\": \"Y\",\n\t\"ŷ\": \"y\",\n\t\"Ÿ\": \"Y\",\n\t\"Y̆\": \"Y\",\n\t\"y̆\": \"y\",\n\t\"Ź\": \"Z\",\n\t\"ź\": \"z\",\n\t\"Ż\": \"Z\",\n\t\"ż\": \"z\",\n\t\"Ž\": \"Z\",\n\t\"ž\": \"z\",\n\t\"ſ\": \"s\",\n\t\"ƒ\": \"f\",\n\t\"Ơ\": \"O\",\n\t\"ơ\": \"o\",\n\t\"Ư\": \"U\",\n\t\"ư\": \"u\",\n\t\"Ǎ\": \"A\",\n\t\"ǎ\": \"a\",\n\t\"Ǐ\": \"I\",\n\t\"ǐ\": \"i\",\n\t\"Ǒ\": \"O\",\n\t\"ǒ\": \"o\",\n\t\"Ǔ\": \"U\",\n\t\"ǔ\": \"u\",\n\t\"Ǖ\": \"U\",\n\t\"ǖ\": \"u\",\n\t\"Ǘ\": \"U\",\n\t\"ǘ\": \"u\",\n\t\"Ǚ\": \"U\",\n\t\"ǚ\": \"u\",\n\t\"Ǜ\": \"U\",\n\t\"ǜ\": \"u\",\n\t\"Ứ\": \"U\",\n\t\"ứ\": \"u\",\n\t\"Ṹ\": \"U\",\n\t\"ṹ\": \"u\",\n\t\"Ǻ\": \"A\",\n\t\"ǻ\": \"a\",\n\t\"Ǽ\": \"AE\",\n\t\"ǽ\": \"ae\",\n\t\"Ǿ\": \"O\",\n\t\"ǿ\": \"o\",\n\t\"Þ\": \"TH\",\n\t\"þ\": \"th\",\n\t\"Ṕ\": \"P\",\n\t\"ṕ\": \"p\",\n\t\"Ṥ\": \"S\",\n\t\"ṥ\": \"s\",\n\t\"X́\": \"X\",\n\t\"x́\": \"x\",\n\t\"Ѓ\": \"Г\",\n\t\"ѓ\": \"г\",\n\t\"Ќ\": \"К\",\n\t\"ќ\": \"к\",\n\t\"A̋\": \"A\",\n\t\"a̋\": \"a\",\n\t\"E̋\": \"E\",\n\t\"e̋\": \"e\",\n\t\"I̋\": \"I\",\n\t\"i̋\": \"i\",\n\t\"Ǹ\": \"N\",\n\t\"ǹ\": \"n\",\n\t\"Ồ\": \"O\",\n\t\"ồ\": \"o\",\n\t\"Ṑ\": \"O\",\n\t\"ṑ\": \"o\",\n\t\"Ừ\": \"U\",\n\t\"ừ\": \"u\",\n\t\"Ẁ\": \"W\",\n\t\"ẁ\": \"w\",\n\t\"Ỳ\": \"Y\",\n\t\"ỳ\": \"y\",\n\t\"Ȁ\": \"A\",\n\t\"ȁ\": \"a\",\n\t\"Ȅ\": \"E\",\n\t\"ȅ\": \"e\",\n\t\"Ȉ\": \"I\",\n\t\"ȉ\": \"i\",\n\t\"Ȍ\": \"O\",\n\t\"ȍ\": \"o\",\n\t\"Ȑ\": \"R\",\n\t\"ȑ\": \"r\",\n\t\"Ȕ\": \"U\",\n\t\"ȕ\": \"u\",\n\t\"B̌\": \"B\",\n\t\"b̌\": \"b\",\n\t\"Č̣\": \"C\",\n\t\"č̣\": \"c\",\n\t\"Ê̌\": \"E\",\n\t\"ê̌\": \"e\",\n\t\"F̌\": \"F\",\n\t\"f̌\": \"f\",\n\t\"Ǧ\": \"G\",\n\t\"ǧ\": \"g\",\n\t\"Ȟ\": \"H\",\n\t\"ȟ\": \"h\",\n\t\"J̌\": \"J\",\n\t\"ǰ\": \"j\",\n\t\"Ǩ\": \"K\",\n\t\"ǩ\": \"k\",\n\t\"M̌\": \"M\",\n\t\"m̌\": \"m\",\n\t\"P̌\": \"P\",\n\t\"p̌\": \"p\",\n\t\"Q̌\": \"Q\",\n\t\"q̌\": \"q\",\n\t\"Ř̩\": \"R\",\n\t\"ř̩\": \"r\",\n\t\"Ṧ\": \"S\",\n\t\"ṧ\": \"s\",\n\t\"V̌\": \"V\",\n\t\"v̌\": \"v\",\n\t\"W̌\": \"W\",\n\t\"w̌\": \"w\",\n\t\"X̌\": \"X\",\n\t\"x̌\": \"x\",\n\t\"Y̌\": \"Y\",\n\t\"y̌\": \"y\",\n\t\"A̧\": \"A\",\n\t\"a̧\": \"a\",\n\t\"B̧\": \"B\",\n\t\"b̧\": \"b\",\n\t\"Ḑ\": \"D\",\n\t\"ḑ\": \"d\",\n\t\"Ȩ\": \"E\",\n\t\"ȩ\": \"e\",\n\t\"Ɛ̧\": \"E\",\n\t\"ɛ̧\": \"e\",\n\t\"Ḩ\": \"H\",\n\t\"ḩ\": \"h\",\n\t\"I̧\": \"I\",\n\t\"i̧\": \"i\",\n\t\"Ɨ̧\": \"I\",\n\t\"ɨ̧\": \"i\",\n\t\"M̧\": \"M\",\n\t\"m̧\": \"m\",\n\t\"O̧\": \"O\",\n\t\"o̧\": \"o\",\n\t\"Q̧\": \"Q\",\n\t\"q̧\": \"q\",\n\t\"U̧\": \"U\",\n\t\"u̧\": \"u\",\n\t\"X̧\": \"X\",\n\t\"x̧\": \"x\",\n\t\"Z̧\": \"Z\",\n\t\"z̧\": \"z\",\n\t\"й\":\"и\",\n\t\"Й\":\"И\",\n\t\"ё\":\"е\",\n\t\"Ё\":\"Е\",\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","/**\n * Checks if the block is experimental based on the metadata loaded\n * from block.json.\n *\n * This function is in a separate file and uses the older JS syntax so\n * that it can be imported in both:\n * – block-library/src/index.js\n * – block-library/src/babel-plugin.js\n *\n * @param {Object} metadata Parsed block.json metadata.\n * @return {boolean} Is the block experimental?\n */\nmodule.exports = function isBlockMetadataExperimental( metadata ) {\n\treturn (\n\t\tmetadata &&\n\t\t'__experimental' in metadata &&\n\t\tmetadata.__experimental !== false\n\t);\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blocks\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"primitives\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"ReactJSXRuntime\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst archive = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default archive;\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"components\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"i18n\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockEditor\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"serverSideRender\"];","/**\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 * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tDisabled,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nexport default function ArchivesEdit( { attributes, setAttributes } ) {\n\tconst { showLabel, showPostCounts, displayAsDropdown, type } = attributes;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayAsDropdown: ! displayAsDropdown,\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{ displayAsDropdown && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tchecked={ showLabel }\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\tshowLabel: ! showLabel,\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<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPostCounts: ! showPostCounts,\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<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Group by:' ) }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Year' ), value: 'yearly' },\n\t\t\t\t\t\t\t{ label: __( 'Month' ), value: 'monthly' },\n\t\t\t\t\t\t\t{ label: __( 'Week' ), value: 'weekly' },\n\t\t\t\t\t\t\t{ label: __( 'Day' ), value: 'daily' },\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tvalue={ type }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { type: value } )\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\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/archives\"\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst commentAuthorAvatar = (\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\td=\"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\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default commentAuthorAvatar;\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;","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"url\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"coreData\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore, useEntityProp } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\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\nfunction useDefaultAvatar() {\n\tconst { avatarURL: defaultAvatarUrl } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings;\n\t} );\n\treturn defaultAvatarUrl;\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\t// translators: %s is the Author name.\n\t\talt: authorName\n\t\t\t? // translators: %s is the 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 is the Author name.\n\t\t\t sprintf( __( '%s Avatar' ), authorDetails?.name )\n\t\t\t: __( 'Default Avatar' ),\n\t};\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","/**\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 { useState } from '@wordpress/element';\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: -1,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nfunction UserControl( { value, onChange } ) {\n\tconst [ filteredAuthorsList, setFilteredAuthorsList ] = useState();\n\tconst authorsList = useSelect( ( select ) => {\n\t\tconst { getUsers } = select( coreStore );\n\t\treturn getUsers( AUTHORS_QUERY );\n\t}, [] );\n\tif ( ! authorsList ) {\n\t\treturn null;\n\t}\n\n\tconst options = authorsList.map( ( author ) => {\n\t\treturn {\n\t\t\tlabel: author.name,\n\t\t\tvalue: author.id,\n\t\t};\n\t} );\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\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={ filteredAuthorsList || options }\n\t\t\tonFilterValueChange={ ( inputValue ) =>\n\t\t\t\tsetFilteredAuthorsList(\n\t\t\t\t\toptions.filter( ( option ) =>\n\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.startsWith( inputValue.toLowerCase() )\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t}\n\t\t/>\n\t);\n}\n\nexport default UserControl;\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\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { useUserAvatar, useCommentAvatar } from './hooks';\nimport UserControl from './user-control';\n\nconst AvatarInspectorControls = ( {\n\tsetAttributes,\n\tavatar,\n\tattributes,\n\tselectUser,\n} ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: newSize,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\tmin={ avatar.minSize }\n\t\t\t\tmax={ avatar.maxSize }\n\t\t\t\tinitialPosition={ attributes?.size }\n\t\t\t\tvalue={ attributes?.size }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Link to user profile' ) }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( { isLink: ! attributes.isLink } )\n\t\t\t\t}\n\t\t\t\tchecked={ attributes.isLink }\n\t\t\t/>\n\t\t\t{ attributes.isLink && (\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ attributes.linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ selectUser && (\n\t\t\t\t<UserControl\n\t\t\t\t\tvalue={ attributes?.userId }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tuserId: value,\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</PanelBody>\n\t</InspectorControls>\n);\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<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: attributes.size,\n\t\t\t\t\theight: attributes.size,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tsize: parseInt(\n\t\t\t\t\t\t\tattributes.size + ( delta.height || delta.width ),\n\t\t\t\t\t\t\t10\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: ! isRTL(),\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: isRTL(),\n\t\t\t\t} }\n\t\t\t\tminWidth={ avatar.minSize }\n\t\t\t\tmaxWidth={ avatar.maxSize }\n\t\t\t>\n\t\t\t\t<img\n\t\t\t\t\tsrc={ doubledSizedSrc }\n\t\t\t\t\talt={ avatar.alt }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'avatar',\n\t\t\t\t\t\t'avatar-' + attributes.size,\n\t\t\t\t\t\t'photo',\n\t\t\t\t\t\t'wp-block-avatar__image',\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ borderProps.style }\n\t\t\t\t/>\n\t\t\t</ResizableBox>\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{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\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\t\t\t{ attributes.isLink ? (\n\t\t\t\t<a\n\t\t\t\t\thref=\"#avatar-pseudo-link\"\n\t\t\t\t\tclassName=\"wp-block-avatar__link\"\n\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t>\n\t\t\t\t\t<ResizableAvatar\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t) : (\n\t\t\t\t<ResizableAvatar\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tavatar={ avatar }\n\t\t\t\t\tblockProps={ blockProps }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\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 { 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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst audio = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default audio;\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blob\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"notices\"];","/**\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","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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"privateApis\"];","/**\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';\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 agains.\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","/**\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 latestArgs = useRef( args );\n\tconst hasUploadStarted = useRef( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseLayoutEffect( () => {\n\t\tlatestArgs.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 ( hasUploadStarted.current ) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\t! latestArgs.current.url ||\n\t\t\t! isBlobURL( latestArgs.current.url )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst file = getBlobByURL( latestArgs.current.url );\n\t\tif ( ! file ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { url, allowedTypes, onChange, onError } = latestArgs.current;\n\t\tconst { mediaUpload } = getSettings();\n\n\t\thasUploadStarted.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\thasUploadStarted.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\thasUploadStarted.current = false;\n\t\t\t},\n\t\t} );\n\t}, [ getSettings ] );\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 { Path, SVG } from '@wordpress/primitives';\n\nconst caption = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default caption;\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\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 { useUploadMediaFromBlobURL } 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\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\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/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload 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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\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={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\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 * WordPress dependencies\n */\nimport { audio 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\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\nexport const init = () => initBlock( { name, metadata, settings } );\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 { Path, SVG } from '@wordpress/primitives';\n\nconst button = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default button;\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 * 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} from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\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 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\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","export const NEW_TAB_REL = 'noreferrer noopener';\nexport const NEW_TAB_TARGET = '_blank';\nexport const NOFOLLOW_REL = 'nofollow';\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keycodes\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst link = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default link;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst linkOff = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default linkOff;\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { unlock } from '../lock-unlock';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\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\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\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\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\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\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\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\ttextAlign,\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\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\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 { lockUrlControls = false } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\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};\n\t\t},\n\t\t[ isSelected, metadata?.bindings?.url ]\n\t);\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\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\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…' ) }\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\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\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},\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} }\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<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\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) }\n\t\t\t\t{ ! isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\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={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\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/>\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{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\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","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button 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\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 }`;\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 * 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} from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst {\n\t\ttagName,\n\t\ttype,\n\t\ttextAlign,\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 buttonClasses = clsx(\n\t\t'wp-block-button__link',\n\t\tcolorProps.className,\n\t\tborderProps.className,\n\t\t{\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\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},\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};\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\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\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 { Path, SVG } from '@wordpress/primitives';\n\nconst buttons = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default buttons;\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"richText\"];","/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Transform the metadata attribute with only the values and bindings specified by each transform.\n * Returns `undefined` if the input metadata is falsy.\n *\n * @param {Object} metadata Original metadata attribute from the block that is being transformed.\n * @param {Object} newBlockName Name of the final block after the transformation.\n * @param {Function} bindingsCallback Optional callback to transform the `bindings` property object.\n * @return {Object|undefined} New metadata object only with the relevant properties.\n */\nexport function getTransformedMetadata(\n\tmetadata,\n\tnewBlockName,\n\tbindingsCallback\n) {\n\tif ( ! metadata ) {\n\t\treturn;\n\t}\n\tconst { supports } = getBlockType( newBlockName );\n\t// Fixed until an opt-in mechanism is implemented.\n\tconst BLOCK_BINDINGS_SUPPORTED_BLOCKS = [\n\t\t'core/paragraph',\n\t\t'core/heading',\n\t\t'core/image',\n\t\t'core/button',\n\t];\n\t// The metadata properties that should be preserved after the transform.\n\tconst transformSupportedProps = [];\n\t// If it support bindings, and there is a transform bindings callback, add the `id` and `bindings` properties.\n\tif (\n\t\tBLOCK_BINDINGS_SUPPORTED_BLOCKS.includes( newBlockName ) &&\n\t\tbindingsCallback\n\t) {\n\t\ttransformSupportedProps.push( 'id', 'bindings' );\n\t}\n\t// If it support block naming (true by default), add the `name` property.\n\tif ( supports.renaming !== false ) {\n\t\ttransformSupportedProps.push( 'name' );\n\t}\n\n\t// Return early if no supported properties.\n\tif ( ! transformSupportedProps.length ) {\n\t\treturn;\n\t}\n\n\tconst newMetadata = Object.entries( metadata ).reduce(\n\t\t( obj, [ prop, value ] ) => {\n\t\t\t// If prop is not supported, don't add it to the new metadata object.\n\t\t\tif ( ! transformSupportedProps.includes( prop ) ) {\n\t\t\t\treturn obj;\n\t\t\t}\n\t\t\tobj[ prop ] =\n\t\t\t\tprop === 'bindings' ? bindingsCallback( value ) : value;\n\t\t\treturn obj;\n\t\t},\n\t\t{}\n\t);\n\n\t// Return undefined if object is empty.\n\treturn Object.keys( newMetadata ).length ? newMetadata : undefined;\n}\n","/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __unstableCreateElement as createElement } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { getTransformedMetadata } from '../utils/get-transformed-metadata';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/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, metadata } = 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\ttext,\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t\t'core/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} );\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 * 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 * 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/**\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst calendar = (\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-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z\" />\n\t</SVG>\n);\n\nexport default calendar;\n","/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { calendar as icon } from '@wordpress/icons';\nimport { Disabled, Placeholder, Spinner } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\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 } ) {\n\tconst blockProps = useBlockProps();\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\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<div { ...blockProps }>\n\t\t\t<Disabled>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"core/calendar\"\n\t\t\t\t\tattributes={ { ...attributes, ...getYearMonth( date ) } }\n\t\t\t\t/>\n\t\t\t</Disabled>\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/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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst category = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default category;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"htmlEntities\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pin = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default pin;\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';\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tSpinner,\n\tToggleControl,\n\tVisuallyHidden,\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 { __ } from '@wordpress/i18n';\nimport { pin } from '@wordpress/icons';\nimport { useEntityRecords } from '@wordpress/core-data';\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},\n\tsetAttributes,\n\tclassName,\n} ) {\n\tconst selectId = useInstanceId( CategoriesEdit, 'blocks-category-select' );\n\tconst query = { per_page: -1, hide_empty: ! showEmpty, context: 'view' };\n\tif ( showOnlyTopLevel ) {\n\t\tquery.parent = 0;\n\t}\n\n\tconst { records: categories, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\t'category',\n\t\tquery\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 = 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 } target=\"_blank\" rel=\"noreferrer noopener\">\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{ showHierarchy && !! childCategories.length && (\n\t\t\t\t\t<ul className=\"children\">\n\t\t\t\t\t\t{ childCategories.map( ( childCategory ) =>\n\t\t\t\t\t\t\trenderCategoryListItem( childCategory )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ul>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t};\n\n\tconst renderCategoryDropdown = () => {\n\t\tconst parentId = 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={ __( 'Categories' ) }\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 : __( 'Categories' ) }\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>{ __( 'Select Category' ) }</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\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( className, {\n\t\t'wp-block-categories-list':\n\t\t\t!! categories?.length && ! displayAsDropdown && ! isResolving,\n\t\t'wp-block-categories-dropdown':\n\t\t\t!! categories?.length && displayAsDropdown && ! isResolving,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\treturn (\n\t\t<TagName { ...blockProps }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display as dropdown' ) }\n\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAsDropdown' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayAsDropdown && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"wp-block-categories__indentation\"\n\t\t\t\t\t\t\tlabel={ __( 'Show label' ) }\n\t\t\t\t\t\t\tchecked={ showLabel }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showLabel' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'showPostCounts' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show only top level categories' ) }\n\t\t\t\t\t\tchecked={ showOnlyTopLevel }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'showOnlyTopLevel' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show empty categories' ) }\n\t\t\t\t\t\tchecked={ showEmpty }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'showEmpty' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! showOnlyTopLevel && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\t\tonChange={ toggleAttribute( 'showHierarchy' ) }\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\t{ isResolving && (\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Categories' ) }>\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>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Your site does not have any posts, so there is nothing to display here at the moment.'\n\t\t\t\t\t) }\n\t\t\t\t</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 { Path, SVG } from '@wordpress/primitives';\n\nconst classic = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default classic;\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 { SVG, Path } from '@wordpress/primitives';\n\nconst fullscreen = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default fullscreen;\n","/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } 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\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( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\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{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\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</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\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\twindow.wp.oldEditor.getContent(\n\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} );\n\t\t\t\t\t\t\t\t\tsetOpen( 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{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\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 * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { debounce, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { ToolbarGroup } from '@wordpress/components';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10, isKeyboardEvent } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport ConvertToBlocksButton from './convert-to-blocks-button';\nimport ModalEdit from './modal';\n\nconst { wp } = window;\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default function FreeformEdit( props ) {\n\tconst { clientId } = props;\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst [ isIframed, setIsIframed ] = useState( false );\n\tconst ref = useRefEffect( ( element ) => {\n\t\tsetIsIframed( element.ownerDocument !== document );\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<div { ...useBlockProps( { ref } ) }>\n\t\t\t\t{ isIframed ? (\n\t\t\t\t\t<ModalEdit { ...props } />\n\t\t\t\t) : (\n\t\t\t\t\t<ClassicEdit { ...props } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nfunction ClassicEdit( {\n\tclientId,\n\tattributes: { content },\n\tsetAttributes,\n\tonReplace,\n} ) {\n\tconst { getMultiSelectedBlockClientIds } = useSelect( blockEditorStore );\n\tconst didMount = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! didMount.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( ! editor ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentContent = editor.getContent();\n\t\tif ( currentContent !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}, [ clientId, content ] );\n\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\tdidMount.current = true;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tfunction onSetup( editor ) {\n\t\t\tlet bookmark;\n\n\t\t\tif ( content ) {\n\t\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t\t}\n\n\t\t\teditor.on( 'blur', () => {\n\t\t\t\tbookmark = editor.selection.getBookmark( 2, true );\n\t\t\t\t// There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n\t\t\t\t// This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n\t\t\t\t// scroll position until this is fixed in core.\n\t\t\t\tconst scrollContainer = document.querySelector(\n\t\t\t\t\t'.interface-interface-skeleton__content'\n\t\t\t\t);\n\t\t\t\tconst scrollPosition = scrollContainer.scrollTop;\n\n\t\t\t\t// Only update attributes if we aren't multi-selecting blocks.\n\t\t\t\t// Updating during multi-selection can overwrite attributes of other blocks.\n\t\t\t\tif ( ! getMultiSelectedBlockClientIds()?.length ) {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: editor.getContent(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\teditor.once( 'focus', () => {\n\t\t\t\t\tif ( bookmark ) {\n\t\t\t\t\t\teditor.selection.moveToBookmark( bookmark );\n\t\t\t\t\t\tif ( scrollContainer.scrollTop !== scrollPosition ) {\n\t\t\t\t\t\t\tscrollContainer.scrollTop = scrollPosition;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\treturn false;\n\t\t\t} );\n\n\t\t\teditor.on( 'mousedown touchstart', () => {\n\t\t\t\tbookmark = null;\n\t\t\t} );\n\n\t\t\tconst debouncedOnChange = debounce( () => {\n\t\t\t\tconst value = editor.getContent();\n\n\t\t\t\tif ( value !== editor._lastChange ) {\n\t\t\t\t\teditor._lastChange = value;\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}, 250 );\n\t\t\teditor.on( 'Paste Change input Undo Redo', debouncedOnChange );\n\n\t\t\t// We need to cancel the debounce call because when we remove\n\t\t\t// the editor (onUnmount) this callback is executed in\n\t\t\t// another tick. This results in setting the content to empty.\n\t\t\teditor.on( 'remove', debouncedOnChange.cancel );\n\n\t\t\teditor.on( 'keydown', ( event ) => {\n\t\t\t\tif ( isKeyboardEvent.primary( event, 'z' ) ) {\n\t\t\t\t\t// Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected.\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t( event.keyCode === BACKSPACE ||\n\t\t\t\t\t\tevent.keyCode === DELETE ) &&\n\t\t\t\t\tisTmceEmpty( editor )\n\t\t\t\t) {\n\t\t\t\t\t// Delete the block.\n\t\t\t\t\tonReplace( [] );\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t}\n\n\t\t\t\tconst { altKey } = event;\n\t\t\t\t/*\n\t\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t\t */\n\t\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\teditor.on( 'init', () => {\n\t\t\t\tconst rootNode = editor.getBody();\n\n\t\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\t\tif ( rootNode.ownerDocument.activeElement === rootNode ) {\n\t\t\t\t\trootNode.blur();\n\t\t\t\t\teditor.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\tfunction initialize() {\n\t\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\t\ttinymce: {\n\t\t\t\t\t...settings,\n\t\t\t\t\tinline: true,\n\t\t\t\t\tcontent_css: false,\n\t\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\t\tsetup: onSetup,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tfunction onReadyStateChange() {\n\t\t\tif ( document.readyState === 'complete' ) {\n\t\t\t\tinitialize();\n\t\t\t}\n\t\t}\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tinitialize();\n\t\t} else {\n\t\t\tdocument.addEventListener( 'readystatechange', onReadyStateChange );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\n\t\t\t\t'readystatechange',\n\t\t\t\tonReadyStateChange\n\t\t\t);\n\t\t\twp.oldEditor.remove( `editor-${ clientId }` );\n\t\t\tdidMount.current = false;\n\t\t};\n\t}, [] );\n\n\tfunction focus() {\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\t\tif ( editor ) {\n\t\t\teditor.focus();\n\t\t}\n\t}\n\n\tfunction onToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\t// Disable reasons:\n\t//\n\t// jsx-a11y/no-static-element-interactions\n\t// - the toolbar itself is non-interactive, but must capture events\n\t// from the KeyboardShortcuts component to stop their propagation.\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ onToolbarKeyDown }\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>\n\t\t</>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst code = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default code;\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 { getTransformedMetadata } from '../utils/get-transformed-metadata';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'enter',\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: ( { content, metadata } ) =>\n\t\t\t\tcreateBlock( 'core/code', {\n\t\t\t\t\tcontent,\n\t\t\t\t\tmetadata: getTransformedMetadata( metadata, 'core/code' ),\n\t\t\t\t} ),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/html' ],\n\t\t\ttransform: ( { content: text, metadata } ) => {\n\t\t\t\treturn createBlock( '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\tmetadata: getTransformedMetadata( metadata, 'core/code' ),\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: ( { content, metadata } ) =>\n\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\tcontent,\n\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t'core/paragraph'\n\t\t\t\t\t),\n\t\t\t\t} ),\n\t\t},\n\t],\n};\n\nexport default transforms;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code 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\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 “block” 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\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…' ) }\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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst column = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default column;\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\tPanelBody,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\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\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<UnitControl\n\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\tvalue={ width || '' }\n\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\tnextWidth = 0 > parseFloat( nextWidth ) ? '0' : nextWidth;\n\t\t\t\t\tsetAttributes( { width: nextWidth } );\n\t\t\t\t} }\n\t\t\t\tunits={ units }\n\t\t\t/>\n\t\t</PanelBody>\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 * 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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst columns = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default columns;\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 * 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` → `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` → `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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tNotice,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\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';\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 {\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tgetBlocks,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( 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 = innerBlocks.reduce(\n\t\t\t\t( acc, block, index ) => {\n\t\t\t\t\tif ( ! canRemoveBlock( block.clientId ) ) {\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: getBlockCount( clientId ),\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\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t{ canInsertColumnBlock && (\n\t\t\t\t<>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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</>\n\t\t\t) }\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\tonChange={ () =>\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t/>\n\t\t</PanelBody>\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 overide 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 * 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 * 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 { 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/primitives';\n\nconst postComments = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default postComments;\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 { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\n\nexport default function CommentsInspectorControls( {\n\tattributes: { tagName },\n\tsetAttributes,\n} ) {\n\tconst htmlElementMessages = {\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t};\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\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\tvalue={ 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\thelp={ htmlElementMessages[ tagName ] }\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 { __, _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\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\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: 1: 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","/**\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\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\">« { __( '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' ) } »</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\">« { __( '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' ) } »</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 {\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\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’re 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","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 { 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\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 } = 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/>\n\t\t\t<TagName { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\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 { 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 * 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 { getSettings } = select( blockEditorStore );\n\t\tconst { __experimentalDiscussionSettings } = getSettings();\n\t\treturn __experimentalDiscussionSettings;\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__nextHasNoMarginBottom\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 { SVG, Path, Circle } from '@wordpress/primitives';\n\nconst commentAuthorName = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t\t<Path\n\t\t\td=\"M15 15V15C15 13.8954 14.1046 13 13 13L11 13C9.89543 13 9 13.8954 9 15V15\"\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t\t<Circle cx=\"12\" cy=\"9\" r=\"2\" fillRule=\"evenodd\" clipRule=\"evenodd\" />\n\t</SVG>\n);\n\nexport default commentAuthorName;\n","/**\n * Internal dependencies\n */\nimport migrateFontFamily from '../utils/migrate-font-family';\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 [ 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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\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 {string} props.attributes.textAlign Text alignment.\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: { isLink, linkTarget, textAlign },\n\tcontext: { commentId },\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\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; // eslint-disable-line camelcase\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 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\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link to authors URL' ) }\n\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\tchecked={ isLink }\n\t\t\t\t/>\n\t\t\t\t{ isLink && (\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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) }\n\t\t\t</PanelBody>\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{ blockControls }\n\t\t\t<div { ...blockProps }>{ displayAuthor }</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst commentContent = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default commentContent;\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';\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 * External dependencies\n */\nimport clsx from 'clsx';\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 {\n\tAlignmentControl,\n\tBlockControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\n\n/**\n * Renders the `core/comment-content` 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 * @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\tsetAttributes,\n\tattributes: { textAlign },\n\tcontext: { commentId },\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst [ content ] = useEntityProp(\n\t\t'root',\n\t\t'comment',\n\t\t'content',\n\t\tcommentId\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\tif ( ! commentId || ! content ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ blockControls }\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{ blockControls }\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst postDate = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\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\nexport default postDate;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"date\"];","/**\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<DateFormatPicker\n\t\t\t\t\tformat={ format }\n\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link to comment' ) }\n\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\tchecked={ isLink }\n\t\t\t\t/>\n\t\t\t</PanelBody>\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst commentEditLink = (\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 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\nexport default commentEditLink;\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};\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\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\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 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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t/>\n\t\t\t</PanelBody>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst commentReplyLink = (\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 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\nexport default commentReplyLink;\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};\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\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 { SVG, Path } from '@wordpress/primitives';\n\nconst layout = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default layout;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"apiFetch\"];","/**\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} ).then( ( res ) => {\n\t\t\tconst pages = parseInt( res.headers.get( 'X-WP-TotalPages' ) );\n\t\t\tsetDefaultPages( {\n\t\t\t\t...defaultPages,\n\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} );\n\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 { 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 curently 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\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\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 reqested 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 { 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 { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function CommentTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst queryPaginationPrevious = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default queryPaginationPrevious;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '←',\n\tchevron: '«',\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 * 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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst queryPagination = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 13.5h6v-3H4v3zm8 0h3v-3h-3v3zm5-3v3h3v-3h-3z\" />\n\t</SVG>\n);\n\nexport default queryPagination;\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__nextHasNoMarginBottom\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 { __ } 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 { PanelBody } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { CommentsPaginationArrowControls } from './comments-pagination-arrow-controls';\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 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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<CommentsPaginationArrowControls\n\t\t\t\t\t\t\tvalue={ paginationArrow }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: value } );\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</InspectorControls>\n\t\t\t) }\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\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 { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save() {\n\treturn <InnerBlocks.Content />;\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst queryPaginationNext = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default queryPaginationNext;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '→',\n\tchevron: '»',\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 * 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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst queryPaginationNumbers = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default queryPaginationNumbers;\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst title = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default title;\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};\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\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 { PanelBody, ToggleControl } 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\nexport default function Edit( {\n\tattributes: { textAlign, showPostTitle, showCommentsCount, level },\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\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post title' ) }\n\t\t\t\t\tchecked={ showPostTitle }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showPostTitle: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show comments count' ) }\n\t\t\t\t\tchecked={ showCommentsCount }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showCommentsCount: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\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\t/* translators: %s: Post title. */\n\t\t\t\tplaceholder = sprintf( __( 'One response to %s' ), postTitle );\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst cover = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default cover;\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 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 ) {\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} else {\n\t\t// For media selections originated from existing files in the media library.\n\t\tif (\n\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE &&\n\t\t\tmedia.type !== VIDEO_BACKGROUND_TYPE\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tmediaType = media.type;\n\t}\n\n\treturn {\n\t\turl: media.url,\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 { 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 v12BlockAttributes = {\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 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\n// Deprecation for blocks that does not have the aria-label when the image background is fixed or repeated.\nconst v13 = {\n\tattributes: v12BlockAttributes,\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: v12BlockAttributes,\n\tsupports: v12BlockSupports,\n\tisEligible( attributes ) {\n\t\treturn (\n\t\t\tattributes.customOverlayColor !== undefined ||\n\t\t\tattributes.overlayColor !== 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 backgroud 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\talign: attributes.contentAlign,\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title…' ),\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\talign: attributes.contentAlign,\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title…' ),\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\talign: attributes.contentAlign,\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tplaceholder: __( 'Write title…' ),\n\t\t\t\t} ),\n\t\t\t],\n\t\t];\n\t},\n};\n\nexport default [ v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1 ];\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tExternalLink,\n\tFocalPointPicker,\n\tPanelBody,\n\tPanelRow,\n\tRangeControl,\n\tTextareaControl,\n\tToggleControl,\n\tSelectControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\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\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';\n\n/**\n * Internal dependencies\n */\nimport { COVER_MIN_HEIGHT, mediaPosition } from '../shared';\nimport { unlock } from '../../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\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\tlabel={ __( 'Minimum height of cover' ) }\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\t__unstableInputWidth=\"80px\"\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\tonClearMedia,\n} ) {\n\tconst {\n\t\tuseFeaturedImage,\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} = attributes;\n\tconst {\n\t\tisVideoBackground,\n\t\tisImageBackground,\n\t\tmediaElement,\n\t\turl,\n\t\toverlayColor,\n\t} = currentSettings;\n\n\tconst { gradientValue, setGradient } = __experimentalUseGradient();\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 htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only.'\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ !! url && (\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\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<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Repeated background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isRepeated }\n\t\t\t\t\t\t\t\t\tonChange={ toggleIsRepeated }\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{ showFocalPointPicker && (\n\t\t\t\t\t\t\t<FocalPointPicker\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tvalue={ focalPoint }\n\t\t\t\t\t\t\t\tonDragStart={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonDrag={ imperativeFocalPointPreview }\n\t\t\t\t\t\t\t\tonChange={ ( newFocalPoint ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfocalPoint: newFocalPoint,\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<TextareaControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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={ ( newAlt ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { alt: newAlt } )\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<>\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\t<PanelRow>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tclassName=\"block-library-cover__reset-button\"\n\t\t\t\t\t\t\t\tonClick={ onClearMedia }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Clear Media' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</PanelRow>\n\t\t\t\t\t</PanelBody>\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\t__nextHasNoMarginBottom\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\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<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\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\tvalue={ 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\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\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';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\nimport { unlock } from '../../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport default function CoverBlockControls( {\n\tattributes,\n\tsetAttributes,\n\tonSelectMedia,\n\tcurrentSettings,\n\ttoggleUseFeaturedImage,\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 isMinFullHeight =\n\t\tminHeightUnit === 'vh' &&\n\t\tminHeight === 100 &&\n\t\t! attributes?.style?.dimensions?.aspectRatio;\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<BlockControls group=\"block\">\n\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t/>\n\t\t\t</BlockControls>\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\taccept=\"image/*,video/*\"\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/>\n\t\t\t</BlockControls>\n\t\t</>\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\tinstructions: __(\n\t\t\t\t\t'Drag and drop onto this block, upload, or select existing media from your library.'\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\taccept=\"image/*,video/*\"\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","/*! Fast Average Color | © 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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","/**\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","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","/**\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} 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\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';\n\nfunction getInnerBlocksTemplate( attributes ) {\n\treturn [\n\t\t[\n\t\t\t'core/paragraph',\n\t\t\t{\n\t\t\t\talign: 'center',\n\t\t\t\tplaceholder: __( 'Write title…' ),\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} = 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 { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst mediaUrl = media?.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( { isDark: newIsDark } );\n\t\t} )();\n\t\t// Disable reason: Update the block only when the featured image changes.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\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\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} );\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 isUploadingMedia = isTemporaryMedia( id, url );\n\n\tconst isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;\n\tconst isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;\n\n\tconst [ resizeListener, { height, width } ] = useResizeObserver();\n\tconst resizableBoxDimensions = useMemo( () => {\n\t\treturn {\n\t\t\theight: minHeightUnit === 'px' ? 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\tcurrentSettings={ currentSettings }\n\t\t\ttoggleUseFeaturedImage={ toggleUseFeaturedImage }\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/>\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 ? true : false,\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{ 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/>\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\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{ ! 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\tstyle={ mediaStyle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploadingMedia && <Spinner /> }\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{ 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 { 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\talign: 'center',\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\talign: 'center',\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 { __ } from '@wordpress/i18n';\nimport { cover 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\tcustomOverlayColor: '#065174',\n\t\t\tdimRatio: 40,\n\t\t\turl: 'https://s.w.org/images/core/5.3/Windbuchencom.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: __( '<strong>Snow Patrol</strong>' ),\n\t\t\t\t\talign: 'center',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\ttypography: {\n\t\t\t\t\t\t\tfontSize: 48,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcolor: {\n\t\t\t\t\t\t\ttext: 'white',\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\nexport const init = () => initBlock( { name, metadata, settings } );\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\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} = 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\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'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<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{ ! 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\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<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 { SVG, Path } from '@wordpress/primitives';\n\nconst details = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"M4 16h10v1.5H4V16Zm0-4.5h16V13H4v-1.5ZM10 7h10v1.5H10V7Z\"\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t\t<Path d=\"m4 5.25 4 2.5-4 2.5v-5Z\" />\n\t</SVG>\n);\n\nexport default details;\n","/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n\tInspectorControls,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\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 { showContent, summary } = attributes;\n\tconst blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\n\t// Check if either the block or the inner blocks are selected.\n\tconst hasSelection = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\t/* Sets deep to true to also find blocks inside the details content block. */\n\t\t\treturn (\n\t\t\t\thasSelectedInnerBlock( clientId, true ) ||\n\t\t\t\tisBlockSelected( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open by default' ) }\n\t\t\t\t\t\tchecked={ showContent }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowContent: ! showContent,\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</InspectorControls>\n\t\t\t<details\n\t\t\t\t{ ...innerBlocksProps }\n\t\t\t\topen={ hasSelection || showContent }\n\t\t\t>\n\t\t\t\t<summary onClick={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"summary\"\n\t\t\t\t\t\taria-label={ __( 'Write summary' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Write summary…' ) }\n\t\t\t\t\t\tallowedFormats={ [] }\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 { details as icon } from '@wordpress/icons';\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 save from './save';\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\tsave,\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n","/**\n * WordPress dependencies\n */\nimport { RichText, useBlockProps, InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { showContent } = attributes;\n\tconst summary = attributes.summary ? attributes.summary : 'Details';\n\tconst blockProps = useBlockProps.save();\n\n\treturn (\n\t\t<details { ...blockProps } open={ showContent }>\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 * Internal dependencies\n */\n\nimport { default as pencil } from './pencil';\nexport default pencil;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pencil = (\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\nexport default pencil;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToolbarButton,\n\tPanelBody,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { edit } from '@wordpress/icons';\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\t<>\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ showEditButton && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\tonClick={ switchBackToURLInput }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t\t{ themeSupportsResponsive && blockSupportsResponsive && (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Media settings' ) }\n\t\t\t\t\tclassName=\"blocks-responsive\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Resize for smaller devices' ) }\n\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\thelp={ getResponsiveHelp }\n\t\t\t\t\t\tonChange={ toggleResponsive }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\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: '#1da1f2',\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.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z\"></Path>\n\t\t\t</G>\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} 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<input\n\t\t\t\t\ttype=\"url\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t\t<Button 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 variant=\"secondary\" onClick={ tryAgain }>\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 variant=\"secondary\" onClick={ fallback }>\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 * 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 { 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 {\n\tRichText,\n\tBlockIcon,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { Component } from '@wordpress/element';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { getAuthority } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport WpEmbedPreview from './wp-embed-preview';\n\nclass EmbedPreview extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.hideOverlay = this.hideOverlay.bind( this );\n\t\tthis.state = {\n\t\t\tinteractive: false,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromProps( nextProps, state ) {\n\t\tif ( ! nextProps.isSelected && state.interactive ) {\n\t\t\t// We only want to change this when the block is not selected, because changing it when\n\t\t\t// the block becomes selected makes the overlap disappear too early. Hiding the overlay\n\t\t\t// happens on mouseup when the overlay is clicked.\n\t\t\treturn { interactive: false };\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thideOverlay() {\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\tthis.setState( { interactive: true } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tpreview,\n\t\t\tpreviewable,\n\t\t\turl,\n\t\t\ttype,\n\t\t\tcaption,\n\t\t\tonCaptionChange,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t\ticon,\n\t\t\tlabel,\n\t\t\tinsertBlocksAfter,\n\t\t} = this.props;\n\t\tconst { scripts } = preview;\n\t\tconst { interactive } = this.state;\n\n\t\tconst html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;\n\t\tconst embedSourceUrl = getAuthority( url );\n\t\tconst iframeTitle = sprintf(\n\t\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t\t__( 'Embedded content from %s' ),\n\t\t\tembedSourceUrl\n\t\t);\n\t\tconst sandboxClassnames = clsx(\n\t\t\ttype,\n\t\t\tclassName,\n\t\t\t'wp-block-embed__wrapper'\n\t\t);\n\n\t\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t\t// as far as the user is concerned. We're just catching the first click so that\n\t\t// the block can be selected without interacting with the embed preview that the overlay covers.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\tconst embedWrapper =\n\t\t\t'wp-embed' === type ? (\n\t\t\t\t<WpEmbedPreview html={ html } />\n\t\t\t) : (\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t<SandBox\n\t\t\t\t\t\thtml={ html }\n\t\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\t\tonFocus={ this.hideOverlay }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! interactive && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName=\"block-library-embed__interactive-overlay\"\n\t\t\t\t\t\t\tonMouseUp={ this.hideOverlay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\n\t\treturn (\n\t\t\t<figure\n\t\t\t\tclassName={ clsx( className, 'wp-block-embed', {\n\t\t\t\t\t'is-type-video': 'video' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ previewable ? (\n\t\t\t\t\tembedWrapper\n\t\t\t\t) : (\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t<a href={ url }>{ url }</a>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p className=\"components-placeholder__error\">\n\t\t\t\t\t\t\t{ sprintf(\n\t\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\t__(\n\t\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\t),\n\t\t\t\t\t\t\t\tembedSourceUrl\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t) }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\ttagName=\"figcaption\"\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\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ onCaptionChange }\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/>\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t}\n}\n\nexport default EmbedPreview;\n","/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\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 } ) => {\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} );\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( 'Twitter' ),\n\t\ticon: embedTwitterIcon,\n\t\tkeywords: [ 'tweet', __( 'social' ) ],\n\t\tdescription: __( 'Embed a tweet.' ),\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: 'screencast',\n\t\ttitle: getTitle( 'Screencast' ),\n\t\ticon: embedVideoIcon,\n\t\tdescription: __( 'Embed Screencast content.' ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?screencast\\.com\\/.+/i ],\n\t\tattributes: { providerNameSlug: 'screencast', 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 * 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';\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\tconst toggleResponsive = () => {\n\t\tconst { allowResponsive, className } = attributes;\n\t\tconst { html } = preview;\n\t\tconst newAllowResponsive = ! allowResponsive;\n\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\tsetAttributes( mergedAttributes );\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={ ( event ) => setURL( event.target.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<View { ...blockProps }>\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/>\n\t\t\t</View>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst file = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default file;\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 * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tRangeControl,\n\tSelectControl,\n\tToggleControl,\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';\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\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<PanelBody title={ __( 'PDF settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show inline embed' ) }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\tdisplayPreview\n\t\t\t\t\t\t\t\t\t? __(\n\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 )\n\t\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ !! displayPreview }\n\t\t\t\t\t\t\tonChange={ changeDisplayPreview }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ displayPreview && (\n\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Height in pixels' ) }\n\t\t\t\t\t\t\t\tmin={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\t\t\tmax={ Math.max(\n\t\t\t\t\t\t\t\t\tMAX_PREVIEW_HEIGHT,\n\t\t\t\t\t\t\t\t\tpreviewHeight\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ previewHeight }\n\t\t\t\t\t\t\t\tonChange={ changePreviewHeight }\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\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\tonChange={ changeLinkDestinationOption }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewWindow }\n\t\t\t\t\t\tonChange={ changeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\tonChange={ changeShowDownloadButton }\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 * 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// 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 noteable 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 * 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';\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 ).getMedia( id ),\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// Reason: This effect should only run on mount.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\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 = newMedia.url.endsWith( '.pdf' );\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\tdisplayPreview: isPdf ? true : undefined,\n\t\t\tpreviewHeight: isPdf ? 600 : undefined,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\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'Upload a file or pick one from your media 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/>\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 } }\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\tminWidth=\"100%\"\n\t\t\t\t\t\tgrid={ [ 10, 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…' ) }\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…' ) }\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 { 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 priorty (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\tblocks.push(\n\t\t\t\t\t\tcreateBlock( 'core/file', {\n\t\t\t\t\t\t\tblob: blobURL,\n\t\t\t\t\t\t\tfileName: file.name,\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 { getMedia } = select( coreStore );\n\t\t\t\tconst media = getMedia( 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 { getMedia } = select( coreStore );\n\t\t\t\tconst media = getMedia( 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 { getMedia } = select( coreStore );\n\t\t\t\tconst media = getMedia( 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 { _x } from '@wordpress/i18n';\nimport { file 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\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\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} 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 { __ } 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 * 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 { TextControl, SelectControl, PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\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 { 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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t// __nextHasNoMarginBottom\n\t\t\t\t\t\t// size={ '__unstable-large' }\n\t\t\t\t\t\tlabel={ __( 'Submissions method' ) }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t// TODO: Allow plugins to add their own submission methods.\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Send email' ),\n\t\t\t\t\t\t\t\tvalue: 'email',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( '- Custom -' ),\n\t\t\t\t\t\t\t\tvalue: 'custom',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tvalue={ submissionMethod }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { submissionMethod: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\tsubmissionMethod === 'custom'\n\t\t\t\t\t\t\t\t? __(\n\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 )\n\t\t\t\t\t\t\t\t: __(\n\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 )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ submissionMethod === 'email' && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Email for form submissions' ) }\n\t\t\t\t\t\t\tvalue={ email }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { email: value } );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taction: `mailto:${ value }`,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tsetAttributes( { method: 'post' } );\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'The email address where form submissions will be sent. Separate multiple email addresses with a comma.'\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</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__nextHasNoMarginBottom\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__nextHasNoMarginBottom\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/>\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\tclassName=\"wp-block-form\"\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/**\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 * 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\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\tvariations,\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 { 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\tclassName=\"wp-block-form\"\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"dom\"];","/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\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\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\t__experimentalRole: '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\t__experimentalRole: '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 = [ v1 ];\n\nexport default deprecated;\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\ticon: 'edit-page',\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\ticon: 'testimonial',\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\ticon: 'forms',\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\ticon: 'email',\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\ticon: 'admin-site',\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\ticon: 'phone',\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\ticon: 'edit-page',\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 * 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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\tsave,\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 { __ } 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 { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\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\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\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\tinlineLabel: 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) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\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</PanelBody>\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\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\" atribute 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\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<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\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\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\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…' )\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</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\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\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<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 || 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</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';\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 * 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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst group = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default group;\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 * 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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { Path, SVG } from '@wordpress/primitives';\n\nexport const gallery = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default gallery;\n","export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_MEDIA_WP_CORE = 'file';\nexport const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';\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, // eslint-disable-line camelcase\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, // eslint-disable-line camelcase\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"viewport\"];","/**\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;\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} 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 blocks attributes.\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination(\n\timage,\n\tgalleryDestination,\n\timageDestination\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, // eslint-disable-line camelcase\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\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};\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};\n\t}\n\n\treturn {};\n}\n","/**\n * Internal dependencies\n */\nimport { NEW_TAB_REL } 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 * 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 { 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 ).getMediaItems( {\n\t\t\t\t\tinclude: imageIds.join( ',' ),\n\t\t\t\t\tper_page: -1,\n\t\t\t\t\torderby: 'include',\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\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { useStyleOverride } = unlock( blockEditorPrivateApis );\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\twithNotices,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\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 { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\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} 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 linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag images, upload new ones or select files 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\nfunction 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 { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\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\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: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\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\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\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.label\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, true );\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, true );\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\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\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\taccept=\"image/*\"\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\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) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\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) }\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className=\"gallery-image-sizes\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className=\"gallery-image-sizes__loading\">\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\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\taccept=\"image/*\"\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/>\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}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\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.fromSavedConent\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 { useMemo } from '@wordpress/element';\n\n/**\n * Calculates the image sizes that are avaible 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 { 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 tranform 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 } } ) {\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},\n\t\t\t\t\timageIds.map( ( imageId ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', { id: imageId } )\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 overrrides the image block transformation when mulitple 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 * 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 * 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 { 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 * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\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';\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 *\n * @return {JSX.Element} The control group.\n */\nfunction GroupEditControls( { tagName, onSelectTagName } ) {\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'HTML element' ) }\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\tvalue={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\thelp={ htmlElementMessages[ tagName ] }\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/>\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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst row = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default row;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst stack = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default stack;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst grid = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default grid;\n","/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack, grid } from '@wordpress/icons';\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\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes.layout ||\n\t\t\t! blockAttributes.layout?.type ||\n\t\t\tblockAttributes.layout?.type === 'default' ||\n\t\t\tblockAttributes.layout?.type === 'constrained',\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: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\t( ! blockAttributes.layout?.orientation ||\n\t\t\t\tblockAttributes.layout?.orientation === 'horizontal' ),\n\t\ticon: row,\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: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\tblockAttributes.layout?.orientation === 'vertical',\n\t\ticon: stack,\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: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'grid',\n\t\ticon: grid,\n\t},\n];\n\nexport default variations;\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\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\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\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\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\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\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\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\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\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\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\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { SVG, Path } from '@wordpress/primitives';\n\nconst heading = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M6 5V18.5911L12 13.8473L18 18.5911V5H6Z\" />\n\t</SVG>\n);\n\nexport default heading;\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\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\tmigrateCustomColors( migrateTextAlign( attributes ) ),\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\tmigrateCustomColors( migrateTextAlign( attributes ) ),\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\tmigrateCustomColors( migrateTextAlign( attributes ) ),\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: migrateTextAlign,\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\t__experimentalRole: '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};\n\nconst deprecated = [ v5, v4, v3, v2, v1 ];\n\nexport default deprecated;\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 * WordPress dependencies\n */\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getLevelFromHeadingNodeName } from './shared';\nimport { getTransformedMetadata } from '../utils/get-transformed-metadata';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map(\n\t\t\t\t\t( { content, anchor, align: textAlign, metadata } ) =>\n\t\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\tanchor,\n\t\t\t\t\t\t\ttextAlign,\n\t\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t\t'core/heading',\n\t\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} )\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'raw',\n\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\tschema: ( { phrasingContentSchema, isPaste } ) => {\n\t\t\t\tconst schema = {\n\t\t\t\t\tchildren: phrasingContentSchema,\n\t\t\t\t\tattributes: isPaste ? [] : [ 'style', 'id' ],\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\th1: schema,\n\t\t\t\t\th2: schema,\n\t\t\t\t\th3: schema,\n\t\t\t\t\th4: schema,\n\t\t\t\t\th5: schema,\n\t\t\t\t\th6: schema,\n\t\t\t\t};\n\t\t\t},\n\t\t\ttransform( node ) {\n\t\t\t\tconst attributes = getBlockAttributes(\n\t\t\t\t\t'core/heading',\n\t\t\t\t\tnode.outerHTML\n\t\t\t\t);\n\t\t\t\tconst { textAlign } = node.style || {};\n\n\t\t\t\tattributes.level = getLevelFromHeadingNodeName( node.nodeName );\n\n\t\t\t\tif (\n\t\t\t\t\ttextAlign === 'left' ||\n\t\t\t\t\ttextAlign === 'center' ||\n\t\t\t\t\ttextAlign === 'right'\n\t\t\t\t) {\n\t\t\t\t\tattributes.align = textAlign;\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/heading', attributes );\n\t\t\t},\n\t\t},\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'prefix',\n\t\t\tprefix: Array( level + 1 ).join( '#' ),\n\t\t\ttransform( content ) {\n\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\tlevel,\n\t\t\t\t\tcontent,\n\t\t\t\t} );\n\t\t\t},\n\t\t} ) ),\n\t\t...[ 1, 2, 3, 4, 5, 6 ].map( ( level ) => ( {\n\t\t\ttype: 'enter',\n\t\t\tregExp: new RegExp( `^/(h|H)${ level }$` ),\n\t\t\ttransform: () => createBlock( 'core/heading', { level } ),\n\t\t} ) ),\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( attributes ) =>\n\t\t\t\tattributes.map( ( { content, textAlign: align, metadata } ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\tcontent: contentBinding,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t},\n\t],\n};\n\nexport default transforms;\n","/**\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 { heading as icon } from '@wordpress/icons';\nimport { __, sprintf } 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\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};\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 { useEffect, Platform } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tHeadingLevelDropdown,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { generateAnchor, setAnchor } from './autogenerate-anchors';\n\nfunction HeadingEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tstyle,\n\tclientId,\n} ) {\n\tconst { textAlign, content, level, placeholder, anchor } = attributes;\n\tconst tagName = 'h' + level;\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\tconst blockEditingMode = useBlockEditingMode();\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{ 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\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<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\ttextAlign={ textAlign }\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 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, level } = attributes;\n\tconst TagName = 'h' + level;\n\n\tconst className = clsx( {\n\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t} );\n\n\treturn (\n\t\t<TagName { ...useBlockProps.save( { className } ) }>\n\t\t\t<RichText.Content value={ content } />\n\t\t</TagName>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst home = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default home;\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\nconst preventDefault = ( event ) => event.preventDefault();\n\nexport default function HomeEdit( { attributes, setAttributes, context } ) {\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\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\tconst { label } = attributes;\n\n\tuseEffect( () => {\n\t\tif ( label === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { label: __( 'Home' ) } );\n\t\t}\n\t}, [ label ] );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<a\n\t\t\t\t\tclassName=\"wp-block-home-link__content wp-block-navigation-item__content\"\n\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\tonClick={ preventDefault }\n\t\t\t\t>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-home-link__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-label={ __( 'Home link text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add home link' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</>\n\t);\n}\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 * 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 { SVG, Path } from '@wordpress/primitives';\n\nconst html = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default html;\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);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\tsettingStyles.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 { 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 { 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…' ) +\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 { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\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\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\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.content }</RawHTML>;\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst image = (\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-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\nexport default image;\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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst plugins = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default plugins;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst crop = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default crop;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst overlayText = (\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 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\nexport default overlayText;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst upload = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default upload;\n","/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n\tToolbarGroup,\n\tDropdown,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tPlaceholder,\n} from '@wordpress/components';\nimport { useViewportMatch } 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} from '@wordpress/block-editor';\nimport { useEffect, useMemo, useState, useRef } from '@wordpress/element';\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { DOWN } from '@wordpress/keycodes';\nimport { getFilename } from '@wordpress/url';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { crop, overlayText, upload } 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';\n\n/**\n * Module constants\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\nimport { evalAspectRatio } 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\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\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} ) {\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\tlinkTarget,\n\t\tsizeSlug,\n\t\tlightbox,\n\t\tmetadata,\n\t} = attributes;\n\n\t// The only supported unit is px, so we can parseInt to strip the px here.\n\tconst numericWidth = width ? parseInt( width, 10 ) : undefined;\n\tconst numericHeight = height ? parseInt( height, 10 ) : undefined;\n\n\tconst imageRef = useRef();\n\tconst { allowResize = true } = context;\n\tconst { getBlock, getSettings } = useSelect( blockEditorStore );\n\n\tconst image = useSelect(\n\t\t( select ) =>\n\t\t\tid && isSingleSelected\n\t\t\t\t? select( coreStore ).getMedia( id, { context: 'view' } )\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 } =\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\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\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 ] );\n\n\t// Get naturalWidth and naturalHeight from image ref, 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\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\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\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 = isSingleSelected && canEditImage && ! isEditingImage;\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\t<DimensionsTool\n\t\t\tvalue={ { width, height, scale, aspectRatio } }\n\t\t\tonChange={ ( {\n\t\t\t\twidth: newWidth,\n\t\t\t\theight: newHeight,\n\t\t\t\tscale: newScale,\n\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t} ) => {\n\t\t\t\t// Rebuilding the object forces setting `undefined`\n\t\t\t\t// for values that are removed since setAttributes\n\t\t\t\t// doesn't do anything with keys that aren't set.\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t// CSS includes `height: auto`, but we need\n\t\t\t\t\t// `width: auto` to fix the aspect ratio when\n\t\t\t\t\t// only height is set due to the width and\n\t\t\t\t\t// height attributes set via the server.\n\t\t\t\t\twidth: ! newWidth && newHeight ? 'auto' : 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} }\n\t\t\tdefaultScale=\"cover\"\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\tscaleOptions={ scaleOptions }\n\t\t\tunitsOptions={ dimensionsUnitsOptions }\n\t\t/>\n\t);\n\n\tconst aspectRatioControl = (\n\t\t<DimensionsTool\n\t\t\tvalue={ { aspectRatio } }\n\t\t\tonChange={ ( { aspectRatio: newAspectRatio } ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\taspectRatio: newAspectRatio,\n\t\t\t\t\tscale: 'cover',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tdefaultAspectRatio=\"auto\"\n\t\t\ttools={ [ 'aspectRatio' ] }\n\t\t/>\n\t);\n\n\tconst resetAll = () => {\n\t\tsetAttributes( {\n\t\t\talt: undefined,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tscale: undefined,\n\t\t\taspectRatio: undefined,\n\t\t\tlightbox: undefined,\n\t\t} );\n\t};\n\n\tconst sizeControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ resetAll }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ isResizable &&\n\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\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\tlockCaption = 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 { getBlockBindingsSource } = unlock( select( blocksStore ) );\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} = 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\tlockCaption:\n\t\t\t\t\t// Disable editing the caption if the image is inside a pattern instance.\n\t\t\t\t\t// This is a temporary solution until we support overriding the caption on the frontend.\n\t\t\t\t\thasParentPattern,\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 = isSingleSelected && canInsertCover;\n\n\tconst showBlockControls = showUrlInput || allowCrop || showCoverControls;\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 && ! isEditingImage && ! lockUrlControls && (\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={ url }\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\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\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=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\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\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\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{ _x(\n\t\t\t\t\t\t\t\t\t'Alt',\n\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) }\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<TextareaControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-image__toolbar_content_textarea\"\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\tdisabled={ 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\t__nextHasNoMarginBottom\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<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\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\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\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{ __( 'Title' ) }\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\tclassName=\"wp-block-image__toolbar_content_textarea\"\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\t\t\t\tdisabled={ lockTitleControls }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\tlockTitleControls ? (\n\t\t\t\t\t\t\t\t\t\t<>{ lockTitleControlsMessage }</>\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{ __(\n\t\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\t) }\n\t\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\t{ __(\n\t\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\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</>\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</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={ resetAll }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ isSingleSelected && (\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\t__nextHasNoMarginBottom\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{ isResizable &&\n\t\t\t\t\t\t( parentLayoutType === 'grid'\n\t\t\t\t\t\t\t? aspectRatioControl\n\t\t\t\t\t\t\t: dimensionsControl ) }\n\t\t\t\t\t{ !! imageSizeOptions.length && (\n\t\t\t\t\t\t<ResolutionTool\n\t\t\t\t\t\t\tvalue={ sizeSlug }\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) }\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__nextHasNoMarginBottom\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\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// Disable reason: Image itself is not meant to be interactive, but\n\t\t\t// should direct focus to block.\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\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={ imageRef }\n\t\t\t\t\tclassName={ borderProps.className }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t( width && height ) || aspectRatio\n\t\t\t\t\t\t\t\t? '100%'\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tobjectFit: scale,\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\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\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\twidth={ numericWidth }\n\t\t\t\t\theight={ numericHeight }\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 if ( ! isResizable || parentLayoutType === 'grid' ) {\n\t\timg = (\n\t\t\t<div style={ { width, height, aspectRatio } }>\n\t\t\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tconst numericRatio = aspectRatio && evalAspectRatio( aspectRatio );\n\t\tconst customRatio = numericWidth / numericHeight;\n\t\tconst naturalRatio = naturalWidth / naturalHeight;\n\t\tconst ratio = numericRatio || customRatio || naturalRatio || 1;\n\t\tconst currentWidth =\n\t\t\t! numericWidth && numericHeight\n\t\t\t\t? numericHeight * ratio\n\t\t\t\t: numericWidth;\n\t\tconst currentHeight =\n\t\t\t! numericHeight && numericWidth\n\t\t\t\t? numericWidth / ratio\n\t\t\t\t: numericHeight;\n\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\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\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tstyle={ {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\tobjectFit: scale,\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} }\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth ?? 'auto',\n\t\t\t\t\theight: currentHeight ?? 'auto',\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSingleSelected }\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={ 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={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt ) => {\n\t\t\t\t\tonResizeStop();\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\t\t<ImageWrapper href={ href }>{ img }</ImageWrapper>\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\tif ( ! url && ! temporaryURL ) {\n\t\t// Add all controls if the image attributes are connected.\n\t\treturn metadata?.bindings ? controls : sizeControls;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ controls }\n\t\t\t{ img }\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\thasNonContentControls &&\n\t\t\t\t\t! arePatternOverridesEnabled\n\t\t\t\t}\n\t\t\t\treadOnly={ lockCaption }\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 { store as blocksStore } from '@wordpress/blocks';\nimport { Placeholder } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tuseBlockProps,\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';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport Image from './image';\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} 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\talt,\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\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\n\tconst altRef = useRef();\n\tuseEffect( () => {\n\t\taltRef.current = alt;\n\t}, [ alt ] );\n\n\tconst captionRef = useRef();\n\tuseEffect( () => {\n\t\tcaptionRef.current = caption;\n\t}, [ caption ] );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\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 { getSettings } = 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 onSelectImage( media ) {\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 = 'full';\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// 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} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Resolution\"\n\t\t\t// option is not changed.\n\t\t\tadditionalAttributes = { url };\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( { className: classes } );\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 = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\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[ 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\twithIllustration\n\t\t\t\ticon={ lockUrlControls ? pluginsIcon : icon }\n\t\t\t\tlabel={ __( 'Image' ) }\n\t\t\t\tinstructions={\n\t\t\t\t\t! lockUrlControls &&\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\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<span className=\"block-bindings-media-placeholder-message\">\n\t\t\t\t\t\t{ lockUrlControlsMessage }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t) }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\treturn (\n\t\t<figure { ...blockProps }>\n\t\t\t<Image\n\t\t\t\ttemporaryURL={ temporaryURL }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tisSingleSelected={ isSingleSelected }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonUploadError={ onUploadError }\n\t\t\t\tcontext={ context }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\tparentLayoutType={ parentLayout?.type }\n\t\t\t/>\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ { id, src } }\n\t\t\t\tmediaPreview={ mediaPreview }\n\t\t\t\tdisableMediaButtons={ temporaryURL || url }\n\t\t\t/>\n\t\t</figure>\n\t);\n}\n\nexport default ImageEdit;\n","/**\n * WordPress dependencies\n */\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock, getBlockAttributes } from '@wordpress/blocks';\nimport { dispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\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\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\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\t// The following check is intended to catch non-image files when dropped together with images.\n\t\t\t\tif (\n\t\t\t\t\tfiles.some(\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t) &&\n\t\t\t\t\tfiles.some(\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\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\t\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: 'gallery-transform-invalid-file',\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\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 * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { image 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\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—still, 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\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\t__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,\n} from '@wordpress/block-editor';\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\tid,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t\ttitle,\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\twidth,\n\t\t\t\theight,\n\t\t\t} }\n\t\t\ttitle={ title }\n\t\t/>\n\t);\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{ ! 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</>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst comment = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default comment;\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';\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 * WordPress dependencies\n */\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tDisabled,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { __ } from '@wordpress/i18n';\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 } ) {\n\tconst { commentsToShow, displayAvatar, displayDate, displayExcerpt } =\n\t\tattributes;\n\n\tconst serverSideAttributes = {\n\t\t...attributes,\n\t\tstyle: {\n\t\t\t...attributes?.style,\n\t\t\tspacing: undefined,\n\t\t},\n\t};\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display avatar' ) }\n\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAvatar: ! displayAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayDate: ! displayDate } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayExcerpt: ! displayExcerpt,\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<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of comments' ) }\n\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { commentsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\tmax={ MAX_COMMENTS }\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<Disabled>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"core/latest-comments\"\n\t\t\t\t\tattributes={ serverSideAttributes }\n\t\t\t\t\t// The preview uses the site's locale to make it more true to how\n\t\t\t\t\t// the block appears on the frontend. Setting the locale\n\t\t\t\t\t// explicitly prevents any middleware from setting it to 'user'.\n\t\t\t\t\turlQueryArgs={ { _locale: 'site' } }\n\t\t\t\t/>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst postList = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default postList;\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst list = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default list;\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\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 { pin, list, grid } 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} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\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\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\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\tlatestPosts,\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\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: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\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\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\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[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\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\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\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\tdisplayPostContentRadio: 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) }\n\t\t\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: 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\t<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\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: 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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\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\taddLinkToFeaturedImage: 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) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\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 = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\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'… <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\trel=\"noreferrer noopener\"\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\trel=\"noreferrer noopener\"\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: current 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","/**\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","export const MIN_EXCERPT_LENGTH = 10;\nexport const MAX_EXCERPT_LENGTH = 100;\nexport const MAX_POSTS_COLUMNS = 6;\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 === '' ? undefined : listElement.id,\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 { 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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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 { SVG, Path } from '@wordpress/primitives';\n\nconst formatOutdentRTL = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatOutdentRTL;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatOutdent = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatOutdent;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListBulletsRTL = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatListBulletsRTL;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListBullets = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatListBullets;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListNumberedRTL = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatListNumberedRTL;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListNumbered = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatListNumbered;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport {\n\tTextControl,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n} from '@wordpress/components';\n\nconst OrderedListSettings = ( { setAttributes, reversed, start, type } ) => (\n\t<InspectorControls>\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Start value' ) }\n\t\t\t\ttype=\"number\"\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst int = parseInt( value, 10 );\n\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t// It should be possible to unset the value,\n\t\t\t\t\t\t// e.g. with an empty string.\n\t\t\t\t\t\tstart: isNaN( int ) ? undefined : int,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tvalue={ Number.isInteger( start ) ? start.toString( 10 ) : '' }\n\t\t\t\tstep=\"1\"\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Numbering style' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Numbers' ),\n\t\t\t\t\t\tvalue: 'decimal',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Uppercase letters' ),\n\t\t\t\t\t\tvalue: 'upper-alpha',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Lowercase letters' ),\n\t\t\t\t\t\tvalue: 'lower-alpha',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Uppercase Roman numerals' ),\n\t\t\t\t\t\tvalue: 'upper-roman',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Lowercase Roman numerals' ),\n\t\t\t\t\t\tvalue: 'lower-roman',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tvalue={ type }\n\t\t\t\tonChange={ ( newValue ) => setAttributes( { type: newValue } ) }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Reverse list numbering' ) }\n\t\t\t\tchecked={ reversed || false }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t// Unset the attribute if not reversed.\n\t\t\t\t\t\treversed: value || undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PanelBody>\n\t</InspectorControls>\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 * 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 { 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 { 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 { 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 { Path, SVG } from '@wordpress/primitives';\n\nconst listItem = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default listItem;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatIndentRTL = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatIndentRTL;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatIndent = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default formatIndent;\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 { 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 { useRegistry, useDispatch, useSelect } 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 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} = useSelect( blockEditorStore );\n\tconst { mergeBlocks, moveBlocksToPosition } =\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\tconst previousBlockClientId = getPreviousBlockClientId( clientId );\n\t\t\tif ( getParentListItemId( clientId ) ) {\n\t\t\t\toutdentListItem( clientId );\n\t\t\t} else if ( previousBlockClientId ) {\n\t\t\t\tconst trailingId = getTrailingId( previousBlockClientId );\n\t\t\t\tmergeWithNested( trailingId, clientId );\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 {\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';\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\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\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 { 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 { listItem as icon } from '@wordpress/icons';\nimport { privateApis } from '@wordpress/block-editor';\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 { 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\nexport const init = () => initBlock( { name, metadata, settings } );\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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst login = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default login;\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 { PanelBody, ToggleControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\n\nexport default function LoginOutEdit( { attributes, setAttributes } ) {\n\tconst { displayLoginAsForm, redirectToCurrent } = attributes;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display login as form' ) }\n\t\t\t\t\t\tchecked={ displayLoginAsForm }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayLoginAsForm: ! displayLoginAsForm,\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<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Redirect to current URL' ) }\n\t\t\t\t\t\tchecked={ redirectToCurrent }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tredirectToCurrent: ! redirectToCurrent,\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</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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst mediaAndText = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M3 6v11.5h8V6H3Zm11 3h7V7.5h-7V9Zm7 3.5h-7V11h7v1.5ZM14 16h7v-1.5h-7V16Z\" />\n\t</SVG>\n);\n\nexport default mediaAndText;\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…', 'content placeholder' ),\n\t\t},\n\t],\n];\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 v6ImageFillStyles = ( 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\t__experimentalRole: 'content',\n\t},\n\tmediaId: {\n\t\ttype: 'number',\n\t\t__experimentalRole: '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\t__experimentalRole: 'content',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure a',\n\t\tattribute: 'href',\n\t\t__experimentalRole: 'content',\n\t},\n\tmediaType: {\n\t\ttype: 'string',\n\t\t__experimentalRole: 'content',\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\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? v6ImageFillStyles( 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 [ v6, v5, v4, v3, v2, v1 ];\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pullLeft = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 18h6V6H4v12zm9-9.5V10h7V8.5h-7zm0 7h7V14h-7v1.5z\" />\n\t</SVG>\n);\n\nexport default pullLeft;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pullRight = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14 6v12h6V6h-6zM4 10h7V8.5H4V10zm0 5.5h7V14H4v1.5z\" />\n\t</SVG>\n);\n\nexport default pullRight;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst media = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m7 6.5 4 2.5-4 2.5z\" />\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"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\t/>\n\t</SVG>\n);\n\nexport default media;\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 * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst noop = () => {};\n\nexport function imageFillStyles( 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 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\tfeaturedImageURL,\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={\n\t\t\t\t\tuseFeaturedImage && featuredImageURL\n\t\t\t\t\t\t? featuredImageURL\n\t\t\t\t\t\t: mediaUrl\n\t\t\t\t}\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\tuseFeaturedImage={ useFeaturedImage }\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\taccept=\"image/*,video/*\"\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} = 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 backgroundStyles =\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 src={ featuredImageURL } alt={ featuredImageAlt } />\n\t\t\t\t) : (\n\t\t\t\t\tmediaUrl && <img src={ mediaUrl } alt={ mediaAlt } />\n\t\t\t\t),\n\t\t\tvideo: () => <video controls 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\tstyle={ backgroundStyles }\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\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","/**\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\t// eslint-disable-next-line camelcase\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} );\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\t// eslint-disable-next-line camelcase\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} );\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\trel,\n\t\tverticalAlignment,\n\t\tallowedBlocks,\n\t\tuseFeaturedImage,\n\t} = attributes;\n\tconst mediaSizeSlug = attributes.mediaSizeSlug || DEFAULT_MEDIA_SIZE_SLUG;\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\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\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 { imageSizes, image } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\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 ).getMedia( mediaId, {\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: null,\n\t\t\t\timageSizes: getSettings()?.imageSizes,\n\t\t\t};\n\t\t},\n\t\t[ isSelected, mediaId ]\n\t);\n\n\tconst refMediaContainer = useRef();\n\tconst imperativeFocalPointPreview = ( value ) => {\n\t\tconst { style } = refMediaContainer.current.resizable;\n\t\tconst { x, y } = value;\n\t\tstyle.backgroundPosition = `${ 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': 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\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => getImageSourceUrlBySizeSlug( image, slug ) )\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\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\tmediaSizeSlug: undefined,\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\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__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\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\t__nextHasNoMarginBottom\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<ResolutionTool\n\t\t\t\t\tvalue={ mediaSizeSlug }\n\t\t\t\t\toptions={ imageSizeOptions }\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\tref={ refMediaContainer }\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 { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { imageFillStyles } from './media-container';\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\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/>\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': imageFill,\n\t} );\n\tconst backgroundStyles = imageFill\n\t\t? imageFillStyles( mediaUrl, focalPoint )\n\t\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\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</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div { ...useBlockProps.save( { className, style } ) }>\n\t\t\t<figure\n\t\t\t\tclassName=\"wp-block-media-text__media\"\n\t\t\t\tstyle={ backgroundStyles }\n\t\t\t>\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},\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\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},\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 ? 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\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 { __ } from '@wordpress/i18n';\nimport { mediaAndText 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\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: __( '— Kobayashi Issa (一茶)' ),\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 { __, sprintf } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport {\n\tWarning,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { safeHTML } from '@wordpress/dom';\n\nfunction MissingBlockWarning( { attributes, convertToHTML, 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\n\tconst actions = [];\n\tlet messageHTML;\n\n\tconst convertToHtmlButton = (\n\t\t<Button key=\"convert\" onClick={ convertToHTML } variant=\"primary\">\n\t\t\t{ __( 'Keep as HTML' ) }\n\t\t</Button>\n\t);\n\n\tif ( hasContent && ! hasFreeformBlock && ! originalName ) {\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, you can refresh the page 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, you can refresh the page 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’t include support for the \"%s\" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'\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’t include support for the \"%s\" block. You can leave this block intact or remove it entirely.'\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\nconst MissingEdit = withDispatch( ( dispatch, { clientId, attributes } ) => {\n\tconst { replaceBlock } = dispatch( blockEditorStore );\n\treturn {\n\t\tconvertToHTML() {\n\t\t\treplaceBlock(\n\t\t\t\tclientId,\n\t\t\t\tcreateBlock( 'core/html', {\n\t\t\t\t\tcontent: attributes.originalUndelimitedContent,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t};\n} )( MissingBlockWarning );\n\nexport default MissingEdit;\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 { 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 { Path, SVG } from '@wordpress/primitives';\n\nconst more = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z\" />\n\t</SVG>\n);\n\nexport default more;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { getDefaultBlockName, createBlock } from '@wordpress/blocks';\n\nconst DEFAULT_TEXT = __( 'Read more' );\n\nexport default function MoreEdit( {\n\tattributes: { customText, noTeaser },\n\tinsertBlocksAfter,\n\tsetAttributes,\n} ) {\n\tconst onChangeInput = ( event ) => {\n\t\tsetAttributes( {\n\t\t\tcustomText: event.target.value,\n\t\t} );\n\t};\n\n\tconst onKeyDown = ( { keyCode } ) => {\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t};\n\n\tconst getHideExcerptHelp = ( checked ) =>\n\t\tchecked\n\t\t\t? __( 'The excerpt is hidden.' )\n\t\t\t: __( 'The excerpt is visible.' );\n\n\tconst toggleHideExcerpt = () => setAttributes( { noTeaser: ! noTeaser } );\n\n\tconst style = {\n\t\twidth: `${ ( customText ? customText : DEFAULT_TEXT ).length + 1.2 }em`,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Hide the excerpt on the full content page'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\tonChange={ toggleHideExcerpt }\n\t\t\t\t\t\thelp={ getHideExcerptHelp }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<input\n\t\t\t\t\taria-label={ __( '“Read more” link text' ) }\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={ customText }\n\t\t\t\t\tplaceholder={ DEFAULT_TEXT }\n\t\t\t\t\tonChange={ onChangeInput }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tstyle={ style }\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: '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 { more 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__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\nexport const init = () => initBlock( { name, metadata, settings } );\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 { SVG, Path } from '@wordpress/primitives';\n\nconst navigation = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default navigation;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"a11y\"];","/**\n * WordPress dependencies\n */\nimport { cloneElement, forwardRef } from '@wordpress/element';\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n * size is a number specifiying the icon size in pixels\n * Other props will be passed to wrapped SVG component\n * @param {import('react').ForwardedRef<HTMLElement>} ref The forwarded ref to the SVG element.\n *\n * @return {JSX.Element} Icon component\n */\nfunction Icon( { icon, size = 24, ...props }, ref ) {\n\treturn cloneElement( icon, {\n\t\twidth: size,\n\t\theight: size,\n\t\t...props,\n\t\tref,\n\t} );\n}\n\nexport default forwardRef( Icon );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst close = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default close;\n","export const DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\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 * 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","/**\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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst moreVertical = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\" />\n\t</SVG>\n);\n\nexport default moreVertical;\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 is 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: %1s: title of the menu; %2s: 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} = useNavigationMenu();\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\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading…' );\n\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\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 * 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…' ) );\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\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 { SVG, Path } from '@wordpress/primitives';\n\nconst menu = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z\" />\n\t</SVG>\n);\n\nexport default menu;\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 * 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} ) {\n\tif ( ! isResponsive ) {\n\t\treturn children;\n\t}\n\n\tconst responsiveContainerClasses = clsx(\n\t\t'wp-block-navigation__responsive-container',\n\t\t{\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\t'is-menu-open': isOpen,\n\t\t\t'hidden-by-default': isHiddenByDefault,\n\t\t}\n\t);\n\n\tconst styles = {\n\t\tcolor: ! overlayTextColor?.slug && overlayTextColor?.color,\n\t\tbackgroundColor:\n\t\t\t! overlayBackgroundColor?.slug &&\n\t\t\toverlayBackgroundColor?.color &&\n\t\t\toverlayBackgroundColor.color,\n\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\treturn (\n\t\t<>\n\t\t\t{ ! isOpen && (\n\t\t\t\t<Button\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={ () => onToggle( true ) }\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\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 { 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} = 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\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\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__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Menu name' ) }\n\t\t\tvalue={ title }\n\t\t\tonChange={ updateTitle }\n\t\t/>\n\t);\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 { 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 originalBlocks = useRef();\n\n\tuseEffect( () => {\n\t\t// Initially store the uncontrolled inner blocks for\n\t\t// dirty state comparison.\n\t\tif ( ! originalBlocks?.current ) {\n\t\t\toriginalBlocks.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\toriginalBlocks?.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","/**\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\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} 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<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\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\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\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</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { createBlock, parse } from '@wordpress/blocks';\nimport { applyFilters } from '@wordpress/hooks';\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\treturn {\n\t\tlabel: menuItemTitleField?.rendered || '',\n\t\t...( object?.length && {\n\t\t\ttype: object,\n\t\t} ),\n\t\tkind: menuItemTypeField?.replace( '_', '-' ) || 'custom',\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'custom' !== object && {\n\t\t\t\tid: object_id,\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 { 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 navigation).\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 navigation).\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 navigation).\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 navigation).\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 * 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 { 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 navigation).\n\t\t\t\t\t__( '%s navigation' ),\n\t\t\t\t\tarea\n\t\t\t )\n\t\t\t: // translators: 'navigation' as in website navigation.\n\t\t\t __( 'Navigation' );\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 { 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 { 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 * External dependencies\n */\nimport clsx from 'clsx';\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 * 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 { Warning } from '@wordpress/block-editor';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\n\nfunction DeletedNavigationWarning( { onCreateNew } ) {\n\treturn (\n\t\t<Warning>\n\t\t\t{ createInterpolateElement(\n\t\t\t\t__(\n\t\t\t\t\t'Navigation Menu has been deleted or is unavailable. <button>Create a new Menu?</button>'\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tbutton: <Button onClick={ onCreateNew } variant=\"link\" />,\n\t\t\t\t}\n\t\t\t) }\n\t\t</Warning>\n\t);\n}\n\nexport default DeletedNavigationWarning;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst addSubmenu = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default addSubmenu;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronUp = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default chevronUp;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronDown = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default chevronDown;\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\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( 'core/navigation-link' );\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\texpanded\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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"escapeHtml\"];","/**\n * WordPress dependencies\n */\nimport { escapeHTML } from '@wordpress/escape-html';\nimport { safeDecodeURI } from '@wordpress/url';\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\turl: newUrl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst newLabelWithoutHttp = newLabel.replace( /http(s?):\\/\\//gi, '' );\n\tconst newUrlWithoutHttp = newUrl.replace( /http(s?):\\/\\//gi, '' );\n\n\tconst useNewLabel =\n\t\tnewLabel &&\n\t\tnewLabel !== 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( newLabel )\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\tsetAttributes( {\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 && { url: encodeURI( safeDecodeURI( newUrl ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronLeftSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default chevronLeftSmall;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst plus = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" />\n\t</SVG>\n);\n\nexport default plus;\n","/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalLinkControl as LinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tcreateInterpolateElement,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { chevronLeftSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\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 LinkUIBlockInserter( { clientId, onBack, onSelectBlock } ) {\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\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescritionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescritionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\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\n\t\t\t\thasSearch={ false }\n\t\t\t\tonSelect={ onSelectBlock }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction UnforwardedLinkUI( props, ref ) {\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\tconst postType = type || 'page';\n\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst permissions = useResourcePermissions( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\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: postType,\n\t\t\t// Make `title` property consistent with that in `fetchLinkSuggestions` where the `rendered` title (containing HTML entities)\n\t\t\t// is also being decoded. By being consistent in both locations we avoid having to branch in the rendering output code.\n\t\t\t// Ideally in the future we will update both APIs to utilise the \"raw\" form of the title which is better suited to edit contexts.\n\t\t\t// e.g.\n\t\t\t// - title.raw = \"Yes & No\"\n\t\t\t// - title.rendered = \"Yes & No\"\n\t\t\t// - decodeEntities( title.rendered ) = \"Yes & No\"\n\t\t\t// See:\n\t\t\t// - https://github.com/WordPress/gutenberg/pull/41063\n\t\t\t// - https://github.com/WordPress/gutenberg/blob/a1e1fdc0e6278457e9f4fc0b31ac6d2095f5450b/packages/core-data/src/fetch/__experimental-fetch-link-suggestions.js#L212-L218\n\t\t\ttitle: decodeEntities( page.title.rendered ),\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\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} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescritionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\t// Selecting a block should close the popover and also remove the (previously) automatically inserted\n\t// link block so that the newly selected block can be inserted in its place.\n\tconst { onClose: onSelectBlock } = props;\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 && (\n\t\t\t\t<div\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\taria-describedby={ dialogDescritionId }\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={ dialogDescritionId }>\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={ permissions.canCreate }\n\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\tlet format;\n\n\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmark: <mark />,\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\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\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\tfocusAddBlockButton={ focusAddBlockButton }\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\tsetFocusAddBlockButton( false );\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\tsetFocusAddBlockButton( true );\n\t\t\t\t\t} }\n\t\t\t\t\tonSelectBlock={ onSelectBlock }\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 = ( { setAddingBlock, focusAddBlockButton } ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\treturn (\n\t\t<VStack className=\"link-ui-tools\">\n\t\t\t<Button\n\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t} }\n\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t>\n\t\t\t\t{ __( 'Add block' ) }\n\t\t\t</Button>\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\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 { updateAttributes } from '../../navigation-link/update-attributes';\nimport { LinkUI } from '../../navigation-link/link-ui';\n\n/* translators: %s: The name of a menu. */\nconst actionLabel = __( \"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 } = useDispatch( 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\tif ( ! showLinkControls ) {\n\t\treturn 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\treturn (\n\t\t<LinkUI\n\t\t\tclientId={ insertedBlock?.clientId }\n\t\t\tlink={ insertedBlock?.attributes }\n\t\t\tonClose={ () => {\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\tupdateAttributes(\n\t\t\t\t\tupdatedValue,\n\t\t\t\t\tsetInsertedBlockAttributes( insertedBlock?.clientId ),\n\t\t\t\t\tinsertedBlock?.attributes\n\t\t\t\t);\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t\tonCancel={ () => {\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 <DeletedNavigationWarning onCreateNew={ onCreateNew } />;\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 { 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 * 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} from '@wordpress/block-editor';\nimport { EntityProvider, store as coreStore } from '@wordpress/core-data';\n\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tSpinner,\n\tNotice,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { close, Icon } from '@wordpress/icons';\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 OverlayMenuIcon from './overlay-menu-icon';\nimport OverlayMenuPreview from './overlay-menu-preview';\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';\n\nfunction ColorTools( {\n\ttextColor,\n\tsetTextColor,\n\tbackgroundColor,\n\tsetBackgroundColor,\n\toverlayTextColor,\n\tsetOverlayTextColor,\n\toverlayBackgroundColor,\n\tsetOverlayBackgroundColor,\n\tclientId,\n\tnavRef,\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},\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},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayTextColor.color,\n\t\t\t\t\t\tlabel: __( '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},\n\t\t\t\t\t{\n\t\t\t\t\t\tcolorValue: overlayBackgroundColor.color,\n\t\t\t\t\t\tlabel: __( '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},\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\thasSubmenuIndicatorSetting = true,\n\tcustomPlaceholder: CustomPlaceholder = null,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst {\n\t\topenSubmenusOnClick,\n\t\toverlayMenu,\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\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 stylingInspectorControls = (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t{ hasSubmenuIndicatorSetting && (\n\t\t\t\t\t<PanelBody title={ __( 'Display' ) }>\n\t\t\t\t\t\t{ isResponsive && (\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\tclassName={ overlayMenuPreviewClasses }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetOverlayMenuPreview(\n\t\t\t\t\t\t\t\t\t\t\t! overlayMenuPreview\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\taria-label={ __( 'Overlay menu controls' ) }\n\t\t\t\t\t\t\t\t\taria-controls={ overlayMenuPreviewId }\n\t\t\t\t\t\t\t\t\taria-expanded={ overlayMenuPreview }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<OverlayMenuIcon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ close } />\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{ ! hasIcon && (\n\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Menu' ) }</span>\n\t\t\t\t\t\t\t\t\t\t\t<span>{ __( 'Close' ) }</span>\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</Button>\n\t\t\t\t\t\t\t\t<div id={ overlayMenuPreviewId }>\n\t\t\t\t\t\t\t\t\t{ overlayMenuPreview && (\n\t\t\t\t\t\t\t\t\t\t<OverlayMenuPreview\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\t\t\thasIcon={ hasIcon }\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\thidden={ ! overlayMenuPreview }\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</div>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<h3>{ __( 'Overlay Menu' ) }</h3>\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Configure overlay menu' ) }\n\t\t\t\t\t\t\tvalue={ overlayMenu }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Collapses the navigation options in a menu icon opening an overlay.'\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( { overlayMenu: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\thideLabelFromVision\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=\"never\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Off' ) }\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=\"mobile\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Mobile' ) }\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=\"always\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Always' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToggleGroupControl>\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>{ __( 'Submenus' ) }</h3>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ openSubmenusOnClick }\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\topenSubmenusOnClick: value,\n\t\t\t\t\t\t\t\t\t\t\t...( value && {\n\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} ), // Make sure arrows are shown when we toggle this on.\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\tlabel={ __( 'Open on click' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\tchecked={ showSubmenuIcon }\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\tshowSubmenuIcon: value,\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\tdisabled={ attributes.openSubmenusOnClick }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show arrow' ) }\n\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice && (\n\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\t\tspokenMessage={ null }\n\t\t\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ submenuAccessibilityNotice }\n\t\t\t\t\t\t\t\t\t\t</Notice>\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</>\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<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/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst accessibleDescriptionId = `${ clientId }-desc`;\n\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={ 'always' === overlayMenu }\n\t\t\t\t\toverlayBackgroundColor={ overlayBackgroundColor }\n\t\t\t\t\toverlayTextColor={ overlayTextColor }\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 === '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 && (\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 && (\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={ 'always' === overlayMenu }\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>\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 { 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';\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\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t// This code is lifted from this file:\n\t\t\t// packages/block-library/src/template-part/edit/advanced-controls.js\n\t\t\t/* eslint-disable @wordpress/data-no-store-string-literals */\n\t\t\tconst definedAreas =\n\t\t\t\tselect(\n\t\t\t\t\t'core/editor'\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\t\t\t/* eslint-enable @wordpress/data-no-store-string-literals */\n\t\t\tconst { getCurrentTheme, getEditedEntityRecord } =\n\t\t\t\tselect( coreStore );\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 = getCurrentTheme()?.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 { 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 { __ } from '@wordpress/i18n';\nimport { navigation 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;\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\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { SVG, Path } from '@wordpress/primitives';\n\nconst customLink = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default customLink;\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\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tTooltip,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } 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, safeDecodeURI } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { link as linkIcon, addSubmenu } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { LinkUI } from './link-ui';\nimport { updateAttributes } from './update-attributes';\nimport { getColors } from '../navigation/edit/utils';\n\nconst DEFAULT_BLOCK = { name: 'core/navigation-link' };\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\nconst useIsInvalidLink = ( kind, type, id ) => {\n\tconst isPostType =\n\t\tkind === 'post-type' || type === 'post' || type === 'page';\n\tconst hasId = Number.isInteger( id );\n\tconst postStatus = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isPostType ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\treturn getEntityRecord( 'postType', type, id )?.status;\n\t\t},\n\t\t[ isPostType, 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 published.\n\t// 2. The Navigation Link item has no label.\n\t// If either of those is true, invalidate.\n\tconst isInvalid =\n\t\tisPostType && hasId && postStatus && 'trash' === postStatus;\n\tconst isDraft = 'draft' === postStatus;\n\n\treturn [ isInvalid, isDraft ];\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\n/*\n * Warning, this duplicated in\n * packages/block-library/src/navigation-submenu/edit.js\n * Consider reuseing this components for both blocks.\n */\nfunction Controls( { attributes, setAttributes, setIsLabelFieldFocused } ) {\n\tconst { label, url, description, title, rel } = attributes;\n\treturn (\n\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ label ? stripHTML( label ) : '' }\n\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tonFocus={ () => setIsLabelFieldFocused( true ) }\n\t\t\t\tonBlur={ () => setIsLabelFieldFocused( false ) }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ url ? safeDecodeURI( url ) : '' }\n\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t{ url: urlValue },\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\tattributes\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\tautoComplete=\"off\"\n\t\t\t/>\n\t\t\t<TextareaControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ description || '' }\n\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\tsetAttributes( { description: descriptionValue } );\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ title || '' }\n\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Additional information to help clarify the purpose of the link.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<TextControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ rel || '' }\n\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t} }\n\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\thelp={ __(\n\t\t\t\t\t'The relationship of the linked URL as space-separated link types.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\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 } = attributes;\n\n\tconst [ isInvalid, isDraft ] = useIsInvalidLink( kind, type, id );\n\tconst { maxNestingLevel } = context;\n\n\tconst {\n\t\treplaceBlock,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tselectBlock,\n\t\tselectPreviousBlock,\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// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\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…' );\n\tconst ref = useRef();\n\tconst linkUIref = useRef();\n\tconst prevUrl = usePrevious( url );\n\n\t// Change the label using inspector causes rich text to change focus on firefox.\n\t// This is a workaround to keep the focus on the label field when label filed is focused we don't render the rich text.\n\tconst [ isLabelFieldFocused, setIsLabelFieldFocused ] = useState( false );\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelLink,\n\t\tisParentOfSelectedBlock,\n\t\thasChildren,\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\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, [\n\t\t\t\t\t\t'core/navigation-link',\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t] ).length >= maxNestingLevel,\n\t\t\t\tisTopLevelLink:\n\t\t\t\t\tgetBlockName( getBlockRootClientId( clientId ) ) ===\n\t\t\t\t\t'core/navigation',\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};\n\t\t},\n\t\t[ clientId, maxNestingLevel ]\n\t);\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\n\t/**\n\t * Transform to submenu block.\n\t */\n\tconst transformToSubmenu = () => {\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};\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}, [ hasChildren ] );\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\t// We only want to do this when the URL has gone from nothing to a new URL AND the label looks like a URL\n\t\tif (\n\t\t\t! prevUrl &&\n\t\t\turl &&\n\t\t\tisLinkOpen &&\n\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t) {\n\t\t\t// Focus and select the label text.\n\t\t\tselectLabelText();\n\t\t}\n\t}, [ prevUrl, url, isLinkOpen, 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\tsetOpenedBy( ref.current );\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} ),\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\tif ( ! url || isInvalid || isDraft ) {\n\t\tblockProps.onClick = () => {\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\n\t\t};\n\t}\n\n\tconst classes = clsx( 'wp-block-navigation-item__content', {\n\t\t'wp-block-navigation-link__placeholder': ! url || isInvalid || isDraft,\n\t} );\n\n\tconst missingText = getMissingText( type );\n\t/* translators: Whether the navigation link is Invalid or a Draft. */\n\tconst placeholderText = `(${\n\t\tisInvalid ? __( 'Invalid' ) : __( 'Draft' )\n\t})`;\n\tconst tooltipText =\n\t\tisInvalid || isDraft\n\t\t\t? __( 'This item has been deleted, or is a draft' )\n\t\t\t: __( 'This item is missing a link' );\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={ ( event ) => {\n\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\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{ /* Warning, this duplicated in packages/block-library/src/navigation-submenu/edit.js */ }\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\tsetIsLabelFieldFocused={ setIsLabelFieldFocused }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\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 ? (\n\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text\">\n\t\t\t\t\t\t\t<Tooltip text={ tooltipText }>\n\t\t\t\t\t\t\t\t<span>{ missingText }</span>\n\t\t\t\t\t\t\t</Tooltip>\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 &&\n\t\t\t\t\t\t\t\t! isDraft &&\n\t\t\t\t\t\t\t\t! isLabelFieldFocused && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\t\t\tidentifier=\"label\"\n\t\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\t\tvalue={ label }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\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\tlabel: labelValue,\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\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\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\t'core/navigation-link'\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\taria-label={ __(\n\t\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\t) }\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t\t\t\t\t'core/strikethrough',\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{ description && (\n\t\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\t{ description }\n\t\t\t\t\t\t\t\t\t\t\t</span>\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{ ( isInvalid ||\n\t\t\t\t\t\t\t\tisDraft ||\n\t\t\t\t\t\t\t\tisLabelFieldFocused ) && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-navigation-link__placeholder-text wp-block-navigation-link__label\">\n\t\t\t\t\t\t\t\t\t<Tooltip text={ tooltipText }>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\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\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// Some attributes are stored in an escaped form. It's a legacy issue.\n\t\t\t\t\t\t\t\t\t\t\t\t// Ideally they would be stored in a raw, unescaped form.\n\t\t\t\t\t\t\t\t\t\t\t\t// Unescape is used here to \"recover\" the escaped characters\n\t\t\t\t\t\t\t\t\t\t\t\t// so they display without encoding.\n\t\t\t\t\t\t\t\t\t\t\t\t// See `updateAttributes` for more details.\n\t\t\t\t\t\t\t\t\t\t\t\t`${ decodeEntities( label ) } ${\n\t\t\t\t\t\t\t\t\t\t\t\t\tisInvalid || isDraft\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? placeholderText\n\t\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}`.trim()\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</Tooltip>\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</>\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\t// If there is no link then 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\tif ( ! url ) {\n\t\t\t\t\t\t\t\t\t// Fixes https://github.com/WordPress/gutenberg/issues/61361\n\t\t\t\t\t\t\t\t\t// There's a chance we're closing due to the user selecting the browse all button.\n\t\t\t\t\t\t\t\t\t// Only move focus if the focus is still within the popover ui. If it's not within\n\t\t\t\t\t\t\t\t\t// the popover, it's because something has taken the focus from the popover, and\n\t\t\t\t\t\t\t\t\t// we don't want to steal it back.\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tlinkUIref.current.contains(\n\t\t\t\t\t\t\t\t\t\t\twindow.document.activeElement\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// Select the previous block to keep focus nearby\n\t\t\t\t\t\t\t\t\t\tselectPreviousBlock( clientId, true );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Remove the link.\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\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else if ( ref.current ) {\n\t\t\t\t\t\t\t\t\t// select the ref when adding a new link\n\t\t\t\t\t\t\t\t\tref.current.focus();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// Fallback\n\t\t\t\t\t\t\t\t\tselectPreviousBlock( clientId, 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\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ removeLink }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\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\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</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 { SVG, Path } from '@wordpress/primitives';\n\nconst page = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z\" />\n\t\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\nexport default page;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tag = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default tag;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst customPostType = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default customPostType;\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 { _x } from '@wordpress/i18n';\nimport { customLink as linkIcon } from '@wordpress/icons';\nimport { InnerBlocks } from '@wordpress/block-editor';\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 save from './save';\nimport { enhanceNavigationLinkVariations } from './hooks';\nimport transforms from './transforms';\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\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 * 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 { SVG, Path } from '@wordpress/primitives';\n\nconst removeSubmenu = (\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=\"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\t/>\n\t</SVG>\n);\n\nexport default removeSubmenu;\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} 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\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 { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/navigation-link',\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 * @property {string} [title] Link title attribute.\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, rel, title } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlock,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\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…' );\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 prevHasChildren = usePrevious( hasChildren );\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 propogation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\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={ ( event ) => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\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{ /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ label || '' }\n\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\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\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Additional information to help clarify the purpose of the link.'\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__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The relationship of the linked URL as space-separated link types.'\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\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( ref.current );\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{ ! 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\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tselectBlock( clientId );\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={ () => {\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\tupdateAttributes(\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\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 { 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 { page, addSubmenu } 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 transforms from './transforms';\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\tsave,\n\ttransforms,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { Path, SVG } from '@wordpress/primitives';\n\nconst pageBreak = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default pageBreak;\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 { __ } 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 * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\n\nexport default function save() {\n\treturn <RawHTML>{ '<!--nextpage-->' }</RawHTML>;\n}\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 * 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 * 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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pages = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14.5 5.5h-7V7h7V5.5ZM7.5 9h7v1.5h-7V9Zm7 3.5h-7V14h7v-1.5Z\" />\n\t\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\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\nexport default pages;\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 * 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 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',\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 variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button\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 * 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\tPanelBody,\n\tToolbarButton,\n\tSpinner,\n\tNotice,\n\tComboboxControl,\n\tButton,\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';\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\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: '— '.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: page.title?.rendered,\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<InspectorControls>\n\t\t\t\t{ pagesTree.length > 0 && (\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\t\t\t\t\tlabel={ __( 'Parent' ) }\n\t\t\t\t\t\t\tvalue={ parentPageID }\n\t\t\t\t\t\t\toptions={ pagesTree }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { parentPageID: value ?? 0 } )\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'Choose a page to show only its subpages.'\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\t{ allowConvertToLinks && (\n\t\t\t\t\t<PanelBody title={ __( 'Edit this menu' ) }>\n\t\t\t\t\t\t<p>{ convertDescription }</p>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ ! hasResolvedPages }\n\t\t\t\t\t\t\tonClick={ convertToNavigationLinks }\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</PanelBody>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\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 { 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 * 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 * 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 { decodeEntities } from '@wordpress/html-entities';\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{ decodeEntities( label ) }\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{ decodeEntities( title ) }\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 { SVG, Path } from '@wordpress/primitives';\n\nconst paragraph = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default paragraph;\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 { style, ...restBlockAttributes } = blockAttributes;\n\nconst deprecated = [\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\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: migrateCustomColorsAndFontSizes,\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: migrateCustomColorsAndFontSizes,\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: migrateCustomColorsAndFontSizes,\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\t...attributes,\n\t\t\t\tcustomFontSize: Number.isFinite( attributes.fontSize )\n\t\t\t\t\t? attributes.fontSize\n\t\t\t\t\t: undefined,\n\t\t\t\tcustomTextColor:\n\t\t\t\t\tattributes.textColor && '#' === attributes.textColor[ 0 ]\n\t\t\t\t\t\t? attributes.textColor\n\t\t\t\t\t\t: undefined,\n\t\t\t\tcustomBackgroundColor:\n\t\t\t\t\tattributes.backgroundColor &&\n\t\t\t\t\t'#' === attributes.backgroundColor[ 0 ]\n\t\t\t\t\t\t? attributes.backgroundColor\n\t\t\t\t\t\t: undefined,\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 ) {\n\t\t\treturn attributes;\n\t\t},\n\t},\n];\n\nexport default deprecated;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatLtr = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z\" />\n\t</SVG>\n);\n\nexport default formatLtr;\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 * 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\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tuseSettings,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { formatLtr } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useOnEnter } from './use-enter';\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 } ) {\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 { align, dropCap } = attributes;\n\n\tlet helpText;\n\tif ( hasDropCapDisabled( align ) ) {\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 = __( 'Toggle to show a large initial letter.' );\n\t}\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => !! dropCap }\n\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\tonDeselect={ () => setAttributes( { dropCap: undefined } ) }\n\t\t\tresetAllFilter={ () => ( { dropCap: undefined } ) }\n\t\t\tpanelId={ clientId }\n\t\t>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Drop cap' ) }\n\t\t\t\tchecked={ !! dropCap }\n\t\t\t\tonChange={ () => setAttributes( { dropCap: ! dropCap } ) }\n\t\t\t\thelp={ helpText }\n\t\t\t\tdisabled={ hasDropCapDisabled( align ) ? true : false }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n\nfunction ParagraphBlock( {\n\tattributes,\n\tmergeBlocks,\n\tonReplace,\n\tonRemove,\n\tsetAttributes,\n\tclientId,\n} ) {\n\tconst { align, content, direction, dropCap, placeholder } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tref: useOnEnter( { clientId, content } ),\n\t\tclassName: clsx( {\n\t\t\t'has-drop-cap': hasDropCapDisabled( align ) ? false : dropCap,\n\t\t\t[ `has-text-align-${ align }` ]: align,\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<AlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( newAlign ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\talign: newAlign,\n\t\t\t\t\t\t\t\tdropCap: hasDropCapDisabled( newAlign )\n\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t: dropCap,\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<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<InspectorControls group=\"typography\">\n\t\t\t\t<DropCapControl\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</InspectorControls>\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 { createBlock, getBlockAttributes } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\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.align = textAlign;\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 { paragraph 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\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\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';\nimport { isRTL } from '@wordpress/i18n';\n\nexport default function save( { attributes } ) {\n\tconst { align, content, dropCap, direction } = attributes;\n\tconst className = clsx( {\n\t\t'has-drop-cap':\n\t\t\talign === ( isRTL() ? 'left' : 'right' ) || align === 'center'\n\t\t\t\t? false\n\t\t\t\t: dropCap,\n\t\t[ `has-text-align-${ align }` ]: align,\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 { SVG, Path } from '@wordpress/primitives';\n\nconst postAuthor = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default postAuthor;\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\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst minimumUsersForCombobox = 25;\n\nconst AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 100,\n};\n\nfunction PostAuthorEdit( {\n\tisSelected,\n\tcontext: { postType, postId, queryId },\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst { authorId, authorDetails, authors } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, getUser, getUsers } =\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\tauthorId: _authorId,\n\t\t\t\tauthorDetails: _authorId ? getUser( _authorId ) : null,\n\t\t\t\tauthors: getUsers( AUTHORS_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst { textAlign, showAvatar, showBio, byline, isLink, linkTarget } =\n\t\tattributes;\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 authorOptions = authors?.length\n\t\t? authors.map( ( { id, name } ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel: name,\n\t\t\t\t};\n\t\t } )\n\t\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 showCombobox = authorOptions.length >= minimumUsersForCombobox;\n\tconst showAuthorControl =\n\t\t!! postId && ! isDescendentOfQueryLoop && authorOptions.length > 0;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ showAuthorControl &&\n\t\t\t\t\t\t( ( showCombobox && (\n\t\t\t\t\t\t\t<ComboboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\t\toptions={ authorOptions }\n\t\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\t\tonChange={ handleSelect }\n\t\t\t\t\t\t\t\tallowReset={ false }\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__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Author' ) }\n\t\t\t\t\t\t\t\tvalue={ authorId }\n\t\t\t\t\t\t\t\toptions={ authorOptions }\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) ) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show avatar' ) }\n\t\t\t\t\t\tchecked={ showAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showAvatar: ! showAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t{ showAvatar && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Avatar size' ) }\n\t\t\t\t\t\t\tvalue={ attributes.avatarSize }\n\t\t\t\t\t\t\toptions={ avatarSizes }\n\t\t\t\t\t\t\tonChange={ ( size ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tavatarSize: Number( size ),\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<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show bio' ) }\n\t\t\t\t\t\tchecked={ showBio }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showBio: ! showBio } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link author name to author page' ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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) }\n\t\t\t\t</PanelBody>\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 && authorDetails?.avatar_urls && (\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={ attributes.avatarSize }\n\t\t\t\t\t\t\tsrc={\n\t\t\t\t\t\t\t\tauthorDetails.avatar_urls[\n\t\t\t\t\t\t\t\t\tattributes.avatarSize\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\talt={ authorDetails.name }\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…' ) }\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 * 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 * 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 * 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 { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\n\nfunction PostAuthorNameEdit( {\n\tcontext: { postType, postId },\n\tattributes: { textAlign, isLink, linkTarget },\n\tsetAttributes,\n} ) {\n\tconst { authorName } = 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\tauthorName: _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 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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to author archive' ) }\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\t{ isLink && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }> { displayAuthor } </div>\n\t\t</>\n\t);\n}\n\nexport default PostAuthorNameEdit;\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 * 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 { SVG, Path } from '@wordpress/primitives';\n\nconst blockDefault = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default blockDefault;\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__nextHasNoMarginBottom\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\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 { 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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst postCommentsCount = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default postCommentsCount;\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';\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 * 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 { useState, useEffect } from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\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 ? (\n\t\t\t\t\tcommentsCount\n\t\t\t\t) : (\n\t\t\t\t\t<Warning>\n\t\t\t\t\t\t{ __( 'Post Comments Count block: post not found.' ) }\n\t\t\t\t\t</Warning>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst postCommentsForm = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default postCommentsForm;\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 * 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 { 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';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\ticon,\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\tAlignmentControl,\n\tBlockControls,\n\tWarning,\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\tif ( ! post ) {\n\t\treturn null;\n\t}\n\n\tconst { link } = post;\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{ link && commentsText !== undefined ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ 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<Warning>\n\t\t\t\t\t\t{ __( 'Post Comments Link block: post not found.' ) }\n\t\t\t\t\t</Warning>\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 { SVG, Path } from '@wordpress/primitives';\n\nconst postContent = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 6h12V4.5H4V6Zm16 4.5H4V9h16v1.5ZM4 15h16v-1.5H4V15Zm0 4.5h16V18H4v1.5Z\" />\n\t</SVG>\n);\n\nexport default postContent;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tWarning,\n} from '@wordpress/block-editor';\nimport {\n\tuseEntityProp,\n\tuseEntityBlockEditor,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nfunction ReadOnlyContent( {\n\tlayoutClassNames,\n\tuserCanEdit,\n\tpostType,\n\tpostId,\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\treturn content?.protected && ! userCanEdit ? (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>{ __( 'This content is password protected.' ) }</Warning>\n\t\t</div>\n\t) : (\n\t\t<div\n\t\t\t{ ...blockProps }\n\t\t\tdangerouslySetInnerHTML={ { __html: content?.rendered } }\n\t\t></div>\n\t);\n}\n\nfunction EditableContent( { context = {} } ) {\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 <div { ...props } />;\n}\n\nfunction Content( props ) {\n\tconst { context: { queryId, postType, postId } = {}, layoutClassNames } =\n\t\tprops;\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\tlayoutClassNames={ layoutClassNames }\n\t\t\tuserCanEdit={ userCanEdit }\n\t\t\tpostType={ postType }\n\t\t\tpostId={ postId }\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\nexport default function PostContentEdit( {\n\tcontext,\n\t__unstableLayoutClassNames: layoutClassNames,\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\treturn (\n\t\t<RecursionProvider uniqueId={ contextPostId }>\n\t\t\t{ contextPostId && contextPostType ? (\n\t\t\t\t<Content\n\t\t\t\t\tcontext={ context }\n\t\t\t\t\tlayoutClassNames={ layoutClassNames }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Placeholder layoutClassNames={ layoutClassNames } />\n\t\t\t) }\n\t\t</RecursionProvider>\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { 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\tuseBlockProps,\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\tPanelBody,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\nexport default function PostDateEdit( {\n\tattributes: { textAlign, format, isLink, displayType },\n\tcontext: { postId, postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t[ `wp-block-post-date__modified-date` ]: displayType === 'modified',\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\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 isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\tconst [ date, setDate ] = useEntityProp(\n\t\t'postType',\n\t\tpostTypeSlug,\n\t\tdisplayType,\n\t\tpostId\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst dateLabel =\n\t\tdisplayType === 'date' ? __( 'Post Date' ) : __( 'Post Modified Date' );\n\n\tlet postDate = date ? (\n\t\t<time dateTime={ dateI18n( 'c', date ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( date )\n\t\t\t\t: dateI18n( format || siteFormat, date ) }\n\t\t</time>\n\t) : (\n\t\tdateLabel\n\t);\n\n\tif ( isLink && date ) {\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\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\t{ date &&\n\t\t\t\t\tdisplayType === 'date' &&\n\t\t\t\t\t! isDescendentOfQueryLoop && (\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\tcurrentDate={ date }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDate }\n\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tdateOrder={\n\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_x( 'dmy', 'date order' )\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\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tonToggle();\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\treturn (\n\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\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</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\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\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display last modified date' ) }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayType: value ? 'modified' : 'date',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchecked={ displayType === 'modified' }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Only shows if the post has been modified'\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\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 * 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\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 { __ } from '@wordpress/i18n';\nimport { postDate } from '@wordpress/icons';\n\nconst variations = [\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: { displayType: 'modified' },\n\t\tscope: [ 'block', 'inserter' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.displayType === 'modified',\n\t\ticon: postDate,\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst postExcerpt = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default postExcerpt;\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 * 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} from '@wordpress/block-editor';\nimport { PanelBody, ToggleControl, RangeControl } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useCanEditEntity } from '../utils/hooks';\n\nconst ELLIPSIS = '…';\n\nexport default function PostExcerptEditor( {\n\tattributes: { textAlign, moreText, showMoreOnNewLine, excerptLength },\n\tsetAttributes,\n\tisSelected,\n\tcontext: { postId, postType, queryId },\n} ) {\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\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={ __( '“Read more” 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<BlockControls>\n\t\t\t\t<AlignmentToolbar\n\t\t\t\t\tvalue={ textAlign }\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/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show link on new line' ) }\n\t\t\t\t\t\tchecked={ showMoreOnNewLine }\n\t\t\t\t\t\tonChange={ ( newShowMoreOnNewLine ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowMoreOnNewLine: newShowMoreOnNewLine,\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<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin=\"10\"\n\t\t\t\t\t\tmax=\"100\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst postFeaturedImage = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default postFeaturedImage;\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 {\n\tuseSettings,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\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';\nconst DEFAULT_SIZE = 'full';\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, sizeSlug },\n\tsetAttributes,\n\tmedia,\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\tconst imageSizes = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().imageSizes,\n\t\t[]\n\t);\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => {\n\t\t\treturn media?.media_details?.sizes?.[ slug ]?.source_url;\n\t\t} )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\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__nextHasNoMarginBottom\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\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\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__nextHasNoMarginBottom\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\t{ !! imageSizeOptions.length && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! sizeSlug }\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { sizeSlug: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tresetAllFilter={ () => ( {\n\t\t\t\t\t\tsizeSlug: undefined,\n\t\t\t\t\t} ) }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\tvalue={ sizeSlug || DEFAULT_SIZE }\n\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\tonChange={ ( nextSizeSlug ) =>\n\t\t\t\t\t\t\tsetAttributes( { sizeSlug: nextSizeSlug } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Select the size of the source image.' ) }\n\t\t\t\t\t/>\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},\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\t__nextHasNoMarginBottom\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 * 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\tMenuItem,\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n\tSpinner,\n\tTextControl,\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} from '@wordpress/block-editor';\nimport { useMemo, useEffect, useState } 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';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction getMediaSourceUrlBySizeSlug( media, slug ) {\n\treturn (\n\t\tmedia?.media_details?.sizes?.[ slug ]?.source_url || media?.source_url\n\t);\n}\n\nconst disabledClickProps = {\n\tonClick: ( event ) => event.preventDefault(),\n\t'aria-disabled': true,\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 { getMedia, 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\tgetMedia( 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 = getMediaSourceUrlBySizeSlug( media, sizeSlug );\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// 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 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<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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: \"Page\".\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\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\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</PanelBody>\n\t\t\t</InspectorControls>\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\n\t\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t\t{ ...disabledClickProps }\n\t\t\t\t\t\t>\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\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>\n\t\t\t\t\t\t<MenuItem onClick={ () => setFeaturedImage( 0 ) }>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MediaReplaceFlow>\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\n\t\t\t\t\t\thref={ postPermalink }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\t{ ...disabledClickProps }\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<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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst next = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default next;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst previous = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default previous;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { next, previous } from '@wordpress/icons';\n\nconst variations = [\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},\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},\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 * 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};\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__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tToggleControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, _x } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\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 isNext = type === 'next';\n\tlet placeholder = isNext ? __( 'Next' ) : __( 'Previous' );\n\n\tconst arrowMap = {\n\t\tnone: '',\n\t\tarrow: isNext ? '→' : '←',\n\t\tchevron: isNext ? '»' : '«',\n\t};\n\n\tconst displayArrow = arrowMap[ arrow ];\n\n\tif ( showTitle ) {\n\t\t/* translators: Label before for next and previous post. There is a space after the colon. */\n\t\tplaceholder = isNext ? __( 'Next: ' ) : __( 'Previous: ' );\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\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display the title as a link' ) }\n\t\t\t\t\t\thelp={ __(\n\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) }\n\t\t\t\t\t\tchecked={ !! showTitle }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowTitle: ! showTitle,\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{ showTitle && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\tchecked={ !! linkLabel }\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\tlinkLabel: ! linkLabel,\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<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Arrow' ) }\n\t\t\t\t\t\tvalue={ arrow }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( { arrow: value } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'A decorative arrow for the next and previous link.'\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<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"none\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'None',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"arrow\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Arrow',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"chevron\"\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Chevron',\n\t\t\t\t\t\t\t\t'Arrow option for Next/Previous link'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\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<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<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\tallowedFormats={ [ 'core/bold', 'core/italic' ] }\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 * 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[ 'core/post-date' ],\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\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 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// We have to build the tax query for the REST API and use as\n\t\t\t\t// keys the taxonomies `rest_base` with the `term ids` as values.\n\t\t\t\tconst builtTaxQuery = Object.entries( taxQuery ).reduce(\n\t\t\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\t\t\tconst taxonomy = taxonomies?.find(\n\t\t\t\t\t\t\t( { slug } ) => slug === taxonomySlug\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( taxonomy?.rest_base ) {\n\t\t\t\t\t\t\taccumulator[ taxonomy?.rest_base ] = 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\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\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\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\tpostType = 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}\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 || postType;\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\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 { 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 { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function PostTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst postCategories = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"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\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default postCategories;\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 * 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} 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\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<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<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\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>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst postTerms = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default postTerms;\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 * 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","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"wordcount\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/components';\n\nexport default (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\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 * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\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 * 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\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n */\nconst AVERAGE_READING_RATE = 189;\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign } = attributes;\n\tconst { postId, postType } = context;\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 minutesToReadString = 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 minutesToRead = Math.max(\n\t\t\t1,\n\t\t\tMath.round(\n\t\t\t\twordCount( content || '', wordCountType ) / AVERAGE_READING_RATE\n\t\t\t)\n\t\t);\n\n\t\treturn sprintf(\n\t\t\t/* translators: %d is the number of minutes the post will take to read. */\n\t\t\t_n( '%d minute', '%d minutes', minutesToRead ),\n\t\t\tminutesToRead\n\t\t);\n\t}, [ contentStructure, blocks ] );\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<div { ...blockProps }>{ minutesToReadString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\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 * 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 { ToggleControl, TextControl, PanelBody } 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';\n\nexport default function PostTitleEdit( {\n\tattributes: { level, 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\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={ { __html: fullTitle?.rendered } }\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={ ! rawTitle.length ? __( 'No Title' ) : null }\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,\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Make title a link' ) }\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\t{ isLink && (\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\t__nextHasNoMarginBottom\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\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\tlinkTarget: value\n\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: '_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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\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</PanelBody>\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst preformatted = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\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.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z\" />\n\t</SVG>\n);\n\nexport default preformatted;\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' ],\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],\n};\n\nexport default transforms;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { preformatted 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\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\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…' ) }\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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst pullquote = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default pullquote;\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 {\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\t__experimentalRole: '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\t__experimentalRole: '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","/**\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","/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { create, join, toHTMLString } from '@wordpress/rich-text';\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\treturn createBlock( 'core/pullquote', {\n\t\t\t\t\tvalue: toHTMLString( {\n\t\t\t\t\t\tvalue: join(\n\t\t\t\t\t\t\tattributes.map( ( { content } ) =>\n\t\t\t\t\t\t\t\tcreate( { html: content } )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t'\\n'\n\t\t\t\t\t\t),\n\t\t\t\t\t} ),\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/heading' ],\n\t\t\ttransform: ( { content, anchor } ) => {\n\t\t\t\treturn createBlock( 'core/pullquote', {\n\t\t\t\t\tvalue: content,\n\t\t\t\t\tanchor,\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: ( { 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 * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pullquote 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\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\nexport const init = () => initBlock( { name, metadata, settings } );\n","export const Figure = 'figure';\n","export const BlockQuote = 'blockquote';\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 { SVG, Path } from '@wordpress/primitives';\n\nconst loop = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default loop;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst settings = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m19 7.5h-7.628c-.3089-.87389-1.1423-1.5-2.122-1.5-.97966 0-1.81309.62611-2.12197 1.5h-2.12803v1.5h2.12803c.30888.87389 1.14231 1.5 2.12197 1.5.9797 0 1.8131-.62611 2.122-1.5h7.628z\" />\n\t\t<Path d=\"m19 15h-2.128c-.3089-.8739-1.1423-1.5-2.122-1.5s-1.8131.6261-2.122 1.5h-7.628v1.5h7.628c.3089.8739 1.1423 1.5 2.122 1.5s1.8131-.6261 2.122-1.5h2.128z\" />\n\t</SVG>\n);\n\nexport default settings;\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 {\n\tcloneBlock,\n\tgetBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\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 enitities 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 *\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\treturn { postTypesTaxonomiesMap, postTypesSelectOptions };\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 } = select( coreStore );\n\t\t\treturn getTaxonomies( {\n\t\t\t\ttype: postType,\n\t\t\t\tper_page: -1,\n\t\t\t} );\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 * 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\tconst activeVariationName = 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)?.name,\n\t\t[ attributes ]\n\t);\n\tconst blockName = `core/query/${ activeVariationName }`;\n\tconst hasActiveVariationPatterns = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! activeVariationName ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\tconst activePatterns = getPatternsByBlockTypes(\n\t\t\t\tblockName,\n\t\t\t\trootClientId\n\t\t\t);\n\t\t\treturn activePatterns.length > 0;\n\t\t},\n\t\t[ clientId, activeVariationName, blockName ]\n\t);\n\treturn hasActiveVariationPatterns ? blockName : 'core/query';\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 * The object returned by useUnsupportedBlocks with info about the type of\n * unsupported blocks present inside the Query block.\n *\n * @typedef {Object} UnsupportedBlocksInfo\n * @property {boolean} hasBlocksFromPlugins True if blocks from plugins are present.\n * @property {boolean} hasPostContentBlock True if a 'core/post-content' block is present.\n * @property {boolean} hasUnsupportedBlocks True if there are any unsupported blocks.\n */\n\n/**\n * Hook that returns an object with information about the unsupported blocks\n * present inside a Query Loop with the given `clientId`. The returned object\n * contains props that are true when a certain type of unsupported block is\n * present.\n *\n * @param {string} clientId The block's client ID.\n * @return {UnsupportedBlocksInfo} The object containing the information.\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\tconst blocks = {};\n\t\t\tgetClientIdsOfDescendants( clientId ).forEach(\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\t\t\t\t\tconst blockInteractivity =\n\t\t\t\t\t\tblockSupportsInteractivity ||\n\t\t\t\t\t\tblockSupportsInteractivityClientNavigation;\n\t\t\t\t\tif ( ! blockInteractivity ) {\n\t\t\t\t\t\tblocks.hasBlocksFromPlugins = true;\n\t\t\t\t\t} else if ( blockName === 'core/post-content' ) {\n\t\t\t\t\t\tblocks.hasPostContentBlock = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\tblocks.hasUnsupportedBlocks =\n\t\t\t\tblocks.hasBlocksFromPlugins || blocks.hasPostContentBlock;\n\t\t\treturn blocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n};\n","/**\n * WordPress dependencies\n */\nimport {\n\tToolbarGroup,\n\tDropdown,\n\tToolbarButton,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { usePatterns } from '../utils';\n\nexport default function QueryToolbar( {\n\tattributes: { query },\n\tsetQuery,\n\topenPatternSelectionModal,\n\tname,\n\tclientId,\n} ) {\n\tconst hasPatterns = !! usePatterns( clientId, name ).length;\n\n\treturn (\n\t\t<>\n\t\t\t{ ! query.inherit && (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tcontentClassName=\"block-library-query-toolbar__popover\"\n\t\t\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\t\tlabel={ __( 'Display settings' ) }\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-query-toolbar__popover-number-control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Items per Page' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tisNaN( value ) ||\n\t\t\t\t\t\t\t\t\t\t\tvalue < 1 ||\n\t\t\t\t\t\t\t\t\t\t\tvalue > 100\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\t\t\tperPage: value,\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\tstep=\"1\"\n\t\t\t\t\t\t\t\t\tvalue={ query.perPage }\n\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-query-toolbar__popover-number-control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Offset' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tisNaN( value ) ||\n\t\t\t\t\t\t\t\t\t\t\tvalue < 0 ||\n\t\t\t\t\t\t\t\t\t\t\tvalue > 100\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetQuery( { offset: value } );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\t\t\tvalue={ query.offset }\n\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t__unstableInputWidth=\"60px\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-query-toolbar__popover-number-control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Max pages to show' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"edge\"\n\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\tif ( isNaN( value ) || value < 0 ) {\n\t\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetQuery( { pages: value } );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\t\t\t\tvalue={ query.pages }\n\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\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\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</ToolbarGroup>\n\t\t\t) }\n\t\t\t{ hasPatterns && (\n\t\t\t\t<ToolbarGroup className=\"wp-block-template-part__block-control-group\">\n\t\t\t\t\t<ToolbarButton onClick={ openPatternSelectionModal }>\n\t\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\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 orderOptions = [\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 → 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 → A' ),\n\t\tvalue: 'title/desc',\n\t},\n];\nfunction OrderControl( { order, orderBy, onChange } ) {\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Order by' ) }\n\t\t\tvalue={ `${ orderBy }/${ order }` }\n\t\t\toptions={ orderOptions }\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 `FormTokenFiels` 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__nextHasNoMarginBottom\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, 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 ]\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\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\t__nextHasNoMarginBottom\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 } from '@wordpress/element';\nimport { useDebounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\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 || taxonomies.length === 0 ) {\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 termIds = taxQuery?.[ taxonomy.slug ] || [];\n\t\t\t\tconst handleChange = ( newTermIds ) =>\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\ttaxQuery: {\n\t\t\t\t\t\t\t...taxQuery,\n\t\t\t\t\t\t\t[ taxonomy.slug ]: newTermIds,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\n\t\t\t\treturn (\n\t\t\t\t\t<TaxonomyItem\n\t\t\t\t\t\tkey={ taxonomy.slug }\n\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\ttermIds={ termIds }\n\t\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\t/>\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 {Function} props.onChange Callback `onChange` function.\n * @return {JSX.Element} The rendered component.\n */\nfunction TaxonomyItem( { taxonomy, termIds, 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'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: termIds,\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, termIds ]\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[ 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={ taxonomy.name }\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__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t/>\n\t\t</div>\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: __( '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__nextHasNoMarginBottom\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'Blog posts can be “stickied”, a feature that places them at the top of the front page of posts, keeping it there until new sticky posts are published.'\n\t\t\t) }\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\tconst fullPageClientSideNavigation =\n\t\twindow.__experimentalFullPageClientSideNavigation;\n\n\tlet help = __( 'Browsing between pages requires a full page reload.' );\n\tif ( fullPageClientSideNavigation ) {\n\t\thelp = __(\n\t\t\t'Experimental full-page client-side navigation setting enabled.'\n\t\t);\n\t} else if ( enhancedPagination ) {\n\t\thelp = __(\n\t\t\t\"Browsing between pages won't require a full page reload, unless non-compatible blocks are detected.\"\n\t\t);\n\t} else if ( hasUnsupportedBlocks ) {\n\t\thelp = __(\n\t\t\t\"Force page reload can't be 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={ __( 'Force page reload' ) }\n\t\t\t\thelp={ help }\n\t\t\t\tchecked={\n\t\t\t\t\t! enhancedPagination && ! fullPageClientSideNavigation\n\t\t\t\t}\n\t\t\t\tdisabled={\n\t\t\t\t\thasUnsupportedBlocks || fullPageClientSideNavigation\n\t\t\t\t}\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 { createInterpolateElement } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nconst CreateNewPostLink = ( { postType } ) => {\n\tconst newPostUrl = addQueryArgs( 'post-new.php', {\n\t\tpost_type: postType,\n\t} );\n\n\tconst addNewItemLabel = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType } = select( coreStore );\n\t\t\treturn getPostType( postType )?.labels?.add_new_item;\n\t\t},\n\t\t[ postType ]\n\t);\n\treturn (\n\t\t<div className=\"wp-block-query__create-new-link\">\n\t\t\t{ createInterpolateElement(\n\t\t\t\t'<a>' + addNewItemLabel + '</a>',\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t{ a: <a href={ newPostUrl } /> }\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default CreateNewPostLink;\n","/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tTextControl,\n\tSelectControl,\n\tRangeControl,\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tNotice,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { debounce } from '@wordpress/compose';\nimport { useEffect, useState, useCallback } 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 StickyControl from './sticky-control';\nimport EnhancedPaginationControl from './enhanced-pagination-control';\nimport CreateNewPostLink from './create-new-post-link';\nimport { unlock } from '../../../lock-unlock';\nimport {\n\tusePostTypes,\n\tuseIsPostTypeHierarchical,\n\tuseAllowedControls,\n\tisControlAllowed,\n\tuseTaxonomies,\n} from '../../utils';\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\n\nconst { BlockInfo } = unlock( blockEditorPrivateApis );\n\nexport default function QueryInspectorControls( props ) {\n\tconst { attributes, setQuery, setDisplayLayout, setAttributes, clientId } =\n\t\tprops;\n\tconst { query, displayLayout, enhancedPagination } = attributes;\n\tconst {\n\t\torder,\n\t\torderBy,\n\t\tauthor: authorIds,\n\t\tpostType,\n\t\tsticky,\n\t\tinherit,\n\t\ttaxQuery,\n\t\tparents,\n\t} = query;\n\tconst allowedControls = useAllowedControls( attributes );\n\tconst [ showSticky, setShowSticky ] = useState( postType === 'post' );\n\tconst { postTypesTaxonomiesMap, postTypesSelectOptions } = usePostTypes();\n\tconst taxonomies = useTaxonomies( postType );\n\tconst isPostTypeHierarchical = useIsPostTypeHierarchical( postType );\n\tuseEffect( () => {\n\t\tsetShowSticky( postType === 'post' );\n\t}, [ 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\tconst updatedTaxQuery = Object.entries( taxQuery || {} ).reduce(\n\t\t\t( accumulator, [ taxonomySlug, terms ] ) => {\n\t\t\t\tif ( supportedTaxonomies.includes( taxonomySlug ) ) {\n\t\t\t\t\taccumulator[ taxonomySlug ] = terms;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tupdateQuery.taxQuery = !! Object.keys( updatedTaxQuery ).length\n\t\t\t? updatedTaxQuery\n\t\t\t: undefined;\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\tsetQuery( updateQuery );\n\t};\n\tconst [ querySearch, setQuerySearch ] = useState( query.search );\n\tconst onChangeDebounced = useCallback(\n\t\tdebounce( () => {\n\t\t\tif ( query.search !== querySearch ) {\n\t\t\t\tsetQuery( { search: querySearch } );\n\t\t\t}\n\t\t}, 250 ),\n\t\t[ querySearch, query.search ]\n\t);\n\tuseEffect( () => {\n\t\tonChangeDebounced();\n\t\treturn onChangeDebounced.cancel;\n\t}, [ querySearch, onChangeDebounced ] );\n\tconst showInheritControl = isControlAllowed( allowedControls, 'inherit' );\n\tconst showPostTypeControl =\n\t\t! inherit && isControlAllowed( allowedControls, 'postType' );\n\tconst postTypeControlLabel = __( 'Content type' );\n\tconst postTypeControlHelp = __(\n\t\t'WordPress contains different types of content you can filter by. Posts and pages are the default types, but plugins could add more.'\n\t);\n\tconst showColumnsControl = false;\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\tshowColumnsControl ||\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 showFiltersPanel =\n\t\tshowTaxControl ||\n\t\tshowAuthorControl ||\n\t\tshowSearchControl ||\n\t\tshowParentControl;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t{ !! postType && (\n\t\t\t\t<BlockInfo>\n\t\t\t\t\t<CreateNewPostLink postType={ postType } />\n\t\t\t\t</BlockInfo>\n\t\t\t) }\n\t\t\t{ showSettingsPanel && (\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ showInheritControl && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Inherit query from template' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Enable to use the global query context that is set with the current template, such as an archive or search. Disable to customize the settings independently.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ !! inherit }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { inherit: !! 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{ showPostTypeControl &&\n\t\t\t\t\t\t( postTypesSelectOptions.length > 2 ? (\n\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\toptions={ postTypesSelectOptions }\n\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tvalue={ postType }\n\t\t\t\t\t\t\t\tlabel={ postTypeControlLabel }\n\t\t\t\t\t\t\t\tonChange={ onPostTypeChange }\n\t\t\t\t\t\t\t\thelp={ postTypeControlHelp }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ postTypesSelectOptions.map( ( option ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tkey={ option.value }\n\t\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\t\tlabel={ option.label }\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) ) }\n\n\t\t\t\t\t{ showColumnsControl && (\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__nextHasNoMarginBottom\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={ displayLayout.columns }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetDisplayLayout( {\n\t\t\t\t\t\t\t\t\t\tcolumns: 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\tmin={ 2 }\n\t\t\t\t\t\t\t\tmax={ Math.max( 6, displayLayout.columns ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ displayLayout.columns > 6 && (\n\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\tstatus=\"warning\"\n\t\t\t\t\t\t\t\t\tisDismissible={ false }\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'This column count exceeds the recommended amount and may cause visual breakage.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Notice>\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{ showOrderControl && (\n\t\t\t\t\t\t<OrderControl\n\t\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\t\tonChange={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showStickyControl && (\n\t\t\t\t\t\t<StickyControl\n\t\t\t\t\t\t\tvalue={ sticky }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { sticky: 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<EnhancedPaginationControl\n\t\t\t\t\t\tenhancedPagination={ enhancedPagination }\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</PanelBody>\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} );\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( terms ) => !! terms.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\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={ () => setQuerySearch( '' ) }\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__nextHasNoMarginBottom\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={ setQuerySearch }\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</ToolsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n}\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 { hasBlocksFromPlugins, hasPostContentBlock, hasUnsupportedBlocks } =\n\t\tuseUnsupportedBlocks( clientId );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tenhancedPagination &&\n\t\t\thasUnsupportedBlocks &&\n\t\t\t! window.__experimentalFullPageClientSideNavigation\n\t\t) {\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\tlet notice = __(\n\t\t'If you still want to prevent full page reloads, remove that block, then disable \"Force page reload\" again in the Query Block settings.'\n\t);\n\tif ( hasBlocksFromPlugins ) {\n\t\tnotice =\n\t\t\t__(\n\t\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\t) +\n\t\t\t' ' +\n\t\t\tnotice;\n\t} else if ( hasPostContentBlock ) {\n\t\tnotice =\n\t\t\t__(\n\t\t\t\t'Currently, avoiding full page reloads is not possible when a Content block is present inside the Query block.'\n\t\t\t) +\n\t\t\t' ' +\n\t\t\tnotice;\n\t}\n\n\treturn (\n\t\tisOpen && (\n\t\t\t<Modal\n\t\t\t\ttitle={ __( 'Query block: Force page reload 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 variant=\"primary\" onClick={ closeModal }>\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 { useSelect, useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport QueryToolbar from './query-toolbar';\nimport QueryInspectorControls from './inspector-controls';\nimport EnhancedPaginationModal from './enhanced-pagination-modal';\n\nconst DEFAULTS_POSTS_PER_PAGE = 3;\n\nconst TEMPLATE = [ [ 'core/post-template' ] ];\nexport default function QueryContent( {\n\tattributes,\n\tsetAttributes,\n\topenPatternSelectionModal,\n\tname,\n\tclientId,\n} ) {\n\tconst {\n\t\tqueryId,\n\t\tquery,\n\t\tdisplayLayout,\n\t\ttagName: TagName = 'div',\n\t\tquery: { inherit } = {},\n\t} = attributes;\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\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\t\tif ( !! Object.keys( newQuery ).length ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateQuery( newQuery );\n\t\t}\n\t}, [ query.perPage, postsPerPage, inherit ] );\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}, [ queryId, instanceId ] );\n\tconst updateQuery = ( newQuery ) =>\n\t\tsetAttributes( { query: { ...query, ...newQuery } } );\n\tconst updateDisplayLayout = ( newDisplayLayout ) =>\n\t\tsetAttributes( {\n\t\t\tdisplayLayout: { ...displayLayout, ...newDisplayLayout },\n\t\t} );\n\tconst htmlElementMessages = {\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t};\n\n\treturn (\n\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\tattributes={ attributes }\n\t\t\t\t\tsetQuery={ updateQuery }\n\t\t\t\t\tsetDisplayLayout={ updateDisplayLayout }\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<BlockControls>\n\t\t\t\t<QueryToolbar\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\tsetQuery={ updateQuery }\n\t\t\t\t\topenPatternSelectionModal={ openPatternSelectionModal }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\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\tvalue={ 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\thelp={ htmlElementMessages[ TagName ] }\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 { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalBlockVariationPicker,\n} from '@wordpress/block-editor';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useScopedBlockVariations, useBlockNameForPatterns } from '../utils';\n\nexport default function QueryPlaceholder( {\n\tattributes,\n\tclientId,\n\tname,\n\topenPatternSelectionModal,\n} ) {\n\tconst [ isStartingBlank, setIsStartingBlank ] = useState( false );\n\tconst blockProps = useBlockProps();\n\tconst blockNameForPatterns = useBlockNameForPatterns(\n\t\tclientId,\n\t\tattributes\n\t);\n\tconst { blockType, activeBlockVariation, hasPatterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\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\thasPatterns: !! getPatternsByBlockTypes(\n\t\t\t\t\tblockNameForPatterns,\n\t\t\t\t\trootClientId\n\t\t\t\t).length,\n\t\t\t};\n\t\t},\n\t\t[ name, blockNameForPatterns, clientId, 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\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<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\tinstructions={ __(\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>\n\t\t\t\t{ !! hasPatterns && (\n\t\t\t\t\t<Button\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<Button\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsStartingBlank( 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</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 * 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 { useState, useMemo } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { Modal, SearchControl } from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\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 default function PatternSelectionModal( {\n\tclientId,\n\tattributes,\n\tsetIsPatternSelectionModalOpen,\n} ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst { replaceBlock, selectBlock } = useDispatch( blockEditorStore );\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\t// When we preview Query Loop blocks we should prefer the current\n\t// block's postType, which is passed through block context.\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 blockNameForPatterns = useBlockNameForPatterns(\n\t\tclientId,\n\t\tattributes\n\t);\n\tconst blockPatterns = usePatterns( clientId, blockNameForPatterns );\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\treturn searchPatterns( blockPatterns, searchValue );\n\t}, [ blockPatterns, searchValue ] );\n\tconst shownBlockPatterns = useAsyncList( filteredBlockPatterns );\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<div className=\"block-library-query-pattern__selection-content\">\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\t__nextHasNoMarginBottom\n\t\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\t\tlabel={ __( 'Search for patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<BlockContextProvider value={ blockPreviewContext }>\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tblockPatterns={ filteredBlockPatterns }\n\t\t\t\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\t\t\t\tonClickPattern={ onBlockPatternSelect }\n\t\t\t\t\t/>\n\t\t\t\t</BlockContextProvider>\n\t\t\t</div>\n\t\t</Modal>\n\t);\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-modal';\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\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 { 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 { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\ttitleDate,\n\ttitleExcerpt,\n\ttitleDateExcerpt,\n\timageDateTitle,\n} from './icons';\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[\n\t\t\t\t'core/post-template',\n\t\t\t\t{},\n\t\t\t\t[ [ 'core/post-title' ], [ 'core/post-date' ] ],\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-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[\n\t\t\t\t\t[ 'core/post-title' ],\n\t\t\t\t\t[ 'core/post-date' ],\n\t\t\t\t\t[ 'core/post-excerpt' ],\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\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\t[ 'core/post-date' ],\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 { 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, ...newQuery } = query;\n\n\tif ( query.categoryIds?.length || query.tagIds?.length ) {\n\t\tnewQuery.taxQuery = {\n\t\t\tcategory: !! query.categoryIds?.length\n\t\t\t\t? query.categoryIds\n\t\t\t\t: undefined,\n\t\t\tpost_tag: !! query.tagIds?.length ? query.tagIds : undefined,\n\t\t};\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 deprecated = [ 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},\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 { 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 { 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 { 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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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 { __, _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__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Show label text' ) }\n\t\t\thelp={ __(\n\t\t\t\t'Toggle off to hide the label text, e.g. \"Next Page\".'\n\t\t\t) }\n\t\t\tonChange={ onChange }\n\t\t\tchecked={ value === true }\n\t\t/>\n\t);\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 { useSelect } from '@wordpress/data';\nimport { PanelBody } 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';\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 blockProps = useBlockProps();\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\t// Always show label text if paginationArrow is set to 'none'.\n\tuseEffect( () => {\n\t\tif ( paginationArrow === 'none' && ! showLabel ) {\n\t\t\tsetAttributes( { showLabel: true } );\n\t\t}\n\t}, [ paginationArrow, setAttributes, showLabel ] );\n\treturn (\n\t\t<>\n\t\t\t{ hasNextPreviousBlocks && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<QueryPaginationArrowControls\n\t\t\t\t\t\t\tvalue={ paginationArrow }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { paginationArrow: value } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ paginationArrow !== 'none' && (\n\t\t\t\t\t\t\t<QueryPaginationLabelControl\n\t\t\t\t\t\t\t\tvalue={ showLabel }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { showLabel: 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</PanelBody>\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 { 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 * 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 { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '→',\n\tchevron: '»',\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 * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport { PanelBody, RangeControl } from '@wordpress/components';\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\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Number of links' ) }\n\t\t\t\t\t\thelp={ __(\n\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) }\n\t\t\t\t\t\tvalue={ midSize }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmidSize: parseInt( value, 10 ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ 5 }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useBlockProps, PlainText } from '@wordpress/block-editor';\n\nconst arrowMap = {\n\tnone: '',\n\tarrow: '←',\n\tchevron: '«',\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 * 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 { ToggleControl, PanelBody } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useArchiveLabel } from './use-archive-label';\n\nconst SUPPORTED_TYPES = [ 'archive', 'search' ];\n\nexport default function QueryTitleEdit( {\n\tattributes: { type, level, textAlign, showPrefix, showSearchTerm },\n\tsetAttributes,\n} ) {\n\tconst { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();\n\n\tconst TagName = `h${ level }`;\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__( '%1$s: %2$s' ),\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: ! showPrefix } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\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\tshowSearchTerm: ! showSearchTerm,\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={ showSearchTerm }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\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: “search term”' )\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\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\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 { __ } 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];\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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst quote = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default quote;\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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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\t__experimentalRole: '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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst verse = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default verse;\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 } = 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} );\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 * WordPress dependencies\n */\nimport { RichText } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/pullquote' ],\n\t\t\ttransform: ( { value, citation, anchor, fontSize, style } ) => {\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\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 tranformation\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/pullquote' ],\n\t\t\tisMatch: ( {}, block ) => {\n\t\t\t\treturn block.innerBlocks.every(\n\t\t\t\t\t( { name } ) => name === 'core/paragraph'\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform: (\n\t\t\t\t{ citation, anchor, fontSize, style },\n\t\t\t\tinnerBlocks\n\t\t\t) => {\n\t\t\t\tconst value = innerBlocks\n\t\t\t\t\t.map( ( { attributes } ) => `${ attributes.content }` )\n\t\t\t\t\t.join( '<br>' );\n\t\t\t\treturn createBlock( 'core/pullquote', {\n\t\t\t\t\tvalue,\n\t\t\t\t\tcitation,\n\t\t\t\t\tanchor,\n\t\t\t\t\tfontSize,\n\t\t\t\t\tstyle,\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/paragraph' ],\n\t\t\ttransform: ( { citation }, innerBlocks ) =>\n\t\t\t\tRichText.isEmpty( citation )\n\t\t\t\t\t? innerBlocks\n\t\t\t\t\t: [\n\t\t\t\t\t\t\t...innerBlocks,\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},\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 { __ } 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ázar',\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 { 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 { SVG, Path } from '@wordpress/primitives';\n\nconst symbol = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default symbol;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"patterns\"];","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } 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} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock, hasOverridableBlocks } =\n\tunlock( 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 setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\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>\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>\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\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\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 { setBlockEditingMode, __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( patternClientId ),\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( blocks ),\n\t\t[ hasPatternOverridesSource, blocks ]\n\t);\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\t// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\tvalue: innerBlocks.length > 0 ? innerBlocks : blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length ? undefined : blocks.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 && (\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 { 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 * WordPress dependencies\n */\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n","/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { ToggleControl, PanelBody } from '@wordpress/components';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ReadMore( {\n\tattributes: { content, linkTarget },\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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</PanelBody>\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={ __( '“Read more” 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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst rss = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default rss;\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 {\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tPlaceholder,\n\tRangeControl,\n\tToggleControl,\n\tToolbarGroup,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { grid, list, edit, rss } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\nimport { prependHTTP } from '@wordpress/url';\nimport ServerSideRender from '@wordpress/server-side-render';\n\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 20;\n\nexport default function RSSEdit( { attributes, setAttributes } ) {\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} = attributes;\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 blockProps = useBlockProps();\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\thideLabelFromVision\n\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL here…' ) }\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: edit,\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of items' ) }\n\t\t\t\t\t\tvalue={ itemsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { itemsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ DEFAULT_MIN_ITEMS }\n\t\t\t\t\t\tmax={ DEFAULT_MAX_ITEMS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display author' ) }\n\t\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayAuthor' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayDate' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'displayExcerpt' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ displayExcerpt && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words in excerpt' ) }\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\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ blockLayout === 'grid' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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={ 6 }\n\t\t\t\t\t\t\trequired\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\t<div { ...blockProps }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/rss\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst search = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default search;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Rect } from '@wordpress/components';\n\nexport const buttonOnly = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect x=\"7\" y=\"10\" width=\"10\" height=\"4\" rx=\"1\" fill=\"currentColor\" />\n\t</SVG>\n);\n\nexport const buttonOutside = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect\n\t\t\tx=\"4.75\"\n\t\t\ty=\"15.25\"\n\t\t\twidth=\"6.5\"\n\t\t\theight=\"9.5\"\n\t\t\ttransform=\"rotate(-90 4.75 15.25)\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t\tfill=\"none\"\n\t\t/>\n\t\t<Rect x=\"16\" y=\"10\" width=\"4\" height=\"4\" rx=\"1\" fill=\"currentColor\" />\n\t</SVG>\n);\n\nexport const buttonInside = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect\n\t\t\tx=\"4.75\"\n\t\t\ty=\"15.25\"\n\t\t\twidth=\"6.5\"\n\t\t\theight=\"14.5\"\n\t\t\ttransform=\"rotate(-90 4.75 15.25)\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t\tfill=\"none\"\n\t\t/>\n\t\t<Rect x=\"14\" y=\"10\" width=\"4\" height=\"4\" rx=\"1\" fill=\"currentColor\" />\n\t</SVG>\n);\n\nexport const noButton = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect\n\t\t\tx=\"4.75\"\n\t\t\ty=\"15.25\"\n\t\t\twidth=\"6.5\"\n\t\t\theight=\"14.5\"\n\t\t\ttransform=\"rotate(-90 4.75 15.25)\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tfill=\"none\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t/>\n\t</SVG>\n);\n\nexport const buttonWithIcon = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect\n\t\t\tx=\"4.75\"\n\t\t\ty=\"7.75\"\n\t\t\twidth=\"14.5\"\n\t\t\theight=\"8.5\"\n\t\t\trx=\"1.25\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tfill=\"none\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t/>\n\t\t<Rect x=\"8\" y=\"11\" width=\"8\" height=\"2\" fill=\"currentColor\" />\n\t</SVG>\n);\n\nexport const toggleLabel = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Rect\n\t\t\tx=\"4.75\"\n\t\t\ty=\"17.25\"\n\t\t\twidth=\"5.5\"\n\t\t\theight=\"14.5\"\n\t\t\ttransform=\"rotate(-90 4.75 17.25)\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tfill=\"none\"\n\t\t\tstrokeWidth=\"1.5\"\n\t\t/>\n\t\t<Rect x=\"4\" y=\"7\" width=\"10\" height=\"2\" fill=\"currentColor\" />\n\t</SVG>\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 * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { search 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\t\tattributes: { buttonText: __( 'Search' ), label: __( 'Search' ) },\n\t\tviewportWidth: 400,\n\t},\n\tvariations,\n\tedit,\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\tuseBlockProps,\n\tBlockControls,\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\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tisPercentageUnit,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\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\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t\tisSearchFieldHidden: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button only' ),\n\t\t\tisActive: buttonPosition === 'button-only',\n\t\t\ticon: buttonOnly,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-only',\n\t\t\t\t\tisSearchFieldHidden: true,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\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? { borderRadius }\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…' )\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? { borderRadius }\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…' ) }\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\n\tconst controls = (\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\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\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={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : 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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 0 : MIN_WIDTH\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tisPercentageUnit( widthUnit ) ? 100 : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstep={ 1 }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 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\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\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: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\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__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\twidthValue === width &&\n\t\t\t\t\t\t\t\t\t\t\twidthUnit === '%'\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\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\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\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{ widthValue }%\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} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : 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\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\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 { topLeft, topRight, bottomLeft, bottomRight } =\n\t\t\t\t\tborderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\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…' ) }\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: `${ width }${ widthUnit }`,\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 * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst separator = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M4.5 12.5v4H3V7h1.5v3.987h15V7H21v9.5h-1.5v-4h-15Z\" />\n\t</SVG>\n);\n\nexport default separator;\n","/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'enter',\n\t\t\tregExp: /^-{3,}$/,\n\t\t\ttransform: () => createBlock( 'core/separator' ),\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};\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};\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { HorizontalRule } from '@wordpress/components';\nimport {\n\tuseBlockProps,\n\tgetColorClassName,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport useDeprecatedOpacity from './use-deprecated-opacity';\n\nexport default function SeparatorEdit( { attributes, setAttributes } ) {\n\tconst { backgroundColor, opacity, style } = 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\n\treturn (\n\t\t<>\n\t\t\t<HorizontalRule\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 * 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 } = 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 <hr { ...useBlockProps.save( { className, style: styles } ) } />;\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst shortcode = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default shortcode;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"autop\"];","/**\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 * 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 * 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…' ) }\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 { SVG, Path } from '@wordpress/primitives';\n\nconst siteLogo = (\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 1.5c4.1 0 7.5 3.4 7.5 7.5v.1c-1.4-.8-3.3-1.7-3.4-1.8-.2-.1-.5-.1-.8.1l-2.9 2.1L9 11.3c-.2-.1-.4 0-.6.1l-3.7 2.2c-.1-.5-.2-1-.2-1.5 0-4.2 3.4-7.6 7.5-7.6zm0 15c-3.1 0-5.7-1.9-6.9-4.5l3.7-2.2 3.5 1.2c.2.1.5 0 .7-.1l2.9-2.1c.8.4 2.5 1.2 3.5 1.9-.9 3.3-3.9 5.8-7.4 5.8z\" />\n\t</SVG>\n);\n\nexport default siteLogo;\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\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\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';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = '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 { 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\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\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\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\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\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\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\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 }\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\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\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { onRemoveLogo, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t>\n\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t</MediaReplaceFlow>\n\t);\n}\n\nconst InspectorLogoPreview = ( { mediaItemData = {}, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = mediaItemData;\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\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={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\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\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\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 ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\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\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} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonRemoveLogo,\n\t};\n\tconst controls = canUserEdit && logoUrl && ! temporaryURL && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\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</>\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 label = __( 'Add a site logo' );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t{ ! canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\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/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopoverProps={ {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && ! logoUrl && (\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-upload-container\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ isLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\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__( 'Add media' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\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/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</PanelBody>\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{ ! temporaryURL && ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\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{ ! temporaryURL && ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\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\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\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 * 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\nconst HEADING_LEVELS = [ 0, 1, 2, 3, 4, 5, 6 ];\n\nexport default function SiteTaglineEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst { textAlign, level } = 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…' ) }\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\toptions={ HEADING_LEVELS }\n\t\t\t\t\tvalue={ level }\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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst mapMarker = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default mapMarker;\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} from '@wordpress/block-editor';\nimport { ToggleControl, PanelBody } from '@wordpress/components';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst HEADING_LEVELS = [ 0, 1, 2, 3, 4, 5, 6 ];\n\nexport default function SiteTitleEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n} ) {\n\tconst { level, 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\n\tfunction setTitle( newTitle ) {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\ttitle: newTitle,\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…' ) }\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<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\toptions={ HEADING_LEVELS }\n\t\t\t\t\tvalue={ level }\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Make title link to home' ) }\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\t{ isLink && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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) }\n\t\t\t\t</PanelBody>\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 { Path, SVG } from '@wordpress/primitives';\n\nconst share = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default share;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst keyboardReturn = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default keyboardReturn;\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 * Internal dependencies\n */\nimport {\n\tAmazonIcon,\n\tBandcampIcon,\n\tBehanceIcon,\n\tBlueskyIcon,\n\tChainIcon,\n\tCodepenIcon,\n\tDeviantArtIcon,\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: 'WordPress',\n\t\ticon: WordPressIcon,\n\t},\n\n\t{\n\t\tname: 'fivehundredpx',\n\t\tattributes: { service: 'fivehundredpx' },\n\t\ttitle: '500px',\n\t\ticon: FivehundredpxIcon,\n\t},\n\t{\n\t\tname: 'amazon',\n\t\tattributes: { service: 'amazon' },\n\t\ttitle: 'Amazon',\n\t\ticon: AmazonIcon,\n\t},\n\t{\n\t\tname: 'bandcamp',\n\t\tattributes: { service: 'bandcamp' },\n\t\ttitle: 'Bandcamp',\n\t\ticon: BandcampIcon,\n\t},\n\t{\n\t\tname: 'behance',\n\t\tattributes: { service: 'behance' },\n\t\ttitle: 'Behance',\n\t\ticon: BehanceIcon,\n\t},\n\t{\n\t\tname: 'bluesky',\n\t\tattributes: { service: 'bluesky' },\n\t\ttitle: 'Bluesky',\n\t\ticon: BlueskyIcon,\n\t},\n\t{\n\t\tname: 'chain',\n\t\tattributes: { service: 'chain' },\n\t\ttitle: 'Link',\n\t\ticon: ChainIcon,\n\t},\n\t{\n\t\tname: 'codepen',\n\t\tattributes: { service: 'codepen' },\n\t\ttitle: 'CodePen',\n\t\ticon: CodepenIcon,\n\t},\n\t{\n\t\tname: 'deviantart',\n\t\tattributes: { service: 'deviantart' },\n\t\ttitle: 'DeviantArt',\n\t\ticon: DeviantArtIcon,\n\t},\n\t{\n\t\tname: 'dribbble',\n\t\tattributes: { service: 'dribbble' },\n\t\ttitle: 'Dribbble',\n\t\ticon: DribbbleIcon,\n\t},\n\t{\n\t\tname: 'dropbox',\n\t\tattributes: { service: 'dropbox' },\n\t\ttitle: 'Dropbox',\n\t\ticon: DropboxIcon,\n\t},\n\t{\n\t\tname: 'etsy',\n\t\tattributes: { service: 'etsy' },\n\t\ttitle: 'Etsy',\n\t\ticon: EtsyIcon,\n\t},\n\t{\n\t\tname: 'facebook',\n\t\tattributes: { service: 'facebook' },\n\t\ttitle: 'Facebook',\n\t\ticon: FacebookIcon,\n\t},\n\t{\n\t\tname: 'feed',\n\t\tattributes: { service: 'feed' },\n\t\ttitle: 'RSS Feed',\n\t\ticon: FeedIcon,\n\t},\n\t{\n\t\tname: 'flickr',\n\t\tattributes: { service: 'flickr' },\n\t\ttitle: 'Flickr',\n\t\ticon: FlickrIcon,\n\t},\n\t{\n\t\tname: 'foursquare',\n\t\tattributes: { service: 'foursquare' },\n\t\ttitle: 'Foursquare',\n\t\ticon: FoursquareIcon,\n\t},\n\t{\n\t\tname: 'goodreads',\n\t\tattributes: { service: 'goodreads' },\n\t\ttitle: 'Goodreads',\n\t\ticon: GoodreadsIcon,\n\t},\n\t{\n\t\tname: 'google',\n\t\tattributes: { service: 'google' },\n\t\ttitle: 'Google',\n\t\ticon: GoogleIcon,\n\t},\n\t{\n\t\tname: 'github',\n\t\tattributes: { service: 'github' },\n\t\ttitle: 'GitHub',\n\t\ticon: GitHubIcon,\n\t},\n\t{\n\t\tname: 'gravatar',\n\t\tattributes: { service: 'gravatar' },\n\t\ttitle: 'Gravatar',\n\t\ticon: GravatarIcon,\n\t},\n\t{\n\t\tname: 'instagram',\n\t\tattributes: { service: 'instagram' },\n\t\ttitle: 'Instagram',\n\t\ticon: InstagramIcon,\n\t},\n\t{\n\t\tname: 'lastfm',\n\t\tattributes: { service: 'lastfm' },\n\t\ttitle: 'Last.fm',\n\t\ticon: LastfmIcon,\n\t},\n\t{\n\t\tname: 'linkedin',\n\t\tattributes: { service: 'linkedin' },\n\t\ttitle: 'LinkedIn',\n\t\ticon: LinkedInIcon,\n\t},\n\t{\n\t\tname: 'mail',\n\t\tattributes: { service: 'mail' },\n\t\ttitle: 'Mail',\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: 'Mastodon',\n\t\ticon: MastodonIcon,\n\t},\n\t{\n\t\tname: 'meetup',\n\t\tattributes: { service: 'meetup' },\n\t\ttitle: 'Meetup',\n\t\ticon: MeetupIcon,\n\t},\n\t{\n\t\tname: 'medium',\n\t\tattributes: { service: 'medium' },\n\t\ttitle: 'Medium',\n\t\ticon: MediumIcon,\n\t},\n\t{\n\t\tname: 'patreon',\n\t\tattributes: { service: 'patreon' },\n\t\ttitle: 'Patreon',\n\t\ticon: PatreonIcon,\n\t},\n\t{\n\t\tname: 'pinterest',\n\t\tattributes: { service: 'pinterest' },\n\t\ttitle: 'Pinterest',\n\t\ticon: PinterestIcon,\n\t},\n\t{\n\t\tname: 'pocket',\n\t\tattributes: { service: 'pocket' },\n\t\ttitle: 'Pocket',\n\t\ticon: PocketIcon,\n\t},\n\t{\n\t\tname: 'reddit',\n\t\tattributes: { service: 'reddit' },\n\t\ttitle: 'Reddit',\n\t\ticon: RedditIcon,\n\t},\n\t{\n\t\tname: 'skype',\n\t\tattributes: { service: 'skype' },\n\t\ttitle: 'Skype',\n\t\ticon: SkypeIcon,\n\t},\n\t{\n\t\tname: 'snapchat',\n\t\tattributes: { service: 'snapchat' },\n\t\ttitle: 'Snapchat',\n\t\ticon: SnapchatIcon,\n\t},\n\t{\n\t\tname: 'soundcloud',\n\t\tattributes: { service: 'soundcloud' },\n\t\ttitle: 'SoundCloud',\n\t\ticon: SoundCloudIcon,\n\t},\n\t{\n\t\tname: 'spotify',\n\t\tattributes: { service: 'spotify' },\n\t\ttitle: 'Spotify',\n\t\ticon: SpotifyIcon,\n\t},\n\t{\n\t\tname: 'telegram',\n\t\tattributes: { service: 'telegram' },\n\t\ttitle: 'Telegram',\n\t\ticon: TelegramIcon,\n\t},\n\t{\n\t\tname: 'threads',\n\t\tattributes: { service: 'threads' },\n\t\ttitle: 'Threads',\n\t\ticon: ThreadsIcon,\n\t},\n\t{\n\t\tname: 'tiktok',\n\t\tattributes: { service: 'tiktok' },\n\t\ttitle: 'TikTok',\n\t\ticon: TiktokIcon,\n\t},\n\t{\n\t\tname: 'tumblr',\n\t\tattributes: { service: 'tumblr' },\n\t\ttitle: 'Tumblr',\n\t\ticon: TumblrIcon,\n\t},\n\t{\n\t\tname: 'twitch',\n\t\tattributes: { service: 'twitch' },\n\t\ttitle: 'Twitch',\n\t\ticon: TwitchIcon,\n\t},\n\t{\n\t\tname: 'twitter',\n\t\tattributes: { service: 'twitter' },\n\t\ttitle: 'Twitter',\n\t\ticon: TwitterIcon,\n\t},\n\t{\n\t\tname: 'vimeo',\n\t\tattributes: { service: 'vimeo' },\n\t\ttitle: 'Vimeo',\n\t\ticon: VimeoIcon,\n\t},\n\t{\n\t\tname: 'vk',\n\t\tattributes: { service: 'vk' },\n\t\ttitle: 'VK',\n\t\ticon: VkIcon,\n\t},\n\t{\n\t\tname: 'whatsapp',\n\t\tattributes: { service: 'whatsapp' },\n\t\ttitle: 'WhatsApp',\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',\n\t\ticon: XIcon,\n\t},\n\t{\n\t\tname: 'yelp',\n\t\tattributes: { service: 'yelp' },\n\t\ttitle: 'Yelp',\n\t\ticon: YelpIcon,\n\t},\n\t{\n\t\tname: 'youtube',\n\t\tattributes: { service: 'youtube' },\n\t\ttitle: 'YouTube',\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 * 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 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 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 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 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 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 32 32\" version=\"1.1\">\n\t\t<Path d=\"M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z\" />\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 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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport {\n\tButton,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\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\t__nextHasNoMarginBottom\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/>\n\t\t\t\t</div>\n\t\t\t\t<Button\n\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\ttype=\"submit\"\n\t\t\t\t/>\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} ) => {\n\tconst { url, service, label = '', rel } = attributes;\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 classes = clsx( 'wp-social-link', 'wp-social-link-' + service, {\n\t\t'wp-social-link__is-incomplete': ! url,\n\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\ticonBackgroundColor,\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 IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\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 blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t\tstyle: {\n\t\t\tcolor: iconColorValue,\n\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\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<li { ...blockProps }>\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"wp-block-social-link-anchor\"\n\t\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\t\tonClick={ () => setPopover( true ) }\n\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t>\n\t\t\t\t\t<IconComponent />\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{ 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 { share 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 variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\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 variations from './variations';\nimport { ChainIcon } from './icons';\n\n/**\n * Retrieves the social service's icon component.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {Component} Icon component for social service.\n */\nexport const getIconBySite = ( name ) => {\n\tconst variation = variations.find( ( v ) => v.name === name );\n\treturn variation ? variation.icon : ChainIcon;\n};\n\n/**\n * Retrieves the display name for the social service.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {string} Display name for social service\n */\nexport const getNameBySite = ( name ) => {\n\tconst variation = variations.find( ( v ) => v.name === name );\n\treturn variation ? variation.title : __( 'Social Icon' );\n};\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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst check = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z\" />\n\t</SVG>\n);\n\nexport default check;\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPanelBody,\n\tToggleControl,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( '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\tcustomIconBackgroundColor,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\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\tconst backgroundBackup = useRef( {} );\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tbackgroundBackup.current = {\n\t\t\t\ticonBackgroundColor,\n\t\t\t\ticonBackgroundColorValue,\n\t\t\t\tcustomIconBackgroundColor,\n\t\t\t};\n\t\t\tsetAttributes( {\n\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( { ...backgroundBackup.current } );\n\t\t}\n\t}, [ logosOnly ] );\n\n\tconst SocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-placeholder\">\n\t\t\t<div className=\"wp-block-social-links__social-placeholder-icons\">\n\t\t\t\t<div className=\"wp-social-link wp-social-link-twitter\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-facebook\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-instagram\"></div>\n\t\t\t</div>\n\t\t</li>\n\t);\n\n\tconst SelectedSocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-prompt\">\n\t\t\t{ __( 'Click plus to add' ) }\n\t\t</li>\n\t);\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\tplaceholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\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<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\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\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: entry.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\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\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\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: ! openInNewTab } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show text' ) }\n\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\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\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},\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 * 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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst resizeCornerNE = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M7 18h4.5v1.5h-7v-7H6V17L17 6h-4.5V4.5h7v7H18V7L7 18Z\" />\n\t</SVG>\n);\n\nexport default resizeCornerNE;\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","export const MIN_SPACER_SIZE = 0;\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\tBaseControl,\n\tPanelBody,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\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';\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\tconst handleOnChange = ( unprocessedValue ) => {\n\t\tonChange( unprocessedValue.all );\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 || spacingSizes?.length === 0 ) && (\n\t\t\t\t<BaseControl label={ label } id={ inputId }>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tid={ inputId }\n\t\t\t\t\t\tisResetValueOnUnitChange\n\t\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\t\t\tvalue={ computedValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t</BaseControl>\n\t\t\t) }\n\n\t\t\t{ spacingSizes?.length > 0 && (\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={ handleOnChange }\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\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t{ orientation === 'horizontal' && (\n\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ orientation !== 'horizontal' && (\n\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\t\tsetAttributes( { height: nextHeight } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\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} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { View } from '@wordpress/primitives';\nimport { useSelect } 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 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\tif (\n\t\t\tisFlexLayout &&\n\t\t\tselfStretch !== 'fill' &&\n\t\t\tselfStretch !== 'fit' &&\n\t\t\t! flexSize\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\tsetAttributes( {\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\tsetAttributes( {\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\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\twidth: undefined,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: undefined,\n\t\t\t\t} );\n\t\t\t}\n\t\t} else if ( ! isFlexLayout && ( selfStretch || flexSize ) ) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\twidth: flexSize,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\theight: flexSize,\n\t\t\t\t} );\n\t\t\t}\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: 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] );\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{ resizableBoxWithOrientation( 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 { 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 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 { 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 { Path, SVG } from '@wordpress/primitives';\n\nconst blockTable = (\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-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\nexport default blockTable;\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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst alignLeft = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 5.5H4V4h9v1.5Zm7 7H4V11h16v1.5Zm-7 7H4V18h9v1.5Z\" />\n\t</SVG>\n);\n\nexport default alignLeft;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst alignCenter = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M7.5 5.5h9V4h-9v1.5Zm-3.5 7h16V11H4v1.5Zm3.5 7h9V18h-9v1.5Z\" />\n\t</SVG>\n);\n\nexport default alignCenter;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst alignRight = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11.111 5.5H20V4h-8.889v1.5ZM4 12.5h16V11H4v1.5Zm7.111 7H20V18h-8.889v1.5Z\" />\n\t</SVG>\n);\n\nexport default alignRight;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableRowBefore = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84zM6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z\" />\n\t</SVG>\n);\n\nexport default tableRowBefore;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableRowAfter = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z\" />\n\t</SVG>\n);\n\nexport default tableRowAfter;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableRowDelete = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z\" />\n\t</SVG>\n);\n\nexport default tableRowDelete;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableColumnBefore = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z\" />\n\t</SVG>\n);\n\nexport default tableColumnBefore;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableColumnAfter = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z\" />\n\t</SVG>\n);\n\nexport default tableColumnAfter;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tableColumnDelete = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z\" />\n\t</SVG>\n);\n\nexport default tableColumnDelete;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst table = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z\" />\n\t</SVG>\n);\n\nexport default table;\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } 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} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPanelBody,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\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';\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,\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\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\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\tfunction onChange( content ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes(\n\t\t\tupdateSelectedCell(\n\t\t\t\tattributes,\n\t\t\t\tselectedCell,\n\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t...cellAttributes,\n\t\t\t\t\tcontent,\n\t\t\t\t} )\n\t\t\t)\n\t\t);\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 ( ! isSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSelected ] );\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(\n\t\t\t\t\t\t(\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: CellTag,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcolumnIndex\n\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t<CellTag\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t{\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\t\t\t\t\t\t\t\t\t'wp-block-table__cell-content'\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<RichText\n\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\t\t\ttype: 'cell',\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\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\t\t\t\t\t\tplaceholder={ placeholder[ name ] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</CellTag>\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 && (\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\thasArrowIndicator\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<PanelBody\n\t\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\t\tclassName=\"blocks-table-settings\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\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</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__nextHasNoMarginBottom\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__nextHasNoMarginBottom\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={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Table caption text' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nexport default TableEdit;\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 { 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' ],\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' ],\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\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} );\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 * 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és',\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\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 { SVG, Path } from '@wordpress/primitives';\n\nconst tableOfContents = (\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=\"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\t/>\n\t\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\nexport default tableOfContents;\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}: {\n\tnestedHeadingList: NestedHeadingData[];\n\tdisableLinkActivation?: boolean;\n\tonClick?: ( event: MouseEvent< HTMLAnchorElement > ) => void;\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\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<ol>\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/>\n\t\t\t\t\t\t\t</ol>\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 * WordPress dependencies\n */\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};\n\nexport const init = () => initBlock( { name, metadata, settings } );\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\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { renderToString } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { tableOfContents as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\nimport { useObserveHeadings } from './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 A 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 {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {Component} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\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, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/table-of-contents/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\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\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\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>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\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 )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\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\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol>\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/>\n\t\t\t\t</ol>\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 fastDeepEqual from 'fast-deep-equal/es6';\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\tgetClientIdsWithDescendants,\n\t\tgetBlocksByName,\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\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\tconst permalink = select( 'core/editor' ).getPermalink() ?? null;\n\n\tconst isPaginated = getBlocksByName( 'core/nextpage' ).length !== 0;\n\tconst { onlyIncludeCurrentPage } = getBlockAttributes( clientId ) ?? {};\n\n\t// Get the client ids of all blocks in the editor.\n\tconst allBlockClientIds = getClientIdsWithDescendants();\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\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__unstableMarkNextChangeAsNotPersistent();\n\t\tupdateBlockAttributes( clientId, { headings } );\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( { attributes: { headings = [] } } ) {\n\tif ( headings.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<nav { ...useBlockProps.save() }>\n\t\t\t<ol>\n\t\t\t\t<TableOfContentsList\n\t\t\t\t\tnestedHeadingList={ linearToNestedHeadingList( headings ) }\n\t\t\t\t/>\n\t\t\t</ol>\n\t\t</nav>\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/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 * 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 * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\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 } ) {\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\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<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default TagCloudEdit;\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 */\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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, 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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\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};\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","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","/**\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","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst symbolFilled = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default symbolFilled;\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","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","/**\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\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\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t/* eslint-disable @wordpress/data-no-store-string-literals */\n\t\t\tconst definedAreas =\n\t\t\t\tselect(\n\t\t\t\t\t'core/editor'\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\t\t\t/* eslint-enable @wordpress/data-no-store-string-literals */\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__nextHasNoMarginBottom\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 { __, 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';\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={ 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 variant=\"primary\" onClick={ onOpenSelectionModal }>\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\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 * 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 { useAsyncList } from '@wordpress/compose';\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 shownTemplateParts = useAsyncList( filteredTemplateParts );\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\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearchValue }\n\t\t\t\t\tvalue={ searchValue }\n\t\t\t\t\tlabel={ __( 'Search for replacements' ) }\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\tshownPatterns={ shownTemplateParts }\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 {\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 { __, _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\t__nextHasNoMarginBottom\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 { useEntityProp } from '@wordpress/core-data';\nimport { SelectControl, TextControl } from '@wordpress/components';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { TemplatePartImportControls } from './import-controls';\n\nconst htmlElementMessages = {\n\theader: __(\n\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t),\n\tmain: __(\n\t\t'The <main> element should be used for the primary content of your document only.'\n\t),\n\tsection: __(\n\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t),\n\tarticle: __(\n\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t),\n\taside: __(\n\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t),\n\tfooter: __(\n\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t),\n};\n\nexport function TemplatePartAdvancedControls( {\n\ttagName,\n\tsetAttributes,\n\tisEntityAvailable,\n\ttemplatePartId,\n\tdefaultWrapper,\n\thasInnerBlocks,\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 definedAreas = useSelect( ( select ) => {\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\treturn select(\n\t\t\t'core/editor'\n\t\t).__experimentalGetDefaultTemplatePartAreas();\n\t}, [] );\n\n\tconst areaOptions = definedAreas.map( ( { label, area: _area } ) => ( {\n\t\tlabel,\n\t\tvalue: _area,\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__nextHasNoMarginBottom\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\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\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<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'HTML element' ) }\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\tvalue={ tagName || '' }\n\t\t\t\tonChange={ ( value ) => setAttributes( { tagName: value } ) }\n\t\t\t\thelp={ htmlElementMessages[ tagName ] }\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 { 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 [ 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\treturn <TagName { ...innerBlocksProps } />;\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',\n\t\t\t\t} ),\n\t\t\t\tcanEditTemplatePart: !! select( coreStore ).canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\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 { 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 { useAsyncList } from '@wordpress/compose';\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\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 canReplace =\n\t\tisEntityAvailable &&\n\t\thasReplacements &&\n\t\t( area === 'header' || area === 'footer' );\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 canReplace =\n\t\tisEntityAvailable &&\n\t\t!! blockPatterns.length &&\n\t\t( area === 'header' || area === 'footer' );\n\tconst shownTemplates = useAsyncList( blockPatterns );\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\tshownPatterns={ shownTemplates }\n\t\t\t\tonClickPattern={ onSelect }\n\t\t\t\tshowTitle={ false }\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\tcanEditTemplate,\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 _canEditTemplate = select( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template_part',\n\t\t\t} );\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\tcanEditTemplate: !! _canEditTemplate,\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\tcanEditTemplate && (\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{ __( '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<InspectorControls group=\"advanced\">\n\t\t\t\t\t<TemplatePartAdvancedControls\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tisEntityAvailable={ isEntityAvailable }\n\t\t\t\t\t\ttemplatePartId={ templatePartId }\n\t\t\t\t\t\tdefaultWrapper={ areaObject.tagName }\n\t\t\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\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 { SVG, Path } from '@wordpress/primitives';\n\nconst header = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default header;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst footer = (\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\td=\"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\t/>\n\t</SVG>\n);\n\nexport default footer;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst sidebar = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default sidebar;\n","/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n\nfunction getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\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 * 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 * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tag = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\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\nexport default tag;\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};\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\tBlockControls,\n\tAlignmentControl,\n} from '@wordpress/block-editor';\n\nexport default function TermDescriptionEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergedStyle,\n} ) {\n\tconst { textAlign } = attributes;\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\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<div className=\"wp-block-term-description__placeholder\">\n\t\t\t\t\t<span>{ __( 'Term Description' ) }</span>\n\t\t\t\t</div>\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/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 { __, 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__nextHasNoMarginBottom\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 * 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 * 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\t__experimentalRole: '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 * 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 { verse 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\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\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\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…' ) }\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 * 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 { Path, SVG } from '@wordpress/primitives';\n\nconst video = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\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\nexport default video;\n","export default function Tracks( { tracks = [] } ) {\n\treturn tracks.map( ( track ) => {\n\t\treturn <track key={ track.src } { ...track } />;\n\t} );\n}\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 * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { ToggleControl, SelectControl } 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\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( { [ attribute ]: newValue } );\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<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\tchecked={ !! autoplay }\n\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\tchecked={ !! loop }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\tchecked={ !! muted }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\tchecked={ !! controls }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\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\tlabel={ __( 'Play inline' ) }\n\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\tchecked={ !! playsInline }\n\t\t\t\thelp={ __(\n\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) }\n\t\t\t/>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tvalue={ preload }\n\t\t\t\tonChange={ onChangePreload }\n\t\t\t\toptions={ options }\n\t\t\t\thideCancelButton\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n","/**\n * WordPress dependencies\n */\nimport { __, 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\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\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 } from '@wordpress/element';\nimport { getFilename } from '@wordpress/url';\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\nfunction TrackList( { tracks, onEditPress } ) {\n\tlet content;\n\tif ( tracks.length === 0 ) {\n\t\tcontent = (\n\t\t\t<p className=\"block-library-video-tracks-editor__tracks-informative-message\">\n\t\t\t\t{ __(\n\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) }\n\t\t\t</p>\n\t\t);\n\t} else {\n\t\tcontent = tracks.map( ( track, index ) => {\n\t\t\treturn (\n\t\t\t\t<HStack\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tclassName=\"block-library-video-tracks-editor__track-list-track\"\n\t\t\t\t>\n\t\t\t\t\t<span>{ track.label } </span>\n\t\t\t\t\t<Button\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__( 'Edit %s' ),\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);\n\t\t} );\n\t}\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( { track, onChange, onClose, onRemove } ) {\n\tconst { src = '', label = '', srcLang = '', kind = DEFAULT_KIND } = track;\n\tconst fileName = src.startsWith( 'blob:' ) ? '' : getFilename( src ) || '';\n\treturn (\n\t\t<NavigableMenu>\n\t\t\t<VStack\n\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor\"\n\t\t\t\tspacing=\"4\"\n\t\t\t>\n\t\t\t\t<span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n\t\t\t\t\t{ __( 'Edit track' ) }\n\t\t\t\t</span>\n\t\t\t\t<span>\n\t\t\t\t\t{ __( 'File' ) }: <b>{ fileName }</b>\n\t\t\t\t</span>\n\t\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-autofocus */\n\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t/* eslint-enable jsx-a11y/no-autofocus */\n\t\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={ __( 'Label' ) }\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\thelp={ __( 'Title of track' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tonChange={ ( newSrcLang ) =>\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\tsrcLang: newSrcLang,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={ __( 'Source language' ) }\n\t\t\t\t\t\tvalue={ srcLang }\n\t\t\t\t\t\thelp={ __( 'Language tag (en, fr, etc.)' ) }\n\t\t\t\t\t/>\n\t\t\t\t</Grid>\n\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tclassName=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n\t\t\t\t\t\toptions={ KIND_OPTIONS }\n\t\t\t\t\t\tvalue={ kind }\n\t\t\t\t\t\tlabel={ __( 'Kind' ) }\n\t\t\t\t\t\tonChange={ ( newKind ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\tkind: newKind,\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<HStack className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst changes = {};\n\t\t\t\t\t\t\t\tlet hasChanges = false;\n\t\t\t\t\t\t\t\tif ( label === '' ) {\n\t\t\t\t\t\t\t\t\tchanges.label = __( 'English' );\n\t\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( srcLang === '' ) {\n\t\t\t\t\t\t\t\t\tchanges.srcLang = 'en';\n\t\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( track.kind === undefined ) {\n\t\t\t\t\t\t\t\t\tchanges.kind = DEFAULT_KIND;\n\t\t\t\t\t\t\t\t\thasChanges = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( hasChanges ) {\n\t\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t\t...track,\n\t\t\t\t\t\t\t\t\t\t...changes,\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\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Close' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Remove track' ) }\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</VStack>\n\t\t</NavigableMenu>\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\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\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tlabel={ __( 'Text tracks' ) }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Text tracks' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\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/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\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<MediaUpload\n\t\t\t\t\t\t\t\t\tonSelect={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\tonChange( [ ...tracks, { src: url } ] );\n\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited( trackIndex );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_TYPES }\n\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ media }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t>\n\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</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\t<MediaUploadCheck>\n\t\t\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst files = event.target.files;\n\t\t\t\t\t\t\t\t\t\t\tconst trackIndex = tracks.length;\n\t\t\t\t\t\t\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\t\t\t\t\t\t\tallowedTypes: ALLOWED_TYPES,\n\t\t\t\t\t\t\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\t\t\t\t\t\t\tonFileChange: ( [\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ 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\tconst newTracks = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks,\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\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! newTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\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) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\n\t\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}\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewTracks[ trackIndex ] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...tracks[ trackIndex ],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc: url,\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\tonChange( newTracks );\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetTrackBeingEdited(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrackIndex\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} }\n\t\t\t\t\t\t\t\t\t\taccept=\".vtt,text/vtt\"\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={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\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\t\t{ __( 'Upload' ) }\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 * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tSpinner,\n\tPlaceholder,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\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 { useUploadMediaFromBlobURL } from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Video' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst posterImageButton = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\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\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\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\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\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/>\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<PanelBody title={ __( 'Settings' ) }>\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<MediaUploadCheck>\n\t\t\t\t\t\t<BaseControl className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={\n\t\t\t\t\t\t\t\t\tVIDEO_POSTER_ALLOWED_MEDIA_TYPES\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tvideoPosterDescription\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{ ! poster\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\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/>\n\t\t\t\t\t\t\t<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t\t\t{ poster\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: poster image URL. */\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'The current poster image url is %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tposter\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'There is no poster image currently selected'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\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\tonClick={ onRemovePoster }\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\t\t{ __( 'Remove' ) }\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</BaseControl>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the video tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t*/ }\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={ isSingleSelected }\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 { 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( '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\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 { __ } from '@wordpress/i18n';\nimport { video 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\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\nexport const init = () => initBlock( { name, metadata, settings } );\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","// 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()).\nvar getRandomValues;\nvar 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. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\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}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","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\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 var uuid = (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]]).toLowerCase(); // 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;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var 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 (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(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';\n\nconst { usesContextKey } = unlock( privateApis );\n\nexport const formatName = 'core/footnote';\n\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} = select( blockEditorStore );\n\t\t\t\tconst parentCoreBlocks = _getBlockParentsByBlockName(\n\t\t\t\t\t_getSelectedBlockClientId(),\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 * 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` }>↩︎</a>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t</ol>\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keyboardShortcuts\"];","/**\n * Internal dependencies\n */\nimport { default as BlockKeyboardShortcuts } from './block-keyboard-shortcuts';\nimport { lock } from './lock-unlock';\n\n/**\n * @private\n */\nexport const privateApis = {};\nlock( privateApis, {\n\tBlockKeyboardShortcuts,\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\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\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}, [] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTransformHeadingAndParagraph( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n","/**\n * WordPress dependencies\n */\nimport {\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n\tsetGroupingBlockName,\n} from '@wordpress/blocks';\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 archives from './archives';\nimport * as avatar from './avatar';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as buttons from './buttons';\nimport * as calendar from './calendar';\nimport * as categories from './categories';\nimport * as classic from './freeform';\nimport * as code from './code';\nimport * as column from './column';\nimport * as columns from './columns';\nimport * as comments from './comments';\nimport * as commentAuthorAvatar from './comment-author-avatar';\nimport * as commentAuthorName from './comment-author-name';\nimport * as commentContent from './comment-content';\nimport * as commentDate from './comment-date';\nimport * as commentEditLink from './comment-edit-link';\nimport * as commentReplyLink from './comment-reply-link';\nimport * as commentTemplate from './comment-template';\nimport * as commentsPaginationPrevious from './comments-pagination-previous';\nimport * as commentsPagination from './comments-pagination';\nimport * as commentsPaginationNext from './comments-pagination-next';\nimport * as commentsPaginationNumbers from './comments-pagination-numbers';\nimport * as commentsTitle from './comments-title';\nimport * as cover from './cover';\nimport * as details from './details';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as form from './form';\nimport * as formInput from './form-input';\nimport * as formSubmitButton from './form-submit-button';\nimport * as formSubmissionNotification from './form-submission-notification';\nimport * as gallery from './gallery';\nimport * as group from './group';\nimport * as heading from './heading';\nimport * as homeLink from './home-link';\nimport * as html from './html';\nimport * as image from './image';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as listItem from './list-item';\nimport * as logInOut from './loginout';\nimport * as mediaText from './media-text';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as navigation from './navigation';\nimport * as navigationLink from './navigation-link';\nimport * as navigationSubmenu from './navigation-submenu';\nimport * as nextpage from './nextpage';\nimport * as pattern from './pattern';\nimport * as pageList from './page-list';\nimport * as pageListItem from './page-list-item';\nimport * as paragraph from './paragraph';\nimport * as postAuthor from './post-author';\nimport * as postAuthorName from './post-author-name';\nimport * as postAuthorBiography from './post-author-biography';\nimport * as postComment from './post-comment';\nimport * as postCommentsCount from './post-comments-count';\nimport * as postCommentsForm from './post-comments-form';\nimport * as postCommentsLink from './post-comments-link';\nimport * as postContent from './post-content';\nimport * as postDate from './post-date';\nimport * as postExcerpt from './post-excerpt';\nimport * as postFeaturedImage from './post-featured-image';\nimport * as postNavigationLink from './post-navigation-link';\nimport * as postTemplate from './post-template';\nimport * as postTerms from './post-terms';\nimport * as postTimeToRead from './post-time-to-read';\nimport * as postTitle from './post-title';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as query from './query';\nimport * as queryNoResults from './query-no-results';\nimport * as queryPagination from './query-pagination';\nimport * as queryPaginationNext from './query-pagination-next';\nimport * as queryPaginationNumbers from './query-pagination-numbers';\nimport * as queryPaginationPrevious from './query-pagination-previous';\nimport * as queryTitle from './query-title';\nimport * as quote from './quote';\nimport * as reusableBlock from './block';\nimport * as readMore from './read-more';\nimport * as rss from './rss';\nimport * as search from './search';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as siteLogo from './site-logo';\nimport * as siteTagline from './site-tagline';\nimport * as siteTitle from './site-title';\nimport * as socialLink from './social-link';\nimport * as socialLinks from './social-links';\nimport * as spacer from './spacer';\nimport * as table from './table';\nimport * as tableOfContents from './table-of-contents';\nimport * as tagCloud from './tag-cloud';\nimport * as templatePart from './template-part';\nimport * as termDescription from './term-description';\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';\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 — 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\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\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\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\ttermDescription,\n\t\tqueryTitle,\n\t\tpostAuthorBiography,\n\t];\n\tif ( window?.__experimentalEnableFormBlocks ) {\n\t\tblocks.push( form );\n\t\tblocks.push( formInput );\n\t\tblocks.push( formSubmitButton );\n\t\tblocks.push( formSubmissionNotification );\n\t}\n\n\t// When in a WordPress context, conditionally\n\t// add the classic block and TinyMCE editor\n\t// under any of the following conditions:\n\t// - the current post contains a classic block\n\t// - the experiment to disable TinyMCE isn't active.\n\t// - a query argument specifies that TinyMCE should be loaded\n\tif (\n\t\twindow?.wp?.oldEditor &&\n\t\t( window?.wp?.needsClassicBlock ||\n\t\t\t! window?.__experimentalDisableTinymce ||\n\t\t\t!! new URLSearchParams( window?.location?.search ).get(\n\t\t\t\t'requiresTinymce'\n\t\t\t) )\n\t) {\n\t\tblocks.push( classic );\n\t}\n\n\treturn blocks.filter( Boolean );\n};\n\n/**\n * Function to get all the core blocks in an array.\n *\n * @example\n * ```js\n * import { __experimentalGetCoreBlocks } from '@wordpress/block-library';\n *\n * const coreBlocks = __experimentalGetCoreBlocks();\n * ```\n */\nexport const __experimentalGetCoreBlocks = () =>\n\tgetAllBlocks().filter(\n\t\t( { metadata } ) => ! isBlockMetadataExperimental( metadata )\n\t);\n\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @param {Array} blocks An optional array of the core blocks being registered.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\nexport const registerCoreBlocks = (\n\tblocks = __experimentalGetCoreBlocks()\n) => {\n\tblocks.forEach( ( { init } ) => init() );\n\n\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"],"names":["module","exports","equal","a","b","constructor","length","i","keys","Array","isArray","Map","size","entries","has","get","Set","ArrayBuffer","isView","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","key","characterMap","chars","join","allAccents","firstAccent","matcher","match","removeAccents","string","replace","remove","metadata","__experimental","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","defineProperty","enumerable","obj","prop","r","Symbol","toStringTag","value","window","_jsx","SVG","viewBox","xmlns","children","Path","fillRule","clipRule","initBlock","block","settings","name","registerBlockType","$schema","apiVersion","title","category","description","textdomain","attributes","displayAsDropdown","type","showLabel","showPostCounts","supports","align","html","spacing","margin","padding","__experimentalDefaultControls","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","editorStyle","icon","example","edit","setAttributes","_jsxs","_Fragment","InspectorControls","PanelBody","__","ToggleControl","__nextHasNoMarginBottom","label","checked","onChange","SelectControl","options","useBlockProps","Disabled","ServerSideRender","skipBlockSupportAttributes","init","e","t","f","arguments","getAvatarSizes","sizes","minSize","maxSize","Math","floor","useDefaultAvatar","avatarURL","defaultAvatarUrl","useSelect","select","getSettings","blockEditorStore","__experimentalDiscussionSettings","AUTHORS_QUERY","who","per_page","_fields","context","filteredAuthorsList","setFilteredAuthorsList","useState","authorsList","getUsers","coreStore","map","author","id","ComboboxControl","help","onFilterValueChange","inputValue","filter","option","toLowerCase","startsWith","AvatarInspectorControls","avatar","selectUser","RangeControl","__next40pxDefaultSize","newSize","min","max","initialPosition","isLink","linkTarget","UserControl","userId","ResizableAvatar","blockProps","isSelected","borderProps","useBorderProps","doubledSizedSrc","addQueryArgs","removeQueryArgs","src","s","ResizableBox","width","height","showHandle","onResizeStop","event","direction","elt","delta","parseInt","lockAspectRatio","enable","top","right","isRTL","bottom","left","minWidth","maxWidth","alt","className","clsx","style","CommentEdit","commentId","avatars","useEntityProp","authorName","avatarUrls","values","defaultAvatar","sprintf","useCommentAvatar","href","onClick","preventDefault","UserEdit","postId","postType","authorDetails","getEditedEntityRecord","getUser","_authorId","avatar_urls","useUserAvatar","usesContext","alignWide","__experimentalBorder","__experimentalSkipSerialization","radius","color","text","background","__experimentalDuotone","selectors","border","props","selector","attribute","caption","autoplay","loop","preload","save","controls","autoPlay","RichText","isEmpty","Content","tagName","memize","fn","head","tail","memoized","args","node","len","searchCache","next","prev","val","apply","clear","ASPECT_RATIOS","ratio","WP_EMBED_TYPE","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","DEFAULT_EMBED_BLOCK","url","__experimentalRole","providerNameSlug","allowResponsive","responsive","previewable","kebabCase","componentsPrivateApis","isFromWordPress","includes","createUpgradedEmbedBlock","attributesFromPreview","preview","restAttributes","getBlockType","matchedBlock","getBlockVariations","find","patterns","matchesPatterns","some","pattern","findMoreSuitableBlock","isCurrentBlockWP","createBlock","wpVariation","removeAspectRatioClasses","existingClassNames","aspectRatioClassNames","reduce","accumulator","push","outputClassNames","trim","getClassNames","previewDocument","document","implementation","createHTMLDocument","body","innerHTML","iframe","querySelector","aspectRatio","toFixed","ratioIndex","potentialRatio","getAttributesFromPreview","memoize","currentClassNames","isResponsive","provider_name","providerName","useCanEditEntity","kind","recordId","canUser","useUploadMediaFromBlobURL","latestArgs","useRef","hasUploadStarted","useLayoutEffect","current","useEffect","isBlobURL","file","getBlobByURL","allowedTypes","onError","mediaUpload","filesList","onFileChange","media","revokeBlobURL","message","useToolsPanelDropdownMenuProps","useViewportMatch","popoverProps","placement","offset","Caption","attributeKey","insertBlocksAfter","placeholder","showToolbarButton","excludeElementClassName","readOnly","addLabel","removeLabel","captionIcon","prevCaption","usePrevious","PrivateRichText","blockEditorPrivateApis","isCaptionEmpty","isPrevCaptionEmpty","showCaption","setShowCaption","ref","useCallback","focus","BlockControls","group","ToolbarButton","isPressed","identifier","__experimentalGetElementClassName","inlineToolbar","__unstableOnSplitAtEnd","getDefaultBlockName","ALLOWED_MEDIA_TYPES","from","isMatch","files","indexOf","transform","blob","createBlobURL","tag","shortcode","named","mp3","m4a","ogg","wav","wma","keywords","anchor","viewportWidth","transforms","deprecated","onReplace","isSingleSelected","temporaryURL","setTemporaryURL","toggleAttribute","newValue","onSelectURL","newSrc","embedBlock","onSelectAudio","onUploadError","createErrorNotice","useDispatch","noticesStore","classes","MediaReplaceFlow","mediaId","mediaURL","accept","onSelect","_x","isDisabled","Spinner","MediaPlaceholder","BlockIcon","cleanEmptyObject","fontFamily","split","pop","migrateBorderRadius","borderRadius","newAttributes","oldBorderRadius","possibleBorderRadius","migrateCustomColorsAndGradients","customTextColor","customBackgroundColor","customGradient","gradient","oldColorsMigration","textColor","blockAttributes","v11","rel","backgroundColor","gradients","reusable","__experimentalSelector","getBorderClassesAndStyles","colorProps","getColorClassesAndStyles","spacingProps","getSpacingClassesAndStyles","buttonClasses","buttonStyle","wrapperClasses","target","v10","migrate","migrateFontFamily","isEligible","compose","otherAttributes","textClass","getColorClassName","backgroundClass","gradientClass","__experimentalGetGradientClass","default","newClassName","NEW_TAB_REL","NEW_TAB_TARGET","NOFOLLOW_REL","removeAnchorTag","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","WidthPanel","selectedWidth","ButtonGroup","widthValue","Button","variant","newWidth","parent","textAlign","splitting","__experimentalWritingMode","shadow","styles","isDefault","mergeBlocks","clientId","TagName","popoverAnchor","setPopoverAnchor","useColorProps","useSpacingProps","shadowProps","useShadowProps","richTextRef","useMergeRefs","onKeyDown","isKeyboardEvent","primary","startEditing","primaryShift","unlink","blockEditingMode","useBlockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","nofollow","isLinkTag","linkValue","useMemo","useEnterRef","replaceBlocks","selectionChange","getBlock","getBlockRootClientId","getBlockIndex","propsRef","useRefEffect","element","defaultPrevented","keyCode","ENTER","content","topParentListBlock","blockIndex","cloneBlock","innerBlocks","slice","middle","after","addEventListener","removeEventListener","useEnter","mergedRef","lockUrlControls","blockBindingsSource","blocksStore","getBlockBindingsSource","bindings","canUserEditValue","withoutInteractiveFormatting","onMerge","AlignmentControl","nextAlign","link","shortcut","displayShortcut","linkOff","isActive","Popover","onClose","focusOnMount","__unstableSlotName","shift","newURL","newOpensInNewTab","newNofollow","newLinkTarget","updatedRel","relRegex","prependHTTP","getUpdatedLinkAttributes","onRemove","forceIsEditingLink","TextControl","newRel","isButtonTag","buttonType","getShadowClassesAndStyles","merge","migrateWithLayout","layout","contentJustification","orientation","updatedAttributes","assign","justifyContent","__experimentalExposeControlsToChildren","blockGap","InnerBlocks","getTransformedMetadata","newBlockName","bindingsCallback","transformSupportedProps","renaming","newMetadata","isMultiBlock","blocks","buttons","createElement","innerText","getAttribute","contentBinding","paragraphs","every","links","querySelectorAll","DEFAULT_BLOCK","attributesToCopy","allowedBlocks","allowSwitching","allowInheriting","_layout$orientation","hasButtonVariations","innerBlocksProps","useInnerBlocksProps","defaultBlock","directInsert","template","templateInsertUpdatesSelection","getYearMonth","date","dateObj","Date","year","getFullYear","month","getMonth","to","hasPosts","hasPostsResolved","getEntityRecords","hasFinishedResolution","singlePublishedPostQuery","status","posts","postsResolved","_date","editorSelectors","getEditedPostAttribute","Placeholder","showHierarchy","showOnlyTopLevel","showEmpty","CategoriesEdit","selectId","useInstanceId","query","hide_empty","records","categories","isResolving","useEntityRecords","getCategoriesList","parentId","attributeName","renderCategoryName","decodeEntities","renderCategoryListItem","childCategories","count","childCategory","renderCategoryDropdownItem","level","pin","renderCategoryDropdown","categoriesList","VisuallyHidden","as","htmlFor","ConvertToBlocksButton","rawHandler","HTML","serialize","ModalAuxiliaryActions","isModalFullScreen","fullscreen","ClassicEdit","store","baseURL","suffix","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","setup","editor","on","doc","getDoc","forEach","css","styleEl","appendChild","ModalEdit","isOpen","setOpen","setIsModalFullScreen","ToolbarGroup","RawHTML","Modal","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","headerActions","defaultValue","Flex","justify","expanded","FlexItem","getContent","getMultiSelectedBlockClientIds","didMount","setContent","onSetup","bookmark","selection","getBookmark","scrollContainer","scrollPosition","scrollTop","once","moveToBookmark","debouncedOnChange","debounce","_lastChange","cancel","stopPropagation","BACKSPACE","DELETE","getBody","childNodes","test","textContent","isTmceEmpty","stopImmediatePropagation","altKey","F10","rootNode","ownerDocument","activeElement","blur","inline","content_css","fixed_toolbar_container","onReadyStateChange","readyState","nativeEvent","customClassName","canRemove","canRemoveBlock","isIframed","setIsIframed","escapeOpeningSquareBrackets","escapeProtocolInIsolatedUrls","regExp","toHTMLString","create","nodeName","firstChild","schema","pre","code","__unstablePreserveWhiteSpace","attributesToMerge","preserveWhiteSpace","__unstablePastePlainText","__unstableOnSplitAtDoubleLineEnd","pipe","verticalAlignment","isFinite","flexBasis","ColumnInspectorControls","availableUnits","useSettings","units","useCustomUnits","UnitControl","labelPosition","__unstableInputWidth","nextWidth","parseFloat","templateLock","__experimentalOnEnter","heading","button","columnsIds","hasChildBlocks","rootClientId","getBlockOrder","rootId","updateBlockAttributes","widthWithUnit","Number","columnsCount","currentColumnPosition","renderAppender","ButtonBlockAppender","BlockVerticalAlignmentToolbar","endsWith","multiplier","round","getDeprecatedLayoutColumn","originalContent","columnMatch","classListItem","classList","isStackedOnMobile","columns","innerBlock","migratedInnerBlocks","columnIndex","columnBlocks","ignoredColumns","toWidthPrecision","unitlessValue","getEffectiveColumnWidth","totalBlockCount","getRedistributedColumnWidths","availableWidth","totalWidth","sum","getTotalColumnsWidth","fromEntries","getColumnWidths","getMappedColumnWidths","widths","canInsertColumnBlock","minCount","canInsertBlockType","getBlocks","getBlockCount","preventRemovalBlockIndexes","acc","index","replaceInnerBlocks","previousColumns","newColumns","hasExplicitWidths","blockWidth","isAddingColumn","newColumnWidth","newlyAddedColumns","updateColumns","Notice","isDismissible","ColumnsEditContainer","registry","useRegistry","newVerticalAlignment","innerBlockClientIds","batch","blockType","defaultVariation","variations","getDefaultBlockVariation","__experimentalBlockVariationPicker","instructions","nextVariation","createBlocksFromInnerBlocksTemplate","allowSkip","scope","__experimentalConvert","columnWidth","innerBlocksTemplate","selectedBlocksLength","priority","mediaAlt","mediaPosition","mediaSizeSlug","sizeSlug","mediaType","mediaUrl","mediaWidth","linkClass","linkDestination","reverse","ungroup","flatMap","__experimentalDefault","sides","allowEditing","flexWrap","Component","Tag","newClasses","cls","newBlockProps","CommentsInspectorControls","htmlElementMessages","section","aside","CommentsFormPlaceholder","instanceId","noValidate","onSubmit","cols","rows","CommentsForm","commentStatus","setCommentStatus","isSiteEditor","defaultCommentStatus","postTypeSupportsComments","getPostType","comments","actions","Warning","PostCommentsPlaceholder","postTitle","inert","loading","dateTime","createInterpolateElement","CommentsLegacy","legacy","TEMPLATE","ancestor","inserter","maxSizeBuffer","inspectorControls","resizableAvatar","Circle","cx","cy","v1","displayName","getEntityRecord","comment","author_name","_user$name","user","blockControls","newAlign","displayAuthor","rendered","format","siteFormat","getDateSettings","formats","DateFormatPicker","defaultFormat","nextFormat","commentDate","dateI18n","humanTimeDiff","CommentTemplateInnerBlocks","activeCommentId","setActiveCommentId","firstCommentId","MemoizedCommentTemplatePreview","isHidden","CommentsList","memo","CommentTemplatePreview","blockPreviewProps","useBlockPreview","handleOnClick","display","tabIndex","role","onKeyPress","BlockContextProvider","commentOrder","threadCommentsDepth","threadComments","commentsPerPage","pageComments","commentQuery","useCommentQueryArgs","queryArgs","order","_embed","defaultCommentsPage","defaultPage","perPage","page","useDefaultPageIndex","defaultPages","setDefaultPages","apiFetch","path","post","method","parse","then","res","pages","headers","topLevelComments","commentTree","_embedded","child","useCommentTree","getCommentsPlaceholder","commentsDepth","buildChildrenComment","commentsLevel","placeholderComments","arrowMap","none","arrow","chevron","paginationArrow","displayArrow","PlainText","__experimentalVersion","newLabel","CommentsPaginationArrowControls","ToggleGroupControl","isBlock","ToggleGroupControlOption","providesContext","hasNextPreviousBlocks","PaginationItem","extraClass","showPostTitle","showCommentsCount","singleCommentLabel","multipleCommentsLabel","oldAttributes","commentsCount","setCommentsCount","rawTitle","nestedCommentsNumber","topLevelCommentsNumber","commentsNumber","currentPostId","catch","HeadingLevelDropdown","newLevel","_n","POSITION_CLASSNAMES","center","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","COVER_MIN_HEIGHT","DEFAULT_FOCAL_POINT","x","y","dimRatioToClass","isContentPositionCenter","contentPosition","getPositionClassName","backgroundImageStyles","backgroundImage","dimRatioToClassV1","migrateDimRatio","dimRatio","migrateTag","hasParallax","overlayColor","customOverlayColor","backgroundType","focalPoint","v8ToV11BlockAttributes","isRepeated","minHeight","minHeightUnit","isDark","enum","v12BlockAttributes","useFeaturedImage","v7toV11BlockSupports","v12BlockSupports","enableContrastChecker","allowJustification","v13","minHeightProp","overlayColorClass","isImageBackground","isVideoBackground","isImgElement","bgStyle","objectPosition","backgroundPosition","imgClasses","gradientValue","muted","playsInline","v12","isUserOverlayColor","v9","v8","v7","v6","videoStyle","positionValue","v5","v4","v3","contentAlign","newAttribs","v2","CoverHeightInput","onUnitChange","unit","inputId","isPx","defaultValues","px","em","rem","vw","vh","computedValue","parsedQuantity","parseQuantityAndUnitFromRawValue","isResetValueOnUnitChange","unprocessedValue","isNaN","CoverInspectorControls","setOverlayColor","coverRef","currentSettings","updateDimRatio","onClearMedia","mediaElement","setGradient","__experimentalUseGradient","showFocalPointPicker","imperativeFocalPointPreview","styleOfRef","property","colorGradientSettings","useMultipleOriginColorsAndGradients","header","main","article","footer","toggleParallax","toggleIsRepeated","FocalPointPicker","onDragStart","onDrag","newFocalPoint","TextareaControl","newAlt","ExternalLink","PanelRow","hasColorsOrGradients","ColorGradientSettingsDropdown","__experimentalIsRenderedInSidebar","colorValue","onColorChange","onGradientChange","isShownByDefault","resetAllFilter","clearable","panelId","ToolsPanelItem","hasValue","onDeselect","newDimRatio","step","required","dimensions","newMinHeight","nextUnit","CoverBlockControls","onSelectMedia","toggleUseFeaturedImage","hasInnerBlocks","prevMinHeightValue","setPrevMinHeightValue","prevMinHeightUnit","setPrevMinHeightUnit","isMinFullHeight","BlockAlignmentMatrixControl","nextPosition","FullHeightAlignmentControl","onToggle","toggleMinFullHeight","onToggleFeaturedImage","CoverPlaceholder","disableMediaButtons","labels","RESIZABLE_BOX_ENABLE_OPTION","topRight","bottomRight","bottomLeft","topLeft","ResizableBoxPopover","ResizableCoverPopover","onResize","onResizeStart","isResizing","setIsResizing","resizableBoxProps","_event","_direction","clientHeight","__experimentalShowTooltip","__experimentalTooltipProps","axis","position","isVisible","grad","turn","rad","PI","pow","u","g","h","v","l","c","p","m","exec","substr","object","N","M","H","$","j","this","parsed","rgba","isValid","brightness","isLight","toHex","toRgb","toRgbString","toHsl","toHslString","toHsv","invert","w","saturate","desaturate","grayscale","lighten","darken","rotate","hue","alpha","isEqual","S","num","str","arrayToHex","arr","isIgnoredColor","data","ignoredColor","isIgnoredColorAsNumbers","isIgnoredRGBColor","isIgnoredRGBAColor","redIgnored","greenIgnored","blueIgnored","alphaIgnored","threshold","alphaData","alphaInRange","inRange","isIgnoredRGBAColorWithThreshold","colorComponent","ignoredColorComponent","dominantAlgorithm","colorHash","red","green","blue","redTotal","greenTotal","blueTotal","alphaTotal","defaultColor","simpleAlgorithm","sqrtAlgorithm","sqrt","getDefaultColor","getOption","getSrc","resource","HTMLCanvasElement","isInstanceOfHTMLCanvasElement","OffscreenCanvas","isInstanceOfOffscreenCanvas","ImageBitmap","isInstanceOfImageBitmap","isInstanceOfHTMLImageElement","HTMLImageElement","isWebWorkers","ERROR_PREFIX","outputError","silent","error","console","getError","Error","FastAverageColor","canvas","ctx","getColorAsync","Promise","reject","Image","img","crossOrigin","bindImageEvents","complete","result","getColor","resolve","prepareResult","originalSize","factor","srcLeft","srcTop","srcWidth","srcHeight","destWidth","destHeight","mode","prepareSizeAndPosition","naturalWidth","naturalHeight","search","HTMLVideoElement","isInstanceOfHTMLVideoElement","videoWidth","videoHeight","getOriginalSize","concat","getContext","clearRect","drawImage","bitmapData","getImageData","getColorFromArray4","arrLength","algorithm","rgb","isDarkColor","hex","hexa","destroy","_this","onload","unbindEvents","onerror","onabort","extend","white","bisque","cadetblue","chartreuse","chocolate","coral","antiquewhite","aqua","azure","whitesmoke","papayawhip","plum","blanchedalmond","black","gold","goldenrod","gainsboro","cornsilk","cornflowerblue","burlywood","aquamarine","beige","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkkhaki","darkgray","darkgreen","darkgrey","peachpuff","darkmagenta","darkred","darkorchid","darkorange","darkslateblue","gray","darkslategray","darkslategrey","deeppink","deepskyblue","wheat","firebrick","floralwhite","ghostwhite","darkviolet","magenta","dodgerblue","grey","honeydew","hotpink","blueviolet","forestgreen","lawngreen","indianred","indigo","fuchsia","brown","maroon","mediumblue","lightcoral","darkturquoise","lightcyan","ivory","lightyellow","lightsalmon","lightseagreen","linen","mediumaquamarine","lemonchiffon","lime","khaki","mediumseagreen","limegreen","mediumspringgreen","lightskyblue","lightblue","midnightblue","lightpink","mistyrose","moccasin","mintcream","lightslategray","lightslategrey","navajowhite","navy","mediumvioletred","powderblue","palegoldenrod","oldlace","paleturquoise","mediumturquoise","mediumorchid","rebeccapurple","lightsteelblue","mediumslateblue","thistle","tan","orchid","mediumpurple","purple","pink","skyblue","springgreen","palegreen","yellow","slateblue","lavenderblush","peru","palevioletred","violet","teal","slategray","slategrey","aliceblue","darkseagreen","darkolivegreen","greenyellow","seagreen","seashell","tomato","silver","sienna","lavender","lightgreen","orange","orangered","steelblue","royalblue","turquoise","yellowgreen","salmon","saddlebrown","sandybrown","rosybrown","darksalmon","lightgoldenrodyellow","snow","lightgrey","lightgray","dimgray","dimgrey","olivedrab","olive","toName","closest","DEFAULT_BACKGROUND_COLOR","retrieveFastAverageColor","fastAverageColor","getMediaColor","async","colord","imgCrossOrigin","applyFilters","process","compositeIsDark","overlay","composite","dest","withColors","toggleSelection","originalUrl","originalBackgroundType","featuredImage","__unstableMarkNextChangeAsNotPersistent","getMedia","source_url","averageBackgroundColor","newOverlayColor","newIsDark","replaceAll","mediaAttributes","getBlobTypeByURL","media_type","attributesFromMedia","newMedia","isImage","onSetOverlayColor","isUploadingMedia","isTemporaryMedia","resizeListener","useResizeObserver","resizableBoxDimensions","minHeightWithUnit","mediaStyle","hasBackground","fontSizes","getInnerBlocksTemplate","dropZoneElement","newUseFeaturedImage","resizableCoverProps","ColorPalette","disableCustomColors","showOverlay","class","withIllustration","duotone","parentAttributes","attributesWithoutBackgroundColors","transformedColorAttributes","groupAttributes","cover","showContent","summary","open","__experimentalCaptureToolbars","hasSelection","isBlockSelected","hasSelectedInnerBlock","allowedFormats","newSummary","getResponsiveHelp","EmbedControls","blockSupportsResponsive","showEditButton","themeSupportsResponsive","toggleResponsive","switchBackToURLInput","embedContentIcon","embedAudioIcon","embedPhotoIcon","embedVideoIcon","embedTwitterIcon","foreground","G","embedYouTubeIcon","embedFacebookIcon","embedInstagramIcon","embedWordPressIcon","embedSpotifyIcon","embedFlickrIcon","embedVimeoIcon","embedRedditIcon","embedTumblrIcon","embedAmazonIcon","embedAnimotoIcon","fill","embedDailymotionIcon","embedPinterestIcon","version","embedWolframIcon","embedPocketCastsIcon","embedBlueskyIcon","EmbedLoading","EmbedPlaceholder","cannotEmbed","fallback","tryAgain","showColors","VStack","HStack","attributeMap","frameborder","marginheight","marginwidth","WpEmbedPreview","DOMParser","parseFromString","iframeProps","defaultView","resizeWPembeds","secret","useFocusableIframe","EmbedPreview","super","hideOverlay","bind","state","interactive","getDerivedStateFromProps","nextProps","setState","render","onCaptionChange","scripts","photo","imageUrl","thumbnail_url","photoPreview","renderToString","getPhotoHtml","embedSourceUrl","getAuthority","iframeTitle","sandboxClassnames","embedWrapper","SandBox","onFocus","onMouseUp","EMBED_BLOCK","getTitle","variation","variationAttributes","embedClassName","attributesUrl","defaultEmbedInfo","provider","setURL","invalidateResolution","fetching","hasResolved","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","embedPreview","previewIsFallback","validPreview","getMergedAttributes","getMergedAttributesWithPreview","currentAttributes","URL","host","mergedAttributes","upgradedBlock","View","blockClass","classFromPreview","newAllowResponsive","fileId","fileName","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","pdfEmbedLabel","hasFilename","describedById","download","FileBlockInspector","hrefs","openInNewWindow","changeLinkDestinationOption","changeOpenInNewWindow","changeShowDownloadButton","changeDisplayPreview","changePreviewHeight","attachmentPage","linkDestinationOptions","MIN_PREVIEW_HEIGHT","MAX_PREVIEW_HEIGHT","createActiveXObject","ax","ActiveXObject","ClipboardToolbarButton","disabled","createNotice","useCopyToClipboard","blobURL","getFilename","mime_type","onSelectFile","isPdf","getAnimateClassName","displayPreviewInEditor","navigator","userAgent","maxTouchPoints","newHref","newHeight","maxHeight","grid","formSubmissionNotificationSuccess","formSubmissionNotificationError","submissionMethod","action","visibilityPermissions","email","viewScript","Edit","autoComplete","newVal","encType","DISALLOWED_PARENTS","addFilter","canInsert","getBlockParentsByBlockName","disallowedParentType","inlineLabel","inputStyle","inputClasses","stripHTML","CheckboxControl","elements","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","DEPRECATED_LINK_DESTINATION_MEDIA","DEPRECATED_LINK_DESTINATION_ATTACHMENT","defaultColumnsNumberV1","images","getHrefAndDestination","image","destination","runV2Migration","linkTo","imageBlocks","getImageBlock","ids","allowResize","fullUrl","items","shortCodeTransforms","minimum","maximum","imageCrop","fixedHeight","alignnone","sharedIcon","pickRelevantMediaFiles","imageProps","media_details","full","MIN_SIZE","LINK_DESTINATION_CUSTOM","galleryDestination","imageDestination","IMAGE_LINK_DESTINATION_MEDIA","IMAGE_LINK_DESTINATION_ATTACHMENT","IMAGE_LINK_DESTINATION_NONE","getUpdatedLinkTargetSettings","currentRel","relVal","removeNewTabRel","Gallery","mediaPlaceholder","__unstableLayoutClassNames","layoutClassNames","isContentLocked","multiGallerySelection","EMPTY_IMAGE_MEDIA","useStyleOverride","GapStyles","fallbackValue","row","gapValue","column","getGapCSSValue","linkOptions","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","EMPTY_ARRAY","withNotices","withViewportMatch","isNarrow","randomOrder","selectBlock","createSuccessNotice","innerBlockImages","blockWasJustInserted","_getBlock$innerBlocks","getBlockName","_getSettings","_getBlock","wasBlockJustInserted","multiSelectedClientIds","_clientId","fromSavedContent","Boolean","imageData","_select$getMediaItems","imageIds","imageBlock","getMediaItems","include","orderby","useGetMedia","newImages","currentImages","setCurrentImages","imagesUpdated","newCurrentImages","currentImg","currentImage","fromSavedConent","getNewImages","useGetNewImages","newImage","buildImageAttributes","imageSizeOptions","imageSizes","resizedImages","currentResizedImages","currentSizes","defaultUrl","slug","mediaDetailsUrl","resizedImageSizes","getImageSizing","useImageSizes","imageAttributes","raw","alt_text","isValidFileType","nativeFileData","mediaTypeSelector","updateImages","selectedImages","newFileUploads","imageArray","processedImages","newOrderMap","existingImageBlocks","newBlocks","existingImg","sort","view","defaultProps","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","native","isAppender","autoOpenMediaUpload","handleUpload","multiple","nativeInnerBlockProps","marginHorizontal","marginVertical","hasLinkTo","imageCount","newSizeSlug","changedAttributes","getImageSizeAttributes","imageSize","hideCancelButton","linkToText","linkType","openInNewTab","noticeText","isWeb","BaseControl","VisualLabel","mediaIds","toBlock","fromBlocks","galleryBlock","transformedBlock","parseShortcodeIds","imageId","imageSizeSlug","migrateAttributes","__experimentalSettings","ariaLabel","inherit","contentSize","getGroupPlaceholderIcons","icons","iconSize","GroupEditControls","onSelectTagName","alignments","widestAlignment","groupInnerBlocks","stack","__experimentalOnMerge","backgroundSize","sticky","allowSizingOnChildren","themeSupportsLayout","supportsLayout","layoutSupportEnabled","showPlaceholder","setShowPlaceholder","usedLayoutType","useShouldShowPlaceHolder","GroupPlaceHolder","blockSupports","migrateCustomColors","TEXT_ALIGN_OPTIONS","migrateTextAlign","rest","__unstablePasteTextInline","fontAppearance","textTransform","__experimentalSlashInserter","anchors","generateAnchor","dummyElement","getTextWithoutMarkup","getSlug","setAnchor","phrasingContentSchema","isPaste","h1","h2","h3","h4","h5","h6","getBlockAttributes","outerHTML","prefix","__experimentalLabel","customName","hasContent","canGenerateAnchors","getGlobalBlockCount","generateAnchors","newAttrs","deleteEnter","home","homeUrl","getUnstableBase","labelValue","HTMLEditPreview","settingStyles","transformStyles","HTMLEdit","isPreview","setIsPreview","useContext","Context","Preview","extraImageProps","figureStyle","figure","__experimentalStyle","scale","imageClasses","objectFit","behaviors","lightbox","enabled","DimensionsTool","ResolutionTool","scaleOptions","ImageWrapper","pointerEvents","cursor","onSelectImage","parentLayoutType","numericWidth","numericHeight","imageRef","canInsertCover","imageEditing","isLargeViewport","isWideAligned","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","hasImageErrored","setHasImageErrored","hasNonContentControls","isContentOnlyMode","isResizable","isExternalImage","fetch","response","onSetTitle","updateAlt","canEditImage","allowCrop","dimensionsUnitsOptions","lightboxSetting","showLightboxSetting","lightboxChecked","dropdownMenuProps","dimensionsControl","newScale","newAspectRatio","defaultScale","defaultAspectRatio","unitsOptions","aspectRatioControl","tools","resetAll","sizeControls","ToolsPanel","arePatternOverridesEnabled","__default","lockHrefControls","lockAltControls","lockAltControlsMessage","lockTitleControls","lockTitleControlsMessage","lockCaption","urlBinding","altBinding","titleBinding","hasParentPattern","urlBindingSource","altBindingSource","titleBindingSource","showUrlInput","showCoverControls","showBlockControls","ImageURLInputUI","onChangeUrl","mediaLink","lightboxEnabled","onSetLightbox","resetLightbox","crop","overlayText","switchToBlockType","upload","Dropdown","renderToggle","DOWN","renderContent","newUrl","filename","defaultedAlt","isRounded","onLoad","ImageEditor","onSaveImage","onFinishEditing","numericRatio","Infinity","NaN","evalAspectRatio","naturalRatio","currentWidth","currentHeight","maxWidthBuffer","showRightHandle","showLeftHandle","offsetWidth","String","resizeRatio","hasSize","_image$sizes$size","_image$media_details$","getFirstAnchorAttributeFormHTML","firstElementChild","imageSchema","require","figcaption","alignMatches","idMatches","anchorElement","dispatch","nodeToRemove","parentNode","removeChild","getEditWrapperProps","__unstableParentLayout","parentLayout","altRef","captionRef","imageDefaultSize","additionalAttributes","omittedCaption","restMediaAttributes","mediaPreview","lockUrlControlsMessage","pluginsIcon","commentsToShow","displayAvatar","displayDate","displayExcerpt","serverSideAttributes","urlQueryArgs","_locale","selectedAuthor","postsToShow","displayPostContent","displayPostContentRadio","excerptLength","displayPostDate","postLayout","orderBy","displayFeaturedImage","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","CATEGORIES_LIST_QUERY","USERS_LIST_QUERY","has_published_posts","LatestPostsEdit","_categoriesList$reduc","latestPosts","defaultImageWidth","defaultImageHeight","authorList","_settings$imageDimens","_settings$imageDimens2","catIds","cat","latestPostsQuery","imageDimensions","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","categorySuggestions","RadioControl","selected","ImageSizeControl","imageWidth","imageHeight","imageSizeHelp","onChangeImage","BlockAlignmentToolbar","isCollapsed","QueryControls","numberOfItems","onOrderChange","onOrderByChange","onNumberOfItemsChange","onCategoryChange","tokens","token","allCategories","selectedCategories","onAuthorChange","selectedAuthorId","displayPosts","layoutControls","list","dateFormat","titleTrimmed","excerpt","currentAuthor","excerptElement","imageSourceUrl","featuredImageAlt","getFeaturedImageDetails","renderFeaturedImage","postExcerpt","span","dangerouslySetInnerHTML","__html","date_gmt","LIST_STYLES","A","I","migrateToListV2","start","reversed","ordered","setAttribute","listBlock","v0","multiline","__unstableMultilineWrapperTags","listStyleType","OrderedListSettings","int","isInteger","forwardRef","extraProps","IndentUI","outdentList","parentBlockId","parentBlockAttributes","newParentBlock","useOutdentList","canOutdent","formatOutdentRTL","formatOutdent","getListContentSchema","listContentSchema","ul","ol","li","getListContentFlat","childBlocks","createListBlockFromDOMElement","listElement","listAttributes","hasAttribute","listItem","nodeType","TEXT_NODE","nestedList","nodes","htmlNodes","childAttributes","childInnerBlocks","_attributes","newInnerBlocks","since","alternative","useMigrateOnLoad","formatListBulletsRTL","formatListBullets","formatListNumberedRTL","formatListNumbered","useIndentListItem","multiSelect","getPreviousBlockClientId","getSelectionStart","getSelectionEnd","hasMultiSelection","_hasMultiSelection","clientIds","clonedBlocks","previousSiblingId","newListItem","selectionStart","selectionEnd","useOutdentListItem","moveBlocksToPosition","removeBlock","insertBlock","updateBlockListSettings","getSelectedBlockClientIds","getBlockListSettings","firstClientId","parentListItemId","listId","getParentListItemId","parentListId","lastClientId","followingListItems","nestedListId","nestedListBlock","useMerge","getNextBlockClientId","outdentListItem","getTrailingId","_getNextId","getNextId","forward","mergeWithNested","clientIdA","clientIdB","nestedListClientId","nextBlockClientId","previousBlockClientId","indentListItem","canIndent","formatIndentRTL","formatIndent","root","__unstableDisableDropZone","useSpaceRef","shiftKey","metaKey","ctrlKey","SPACE","TAB","useSpace","nextContent","privateApis","requiresWrapperOnCopy","displayLoginAsForm","redirectToCurrent","DEFAULT_MEDIA_SIZE_SLUG","v1ToV5ImageFillStyles","DEFAULT_MEDIA_WIDTH","noop","migrateDefaultAlign","v0Attributes","v4ToV5BlockAttributes","imageFill","v4ToV5Supports","mediaTypeRenders","video","backgroundStyles","v6ImageFillStyles","gridTemplateColumns","finalizedAttributes","imageFillStyles","ResizableBoxContainer","isMobile","ToolbarEditButton","featuredImageURL","PlaceholderContainer","commitWidthChange","onWidthChange","enableResize","enablePositions","mediaTypeRenderers","applyWidthConstraints","getImageSourceUrlBySizeSlug","coverAttributes","featuredImageMedia","refMediaContainer","resizable","temporaryMediaWidth","setTemporaryMediaWidth","large","classNames","widthString","msGridColumns","mediaTextGeneralSettings","newMediaAlt","newMediaSizeSlug","BlockVerticalAlignmentControl","alignment","pullLeft","pullRight","MediaContainer","MissingEdit","withDispatch","replaceBlock","convertToHTML","originalUndelimitedContent","originalName","hasFreeformBlock","hasHTMLBlock","messageHTML","convertToHtmlButton","safeHTML","originalBlockType","DEFAULT_TEXT","dataset","customText","noTeaser","attrs","toggleHideExcerpt","moreTag","noTeaserTag","cloneElement","PRIORITIZED_INSERTER_BLOCKS","PRELOADED_NAVIGATION_MENUS_QUERY","SELECT_NAVIGATION_MENUS_ARGS","useNavigationMenu","permissions","useResourcePermissions","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft","selectExistingMenu","canCreate","canCreateNavigationMenus","canUpdate","canUpdateNavigationMenu","canDelete","canDeleteNavigationMenu","isResolvingPermissions","hasResolvedPermissions","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","canSwitchNavigationMenu","canUserCreateNavigationMenus","isResolvingCanUserCreateNavigationMenus","hasResolvedCanUserCreateNavigationMenus","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","useNavigationEntities","menuId","menus","isResolvingMenus","hasResolvedMenus","isResolvingPages","hasResolvedPages","menuItems","hasResolvedMenuItems","hasPages","hasMenus","PlaceholderPreview","Icon","navigation","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","isUpdatingMenuRef","setIsUpdatingMenuRef","classicMenus","currentTitle","menuChoices","buildMenuLabel","hasNavigationMenus","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","selectorLabel","DropdownMenu","moreVertical","toggleProps","MenuGroup","MenuItemsChoice","choices","menu","MenuItem","NavigationPlaceholder","onCreateEmpty","speak","isResolvingActions","NavigationMenuSelector","OverlayMenuIcon","focusable","Rect","ResponsiveWrapper","isHiddenByDefault","overlayBackgroundColor","overlayTextColor","hasIcon","responsiveContainerClasses","openButtonClasses","modalId","dialogProps","close","NavigationInnerBlocks","hasCustomPlaceholder","isImmediateParentOfSelectedBlock","selectedBlockHasChildren","getSelectedBlockClientId","selectedBlockId","onInput","useEntityBlockEditor","parentOrChildHasSelection","prioritizedInserterBlocks","__unstableDisableLayoutClassNames","NavigationMenuNameControl","updateTitle","isDeepEqual","shouldSkip","EMPTY_OBJECT","UnsavedInnerBlocks","createNavigationMenu","originalBlocks","innerBlocksAreDirty","areBlocksDirty","isSaving","hasResolvedAllNavigationMenus","isSavingEntityRecord","Wrapper","NavigationMenuDeleteControl","onDelete","isConfirmDialogVisible","setIsConfirmDialogVisible","useEntityId","deleteEntityRecord","isDestructive","ConfirmDialog","onConfirm","force","onCancel","confirmButtonText","noticeRef","customMsg","OverlayMenuPreview","menuItemsToBlocks","mapMenuItemsToBlocks","relation","hashTable","dataTree","createDataTree","mapping","sortedItems","menu_order","menuItem","menuItemTitleField","xfn","attr_title","object_id","menuItemTypeField","isTopLevelItem","isTopLevelLink","menuItemToBlockAttributes","nestedBlocks","nestedMapping","CLASSIC_MENU_CONVERSION_SUCCESS","CLASSIC_MENU_CONVERSION_ERROR","CLASSIC_MENU_CONVERSION_PENDING","classicMenuBeingConvertedId","createTemplatePartId","theme","DRAFT_MENU_PARAMS","PUBLISHED_MENU_PARAMS","CREATE_NAVIGATION_MENU_SUCCESS","CREATE_NAVIGATION_MENU_ERROR","CREATE_NAVIGATION_MENU_PENDING","CREATE_NAVIGATION_MENU_IDLE","getComputedStyle","detectColors","colorsDetectionElement","setColor","setBackground","backgroundColorNode","ELEMENT_NODE","getColors","isSubMenu","customOverlayTextColor","customOverlayBackgroundColor","colors","getNavigationChildBlockProps","innerBlocksColors","ManageMenusButton","isMenuItem","ComponentName","post_type","POPOVER_PROPS","BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU","AddSubmenuItem","expandedState","expand","setInsertedBlock","addSubmenu","updateSelectionOnInsert","newLink","newSubmenu","LeafMoreMenu","moveBlocksDown","moveBlocksUp","removeBlocks","BlockTitle","maximumLength","noIcons","chevronUp","chevronDown","updateAttributes","updatedValue","originalLabel","originalKind","originalType","newKind","newType","newLabelWithoutHttp","newUrlWithoutHttp","escapeHTML","isBuiltInType","encodeURI","safeDecodeURI","PrivateQuickInserter","QuickInserter","getSuggestionsQuery","subtype","initialSuggestionsSearchOptions","LinkUIBlockInserter","onBack","onSelectBlock","rootBlockClientId","focusOnMountRef","useFocusOnMount","dialogTitleId","dialogDescritionId","chevronLeftSmall","prioritizePatterns","selectBlockOnInsert","hasSearch","LinkUI","addingBlock","setAddingBlock","focusAddBlockButton","setFocusAddBlockButton","saveEntityRecord","hasTextControl","hasRichPreviews","showInitialSuggestions","withCreateSuggestion","createSuggestion","pageTitle","createSuggestionButtonText","searchTerm","mark","noDirectEntry","noURLSuggestion","suggestionsQuery","renderControlBottom","LinkUITools","addBlockButtonRef","plus","BLOCKS_WITH_LINK_UI_SUPPORT","PrivateListView","AdditionalBlockContent","insertedBlock","supportsLinkControls","_insertedBlockClientId","_updatedAttributes","MainContent","isLoading","hasChildren","DeletedNavigationWarning","isExpanded","showAppender","blockSettingsMenu","additionalBlockContent","isManageMenusButtonDisabled","Heading","AccessibleDescription","AccessibleMenuDescription","menuTitle","ColorTools","setTextColor","setBackgroundColor","setOverlayTextColor","setOverlayBackgroundColor","navRef","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","detectedOverlayBackgroundColor","setDetectedOverlayBackgroundColor","detectedOverlayColor","setDetectedOverlayColor","enableContrastChecking","OS","subMenuElement","disableCustomGradients","ContrastChecker","hasSubmenuIndicatorSetting","customPlaceholder","CustomPlaceholder","openSubmenusOnClick","overlayMenu","showSubmenuIcon","setRef","recursionId","hasAlreadyRendered","useHasRecursion","showNavigationMenuStatusNotice","hideNavigationMenuStatusNotice","useNavigationNotice","showClassicMenuConversionNotice","hideClassicMenuConversionNotice","showNavigationMenuPermissionsNotice","hideNavigationMenuPermissionsNotice","createNavigationMenuStatus","createNavigationMenuError","createNavigationMenuPost","isPending","isCreatingNavigationMenu","isSuccess","isError","setStatus","setValue","setError","editEntityRecord","generateDefaultTitle","area","parentTemplatePartClientIds","definedAreas","__experimentalGetDefaultTemplatePartAreas","getCurrentTheme","templatePartClientId","templatePartBlock","stylesheet","templatePartEntity","definedArea","useTemplatePartAreaLabel","resolveSelect","draftNavigationMenus","all","matchingMenuTitleCount","useGenerateDefaultNavigationTitle","postStatus","err","cause","record","isIdle","useCreateNavigationMenu","createUntitledEmptyNavigationMenu","hasUncontrolledInnerBlocks","uncontrolledInnerBlocks","isInnerBlockSelected","_uncontrolledInnerBlocks","_hasUncontrolledInnerBlocks","_controlledInnerBlocks","controlledInnerBlocks","useInnerBlocks","hasSubmenus","isResponsiveMenuOpen","setResponsiveMenuVisibility","overlayMenuPreview","setOverlayMenuPreview","navMenuResolvedButMissing","convert","convertClassicMenu","classicMenuConversionStatus","classicMenuConversionError","throwOnError","convertClassicMenuToBlockMenu","menuName","classicMenuItems","getMenuItems","useConvertClassicToBlockMenu","isConvertingClassicMenu","handleUpdateMenu","focusNavigationBlock","isEntityAvailable","hasUnsavedBlocks","getNavigationFallbackId","navigationFallbackId","isPlaceholder","textDecoration","hasBlockOverlay","__unstableHasActiveBlockOverlayActive","classicMenu","hasManagePermissions","overlayMenuPreviewClasses","submenuAccessibilityNotice","isFirstRender","overlayMenuPreviewId","stylingInspectorControls","hidden","hideLabelFromVision","spokenMessage","accessibleDescriptionId","MenuInspectorControls","PlaceholderComponent","EntityProvider","RecursionProvider","uniqueId","TYPOGRAPHY_PRESET_DEPRECATION_MAP","fontStyle","fontWeight","migrateIdToRef","navigationMenuId","itemsJustification","rgbTextColor","rgbBackgroundColor","__unstableLocation","styleAttribute","attributeValue","_attributes$style$typ","customFontSize","maxNestingLevel","allowVerticalAlignment","Controls","setIsLabelFieldFocused","onBlur","urlValue","descriptionValue","titleValue","relValue","getIcon","variationName","postList","customPostType","enhanceNavigationLinkVariations","buttonUseIcon","buttonPosition","linkIcon","leftAttributes","rightLabel","isInvalid","isDraft","useIsInvalidLink","isPostType","hasId","selectPreviousBlock","isLinkOpen","setIsLinkOpen","openedBy","setOpenedBy","listItemRef","isDraggingWithin","elementRef","setIsDraggingWithin","handleDragStart","handleDragEnter","handleDragEnd","contains","useIsDraggingWithin","itemLabelPlaceholder","linkUIref","prevUrl","isLabelFieldFocused","isAtMaxNesting","isParentOfSelectedBlock","transformToSubmenu","isURL","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","selectLabelText","missingText","getMissingText","placeholderText","tooltipText","currentTarget","Tooltip","ItemSubmenuIcon","strokeWidth","ALLOWED_BLOCKS","parentCount","onlyDescendantIsEmptyLink","_onlyDescendantIsEmptyLink","selectedBlockChildren","singleBlock","prevHasChildren","blockName","navigationChildBlockProps","ParentElement","transformToLink","newLinkBlock","canConvertToLink","removeSubmenu","cachedParsers","WeakMap","useParsePatternDependencies","deps","set","parsePatternDependencies","queue","_block$innerBlocks","unshift","registerDependency","add","hasCycle","TypeError","visitedNodes","currentPath","_deps$get","dependencies","dependency","delete","PatternEdit","selectedPattern","__experimentalGetParsedPattern","currentThemeStylesheet","setBlockEditingMode","getBlockEditingMode","hasRecursionError","setHasRecursionError","queueMicrotask","injectThemeAttributeInBlockTemplateContent","patternName","rootEditingMode","findNavigationLinkById","navigationLinks","navigationLink","foundNavigationLink","convertToNavigationLinks","parentPageID","linkMap","_linkMap$id$innerBloc","createNavigationLinks","parentPage","transformSubmenus","listOfLinks","listOfLinksArray","useConvertToNavigationLinks","parentClientId","convertDescription","ConvertToLinksModal","aria","describedby","accessibleWhenDisabled","NOOP","BlockContent","blockList","parentPageDetails","isNested","openModal","allowConvertToLinks","pagesByParentId","sortedPages","localeCompare","pagesTree","makePagesTree","childPages","tree","item","repeat","rawName","getBlockList","pageProps","hasSelectedChild","hasDraggedChild","isChildOfNavigation","hasDraggedInnerBlock","blockParents","navigationBlockParents","closeModal","__experimentalToolbar","isNavigationChild","frontPageId","site","show_on_front","page_on_front","dropCap","migrateCustomColorsAndFontSizes","restBlockAttributes","dir","fontSizeClass","getFontSizeClass","useOnEnter","duplicateBlocks","wrapperClientId","hasBlockSupport","newWrapperClientId","defaultBlockName","wrapperBlock","ParagraphRTLControl","setDirection","formatLtr","hasDropCapDisabled","DropCapControl","isDropCapFeatureEnabled","helpText","newDirection","newContent","__unstableEmbedURLOnPaste","__unstableAllowPrefixTransformations","avatarSize","showAvatar","showBio","byline","queryId","isDescendentOfQueryLoop","authorId","authors","avatarSizes","authorOptions","handleSelect","nextAuthorId","showCombobox","showAuthorControl","allowReset","displayAuthorBiography","commentIdInput","setCommentIdInput","blockDefault","hasPostAndComments","blockStyles","PostCommentsFormEdit","instanceIdDesc","commentsText","toLocaleString","ReadOnlyContent","userCanEdit","protected","EditableContent","entityRecord","RecursionError","contextPostId","contextPostType","is12HourFormat","displayType","postDate","postTypeSlug","dateSettings","siteTimeFormat","time","setDate","dateLabel","PublishDateTimePicker","currentDate","is12Hour","dateOrder","singular_name","moreText","showMoreOnNewLine","rawExcerpt","setExcerpt","renderedExcerpt","isProtected","postTypeSupportsExcerpts","isEditable","wordCountType","strippedRenderedExcerpt","AlignmentToolbar","readMoreLink","newMoreText","excerptClassName","rawOrRenderedExcerpt","trimmedExcerpt","excerptWithSpaces","numberOfSpaces","isTrimmed","excerptContent","newShowMoreOnNewLine","SCALE_OPTIONS","DEFAULT_SCALE","scaleHelp","contain","DimensionControls","defaultRatios","themeRatios","showDefaultRatios","onDimensionChange","dimension","nextValue","parsedValue","scaleLabel","showScaleControl","themeOptions","defaultOptions","aspectRatioOptions","nextAspectRatio","nextHeight","nextSizeSlug","Overlay","useGradient","overlayStyles","disabledClickProps","useFirstImageFromPost","storedFeaturedImage","setFeaturedImage","postContent","imageOpener","groups","JSON","postPermalink","getMediaSourceUrlBySizeSlug","OverlayControls","imageStyles","mediaLibraryButton","showTooltip","tooltipPosition","previous","showTitle","linkLabel","taxonomy","isNext","taxonomies","getTaxonomies","visibility","publicly_queryable","PostTemplateInnerBlocks","MemoizedPostTemplateBlockPreview","blockContextId","setActiveBlockContextId","exclude","taxQuery","parents","restQueryArgs","templateSlug","previewPostType","layoutType","columnCount","activeBlockContextId","templateCategory","builtTaxQuery","taxonomySlug","terms","rest_base","blockContexts","_post$class_list","class_list","setDisplayLayout","newDisplayLayout","displayLayoutControls","blockContext","ALLOWED_FORMATS","postTerms","variationIconMap","postCategories","post_tag","enhanceVariations","_variationIconMap$var","term","separator","selectedTerm","getTaxonomy","hasPostTerms","visible","taxonomyArgs","usePostTerms","hasPost","blockInformation","useBlockDisplayInformation","postTerm","curr","no_terms","contentStructure","minutesToReadString","Function","__unstableSerializeAndClean","minutesToRead","wordCount","setTitle","fullTitle","onSplitAtEnd","titleElement","SOLID_COLOR_CLASS","citation","mainColor","customMainColor","parseBorderColor","styleString","matches","multilineToInline","shouldShowCitation","isSolidColorStyle","figureClasses","figureStyles","borderColor","blockquoteTextColorClass","blockquoteClasses","blockquoteStyles","figureClass","_select$getSettings$c","getColorObjectByAttributeValues","blockquoteStyle","isWebPlatform","headingBlock","nextCitation","__unstableMobileNoFocusOnMount","getEntitiesInfo","entities","entity","mapById","mapByName","names","getValueFromObjectPath","normalizedPath","fieldName","mapToIHasNameAndId","usePostTypes","postTypes","getPostTypes","excludedPostTypes","filteredPostTypes","viewable","postTypesTaxonomiesMap","postTypesSelectOptions","useTaxonomies","isControlAllowed","allowedControls","useBlockNameForPatterns","activeVariationName","getActiveBlockVariation","getPatternsByBlockTypes","usePatterns","useUnsupportedBlocks","getClientIdsOfDescendants","descendantClientId","blockSupportsInteractivity","is","getBlockSupport","blockSupportsInteractivityClientNavigation","hasPostContentBlock","hasBlocksFromPlugins","hasUnsupportedBlocks","QueryToolbar","setQuery","openPatternSelectionModal","hasPatterns","contentClassName","NumberControl","isDragEnabled","orderOptions","newOrderBy","newOrder","authorsInfo","sanitizedValue","FormTokenField","suggestions","getIdByValue","entitiesMappedByName","authorValue","__experimentalShowHowTo","BASE_QUERY","setSearch","setSuggestions","debouncedSearch","useDebounce","searchResults","searchHasResolved","selectorArgs","currentParents","currentParentsInfo","entitiesInfo","onInputChange","getTermIdByTermValue","termValue","termId","termValueLower","toLocaleLowerCase","TaxonomyControls","termIds","TaxonomyItem","newTermIds","existingTerms","displayTransform","newTermValues","stickyOptions","StickyControl","EnhancedPaginationControl","enhancedPagination","fullPageClientSideNavigation","__experimentalFullPageClientSideNavigation","CreateNewPostLink","newPostUrl","addNewItemLabel","add_new_item","BlockInfo","QueryInspectorControls","displayLayout","authorIds","useAllowedControls","showSticky","setShowSticky","isPostTypeHierarchical","hierarchical","useIsPostTypeHierarchical","onPostTypeChange","updateQuery","supportedTaxonomies","updatedTaxQuery","querySearch","setQuerySearch","onChangeDebounced","showInheritControl","showPostTypeControl","postTypeControlLabel","postTypeControlHelp","showOrderControl","showStickyControl","showSettingsPanel","showTaxControl","showSearchControl","showParentControl","showFiltersPanel","OrderControl","AuthorControl","ParentControl","modalDescriptionId","EnhancedPaginationModal","notice","QueryContent","postsPerPage","getEntityRecordEdits","settingPerPage","posts_per_page","newQuery","QueryPlaceholder","isStartingBlank","setIsStartingBlank","blockNameForPatterns","activeBlockVariation","QueryVariationPicker","scopeVariations","blockVariations","isNotConnected","namespace","connectedVariations","useScopedBlockVariations","normalizeSearchInput","input","getPatternSearchRank","searchValue","normalizedSearchValue","normalizedTitle","rank","searchPatterns","rankedPatterns","rank1","rank2","PatternSelectionModal","setIsPatternSelectionModalOpen","setSearchValue","blockPreviewContext","blockPatterns","filteredBlockPatterns","shownBlockPatterns","useAsyncList","SearchControl","BlockPatternsList","shownPatterns","onClickPattern","onBlockPatternSelect","queryClientIds","getTransformedBlocksFromPattern","queryBlockAttributes","blocksQueue","titleDate","titleExcerpt","titleDateExcerpt","imageDateTitle","migrateToTaxQuery","categoryIds","tagIds","migrateColors","hasSingleInnerGroupBlock","groupBlock","newStyles","migrateToConstrainedLayout","newLayout","findPostTemplateBlock","foundBlock","replacePostTemplateBlock","replacementBlock","splice","migrateDisplayLayout","postTemplateBlock","updatedLayoutType","newPostTemplateBlock","withTaxQuery","restWithTaxQuery","withColorAttributes","withColorInnerBlocks","withConstrainedLayoutAttributes","isPatternSelectionModalOpen","QueryPaginationArrowControls","QueryPaginationLabelControl","createPaginationItem","midSize","paginationNumbers","paginationItems","previewPaginationNumbers","withInputField","SUPPORTED_TYPES","showPrefix","showSearchTerm","archiveTypeLabel","archiveNameLabel","getCurrentPostId","getCurrentPostType","getCurrentTemplateId","currentPostType","templateId","taxonomyMatches","authorSlug","isAuthor","authorMatches","getAuthors","authorRecords","useArchiveLabel","migrateToQuoteV2","parseWithAttributeSchema","migrateLargeStyle","blockquote","handler","BlockQuotation","verse","useLayoutClasses","isOverridableBlock","hasOverridableBlocks","patternsPrivateApis","fullAlignments","setBlockEditMode","setEditMode","editMode","patternBlockName","RecursionWarning","ReusableBlockControl","canOverrideBlocks","handleEditOriginal","resetContent","canUserEdit","ReusableBlockEdit","patternClientId","useEntityRecord","isMissing","__unstableMarkLastChangeAsPersistent","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","_getBlockEditingMode","useInferredLayout","initialInferredAlignmentRef","isConstrained","hasFullAlignment","layoutClasses","contentKey","retainedAttributes","updatedContent","overrides","blockLayout","feedURL","itemsToShow","isEditing","setIsEditing","propName","rss","InputControl","toolbarControls","buttonOnly","rx","buttonOutside","stroke","buttonInside","noButton","buttonWithIcon","toggleLabel","isPercentageUnit","buttonText","widthUnit","isSearchFieldHidden","wasJustInsertedIntoNavigationBlock","fluidTypographySettings","typographyProps","useTypographyProps","fluid","wideSize","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","searchFieldRef","buttonRef","buttonPositionControls","renderTextField","textFieldClasses","textFieldStyles","ToolbarDropdownMenu","getButtonPositionIcon","filteredWidth","newUnit","padBorderRadius","labelClassnames","getWrapperStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","renderButton","buttonStyles","handleButtonClick","hr","customColor","colorClass","opacity","currentColor","hasCustomColor","deprecatedOpacityWithNoColor","setDeprecatedOpacityWithNoColor","previousColor","useDeprecatedOpacity","HorizontalRule","removep","autop","ShortcodeEdit","ACCEPT_MEDIA_STRING","SiteLogo","shouldSyncIcon","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","setNaturalSize","siteEntities","imgWrapper","ceil","imgEdit","siteIconSettingsUrl","__experimentalUseCustomizerSiteLogoUrl","syncSiteIconHelpText","SiteLogoReplaceFlow","onRemoveLogo","mediaReplaceProps","InspectorLogoPreview","mediaItemData","itemGroupProps","logoSlug","logoMediaDetails","logoLabel","ItemGroup","Truncate","numberOfLines","siteLogoId","siteIconId","isRequestingMediaItem","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","_isRequestingMediaItem","shouldForceSync","onInitialSelectLogo","onSelectLogo","onFilesDrop","mediaReplaceFlowProps","logoImage","mediaInspectorPanel","isBordered","MediaUploadCheck","MediaUpload","DropZone","placeholderClassName","HEADING_LEVELS","tagline","canEdit","readOnlySettings","siteTaglineContent","newTagline","disableLineBreaks","siteTitleContent","newTitle","ChainIcon","service","WordPressIcon","FivehundredpxIcon","AmazonIcon","BandcampIcon","BehanceIcon","BlueskyIcon","CodepenIcon","DeviantArtIcon","DribbbleIcon","DropboxIcon","EtsyIcon","FacebookIcon","FeedIcon","FlickrIcon","FoursquareIcon","GoodreadsIcon","GoogleIcon","GitHubIcon","GravatarIcon","InstagramIcon","LastfmIcon","LinkedInIcon","MailIcon","MastodonIcon","MeetupIcon","MediumIcon","PatreonIcon","PinterestIcon","PocketIcon","RedditIcon","SkypeIcon","SnapchatIcon","SoundCloudIcon","SpotifyIcon","TelegramIcon","ThreadsIcon","TiktokIcon","TumblrIcon","TwitchIcon","TwitterIcon","VimeoIcon","VkIcon","WhatsAppIcon","XIcon","YelpIcon","YouTubeIcon","SocialLinkURLPopover","setPopover","URLPopover","URLInput","nextURL","disableSuggestions","keyboardReturn","SocialLinkEdit","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","IconComponent","getIconBySite","socialLinkName","getNameBySite","socialLinkText","customIconColor","customIconBackgroundColor","justifiedItemsRegex","sizeOptions","_attributes$layout$or","setIconBackgroundColor","setIconColor","logosOnly","backgroundBackup","SocialPlaceholder","SelectedSocialPlaceholder","__experimentalAppenderTagName","colorSettings","entry","check","enableAlpha","isLargeText","MIN_SPACER_SIZE","useSpacingSizes","DimensionInput","spacingSizes","spacingUnits","handleOnChange","parsedUnit","isValueSpacingPreset","SpacingSizesControl","splitOnAxis","showSideInLabel","SpacerControls","ResizableSpacer","getCurrentSize","clientWidth","getNextVal","nextVal","SpacerEdit","disableCustomSpacingSizes","editorSettings","parentOrientation","defaultType","isFlexLayout","inheritedOrientation","blockStyle","selfStretch","flexSize","temporaryHeight","setTemporaryHeight","temporaryWidth","setTemporaryWidth","sizeConditionalOnOrientation","getHeightForVerticalBlocks","getSpacingPresetCssVar","getWidthForHorizontalBlocks","flexGrow","getCustomValueFromPreset","blockOrientation","finalHeight","oldColors","v4Query","colspan","rowspan","hasFixedLayout","cells","foot","hasCaption","Section","rowIndex","cellIndex","cellClasses","colSpan","rowSpan","v3Query","v2Query","v1Query","INHERITED_COLUMN_ATTRIBUTES","updateSelectedCell","updateCell","tableSections","sectionName","selectionSectionName","selectionRowIndex","cellAttributes","cellLocation","isCellSelected","insertRow","firstRow","isEmptyTableSection","getFirstRow","cellCount","_","_firstRow$cells$index","firstCellInColumn","toggleSection","_state$body$0$cells$l","isEmptyRow","ALIGNMENT_CONTROLS","alignLeft","alignCenter","alignRight","cellAriaLabel","TSection","normalizeRowColSpan","rowColSpan","tableContentPasteSchema","tr","allowEmpty","th","td","table","thead","tfoot","tbody","sectionAcc","sectionAttributes","rowAcc","rowAttributes","colAcc","col","initialRowCount","setInitialRowCount","initialColumnCount","setInitialColumnCount","selectedCell","setSelectedCell","tableRef","hasTableCreated","setHasTableCreated","onInsertRow","newRowIndex","onInsertColumn","newColumnIndex","insertColumn","sections","tableControls","tableRowBefore","tableRowAfter","tableRowDelete","deleteRow","tableColumnBefore","tableColumnAfter","tableColumnDelete","cell","deleteColumn","renderedSections","CellTag","alignmentControls","getCellAttribute","getCellAlignment","columnSelection","onChangeColumnAlignment","hasArrowIndicator","hasSplitBorders","rowCount","createTable","ENTRY_CLASS_NAME","TableOfContentsList","nestedHeadingList","disableLinkActivation","linearToNestedHeadingList","headingList","endOfSlice","headings","onlyIncludeCurrentPage","TableOfContentsEdit","subscribe","_select$getPermalink","_getBlockAttributes","getClientIdsWithDescendants","getBlocksByName","permalink","getPermalink","isPaginated","allBlockClientIds","tocPage","tocIndex","blockClientId","latestHeadings","headingPage","headingPageLink","headingAttributes","canBeLinked","getLatestHeadings","fastDeepEqual","observeCallback","useObserveHeadings","canInsertList","headingTree","numberOfTags","showTagCounts","smallestFontSize","largestFontSize","onFontSizeChange","fontSizeLabel","quantity","updateObj","currentValue","currentQuantity","currentUnit","tax","show_cloud","selectedTaxonomy","__assign","lowerCase","SuppressedError","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","splitRegexp","stripRegexp","delimiter","end","charAt","re","capitalCaseTransform","toUpperCase","upperCaseFirst","paramCase","dotCase","useAlternativeTemplateParts","excludedId","templateParts","_isResolving","templatePart","useAlternativeBlockPatterns","blockNameWithArea","useCreateTemplatePartFromBlocks","useTemplatePartArea","_selectedArea$area_ta","selectedArea","defaultArea","area_tag","TitleModal","areaLabel","TemplatePartPlaceholder","templatePartId","onOpenSelectionModal","isBlockBasedTheme","canCreateTemplatePart","is_block_theme","showTitleModal","setShowTitleModal","areaObject","createFromBlocks","TemplatePartSelectionModal","filteredTemplateParts","mapTemplatePartToBlockPattern","shownTemplateParts","hasTemplateParts","hasBlockPatterns","switchLegacyWidgetType","getPossibleBlockTransformations","hasWildCardFrom","hasWildCardTo","transformInnerBlocks","SIDEBARS_QUERY","TemplatePartImportControls","selectedSidebar","setSelectedSidebar","isBusy","setIsBusy","sidebars","getSidebars","sidebarOptions","widgetArea","widgets","Spacer","marginBottom","sidebar","getWidgets","skippedWidgets","widget","id_base","about","is_multi","idBase","instance","parsedBlocks","__unstableSkipAutop","getGroupingBlockName","transformWidgetToBlock","FlexBlock","marginTop","TemplatePartAdvancedControls","defaultWrapper","setArea","areaOptions","_area","useRenderAppender","useLayout","defaultLayout","NonEditableTemplatePartPreview","editedBlocks","editedRecord","EditableTemplatePartInnerBlocks","TemplatePartInnerBlocks","canViewTemplatePart","canEditTemplatePart","TemplatePartInnerBlocksComponent","ReplaceButton","isTemplatePartSelectionOpen","setIsTemplatePartSelectionOpen","hasReplacements","TemplatesList","canReplace","shownTemplates","enhanceTemplatePartVariations","coreDataStore","iconName","headerIcon","footerIcon","sidebarIcon","symbolFilledIcon","symbolFilled","capitalCase","currentTheme","isResolved","canEditTemplate","getEntityArgs","hasResolvedEntity","_canEditTemplate","BlockSettingsMenuControls","selectedClientIds","onPatternSelect","mergedStyle","Tracks","tracks","track","poster","VideoSettings","autoPlayHelpText","getAutoplayHelp","toggleFactory","onChangePreload","ALLOWED_TYPES","DEFAULT_KIND","KIND_OPTIONS","TrackList","onEditPress","SingleTrackEditor","srcLang","NavigableMenu","Grid","gap","autoFocus","newSrcLang","changes","hasChanges","TracksEditor","trackBeingEdited","setTrackBeingEdited","newTrack","newTracks","_track","trackIndex","FormFileUpload","openFileDialog","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","mp4","m4v","webm","ogv","flv","videoElement","VideoEdit","videoPlayer","posterImageButton","onSelectVideo","load","videoPosterDescription","VideoCommonSettings","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","byteToHex","uuid","buf","rnds","random","usesContextKey","formatName","POST_CONTENT_BLOCK_NAME","contentEditable","isObjectActive","isFootnotesSupported","allowedBlockTypes","meta","footnotes","_getBlockParentsByBlockName","_getSelectedBlockClientId","parentCoreBlocks","RichTextToolbarButton","replacements","createId","insertObject","selectedClientId","parentPostContent","fnBlock","updateMeta","footnotesSupported","onMouseDown","scrollIntoView","nextFootnote","stringify","footnote","registerFormatType","BlockKeyboardShortcuts","registerShortcut","keyboardShortcutsStore","handleTransformHeadingAndParagraph","currentClientId","isParagraph","isHeading","destinationBlockName","destinationTextAlign","keyCombination","modifier","character","aliases","useShortcut","getAllBlocks","paragraph","gallery","quote","archives","audio","calendar","commentAuthorAvatar","details","embed","latestComments","mediaText","missing","more","nextpage","pageList","pageListItem","preformatted","pullquote","reusableBlock","socialLink","socialLinks","spacer","tagCloud","textColumns","navigationSubmenu","siteLogo","siteTitle","siteTagline","postFeaturedImage","postAuthor","postAuthorName","postComment","postCommentsCount","postCommentsLink","postNavigationLink","postTemplate","postTimeToRead","queryPagination","queryPaginationNext","queryPaginationNumbers","queryPaginationPrevious","queryNoResults","readMore","commentAuthorName","commentContent","commentEditLink","commentReplyLink","commentTemplate","commentsTitle","commentsPagination","commentsPaginationNext","commentsPaginationNumbers","commentsPaginationPrevious","postCommentsForm","tableOfContents","homeLink","logInOut","termDescription","queryTitle","postAuthorBiography","__experimentalEnableFormBlocks","form","formInput","formSubmitButton","formSubmissionNotification","needsClassicBlock","__experimentalDisableTinymce","URLSearchParams","location","classic","__experimentalGetCoreBlocks","isBlockMetadataExperimental","registerCoreBlocks","setDefaultBlockName","setFreeformContentHandlerName","setUnregisteredTypeHandlerName","setGroupingBlockName","__experimentalRegisterExperimentalCoreBlocks","enableFSEBlocks","enabledExperiments"],"sourceRoot":""}