@wordpress/block-library 9.3.0 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/block/edit.js +38 -23
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/index.js +26 -0
- package/build/buttons/index.js.map +1 -1
- package/build/categories/edit.js +20 -3
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +8 -0
- package/build/categories/index.js.map +1 -1
- package/build/columns/index.js +2 -2
- package/build/columns/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +2 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/embed/variations.js +39 -34
- package/build/embed/variations.js.map +1 -1
- package/build/footnotes/index.js +1 -1
- package/build/footnotes/index.js.map +1 -1
- package/build/form-input/edit.js +2 -0
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/index.js +10 -0
- package/build/gallery/index.js.map +1 -1
- package/build/group/deprecated.js +2 -5
- package/build/group/deprecated.js.map +1 -1
- package/build/heading/index.js +14 -1
- package/build/heading/index.js.map +1 -1
- package/build/image/edit.js +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +24 -11
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +3 -0
- package/build/image/index.js.map +1 -1
- package/build/image/view.js +65 -49
- package/build/image/view.js.map +1 -1
- package/build/latest-comments/index.js +9 -0
- package/build/latest-comments/index.js.map +1 -1
- package/build/list/edit.js +3 -3
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.js +2 -2
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +0 -7
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/media-text/index.js +12 -0
- package/build/media-text/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +5 -1
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/link-ui.js +13 -17
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +0 -11
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +1 -0
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list-item/edit.js +4 -1
- package/build/page-list-item/edit.js.map +1 -1
- package/build/paragraph/index.js +6 -0
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +6 -0
- package/build/paragraph/transforms.js.map +1 -1
- package/build/post-author/index.js +8 -0
- package/build/post-author/index.js.map +1 -1
- package/build/post-author-biography/index.js +3 -0
- package/build/post-author-biography/index.js.map +1 -1
- package/build/post-author-name/index.js +3 -0
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-date/index.js +3 -0
- package/build/post-date/index.js.map +1 -1
- package/build/post-excerpt/edit.js +1 -0
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/index.js +3 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/post-terms/index.js +3 -0
- package/build/post-terms/index.js.map +1 -1
- package/build/post-title/edit.js +5 -1
- package/build/post-title/edit.js.map +1 -1
- package/build/query/edit/inspector-controls/author-control.js +3 -1
- package/build/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +24 -6
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +1 -0
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +2 -1
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build/query/edit/inspector-controls/taxonomy-controls.js +5 -2
- package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build/query/edit/query-content.js +11 -2
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +1 -14
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/utils.js +5 -1
- package/build/query/utils.js.map +1 -1
- package/build/query/variations.js +9 -55
- package/build/query/variations.js.map +1 -1
- package/build/query-pagination-numbers/edit.js +1 -0
- package/build/query-pagination-numbers/edit.js.map +1 -1
- package/build/query-title/edit.js +11 -19
- package/build/query-title/edit.js.map +1 -1
- package/build/query-title/use-archive-label.js +95 -0
- package/build/query-title/use-archive-label.js.map +1 -0
- package/build/quote/index.js +15 -1
- package/build/quote/index.js.map +1 -1
- package/build/search/index.js +3 -0
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +4 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-tagline/edit.js +5 -2
- package/build/site-tagline/edit.js.map +1 -1
- package/build/site-tagline/index.js +6 -1
- package/build/site-tagline/index.js.map +1 -1
- package/build/site-title/edit.js +4 -1
- package/build/site-title/edit.js.map +1 -1
- package/build/site-title/index.js +6 -1
- package/build/site-title/index.js.map +1 -1
- package/build/social-link/icons/soundcloud.js +1 -1
- package/build/social-link/icons/soundcloud.js.map +1 -1
- package/build/social-links/index.js +12 -0
- package/build/social-links/index.js.map +1 -1
- package/build/tag-cloud/edit.js +4 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/index.js +5 -3
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +8 -3
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/placeholder.js +23 -3
- package/build/template-part/edit/placeholder.js.map +1 -1
- package/build/template-part/edit/title-modal.js +20 -8
- package/build/template-part/edit/title-modal.js.map +1 -1
- package/build/term-description/index.js +12 -0
- package/build/term-description/index.js.map +1 -1
- package/build/utils/hooks.js +5 -1
- package/build/utils/hooks.js.map +1 -1
- package/build-module/block/edit.js +38 -23
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/index.js +26 -0
- package/build-module/buttons/index.js.map +1 -1
- package/build-module/categories/edit.js +21 -4
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +8 -0
- package/build-module/categories/index.js.map +1 -1
- package/build-module/columns/index.js +2 -2
- package/build-module/columns/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +2 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/embed/variations.js +40 -35
- package/build-module/embed/variations.js.map +1 -1
- package/build-module/footnotes/index.js +1 -1
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/form-input/edit.js +2 -0
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/index.js +10 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/group/deprecated.js +2 -5
- package/build-module/group/deprecated.js.map +1 -1
- package/build-module/heading/index.js +14 -1
- package/build-module/heading/index.js.map +1 -1
- package/build-module/image/edit.js +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +25 -12
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +3 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/view.js +65 -49
- package/build-module/image/view.js.map +1 -1
- package/build-module/latest-comments/index.js +9 -0
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/list/edit.js +3 -3
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.js +2 -2
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +0 -1
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/media-text/index.js +12 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +5 -1
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +13 -17
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +0 -11
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +1 -0
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list-item/edit.js +4 -1
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/paragraph/index.js +6 -0
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +6 -0
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/post-author/index.js +8 -0
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-author-biography/index.js +3 -0
- package/build-module/post-author-biography/index.js.map +1 -1
- package/build-module/post-author-name/index.js +3 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-date/index.js +3 -0
- package/build-module/post-date/index.js.map +1 -1
- package/build-module/post-excerpt/edit.js +1 -0
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +3 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/post-terms/index.js +3 -0
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-title/edit.js +5 -1
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/query/edit/inspector-controls/author-control.js +3 -1
- package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +25 -7
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/order-control.js +1 -0
- package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +2 -1
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/sticky-control.js +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -1
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js +6 -4
- package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
- package/build-module/query/edit/query-content.js +11 -2
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +1 -14
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/utils.js +5 -1
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query/variations.js +4 -50
- package/build-module/query/variations.js.map +1 -1
- package/build-module/query-pagination-numbers/edit.js +1 -0
- package/build-module/query-pagination-numbers/edit.js.map +1 -1
- package/build-module/query-title/edit.js +12 -20
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/query-title/use-archive-label.js +88 -0
- package/build-module/query-title/use-archive-label.js.map +1 -0
- package/build-module/quote/index.js +15 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/search/index.js +3 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +4 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-tagline/edit.js +5 -2
- package/build-module/site-tagline/edit.js.map +1 -1
- package/build-module/site-tagline/index.js +6 -1
- package/build-module/site-tagline/index.js.map +1 -1
- package/build-module/site-title/edit.js +4 -1
- package/build-module/site-title/edit.js.map +1 -1
- package/build-module/site-title/index.js +6 -1
- package/build-module/site-title/index.js.map +1 -1
- package/build-module/social-link/icons/soundcloud.js +1 -1
- package/build-module/social-link/icons/soundcloud.js.map +1 -1
- package/build-module/social-links/index.js +12 -0
- package/build-module/social-links/index.js.map +1 -1
- package/build-module/tag-cloud/edit.js +4 -1
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +5 -3
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +8 -3
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +23 -3
- package/build-module/template-part/edit/placeholder.js.map +1 -1
- package/build-module/template-part/edit/title-modal.js +20 -8
- package/build-module/template-part/edit/title-modal.js.map +1 -1
- package/build-module/term-description/index.js +12 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/utils/hooks.js +5 -1
- package/build-module/utils/hooks.js.map +1 -1
- package/build-style/categories/editor-rtl.css +4 -0
- package/build-style/categories/editor.css +4 -0
- package/build-style/categories/style-rtl.css +4 -0
- package/build-style/categories/style.css +4 -0
- package/build-style/editor-rtl.css +13 -12
- package/build-style/editor.css +13 -12
- package/build-style/image/editor-rtl.css +8 -4
- package/build-style/image/editor.css +8 -4
- package/build-style/image/style-rtl.css +19 -0
- package/build-style/image/style.css +19 -0
- package/build-style/list/style-rtl.css +1 -1
- package/build-style/list/style.css +1 -1
- package/build-style/navigation/style-rtl.css +1 -4
- package/build-style/navigation/style.css +1 -4
- package/build-style/post-comments-form/style-rtl.css +1 -1
- package/build-style/post-comments-form/style.css +1 -1
- package/build-style/query/editor-rtl.css +0 -7
- package/build-style/query/editor.css +0 -7
- package/build-style/search/editor-rtl.css +1 -1
- package/build-style/search/editor.css +1 -1
- package/build-style/social-links/style-rtl.css +2 -2
- package/build-style/social-links/style.css +2 -2
- package/build-style/style-rtl.css +29 -8
- package/build-style/style.css +29 -8
- package/build-style/term-description/style-rtl.css +1 -0
- package/build-style/term-description/style.css +1 -0
- package/package.json +35 -35
- package/src/block/edit.js +58 -27
- package/src/block/test/edit.native.js +6 -2
- package/src/button/edit.js +1 -1
- package/src/button/index.php +2 -2
- package/src/buttons/block.json +20 -0
- package/src/buttons/index.js +6 -0
- package/src/categories/block.json +8 -0
- package/src/categories/edit.js +32 -4
- package/src/categories/editor.scss +4 -0
- package/src/categories/index.php +4 -1
- package/src/categories/style.scss +4 -0
- package/src/columns/index.js +1 -1
- package/src/cover/edit/inspector-controls.js +1 -0
- package/src/embed/test/__snapshots__/index.native.js.snap +8 -8
- package/src/embed/test/index.js +1 -1
- package/src/embed/test/index.native.js +24 -23
- package/src/embed/variations.js +43 -35
- package/src/footnotes/index.js +1 -2
- package/src/form-input/edit.js +2 -0
- package/src/gallery/block.json +10 -0
- package/src/group/deprecated.js +3 -7
- package/src/heading/block.json +12 -0
- package/src/heading/index.js +1 -0
- package/src/image/block.json +3 -0
- package/src/image/edit.js +1 -1
- package/src/image/editor.scss +6 -1
- package/src/image/image.js +55 -35
- package/src/image/index.php +32 -15
- package/src/image/style.scss +22 -0
- package/src/image/test/edit.native.js +1 -0
- package/src/image/view.js +69 -49
- package/src/latest-comments/block.json +9 -0
- package/src/list/edit.js +3 -3
- package/src/list/style.scss +1 -1
- package/src/list-item/edit.js +2 -2
- package/src/list-item/hooks/index.js +0 -1
- package/src/media-text/block.json +12 -0
- package/src/navigation/edit/navigation-menu-delete-control.js +1 -0
- package/src/navigation/index.php +1 -1
- package/src/navigation/style.scss +4 -9
- package/src/navigation/test/use-navigation-menu.js +54 -15
- package/src/navigation/use-navigation-menu.js +5 -1
- package/src/navigation-link/link-ui.js +8 -14
- package/src/navigation-submenu/edit.js +1 -13
- package/src/page-list/edit.js +1 -0
- package/src/page-list-item/edit.js +4 -4
- package/src/paragraph/block.json +6 -0
- package/src/post-author/index.js +8 -0
- package/src/post-author-biography/block.json +3 -0
- package/src/post-author-name/block.json +3 -0
- package/src/post-comments-form/style.scss +1 -1
- package/src/post-date/block.json +3 -0
- package/src/post-excerpt/edit.js +1 -0
- package/src/post-featured-image/block.json +3 -0
- package/src/post-terms/block.json +3 -0
- package/src/post-title/edit.js +5 -5
- package/src/query/edit/inspector-controls/author-control.js +2 -0
- package/src/query/edit/inspector-controls/index.js +41 -14
- package/src/query/edit/inspector-controls/order-control.js +1 -0
- package/src/query/edit/inspector-controls/parent-control.js +1 -0
- package/src/query/edit/inspector-controls/sticky-control.js +1 -0
- package/src/query/edit/inspector-controls/taxonomy-controls.js +8 -3
- package/src/query/edit/query-content.js +17 -3
- package/src/query/edit/query-placeholder.js +1 -21
- package/src/query/editor.scss +0 -9
- package/src/query/utils.js +4 -0
- package/src/query/variations.js +4 -46
- package/src/query-pagination-numbers/edit.js +1 -0
- package/src/query-title/edit.js +10 -17
- package/src/query-title/use-archive-label.js +99 -0
- package/src/quote/block.json +15 -1
- package/src/search/block.json +3 -0
- package/src/search/editor.scss +1 -1
- package/src/site-logo/edit.js +4 -1
- package/src/site-tagline/block.json +6 -1
- package/src/site-tagline/edit.js +5 -2
- package/src/site-title/edit.js +4 -1
- package/src/site-title/index.js +6 -1
- package/src/social-link/icons/soundcloud.js +1 -1
- package/src/social-link/socials-with-bg.scss +1 -1
- package/src/social-link/socials-without-bg.scss +1 -1
- package/src/social-links/block.json +12 -0
- package/src/tag-cloud/edit.js +7 -1
- package/src/template-part/edit/index.js +5 -3
- package/src/template-part/edit/inner-blocks.js +8 -5
- package/src/template-part/edit/placeholder.js +31 -6
- package/src/template-part/edit/title-modal.js +18 -4
- package/src/term-description/block.json +12 -0
- package/src/term-description/style.scss +2 -0
- package/src/utils/hooks.js +5 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/list-item/hooks/use-split.js +0 -39
- package/build/list-item/hooks/use-split.js.map +0 -1
- package/build-module/list-item/hooks/use-split.js +0 -32
- package/build-module/list-item/hooks/use-split.js.map +0 -1
- package/src/list-item/hooks/use-split.js +0 -33
|
@@ -8,6 +8,8 @@ exports.default = TemplatePartPlaceholder;
|
|
|
8
8
|
var _i18n = require("@wordpress/i18n");
|
|
9
9
|
var _components = require("@wordpress/components");
|
|
10
10
|
var _element = require("@wordpress/element");
|
|
11
|
+
var _data = require("@wordpress/data");
|
|
12
|
+
var _coreData = require("@wordpress/core-data");
|
|
11
13
|
var _hooks = require("./utils/hooks");
|
|
12
14
|
var _titleModal = _interopRequireDefault(require("./title-modal"));
|
|
13
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -31,20 +33,38 @@ function TemplatePartPlaceholder({
|
|
|
31
33
|
isResolving
|
|
32
34
|
} = (0, _hooks.useAlternativeTemplateParts)(area, templatePartId);
|
|
33
35
|
const blockPatterns = (0, _hooks.useAlternativeBlockPatterns)(area, clientId);
|
|
36
|
+
const {
|
|
37
|
+
isBlockBasedTheme,
|
|
38
|
+
canCreateTemplatePart
|
|
39
|
+
} = (0, _data.useSelect)(select => {
|
|
40
|
+
const {
|
|
41
|
+
getCurrentTheme,
|
|
42
|
+
canUser
|
|
43
|
+
} = select(_coreData.store);
|
|
44
|
+
return {
|
|
45
|
+
isBlockBasedTheme: getCurrentTheme()?.is_block_theme,
|
|
46
|
+
canCreateTemplatePart: canUser('create', {
|
|
47
|
+
kind: 'postType',
|
|
48
|
+
name: 'wp_template_part'
|
|
49
|
+
})
|
|
50
|
+
};
|
|
51
|
+
}, []);
|
|
34
52
|
const [showTitleModal, setShowTitleModal] = (0, _element.useState)(false);
|
|
35
53
|
const areaObject = (0, _hooks.useTemplatePartArea)(area);
|
|
36
54
|
const createFromBlocks = (0, _hooks.useCreateTemplatePartFromBlocks)(area, setAttributes);
|
|
37
55
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Placeholder, {
|
|
38
56
|
icon: areaObject.icon,
|
|
39
57
|
label: areaObject.label,
|
|
40
|
-
instructions: (0, _i18n.sprintf)(
|
|
58
|
+
instructions: isBlockBasedTheme ? (0, _i18n.sprintf)(
|
|
59
|
+
// Translators: %s as template part area title ("Header", "Footer", etc.).
|
|
60
|
+
(0, _i18n.__)('Choose an existing %s or create a new one.'), areaObject.label.toLowerCase()) : (0, _i18n.sprintf)(
|
|
41
61
|
// Translators: %s as template part area title ("Header", "Footer", etc.).
|
|
42
|
-
(0, _i18n.__)('Choose an existing %s
|
|
62
|
+
(0, _i18n.__)('Choose an existing %s.'), areaObject.label.toLowerCase()),
|
|
43
63
|
children: [isResolving && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Spinner, {}), !isResolving && !!(templateParts.length || blockPatterns.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
44
64
|
variant: "primary",
|
|
45
65
|
onClick: onOpenSelectionModal,
|
|
46
66
|
children: (0, _i18n.__)('Choose')
|
|
47
|
-
}), !isResolving && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
67
|
+
}), !isResolving && isBlockBasedTheme && canCreateTemplatePart && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
48
68
|
variant: "secondary",
|
|
49
69
|
onClick: () => {
|
|
50
70
|
setShowTitleModal(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_components","_element","_hooks","_titleModal","_interopRequireDefault","_jsxRuntime","TemplatePartPlaceholder","area","clientId","templatePartId","onOpenSelectionModal","setAttributes","templateParts","isResolving","useAlternativeTemplateParts","blockPatterns","useAlternativeBlockPatterns","showTitleModal","setShowTitleModal","useState","areaObject","useTemplatePartArea","createFromBlocks","useCreateTemplatePartFromBlocks","jsxs","Placeholder","icon","label","instructions","sprintf","__","toLowerCase","children","jsx","Spinner","length","Button","variant","onClick","default","areaLabel","onClose","onSubmit","title"],"sources":["@wordpress/block-library/src/template-part/edit/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\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\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={ sprintf(\n\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\tareaObject.label.toLowerCase()\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 && (\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"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_element","_data","_coreData","_hooks","_titleModal","_interopRequireDefault","_jsxRuntime","TemplatePartPlaceholder","area","clientId","templatePartId","onOpenSelectionModal","setAttributes","templateParts","isResolving","useAlternativeTemplateParts","blockPatterns","useAlternativeBlockPatterns","isBlockBasedTheme","canCreateTemplatePart","useSelect","select","getCurrentTheme","canUser","coreStore","is_block_theme","kind","name","showTitleModal","setShowTitleModal","useState","areaObject","useTemplatePartArea","createFromBlocks","useCreateTemplatePartFromBlocks","jsxs","Placeholder","icon","label","instructions","sprintf","__","toLowerCase","children","jsx","Spinner","length","Button","variant","onClick","default","areaLabel","onClose","onSubmit","title"],"sources":["@wordpress/block-library/src/template-part/edit/placeholder.js"],"sourcesContent":["/**\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ function TitleModal({
|
|
|
19
19
|
}) {
|
|
20
20
|
// Restructure onCreate to set the blocks on local state.
|
|
21
21
|
// Add modal to confirm title and trigger onCreate.
|
|
22
|
-
const [title, setTitle] = (0, _element.useState)(
|
|
22
|
+
const [title, setTitle] = (0, _element.useState)('');
|
|
23
23
|
const submitForCreation = event => {
|
|
24
24
|
event.preventDefault();
|
|
25
25
|
onSubmit(title);
|
|
@@ -27,27 +27,39 @@ function TitleModal({
|
|
|
27
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Modal, {
|
|
28
28
|
title: (0, _i18n.sprintf)(
|
|
29
29
|
// Translators: %s as template part area title ("Header", "Footer", etc.).
|
|
30
|
-
(0, _i18n.__)('
|
|
31
|
-
overlayClassName: "wp-block-template-part__placeholder-create-new__title-form",
|
|
30
|
+
(0, _i18n.__)('Create new %s'), areaLabel.toLowerCase()),
|
|
32
31
|
onRequestClose: onClose,
|
|
32
|
+
focusOnMount: "firstContentElement",
|
|
33
|
+
size: "small",
|
|
33
34
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
|
|
34
35
|
onSubmit: submitForCreation,
|
|
35
36
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
|
|
36
37
|
spacing: "5",
|
|
37
38
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
38
|
-
__nextHasNoMarginBottom: true,
|
|
39
39
|
label: (0, _i18n.__)('Name'),
|
|
40
40
|
value: title,
|
|
41
|
-
onChange: setTitle
|
|
42
|
-
|
|
41
|
+
onChange: setTitle,
|
|
42
|
+
placeholder: (0, _i18n.__)('Custom Template Part'),
|
|
43
|
+
__nextHasNoMarginBottom: true,
|
|
44
|
+
__next40pxDefaultSize: true
|
|
45
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
|
|
43
46
|
justify: "right",
|
|
44
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
47
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
48
|
+
__next40pxDefaultSize: true,
|
|
49
|
+
variant: "tertiary",
|
|
50
|
+
onClick: () => {
|
|
51
|
+
onClose();
|
|
52
|
+
setTitle('');
|
|
53
|
+
},
|
|
54
|
+
children: (0, _i18n.__)('Cancel')
|
|
55
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
45
56
|
variant: "primary",
|
|
46
57
|
type: "submit",
|
|
47
58
|
accessibleWhenDisabled: true,
|
|
48
59
|
disabled: !title.length,
|
|
60
|
+
__next40pxDefaultSize: true,
|
|
49
61
|
children: (0, _i18n.__)('Create')
|
|
50
|
-
})
|
|
62
|
+
})]
|
|
51
63
|
})]
|
|
52
64
|
})
|
|
53
65
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_components","_jsxRuntime","TitleModal","areaLabel","onClose","onSubmit","title","setTitle","useState","
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_jsxRuntime","TitleModal","areaLabel","onClose","onSubmit","title","setTitle","useState","submitForCreation","event","preventDefault","jsx","Modal","sprintf","__","toLowerCase","onRequestClose","focusOnMount","size","children","jsxs","__experimentalVStack","spacing","TextControl","label","value","onChange","placeholder","__nextHasNoMarginBottom","__next40pxDefaultSize","__experimentalHStack","justify","Button","variant","onClick","type","accessibleWhenDisabled","disabled","length"],"sources":["@wordpress/block-library/src/template-part/edit/title-modal.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAM+B,IAAAG,WAAA,GAAAH,OAAA;AAX/B;AACA;AACA;;AAWe,SAASI,UAAUA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EACtE;EACA;EACA,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EAE1C,MAAMC,iBAAiB,GAAKC,KAAK,IAAM;IACtCA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtBN,QAAQ,CAAEC,KAAM,CAAC;EAClB,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAW,GAAA,EAACZ,WAAA,CAAAa,KAAK;IACLP,KAAK,EAAG,IAAAQ,aAAO;IACd;IACA,IAAAC,QAAE,EAAE,eAAgB,CAAC,EACrBZ,SAAS,CAACa,WAAW,CAAC,CACvB,CAAG;IACHC,cAAc,EAAGb,OAAS;IAC1Bc,YAAY,EAAC,qBAAqB;IAClCC,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZ,IAAAnB,WAAA,CAAAW,GAAA;MAAMP,QAAQ,EAAGI,iBAAmB;MAAAW,QAAA,eACnC,IAAAnB,WAAA,CAAAoB,IAAA,EAACrB,WAAA,CAAAsB,oBAAM;QAACC,OAAO,EAAC,GAAG;QAAAH,QAAA,gBAClB,IAAAnB,WAAA,CAAAW,GAAA,EAACZ,WAAA,CAAAwB,WAAW;UACXC,KAAK,EAAG,IAAAV,QAAE,EAAE,MAAO,CAAG;UACtBW,KAAK,EAAGpB,KAAO;UACfqB,QAAQ,EAAGpB,QAAU;UACrBqB,WAAW,EAAG,IAAAb,QAAE,EAAE,sBAAuB,CAAG;UAC5Cc,uBAAuB;UACvBC,qBAAqB;QAAA,CACrB,CAAC,eACF,IAAA7B,WAAA,CAAAoB,IAAA,EAACrB,WAAA,CAAA+B,oBAAM;UAACC,OAAO,EAAC,OAAO;UAAAZ,QAAA,gBACtB,IAAAnB,WAAA,CAAAW,GAAA,EAACZ,WAAA,CAAAiC,MAAM;YACNH,qBAAqB;YACrBI,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGA,CAAA,KAAM;cACf/B,OAAO,CAAC,CAAC;cACTG,QAAQ,CAAE,EAAG,CAAC;YACf,CAAG;YAAAa,QAAA,EAED,IAAAL,QAAE,EAAE,QAAS;UAAC,CACT,CAAC,eACT,IAAAd,WAAA,CAAAW,GAAA,EAACZ,WAAA,CAAAiC,MAAM;YACNC,OAAO,EAAC,SAAS;YACjBE,IAAI,EAAC,QAAQ;YACbC,sBAAsB;YACtBC,QAAQ,EAAG,CAAEhC,KAAK,CAACiC,MAAQ;YAC3BT,qBAAqB;YAAAV,QAAA,EAEnB,IAAAL,QAAE,EAAE,QAAS;UAAC,CACT,CAAC;QAAA,CACF,CAAC;MAAA,CACF;IAAC,CACJ;EAAC,CACD,CAAC;AAEV","ignoreList":[]}
|
|
@@ -56,6 +56,18 @@ const metadata = exports.metadata = {
|
|
|
56
56
|
},
|
|
57
57
|
interactivity: {
|
|
58
58
|
clientNavigation: true
|
|
59
|
+
},
|
|
60
|
+
__experimentalBorder: {
|
|
61
|
+
radius: true,
|
|
62
|
+
color: true,
|
|
63
|
+
width: true,
|
|
64
|
+
style: true,
|
|
65
|
+
__experimentalDefaultControls: {
|
|
66
|
+
radius: true,
|
|
67
|
+
color: true,
|
|
68
|
+
width: true,
|
|
69
|
+
style: true
|
|
70
|
+
}
|
|
59
71
|
}
|
|
60
72
|
}
|
|
61
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","textdomain","attributes","textAlign","type","supports","align","html","color","link","__experimentalDefaultControls","background","text","spacing","padding","margin","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","settings","icon","edit","init","initBlock"],"sources":["@wordpress/block-library/src/term-description/index.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AAVA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;EAAA;AAAA;AAOA,MAAM;
|
|
1
|
+
{"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","textdomain","attributes","textAlign","type","supports","align","html","color","link","__experimentalDefaultControls","background","text","spacing","padding","margin","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","settings","icon","edit","init","initBlock"],"sources":["@wordpress/block-library/src/term-description/index.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AAVA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAd,6BAAA;QAAAO,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAApB,KAAA;MAAAqB,KAAA;MAAAC,KAAA;MAAApB,6BAAA;QAAAkB,MAAA;QAAApB,KAAA;QAAAqB,KAAA;QAAAC,KAAA;MAAA;IAAA;EAAA;AAAA;AAOA,MAAM;EAAEjC;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMkC,QAAQ,GAAArC,OAAA,CAAAqC,QAAA,GAAG;EACvBC,IAAI,EAAJA,sBAAI;EACJC,IAAI,EAAJA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEtC,IAAI;EAAEJ,QAAQ;EAAEsC;AAAS,CAAE,CAAC;AAACrC,OAAA,CAAAwC,IAAA,GAAAA,IAAA","ignoreList":[]}
|
package/build/utils/hooks.js
CHANGED
|
@@ -24,7 +24,11 @@ var _compose = require("@wordpress/compose");
|
|
|
24
24
|
* @param {string} recordId Record's id.
|
|
25
25
|
*/
|
|
26
26
|
function useCanEditEntity(kind, name, recordId) {
|
|
27
|
-
return (0, _data.useSelect)(select => select(_coreData.store).
|
|
27
|
+
return (0, _data.useSelect)(select => select(_coreData.store).canUser('update', {
|
|
28
|
+
kind,
|
|
29
|
+
name,
|
|
30
|
+
id: recordId
|
|
31
|
+
}), [kind, name, recordId]);
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
/**
|
package/build/utils/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_element","_blob","_blockEditor","_coreData","_compose","useCanEditEntity","kind","name","recordId","useSelect","select","coreStore","
|
|
1
|
+
{"version":3,"names":["_data","require","_element","_blob","_blockEditor","_coreData","_compose","useCanEditEntity","kind","name","recordId","useSelect","select","coreStore","canUser","id","useUploadMediaFromBlobURL","args","latestArgs","useRef","hasUploadStarted","getSettings","blockEditorStore","useLayoutEffect","current","useEffect","url","isBlobURL","file","getBlobByURL","allowedTypes","onChange","onError","mediaUpload","filesList","onFileChange","media","revokeBlobURL","message","useToolsPanelDropdownMenuProps","isMobile","useViewportMatch","popoverProps","placement","offset"],"sources":["@wordpress/block-library/src/utils/hooks.js"],"sourcesContent":["/**\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"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AARA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,gBAAgBA,CAAEC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAG;EACxD,OAAO,IAAAC,eAAS,EACbC,MAAM,IACPA,MAAM,CAAEC,eAAU,CAAC,CAACC,OAAO,CAAE,QAAQ,EAAE;IACtCN,IAAI;IACJC,IAAI;IACJM,EAAE,EAAEL;EACL,CAAE,CAAC,EACJ,CAAEF,IAAI,EAAEC,IAAI,EAAEC,QAAQ,CACvB,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,yBAAyBA,CAAEC,IAAI,GAAG,CAAC,CAAC,EAAG;EACtD,MAAMC,UAAU,GAAG,IAAAC,eAAM,EAAEF,IAAK,CAAC;EACjC,MAAMG,gBAAgB,GAAG,IAAAD,eAAM,EAAE,KAAM,CAAC;EACxC,MAAM;IAAEE;EAAY,CAAC,GAAG,IAAAV,eAAS,EAAEW,kBAAiB,CAAC;EAErD,IAAAC,wBAAe,EAAE,MAAM;IACtBL,UAAU,CAACM,OAAO,GAAGP,IAAI;EAC1B,CAAE,CAAC;EAEH,IAAAQ,kBAAS,EAAE,MAAM;IAChB;IACA;IACA,IAAKL,gBAAgB,CAACI,OAAO,EAAG;MAC/B;IACD;IACA,IACC,CAAEN,UAAU,CAACM,OAAO,CAACE,GAAG,IACxB,CAAE,IAAAC,eAAS,EAAET,UAAU,CAACM,OAAO,CAACE,GAAI,CAAC,EACpC;MACD;IACD;IAEA,MAAME,IAAI,GAAG,IAAAC,kBAAY,EAAEX,UAAU,CAACM,OAAO,CAACE,GAAI,CAAC;IACnD,IAAK,CAAEE,IAAI,EAAG;MACb;IACD;IAEA,MAAM;MAAEF,GAAG;MAAEI,YAAY;MAAEC,QAAQ;MAAEC;IAAQ,CAAC,GAAGd,UAAU,CAACM,OAAO;IACnE,MAAM;MAAES;IAAY,CAAC,GAAGZ,WAAW,CAAC,CAAC;IAErCD,gBAAgB,CAACI,OAAO,GAAG,IAAI;IAE/BS,WAAW,CAAE;MACZC,SAAS,EAAE,CAAEN,IAAI,CAAE;MACnBE,YAAY;MACZK,YAAY,EAAEA,CAAE,CAAEC,KAAK,CAAE,KAAM;QAC9B,IAAK,IAAAT,eAAS,EAAES,KAAK,EAAEV,GAAI,CAAC,EAAG;UAC9B;QACD;QAEA,IAAAW,mBAAa,EAAEX,GAAI,CAAC;QACpBK,QAAQ,CAAEK,KAAM,CAAC;QACjBhB,gBAAgB,CAACI,OAAO,GAAG,KAAK;MACjC,CAAC;MACDQ,OAAO,EAAIM,OAAO,IAAM;QACvB,IAAAD,mBAAa,EAAEX,GAAI,CAAC;QACpBM,OAAO,CAAEM,OAAQ,CAAC;QAClBlB,gBAAgB,CAACI,OAAO,GAAG,KAAK;MACjC;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEH,WAAW,CAAG,CAAC;AACrB;AAEO,SAASkB,8BAA8BA,CAAA,EAAG;EAChD,MAAMC,QAAQ,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAClD,OAAO,CAAED,QAAQ,GACd;IACAE,YAAY,EAAE;MACbC,SAAS,EAAE,YAAY;MACvB;MACAC,MAAM,EAAE;IACT;EACA,CAAC,GACD,CAAC,CAAC;AACN","ignoreList":[]}
|
|
@@ -93,6 +93,37 @@ export default function ReusableBlockEditRecursionWrapper(props) {
|
|
|
93
93
|
})
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
|
+
function ReusableBlockControl({
|
|
97
|
+
recordId,
|
|
98
|
+
canOverrideBlocks,
|
|
99
|
+
hasContent,
|
|
100
|
+
handleEditOriginal,
|
|
101
|
+
resetContent
|
|
102
|
+
}) {
|
|
103
|
+
const canUserEdit = useSelect(select => !!select(coreStore).canUser('update', {
|
|
104
|
+
kind: 'postType',
|
|
105
|
+
name: 'wp_block',
|
|
106
|
+
id: recordId
|
|
107
|
+
}), [recordId]);
|
|
108
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
109
|
+
children: [canUserEdit && !!handleEditOriginal && /*#__PURE__*/_jsx(BlockControls, {
|
|
110
|
+
children: /*#__PURE__*/_jsx(ToolbarGroup, {
|
|
111
|
+
children: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
112
|
+
onClick: handleEditOriginal,
|
|
113
|
+
children: __('Edit original')
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
}), canOverrideBlocks && /*#__PURE__*/_jsx(BlockControls, {
|
|
117
|
+
children: /*#__PURE__*/_jsx(ToolbarGroup, {
|
|
118
|
+
children: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
119
|
+
onClick: resetContent,
|
|
120
|
+
disabled: !hasContent,
|
|
121
|
+
children: __('Reset')
|
|
122
|
+
})
|
|
123
|
+
})
|
|
124
|
+
})]
|
|
125
|
+
});
|
|
126
|
+
}
|
|
96
127
|
function ReusableBlockEdit({
|
|
97
128
|
name,
|
|
98
129
|
attributes: {
|
|
@@ -117,14 +148,10 @@ function ReusableBlockEdit({
|
|
|
117
148
|
} = useDispatch(blockEditorStore);
|
|
118
149
|
const {
|
|
119
150
|
innerBlocks,
|
|
120
|
-
userCanEdit,
|
|
121
151
|
onNavigateToEntityRecord,
|
|
122
152
|
editingMode,
|
|
123
153
|
hasPatternOverridesSource
|
|
124
154
|
} = useSelect(select => {
|
|
125
|
-
const {
|
|
126
|
-
canUser
|
|
127
|
-
} = select(coreStore);
|
|
128
155
|
const {
|
|
129
156
|
getBlocks,
|
|
130
157
|
getSettings,
|
|
@@ -133,18 +160,15 @@ function ReusableBlockEdit({
|
|
|
133
160
|
const {
|
|
134
161
|
getBlockBindingsSource
|
|
135
162
|
} = unlock(select(blocksStore));
|
|
136
|
-
const canEdit = canUser('update', 'blocks', ref);
|
|
137
|
-
|
|
138
163
|
// For editing link to the site editor if the theme and user permissions support it.
|
|
139
164
|
return {
|
|
140
165
|
innerBlocks: getBlocks(patternClientId),
|
|
141
|
-
userCanEdit: canEdit,
|
|
142
166
|
getBlockEditingMode: _getBlockEditingMode,
|
|
143
167
|
onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
|
|
144
168
|
editingMode: _getBlockEditingMode(patternClientId),
|
|
145
169
|
hasPatternOverridesSource: !!getBlockBindingsSource('core/pattern-overrides')
|
|
146
170
|
};
|
|
147
|
-
}, [patternClientId
|
|
171
|
+
}, [patternClientId]);
|
|
148
172
|
|
|
149
173
|
// Sync the editing mode of the pattern block with the inner blocks.
|
|
150
174
|
useEffect(() => {
|
|
@@ -202,21 +226,12 @@ function ReusableBlockEdit({
|
|
|
202
226
|
});
|
|
203
227
|
}
|
|
204
228
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
205
|
-
children: [
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
})
|
|
212
|
-
}), canOverrideBlocks && /*#__PURE__*/_jsx(BlockControls, {
|
|
213
|
-
children: /*#__PURE__*/_jsx(ToolbarGroup, {
|
|
214
|
-
children: /*#__PURE__*/_jsx(ToolbarButton, {
|
|
215
|
-
onClick: resetContent,
|
|
216
|
-
disabled: !content,
|
|
217
|
-
children: __('Reset')
|
|
218
|
-
})
|
|
219
|
-
})
|
|
229
|
+
children: [hasResolved && /*#__PURE__*/_jsx(ReusableBlockControl, {
|
|
230
|
+
recordId: ref,
|
|
231
|
+
canOverrideBlocks: canOverrideBlocks,
|
|
232
|
+
hasContent: !!content,
|
|
233
|
+
handleEditOriginal: onNavigateToEntityRecord ? handleEditOriginal : undefined,
|
|
234
|
+
resetContent: resetContent
|
|
220
235
|
}), children === null ? /*#__PURE__*/_jsx("div", {
|
|
221
236
|
...innerBlocksProps
|
|
222
237
|
}) : /*#__PURE__*/_jsx("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useLayoutClasses","isOverridableBlock","hasOverridableBlocks","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","innerBlocks","RecursionWarning","blockProps","children","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","id","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","userCanEdit","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","handleEditOriginal","postId","postType","resetContent","onClick","disabled"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\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 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\tuserCanEdit,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\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\tconst canEdit = canUser( 'update', 'blocks', ref );\n\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\tuserCanEdit: canEdit,\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, ref ]\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{ userCanEdit && onNavigateToEntityRecord && (\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={ ! content }\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\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","useLayoutClasses","isOverridableBlock","hasOverridableBlocks","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","innerBlocks","RecursionWarning","blockProps","children","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","ReusableBlockControl","recordId","canOverrideBlocks","hasContent","handleEditOriginal","resetContent","canUserEdit","select","canUser","kind","id","onClick","disabled","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","postId","postType"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -196,7 +196,7 @@ function ButtonEdit(props) {
|
|
|
196
196
|
}
|
|
197
197
|
const blockBindingsSource = unlock(select(blocksStore)).getBlockBindingsSource(metadata?.bindings?.url?.source);
|
|
198
198
|
return {
|
|
199
|
-
lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue({
|
|
199
|
+
lockUrlControls: !!metadata?.bindings?.url && !blockBindingsSource?.canUserEditValue?.({
|
|
200
200
|
select,
|
|
201
201
|
context,
|
|
202
202
|
args: metadata?.bindings?.url?.args
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","NEW_TAB_TARGET","NOFOLLOW_REL","getUpdatedLinkAttributes","removeAnchorTag","unlock","__","useEffect","useState","useRef","useMemo","Button","ButtonGroup","PanelBody","TextControl","ToolbarButton","Popover","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalGetShadowClassesAndStyles","useShadowProps","__experimentalLinkControl","LinkControl","__experimentalGetElementClassName","store","blockEditorStore","useBlockEditingMode","displayShortcut","isKeyboardEvent","ENTER","link","linkOff","createBlock","cloneBlock","getDefaultBlockName","blocksStore","useMergeRefs","useRefEffect","useSelect","useDispatch","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","LINK_SETTINGS","DEFAULT_LINK_SETTINGS","id","title","useEnter","props","replaceBlocks","selectionChange","getBlock","getBlockRootClientId","getBlockIndex","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","innerBlocks","slice","middle","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","children","map","widthValue","size","variant","onClick","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","context","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","shadowProps","ref","blockProps","blockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","nofollow","includes","isLinkTag","linkValue","useEnterRef","mergedRef","lockUrlControls","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","fontSize","value","onChange","withoutInteractiveFormatting","border","radius","onMerge","identifier","group","nextAlign","name","icon","shortcut","isActive","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","newURL","newOpensInNewTab","newNofollow","onRemove","forceIsEditingLink","settings","__nextHasNoMarginBottom","label","newRel"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\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"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,cAAc,EAAEC,YAAY,QAAQ,aAAa;AAC1D,SAASC,wBAAwB,QAAQ,+BAA+B;AACxE,OAAOC,eAAe,MAAM,4BAA4B;AACxD,SAASC,MAAM,QAAQ,gBAAgB;;AAEvC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,oBAAoB;AACzE,SACCC,MAAM,EACNC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,aAAa,EACbC,OAAO,QACD,uBAAuB;AAC9B,SACCC,gBAAgB,EAChBC,aAAa,EACbC,iBAAiB,EACjBC,QAAQ,EACRC,aAAa,EACbC,4BAA4B,IAAIC,cAAc,EAC9CC,2BAA2B,IAAIC,aAAa,EAC5CC,wCAAwC,IAAIC,eAAe,EAC3DC,uCAAuC,IAAIC,cAAc,EACzDC,yBAAyB,IAAIC,WAAW,EACxCC,iCAAiC,EACjCC,KAAK,IAAIC,gBAAgB,EACzBC,mBAAmB,QACb,yBAAyB;AAChC,SAASC,eAAe,EAAEC,eAAe,EAAEC,KAAK,QAAQ,qBAAqB;AAC7E,SAASC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAChD,SACCC,WAAW,EACXC,UAAU,EACVC,mBAAmB,EACnBV,KAAK,IAAIW,WAAW,QACd,mBAAmB;AAC1B,SAASC,YAAY,EAAEC,YAAY,QAAQ,oBAAoB;AAC/D,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AAAC,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAEzD,MAAMC,aAAa,GAAG,CACrB,GAAGxB,WAAW,CAACyB,qBAAqB,EACpC;EACCC,EAAE,EAAE,UAAU;EACdC,KAAK,EAAEpD,EAAE,CAAE,kBAAmB;AAC/B,CAAC,CACD;AAED,SAASqD,QAAQA,CAAEC,KAAK,EAAG;EAC1B,MAAM;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAGd,WAAW,CAAEd,gBAAiB,CAAC;EAC1E,MAAM;IAAE6B,QAAQ;IAAEC,oBAAoB;IAAEC;EAAc,CAAC,GACtDlB,SAAS,CAAEb,gBAAiB,CAAC;EAC9B,MAAMgC,QAAQ,GAAGzD,MAAM,CAAEmD,KAAM,CAAC;EAChCM,QAAQ,CAACC,OAAO,GAAGP,KAAK;EACxB,OAAOd,YAAY,CAAIsB,OAAO,IAAM;IACnC,SAASC,SAASA,CAAEC,KAAK,EAAG;MAC3B,IAAKA,KAAK,CAACC,gBAAgB,IAAID,KAAK,CAACE,OAAO,KAAKlC,KAAK,EAAG;QACxD;MACD;MACA,MAAM;QAAEmC,OAAO;QAAEC;MAAS,CAAC,GAAGR,QAAQ,CAACC,OAAO;MAC9C,IAAKM,OAAO,CAACE,MAAM,EAAG;QACrB;MACD;MACAL,KAAK,CAACM,cAAc,CAAC,CAAC;MACtB,MAAMC,kBAAkB,GAAGd,QAAQ,CAClCC,oBAAoB,CAAEU,QAAS,CAChC,CAAC;MACD,MAAMI,UAAU,GAAGb,aAAa,CAAES,QAAS,CAAC;MAC5C,MAAMK,IAAI,GAAGrC,UAAU,CAAE;QACxB,GAAGmC,kBAAkB;QACrBG,WAAW,EAAEH,kBAAkB,CAACG,WAAW,CAACC,KAAK,CAChD,CAAC,EACDH,UACD;MACD,CAAE,CAAC;MACH,MAAMI,MAAM,GAAGzC,WAAW,CAAEE,mBAAmB,CAAC,CAAE,CAAC;MACnD,MAAMwC,KAAK,GAAGN,kBAAkB,CAACG,WAAW,CAACC,KAAK,CACjDH,UAAU,GAAG,CACd,CAAC;MACD,MAAMM,IAAI,GAAGD,KAAK,CAACR,MAAM,GACtB,CACAjC,UAAU,CAAE;QACX,GAAGmC,kBAAkB;QACrBG,WAAW,EAAEG;MACd,CAAE,CAAC,CACF,GACD,EAAE;MACLtB,aAAa,CACZgB,kBAAkB,CAACH,QAAQ,EAC3B,CAAEK,IAAI,EAAEG,MAAM,EAAE,GAAGE,IAAI,CAAE,EACzB,CACD,CAAC;MACD;MACA;MACAtB,eAAe,CAAEoB,MAAM,CAACR,QAAS,CAAC;IACnC;IAEAN,OAAO,CAACiB,gBAAgB,CAAE,SAAS,EAAEhB,SAAU,CAAC;IAChD,OAAO,MAAM;MACZD,OAAO,CAACkB,mBAAmB,CAAE,SAAS,EAAEjB,SAAU,CAAC;IACpD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR;AAEA,SAASkB,UAAUA,CAAE;EAAEC,aAAa;EAAEC;AAAc,CAAC,EAAG;EACvD,SAASC,YAAYA,CAAEC,QAAQ,EAAG;IACjC;IACA,MAAMC,KAAK,GAAGJ,aAAa,KAAKG,QAAQ,GAAGE,SAAS,GAAGF,QAAQ;;IAE/D;IACAF,aAAa,CAAE;MAAEG;IAAM,CAAE,CAAC;EAC3B;EAEA,oBACCxC,IAAA,CAACvC,SAAS;IAAC6C,KAAK,EAAGpD,EAAE,CAAE,UAAW,CAAG;IAAAwF,QAAA,eACpC1C,IAAA,CAACxC,WAAW;MAAC,cAAaN,EAAE,CAAE,cAAe,CAAG;MAAAwF,QAAA,EAC7C,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,CAACC,GAAG,CAAIC,UAAU,IAAM;QAC5C,oBACC9C,KAAA,CAACvC,MAAM;UAENsF,IAAI,EAAC,OAAO;UACZC,OAAO,EACNF,UAAU,KAAKR,aAAa,GACzB,SAAS,GACTK,SACH;UACDM,OAAO,EAAGA,CAAA,KAAMT,YAAY,CAAEM,UAAW,CAAG;UAAAF,QAAA,GAE1CE,UAAU,EAAE,GACf;QAAA,GAVOA,UAUC,CAAC;MAEX,CAAE;IAAC,CACS;EAAC,CACJ,CAAC;AAEd;AAEA,SAASI,UAAUA,CAAExC,KAAK,EAAG;EAC5B,MAAM;IACLyC,UAAU;IACVZ,aAAa;IACba,SAAS;IACTC,UAAU;IACVC,SAAS;IACTC,WAAW;IACX/B,QAAQ;IACRgC;EACD,CAAC,GAAG9C,KAAK;EACT,MAAM;IACL+C,OAAO;IACPC,SAAS;IACTC,UAAU;IACVC,WAAW;IACXC,GAAG;IACHC,KAAK;IACLC,IAAI;IACJC,GAAG;IACHtB,KAAK;IACLuB;EACD,CAAC,GAAGd,UAAU;EAEd,MAAMe,OAAO,GAAGT,OAAO,IAAI,GAAG;EAE9B,SAAStC,SAASA,CAAEC,KAAK,EAAG;IAC3B,IAAKjC,eAAe,CAACgF,OAAO,CAAE/C,KAAK,EAAE,GAAI,CAAC,EAAG;MAC5CgD,YAAY,CAAEhD,KAAM,CAAC;IACtB,CAAC,MAAM,IAAKjC,eAAe,CAACkF,YAAY,CAAEjD,KAAK,EAAE,GAAI,CAAC,EAAG;MACxDkD,MAAM,CAAC,CAAC;MACRC,WAAW,CAACtD,OAAO,EAAEuD,KAAK,CAAC,CAAC;IAC7B;EACD;;EAEA;EACA;EACA,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGpH,QAAQ,CAAE,IAAK,CAAC;EAE5D,MAAMqH,WAAW,GAAGtG,cAAc,CAAE8E,UAAW,CAAC;EAChD,MAAMyB,UAAU,GAAGrG,aAAa,CAAE4E,UAAW,CAAC;EAC9C,MAAM0B,YAAY,GAAGpG,eAAe,CAAE0E,UAAW,CAAC;EAClD,MAAM2B,WAAW,GAAGnG,cAAc,CAAEwE,UAAW,CAAC;EAChD,MAAM4B,GAAG,GAAGxH,MAAM,CAAC,CAAC;EACpB,MAAMgH,WAAW,GAAGhH,MAAM,CAAC,CAAC;EAC5B,MAAMyH,UAAU,GAAG7G,aAAa,CAAE;IACjC4G,GAAG,EAAEpF,YAAY,CAAE,CAAE+E,gBAAgB,EAAEK,GAAG,CAAG,CAAC;IAC9C5D;EACD,CAAE,CAAC;EACH,MAAM8D,gBAAgB,GAAGhG,mBAAmB,CAAC,CAAC;EAE9C,MAAM,CAAEiG,YAAY,EAAEC,eAAe,CAAE,GAAG7H,QAAQ,CAAE,KAAM,CAAC;EAC3D,MAAM8H,QAAQ,GAAG,CAAC,CAAEpB,GAAG;EACvB,MAAMqB,aAAa,GAAG1B,UAAU,KAAK5G,cAAc;EACnD,MAAMuI,QAAQ,GAAG,CAAC,CAAEzB,GAAG,EAAE0B,QAAQ,CAAEvI,YAAa,CAAC;EACjD,MAAMwI,SAAS,GAAG,GAAG,KAAKtB,OAAO;EAEjC,SAASE,YAAYA,CAAEhD,KAAK,EAAG;IAC9BA,KAAK,CAACM,cAAc,CAAC,CAAC;IACtByD,eAAe,CAAE,IAAK,CAAC;EACxB;EAEA,SAASb,MAAMA,CAAA,EAAG;IACjB/B,aAAa,CAAE;MACdyB,GAAG,EAAErB,SAAS;MACdgB,UAAU,EAAEhB,SAAS;MACrBkB,GAAG,EAAElB;IACN,CAAE,CAAC;IACHwC,eAAe,CAAE,KAAM,CAAC;EACzB;EAEA9H,SAAS,CAAE,MAAM;IAChB,IAAK,CAAEgG,UAAU,EAAG;MACnB8B,eAAe,CAAE,KAAM,CAAC;IACzB;EACD,CAAC,EAAE,CAAE9B,UAAU,CAAG,CAAC;;EAEnB;EACA;EACA,MAAMoC,SAAS,GAAGjI,OAAO,CACxB,OAAQ;IAAEwG,GAAG;IAAEqB,aAAa;IAAEC;EAAS,CAAC,CAAE,EAC1C,CAAEtB,GAAG,EAAEqB,aAAa,EAAEC,QAAQ,CAC/B,CAAC;EAED,MAAMI,WAAW,GAAGjF,QAAQ,CAAE;IAAEc,OAAO,EAAEwC,IAAI;IAAEvC;EAAS,CAAE,CAAC;EAC3D,MAAMmE,SAAS,GAAGhG,YAAY,CAAE,CAAE+F,WAAW,EAAEnB,WAAW,CAAG,CAAC;EAE9D,MAAM;IAAEqB,eAAe,GAAG;EAAM,CAAC,GAAG/F,SAAS,CAC1CgG,MAAM,IAAM;IACb,IAAK,CAAExC,UAAU,EAAG;MACnB,OAAO,CAAC,CAAC;IACV;IAEA,MAAMyC,mBAAmB,GAAG3I,MAAM,CACjC0I,MAAM,CAAEnG,WAAY,CACrB,CAAC,CAACqG,sBAAsB,CAAE9B,QAAQ,EAAE+B,QAAQ,EAAEhC,GAAG,EAAEiC,MAAO,CAAC;IAE3D,OAAO;MACNL,eAAe,EACd,CAAC,CAAE3B,QAAQ,EAAE+B,QAAQ,EAAEhC,GAAG,IAC1B,CAAE8B,mBAAmB,EAAEI,gBAAgB,CAAE;QACxCL,MAAM;QACNrC,OAAO;QACP2C,IAAI,EAAElC,QAAQ,EAAE+B,QAAQ,EAAEhC,GAAG,EAAEmC;MAChC,CAAE;IACJ,CAAC;EACF,CAAC,EACD,CAAE9C,UAAU,EAAEY,QAAQ,EAAE+B,QAAQ,EAAEhC,GAAG,CACtC,CAAC;EAED,oBACChE,KAAA,CAAAI,SAAA;IAAAwC,QAAA,gBACC1C,IAAA;MAAA,GACM8E,UAAU;MACf5B,SAAS,EAAGtG,IAAI,CAAEkI,UAAU,CAAC5B,SAAS,EAAE;QACvC,CAAG,2CAA2CV,KAAO,EAAC,GACrDA,KAAK;QACN,CAAG,sBAAqB,GAAIsC,UAAU,CAAClB,KAAK,CAACsC;MAC9C,CAAE,CAAG;MAAAxD,QAAA,eAEL1C,IAAA,CAAChC,QAAQ;QACR6G,GAAG,EAAGY,SAAW;QACjB,cAAavI,EAAE,CAAE,aAAc,CAAG;QAClCwG,WAAW,EAAGA,WAAW,IAAIxG,EAAE,CAAE,WAAY,CAAG;QAChDiJ,KAAK,EAAGtC,IAAM;QACduC,QAAQ,EAAKD,KAAK,IACjB9D,aAAa,CAAE;UACdwB,IAAI,EAAE7G,eAAe,CAAEmJ,KAAM;QAC9B,CAAE,CACF;QACDE,4BAA4B;QAC5BnD,SAAS,EAAGtG,IAAI,CACfsG,SAAS,EACT,uBAAuB,EACvBwB,UAAU,CAACxB,SAAS,EACpBuB,WAAW,CAACvB,SAAS,EACrB;UACC,CAAG,kBAAkBM,SAAW,EAAC,GAAIA,SAAS;UAC9C;UACA;UACA,kBAAkB,EAAEI,KAAK,EAAE0C,MAAM,EAAEC,MAAM,KAAK;QAC/C,CAAC,EACD3H,iCAAiC,CAAE,QAAS,CAC7C,CAAG;QACHgF,KAAK,EAAG;UACP,GAAGa,WAAW,CAACb,KAAK;UACpB,GAAGc,UAAU,CAACd,KAAK;UACnB,GAAGe,YAAY,CAACf,KAAK;UACrB,GAAGgB,WAAW,CAAChB;QAChB,CAAG;QACHR,SAAS,EAAGA,SAAW;QACvBoD,OAAO,EAAGnD,WAAa;QACvBoD,UAAU,EAAC;MAAM,CACjB;IAAC,CACE,CAAC,eACN3G,KAAA,CAAChC,aAAa;MAAC4I,KAAK,EAAC,OAAO;MAAAhE,QAAA,GACzBqC,gBAAgB,KAAK,SAAS,iBAC/B/E,IAAA,CAACnC,gBAAgB;QAChBsI,KAAK,EAAG3C,SAAW;QACnB4C,QAAQ,EAAKO,SAAS,IAAM;UAC3BtE,aAAa,CAAE;YAAEmB,SAAS,EAAEmD;UAAU,CAAE,CAAC;QAC1C;MAAG,CACH,CACD,EACC,CAAEzB,QAAQ,IAAII,SAAS,IAAI,CAAEI,eAAe,iBAC7C1F,IAAA,CAACrC,aAAa;QACbiJ,IAAI,EAAC,MAAM;QACXC,IAAI,EAAG1H,IAAM;QACbmB,KAAK,EAAGpD,EAAE,CAAE,MAAO,CAAG;QACtB4J,QAAQ,EAAG9H,eAAe,CAACiF,OAAO,CAAE,GAAI,CAAG;QAC3ClB,OAAO,EAAGmB;MAAc,CACxB,CACD,EACCgB,QAAQ,IAAII,SAAS,IAAI,CAAEI,eAAe,iBAC3C1F,IAAA,CAACrC,aAAa;QACbiJ,IAAI,EAAC,MAAM;QACXC,IAAI,EAAGzH,OAAS;QAChBkB,KAAK,EAAGpD,EAAE,CAAE,QAAS,CAAG;QACxB4J,QAAQ,EAAG9H,eAAe,CAACmF,YAAY,CAAE,GAAI,CAAG;QAChDpB,OAAO,EAAGqB,MAAQ;QAClB2C,QAAQ;MAAA,CACR,CACD;IAAA,CACa,CAAC,EACdzB,SAAS,IACVnC,UAAU,KACR6B,YAAY,IAAIE,QAAQ,CAAE,IAC5B,CAAEQ,eAAe,iBAChB1F,IAAA,CAACpC,OAAO;MACPoJ,SAAS,EAAC,QAAQ;MAClBC,OAAO,EAAGA,CAAA,KAAM;QACfhC,eAAe,CAAE,KAAM,CAAC;QACxBZ,WAAW,CAACtD,OAAO,EAAEuD,KAAK,CAAC,CAAC;MAC7B,CAAG;MACH4C,MAAM,EAAG3C,aAAe;MACxB4C,YAAY,EAAGnC,YAAY,GAAG,cAAc,GAAG,KAAO;MACtDoC,kBAAkB,EAAC,8BAA8B;MACjDC,KAAK;MAAA3E,QAAA,eAEL1C,IAAA,CAACrB,WAAW;QACXwH,KAAK,EAAGZ,SAAW;QACnBa,QAAQ,EAAGA,CAAE;UACZtC,GAAG,EAAEwD,MAAM;UACXnC,aAAa,EAAEoC,gBAAgB;UAC/BnC,QAAQ,EAAEoC;QACX,CAAC,KACAnF,aAAa,CACZtF,wBAAwB,CAAE;UACzB4G,GAAG;UACHG,GAAG,EAAEwD,MAAM;UACXnC,aAAa,EAAEoC,gBAAgB;UAC/BnC,QAAQ,EAAEoC;QACX,CAAE,CACH,CACA;QACDC,QAAQ,EAAGA,CAAA,KAAM;UAChBrD,MAAM,CAAC,CAAC;UACRC,WAAW,CAACtD,OAAO,EAAEuD,KAAK,CAAC,CAAC;QAC7B,CAAG;QACHoD,kBAAkB,EAAG1C,YAAc;QACnC2C,QAAQ,EAAGxH;MAAe,CAC1B;IAAC,CACM,CACT,eACFH,IAAA,CAACjC,iBAAiB;MAAA2E,QAAA,eACjB1C,IAAA,CAACmC,UAAU;QACVC,aAAa,EAAGI,KAAO;QACvBH,aAAa,EAAGA;MAAe,CAC/B;IAAC,CACgB,CAAC,eACpBrC,IAAA,CAACjC,iBAAiB;MAAC2I,KAAK,EAAC,UAAU;MAAAhE,QAAA,EAChC4C,SAAS,iBACVtF,IAAA,CAACtC,WAAW;QACXkK,uBAAuB;QACvBC,KAAK,EAAG3K,EAAE,CAAE,UAAW,CAAG;QAC1BiJ,KAAK,EAAGxC,GAAG,IAAI,EAAI;QACnByC,QAAQ,EAAK0B,MAAM,IAClBzF,aAAa,CAAE;UAAEsB,GAAG,EAAEmE;QAAO,CAAE;MAC/B,CACD;IACD,CACiB,CAAC;EAAA,CACnB,CAAC;AAEL;AAEA,eAAe9E,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","NEW_TAB_TARGET","NOFOLLOW_REL","getUpdatedLinkAttributes","removeAnchorTag","unlock","__","useEffect","useState","useRef","useMemo","Button","ButtonGroup","PanelBody","TextControl","ToolbarButton","Popover","AlignmentControl","BlockControls","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","__experimentalGetSpacingClassesAndStyles","useSpacingProps","__experimentalGetShadowClassesAndStyles","useShadowProps","__experimentalLinkControl","LinkControl","__experimentalGetElementClassName","store","blockEditorStore","useBlockEditingMode","displayShortcut","isKeyboardEvent","ENTER","link","linkOff","createBlock","cloneBlock","getDefaultBlockName","blocksStore","useMergeRefs","useRefEffect","useSelect","useDispatch","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","LINK_SETTINGS","DEFAULT_LINK_SETTINGS","id","title","useEnter","props","replaceBlocks","selectionChange","getBlock","getBlockRootClientId","getBlockIndex","propsRef","current","element","onKeyDown","event","defaultPrevented","keyCode","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","innerBlocks","slice","middle","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","children","map","widthValue","size","variant","onClick","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","context","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","borderProps","colorProps","spacingProps","shadowProps","ref","blockProps","blockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","nofollow","includes","isLinkTag","linkValue","useEnterRef","mergedRef","lockUrlControls","select","blockBindingsSource","getBlockBindingsSource","bindings","source","canUserEditValue","args","fontSize","value","onChange","withoutInteractiveFormatting","border","radius","onMerge","identifier","group","nextAlign","name","icon","shortcut","isActive","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","newURL","newOpensInNewTab","newNofollow","onRemove","forceIsEditingLink","settings","__nextHasNoMarginBottom","label","newRel"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,8 +26,16 @@ const metadata = {
|
|
|
26
26
|
align: ["wide", "full"],
|
|
27
27
|
html: false,
|
|
28
28
|
__experimentalExposeControlsToChildren: true,
|
|
29
|
+
color: {
|
|
30
|
+
gradients: true,
|
|
31
|
+
text: false,
|
|
32
|
+
__experimentalDefaultControls: {
|
|
33
|
+
background: true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
29
36
|
spacing: {
|
|
30
37
|
blockGap: true,
|
|
38
|
+
padding: true,
|
|
31
39
|
margin: ["top", "bottom"],
|
|
32
40
|
__experimentalDefaultControls: {
|
|
33
41
|
blockGap: true
|
|
@@ -46,6 +54,18 @@ const metadata = {
|
|
|
46
54
|
fontSize: true
|
|
47
55
|
}
|
|
48
56
|
},
|
|
57
|
+
__experimentalBorder: {
|
|
58
|
+
color: true,
|
|
59
|
+
radius: true,
|
|
60
|
+
style: true,
|
|
61
|
+
width: true,
|
|
62
|
+
__experimentalDefaultControls: {
|
|
63
|
+
color: true,
|
|
64
|
+
radius: true,
|
|
65
|
+
style: true,
|
|
66
|
+
width: true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
49
69
|
layout: {
|
|
50
70
|
allowSwitching: false,
|
|
51
71
|
allowInheriting: false,
|
|
@@ -68,6 +88,12 @@ export { metadata, name };
|
|
|
68
88
|
export const settings = {
|
|
69
89
|
icon,
|
|
70
90
|
example: {
|
|
91
|
+
attributes: {
|
|
92
|
+
layout: {
|
|
93
|
+
type: 'flex',
|
|
94
|
+
justifyContent: 'center'
|
|
95
|
+
}
|
|
96
|
+
},
|
|
71
97
|
innerBlocks: [{
|
|
72
98
|
name: 'core/button',
|
|
73
99
|
attributes: {
|