@wordpress/block-library 9.35.1-next.dc3f6d3c1.0 → 9.36.1-next.6deb34194.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/accordion/view.js +46 -4
- package/build/accordion/view.js.map +2 -2
- package/build/accordion-heading/block.json +1 -1
- package/build/accordion-heading/deprecated.js +1 -1
- package/build/accordion-heading/deprecated.js.map +2 -2
- package/build/accordion-panel/block.json +1 -1
- package/build/audio/index.js +13 -10
- package/build/audio/index.js.map +3 -3
- package/build/avatar/edit.js +13 -38
- package/build/avatar/edit.js.map +2 -2
- package/build/breadcrumbs/block.json +3 -2
- package/build/breadcrumbs/edit.js +18 -18
- package/build/breadcrumbs/edit.js.map +2 -2
- package/build/button/index.js +14 -11
- package/build/button/index.js.map +3 -3
- package/build/code/index.js +10 -7
- package/build/code/index.js.map +3 -3
- package/build/comments-pagination-numbers/block.json +7 -0
- package/build/cover/edit/block-controls.js +37 -3
- package/build/cover/edit/block-controls.js.map +3 -3
- package/build/cover/edit/cover-placeholder.js +0 -1
- package/build/cover/edit/cover-placeholder.js.map +2 -2
- package/build/cover/edit/embed-video-url-input.js +83 -0
- package/build/cover/edit/embed-video-url-input.js.map +7 -0
- package/build/cover/edit/index.js +60 -0
- package/build/cover/edit/index.js.map +2 -2
- package/build/cover/embed-video-utils.js +151 -0
- package/build/cover/embed-video-utils.js.map +7 -0
- package/build/cover/index.js +11 -5
- package/build/cover/index.js.map +3 -3
- package/build/cover/save.js +12 -0
- package/build/cover/save.js.map +2 -2
- package/build/cover/shared.js +3 -0
- package/build/cover/shared.js.map +2 -2
- package/build/details/index.js +10 -7
- package/build/details/index.js.map +3 -3
- package/build/file/index.js +15 -15
- package/build/file/index.js.map +3 -3
- package/build/freeform/block.json +1 -1
- package/build/gallery/edit.js +1 -3
- package/build/gallery/edit.js.map +2 -2
- package/build/gallery/transforms.js +7 -3
- package/build/gallery/transforms.js.map +2 -2
- package/build/heading/index.js +10 -7
- package/build/heading/index.js.map +3 -3
- package/build/html/modal.js +141 -121
- package/build/html/modal.js.map +3 -3
- package/build/image/edit.js +0 -1
- package/build/image/edit.js.map +2 -2
- package/build/image/image.js +0 -1
- package/build/image/image.js.map +2 -2
- package/build/image/index.js +19 -19
- package/build/image/index.js.map +3 -3
- package/build/index.js +9 -3
- package/build/index.js.map +2 -2
- package/build/list-item/index.js +9 -7
- package/build/list-item/index.js.map +3 -3
- package/build/math/block.json +28 -1
- package/build/math/edit.js +17 -2
- package/build/math/edit.js.map +2 -2
- package/build/media-text/index.js +16 -9
- package/build/media-text/index.js.map +3 -3
- package/build/media-text/media-container.js +0 -2
- package/build/media-text/media-container.js.map +2 -2
- package/build/missing/block.json +1 -1
- package/build/missing/edit.js +2 -2
- package/build/missing/edit.js.map +1 -1
- package/build/more/index.js +10 -7
- package/build/more/index.js.map +3 -3
- package/build/navigation-link/edit.js +36 -11
- package/build/navigation-link/edit.js.map +2 -2
- package/build/navigation-link/index.js +12 -9
- package/build/navigation-link/index.js.map +3 -3
- package/build/navigation-submenu/index.js +12 -9
- package/build/navigation-submenu/index.js.map +3 -3
- package/build/page-list-item/edit.js +4 -3
- package/build/page-list-item/edit.js.map +2 -2
- package/build/paragraph/deprecated-attributes.js +68 -0
- package/build/paragraph/deprecated-attributes.js.map +7 -0
- package/build/paragraph/edit.js +2 -0
- package/build/paragraph/edit.js.map +3 -3
- package/build/paragraph/index.js +10 -7
- package/build/paragraph/index.js.map +3 -3
- package/build/pattern/block.json +1 -1
- package/build/post-title/edit.js +6 -4
- package/build/post-title/edit.js.map +2 -2
- package/build/preformatted/index.js +10 -7
- package/build/preformatted/index.js.map +3 -3
- package/build/pullquote/index.js +12 -12
- package/build/pullquote/index.js.map +3 -3
- package/build/search/index.js +15 -17
- package/build/search/index.js.map +3 -3
- package/build/social-link/index.js +12 -9
- package/build/social-link/index.js.map +3 -3
- package/build/template-part/edit/index.js +37 -7
- package/build/template-part/edit/index.js.map +2 -2
- package/build/template-part/edit/utils/get-template-part-icon.js +9 -4
- package/build/template-part/edit/utils/get-template-part-icon.js.map +3 -3
- package/build/template-part/edit/utils/hooks.js +2 -3
- package/build/template-part/edit/utils/hooks.js.map +2 -2
- package/build/term-count/index.js +1 -0
- package/build/term-count/index.js.map +2 -2
- package/build/term-name/index.js +1 -0
- package/build/term-name/index.js.map +2 -2
- package/build/verse/index.js +10 -7
- package/build/verse/index.js.map +3 -3
- package/build/video/index.js +13 -10
- package/build/video/index.js.map +3 -3
- package/build-module/accordion/view.js +46 -4
- package/build-module/accordion/view.js.map +2 -2
- package/build-module/accordion-heading/block.json +1 -1
- package/build-module/accordion-heading/deprecated.js +1 -1
- package/build-module/accordion-heading/deprecated.js.map +2 -2
- package/build-module/accordion-panel/block.json +1 -1
- package/build-module/audio/index.js +13 -10
- package/build-module/audio/index.js.map +2 -2
- package/build-module/avatar/edit.js +13 -38
- package/build-module/avatar/edit.js.map +2 -2
- package/build-module/breadcrumbs/block.json +3 -2
- package/build-module/breadcrumbs/edit.js +18 -18
- package/build-module/breadcrumbs/edit.js.map +2 -2
- package/build-module/button/index.js +14 -11
- package/build-module/button/index.js.map +2 -2
- package/build-module/code/index.js +10 -7
- package/build-module/code/index.js.map +2 -2
- package/build-module/comments-pagination-numbers/block.json +7 -0
- package/build-module/cover/edit/block-controls.js +27 -3
- package/build-module/cover/edit/block-controls.js.map +2 -2
- package/build-module/cover/edit/cover-placeholder.js +0 -1
- package/build-module/cover/edit/cover-placeholder.js.map +2 -2
- package/build-module/cover/edit/embed-video-url-input.js +67 -0
- package/build-module/cover/edit/embed-video-url-input.js.map +7 -0
- package/build-module/cover/edit/index.js +61 -0
- package/build-module/cover/edit/index.js.map +2 -2
- package/build-module/cover/embed-video-utils.js +122 -0
- package/build-module/cover/embed-video-utils.js.map +7 -0
- package/build-module/cover/index.js +11 -5
- package/build-module/cover/index.js.map +2 -2
- package/build-module/cover/save.js +13 -0
- package/build-module/cover/save.js.map +2 -2
- package/build-module/cover/shared.js +2 -0
- package/build-module/cover/shared.js.map +2 -2
- package/build-module/details/index.js +10 -7
- package/build-module/details/index.js.map +2 -2
- package/build-module/file/index.js +15 -15
- package/build-module/file/index.js.map +2 -2
- package/build-module/freeform/block.json +1 -1
- package/build-module/gallery/edit.js +1 -3
- package/build-module/gallery/edit.js.map +2 -2
- package/build-module/gallery/transforms.js +7 -3
- package/build-module/gallery/transforms.js.map +2 -2
- package/build-module/heading/index.js +10 -7
- package/build-module/heading/index.js.map +2 -2
- package/build-module/html/modal.js +143 -122
- package/build-module/html/modal.js.map +2 -2
- package/build-module/image/edit.js +0 -1
- package/build-module/image/edit.js.map +2 -2
- package/build-module/image/image.js +0 -1
- package/build-module/image/image.js.map +2 -2
- package/build-module/image/index.js +19 -19
- package/build-module/image/index.js.map +2 -2
- package/build-module/index.js +9 -3
- package/build-module/index.js.map +2 -2
- package/build-module/list-item/index.js +9 -7
- package/build-module/list-item/index.js.map +2 -2
- package/build-module/math/block.json +28 -1
- package/build-module/math/edit.js +18 -3
- package/build-module/math/edit.js.map +2 -2
- package/build-module/media-text/index.js +16 -9
- package/build-module/media-text/index.js.map +2 -2
- package/build-module/media-text/media-container.js +0 -2
- package/build-module/media-text/media-container.js.map +2 -2
- package/build-module/missing/block.json +1 -1
- package/build-module/missing/edit.js +2 -2
- package/build-module/missing/edit.js.map +1 -1
- package/build-module/more/index.js +10 -7
- package/build-module/more/index.js.map +2 -2
- package/build-module/navigation-link/edit.js +37 -12
- package/build-module/navigation-link/edit.js.map +2 -2
- package/build-module/navigation-link/index.js +12 -9
- package/build-module/navigation-link/index.js.map +2 -2
- package/build-module/navigation-submenu/index.js +12 -9
- package/build-module/navigation-submenu/index.js.map +2 -2
- package/build-module/page-list-item/edit.js +4 -3
- package/build-module/page-list-item/edit.js.map +2 -2
- package/build-module/paragraph/deprecated-attributes.js +37 -0
- package/build-module/paragraph/deprecated-attributes.js.map +7 -0
- package/build-module/paragraph/edit.js +2 -0
- package/build-module/paragraph/edit.js.map +2 -2
- package/build-module/paragraph/index.js +10 -7
- package/build-module/paragraph/index.js.map +2 -2
- package/build-module/pattern/block.json +1 -1
- package/build-module/post-title/edit.js +6 -4
- package/build-module/post-title/edit.js.map +2 -2
- package/build-module/preformatted/index.js +10 -7
- package/build-module/preformatted/index.js.map +2 -2
- package/build-module/pullquote/index.js +12 -12
- package/build-module/pullquote/index.js.map +2 -2
- package/build-module/search/index.js +15 -17
- package/build-module/search/index.js.map +2 -2
- package/build-module/social-link/index.js +12 -9
- package/build-module/social-link/index.js.map +2 -2
- package/build-module/template-part/edit/index.js +37 -7
- package/build-module/template-part/edit/index.js.map +2 -2
- package/build-module/template-part/edit/utils/get-template-part-icon.js +10 -4
- package/build-module/template-part/edit/utils/get-template-part-icon.js.map +2 -2
- package/build-module/template-part/edit/utils/hooks.js +2 -3
- package/build-module/template-part/edit/utils/hooks.js.map +2 -2
- package/build-module/term-count/index.js +1 -0
- package/build-module/term-count/index.js.map +2 -2
- package/build-module/term-name/index.js +1 -0
- package/build-module/term-name/index.js.map +2 -2
- package/build-module/verse/index.js +10 -7
- package/build-module/verse/index.js.map +2 -2
- package/build-module/video/index.js +13 -10
- package/build-module/video/index.js.map +2 -2
- package/build-style/accordion/style-rtl.css +3 -0
- package/build-style/accordion/style.css +3 -0
- package/build-style/accordion-heading/style-rtl.css +2 -19
- package/build-style/accordion-heading/style.css +2 -19
- package/build-style/accordion-item/style-rtl.css +0 -7
- package/build-style/accordion-item/style.css +0 -7
- package/build-style/accordion-panel/style-rtl.css +1 -4
- package/build-style/accordion-panel/style.css +1 -4
- package/build-style/classic-rtl.css +24 -0
- package/build-style/classic.css +24 -0
- package/build-style/common-rtl.css +4 -4
- package/build-style/common.css +4 -0
- package/build-style/cover/style-rtl.css +47 -0
- package/build-style/cover/style.css +47 -0
- package/build-style/editor-rtl.css +11 -13
- package/build-style/editor.css +11 -13
- package/build-style/html/editor-rtl.css +11 -13
- package/build-style/html/editor.css +11 -13
- package/build-style/style-rtl.css +59 -33
- package/build-style/style.css +59 -29
- package/build-style/verse/style-rtl.css +2 -0
- package/build-style/verse/style.css +2 -0
- package/package.json +40 -38
- package/src/accordion/style.scss +4 -0
- package/src/accordion/view.js +60 -3
- package/src/accordion-heading/block.json +1 -1
- package/src/accordion-heading/deprecated.js +1 -1
- package/src/accordion-heading/style.scss +2 -38
- package/src/accordion-item/index.php +1 -0
- package/src/accordion-item/style.scss +2 -9
- package/src/accordion-panel/block.json +1 -1
- package/src/accordion-panel/style.scss +1 -5
- package/src/audio/index.js +14 -10
- package/src/avatar/edit.js +68 -83
- package/src/breadcrumbs/block.json +3 -2
- package/src/breadcrumbs/edit.js +18 -18
- package/src/breadcrumbs/index.php +103 -93
- package/src/button/index.js +15 -11
- package/src/classic.scss +38 -0
- package/src/code/index.js +11 -7
- package/src/comments-pagination-numbers/block.json +7 -0
- package/src/common.scss +4 -0
- package/src/cover/edit/block-controls.js +26 -2
- package/src/cover/edit/cover-placeholder.js +0 -1
- package/src/cover/edit/embed-video-url-input.js +74 -0
- package/src/cover/edit/index.js +81 -0
- package/src/cover/embed-video-utils.js +196 -0
- package/src/cover/index.js +12 -5
- package/src/cover/index.php +106 -0
- package/src/cover/save.js +14 -0
- package/src/cover/shared.js +1 -0
- package/src/cover/style.scss +47 -0
- package/src/details/index.js +11 -7
- package/src/file/index.js +16 -15
- package/src/freeform/block.json +1 -1
- package/src/gallery/edit.js +4 -3
- package/src/gallery/transforms.js +6 -2
- package/src/heading/index.js +11 -7
- package/src/html/editor.scss +10 -15
- package/src/html/modal.js +54 -30
- package/src/image/edit.js +0 -1
- package/src/image/image.js +0 -1
- package/src/image/index.js +20 -19
- package/src/image/index.php +1 -0
- package/src/index.js +9 -3
- package/src/list-item/index.js +10 -7
- package/src/math/block.json +28 -1
- package/src/math/edit.js +18 -3
- package/src/media-text/index.js +17 -9
- package/src/media-text/media-container.js +0 -2
- package/src/missing/block.json +1 -1
- package/src/missing/edit.js +2 -2
- package/src/more/index.js +11 -7
- package/src/navigation-link/edit.js +72 -26
- package/src/navigation-link/index.js +13 -9
- package/src/navigation-submenu/index.js +13 -9
- package/src/page-list/index.php +3 -4
- package/src/page-list-item/edit.js +4 -3
- package/src/paragraph/deprecated-attributes.js +45 -0
- package/src/paragraph/edit.js +2 -0
- package/src/paragraph/index.js +11 -7
- package/src/pattern/block.json +1 -1
- package/src/post-title/edit.js +8 -4
- package/src/post-title/index.php +1 -1
- package/src/preformatted/index.js +11 -7
- package/src/pullquote/index.js +13 -12
- package/src/search/index.js +15 -16
- package/src/social-link/index.js +13 -9
- package/src/style.scss +1 -0
- package/src/template-part/edit/index.js +44 -6
- package/src/template-part/edit/utils/get-template-part-icon.js +23 -4
- package/src/template-part/edit/utils/hooks.js +2 -4
- package/src/term-count/index.js +1 -0
- package/src/term-name/index.js +1 -0
- package/src/verse/index.js +11 -7
- package/src/verse/style.scss +4 -0
- package/src/video/index.js +14 -10
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"type": "string",
|
|
17
17
|
"default": "/"
|
|
18
18
|
},
|
|
19
|
-
"
|
|
19
|
+
"showHomeItem": {
|
|
20
20
|
"type": "boolean",
|
|
21
21
|
"default": true
|
|
22
22
|
},
|
|
23
|
-
"
|
|
23
|
+
"showCurrentItem": {
|
|
24
24
|
"type": "boolean",
|
|
25
25
|
"default": true
|
|
26
26
|
},
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"usesContext": [ "postId", "postType", "templateSlug" ],
|
|
33
33
|
"supports": {
|
|
34
34
|
"html": false,
|
|
35
|
+
"align": [ "wide", "full" ],
|
|
35
36
|
"spacing": {
|
|
36
37
|
"margin": true,
|
|
37
38
|
"padding": true
|
|
@@ -23,8 +23,8 @@ function BreadcrumbEdit({
|
|
|
23
23
|
}) {
|
|
24
24
|
const {
|
|
25
25
|
separator,
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
showHomeItem,
|
|
27
|
+
showCurrentItem,
|
|
28
28
|
prefersTaxonomy,
|
|
29
29
|
showOnHomePage
|
|
30
30
|
} = attributes;
|
|
@@ -97,7 +97,7 @@ function BreadcrumbEdit({
|
|
|
97
97
|
templateSlug && !postType || !_showTerms && !isPostTypeHierarchical || _showTerms && !hasTermsAssigned;
|
|
98
98
|
if (showPlaceholder) {
|
|
99
99
|
const placeholderItems = [];
|
|
100
|
-
if (
|
|
100
|
+
if (showHomeItem) {
|
|
101
101
|
placeholderItems.push(__("Home"));
|
|
102
102
|
}
|
|
103
103
|
if (templateSlug && !postId) {
|
|
@@ -116,7 +116,7 @@ function BreadcrumbEdit({
|
|
|
116
116
|
inert: "true",
|
|
117
117
|
children: /* @__PURE__ */ jsxs("ol", { children: [
|
|
118
118
|
placeholderItems.map((text, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: `#breadcrumbs-pseudo-link-${index}`, children: text }) }, index)),
|
|
119
|
-
|
|
119
|
+
showCurrentItem && /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("span", { "aria-current": "page", children: __("Current") }) })
|
|
120
120
|
] })
|
|
121
121
|
}
|
|
122
122
|
);
|
|
@@ -129,8 +129,8 @@ function BreadcrumbEdit({
|
|
|
129
129
|
resetAll: () => {
|
|
130
130
|
setAttributes({
|
|
131
131
|
separator: separatorDefaultValue,
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
showHomeItem: true,
|
|
133
|
+
showCurrentItem: true
|
|
134
134
|
});
|
|
135
135
|
},
|
|
136
136
|
dropdownMenuProps,
|
|
@@ -138,19 +138,19 @@ function BreadcrumbEdit({
|
|
|
138
138
|
/* @__PURE__ */ jsx(
|
|
139
139
|
ToolsPanelItem,
|
|
140
140
|
{
|
|
141
|
-
label: __("Show home
|
|
141
|
+
label: __("Show home breadcrumb"),
|
|
142
142
|
isShownByDefault: true,
|
|
143
|
-
hasValue: () => !
|
|
143
|
+
hasValue: () => !showHomeItem,
|
|
144
144
|
onDeselect: () => setAttributes({
|
|
145
|
-
|
|
145
|
+
showHomeItem: true
|
|
146
146
|
}),
|
|
147
147
|
children: /* @__PURE__ */ jsx(
|
|
148
148
|
ToggleControl,
|
|
149
149
|
{
|
|
150
150
|
__nextHasNoMarginBottom: true,
|
|
151
|
-
label: __("Show home
|
|
152
|
-
onChange: (value) => setAttributes({
|
|
153
|
-
checked:
|
|
151
|
+
label: __("Show home breadcrumb"),
|
|
152
|
+
onChange: (value) => setAttributes({ showHomeItem: value }),
|
|
153
|
+
checked: showHomeItem
|
|
154
154
|
}
|
|
155
155
|
)
|
|
156
156
|
}
|
|
@@ -158,19 +158,19 @@ function BreadcrumbEdit({
|
|
|
158
158
|
/* @__PURE__ */ jsx(
|
|
159
159
|
ToolsPanelItem,
|
|
160
160
|
{
|
|
161
|
-
label: __("Show
|
|
161
|
+
label: __("Show current breadcrumb"),
|
|
162
162
|
isShownByDefault: true,
|
|
163
|
-
hasValue: () => !
|
|
163
|
+
hasValue: () => !showCurrentItem,
|
|
164
164
|
onDeselect: () => setAttributes({
|
|
165
|
-
|
|
165
|
+
showCurrentItem: true
|
|
166
166
|
}),
|
|
167
167
|
children: /* @__PURE__ */ jsx(
|
|
168
168
|
ToggleControl,
|
|
169
169
|
{
|
|
170
170
|
__nextHasNoMarginBottom: true,
|
|
171
|
-
label: __("Show
|
|
172
|
-
onChange: (value) => setAttributes({
|
|
173
|
-
checked:
|
|
171
|
+
label: __("Show current breadcrumb"),
|
|
172
|
+
onChange: (value) => setAttributes({ showCurrentItem: value }),
|
|
173
|
+
checked: showCurrentItem
|
|
174
174
|
}
|
|
175
175
|
)
|
|
176
176
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/breadcrumbs/edit.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { useServerSideRender } from '@wordpress/server-side-render';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst separatorDefaultValue = '/';\n\nexport default function BreadcrumbEdit( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType, templateSlug },\n} ) {\n\tconst {\n\t\tseparator,\n\t\
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\tTextControl,\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { useServerSideRender } from '@wordpress/server-side-render';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst separatorDefaultValue = '/';\n\nexport default function BreadcrumbEdit( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType, templateSlug },\n} ) {\n\tconst {\n\t\tseparator,\n\t\tshowHomeItem,\n\t\tshowCurrentItem,\n\t\tprefersTaxonomy,\n\t\tshowOnHomePage,\n\t} = attributes;\n\tconst {\n\t\tpost,\n\t\tisPostTypeHierarchical,\n\t\tpostTypeHasTaxonomies,\n\t\thasTermsAssigned,\n\t\tisLoading,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst _post = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst postTypeObject = select( coreStore ).getPostType( postType );\n\t\t\tconst _postTypeHasTaxonomies =\n\t\t\t\tpostTypeObject && postTypeObject.taxonomies.length;\n\t\t\tlet taxonomies;\n\t\t\tif ( _postTypeHasTaxonomies ) {\n\t\t\t\ttaxonomies = select( coreStore ).getTaxonomies( {\n\t\t\t\t\ttype: postType,\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpost: _post,\n\t\t\t\tisPostTypeHierarchical: postTypeObject?.hierarchical,\n\t\t\t\tpostTypeHasTaxonomies: _postTypeHasTaxonomies,\n\t\t\t\thasTermsAssigned:\n\t\t\t\t\t_post &&\n\t\t\t\t\t( taxonomies || [] )\n\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.some( ( taxonomy ) => {\n\t\t\t\t\t\t\treturn !! _post[ taxonomy.rest_base ]?.length;\n\t\t\t\t\t\t} ),\n\t\t\t\tisLoading:\n\t\t\t\t\t( postId && ! _post ) ||\n\t\t\t\t\t! postTypeObject ||\n\t\t\t\t\t( _postTypeHasTaxonomies && ! taxonomies ),\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\t/**\n\t * Counter used to cache-bust `useServerSideRender`.\n\t *\n\t * This is a catch-all signal to re-render the block when a post's title,\n\t * parent ID, or terms change.\n\t *\n\t * This is fundamentally imperfect, because there are other entities which\n\t * could change in the meantime (the titles of ancestor posts, or the\n\t * labels of taxonomy terms), hence the choice to re-render systematically\n\t * upon saving.\n\t */\n\tconst [ invalidationKey, setInvalidationKey ] = useState( 0 );\n\tuseEffect( () => {\n\t\tsetInvalidationKey( ( c ) => c + 1 );\n\t}, [ post ] );\n\n\tconst blockProps = useBlockProps();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst { content } = useServerSideRender( {\n\t\tattributes,\n\t\tskipBlockSupportAttributes: true,\n\t\tblock: 'core/breadcrumbs',\n\t\turlQueryArgs: { post_id: postId, invalidationKey },\n\t} );\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Try to determine breadcrumb type for more accurate previews.\n\tlet _showTerms;\n\t// Some non-hierarchical post types (e.g., attachments) can have parents.\n\t// Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs.\n\tif ( ! isPostTypeHierarchical && ! post?.parent ) {\n\t\t_showTerms = true;\n\t} else if ( ! postTypeHasTaxonomies ) {\n\t\t// Hierarchical post type without taxonomies can only use ancestors.\n\t\t_showTerms = false;\n\t} else {\n\t\t// For hierarchical post types with taxonomies, use the attribute.\n\t\t_showTerms = prefersTaxonomy;\n\t}\n\tlet placeholder = null;\n\t// This is fragile because this block is server side rendered and we'll have to\n\t// update the placeholder html if the server side rendering output changes.\n\tconst showPlaceholder =\n\t\t! postId ||\n\t\t! postType ||\n\t\t// When `templateSlug` is set only show placeholder if the post type is not.\n\t\t// This is needed because when we are showing the template in post editor we\n\t\t// want to show the real breadcrumbs if we have the post type.\n\t\t( templateSlug && ! postType ) ||\n\t\t( ! _showTerms && ! isPostTypeHierarchical ) ||\n\t\t( _showTerms && ! hasTermsAssigned );\n\tif ( showPlaceholder ) {\n\t\tconst placeholderItems = [];\n\t\tif ( showHomeItem ) {\n\t\t\tplaceholderItems.push( __( 'Home' ) );\n\t\t}\n\t\tif ( templateSlug && ! postId ) {\n\t\t\tplaceholderItems.push( __( 'Page' ) );\n\t\t} else if ( _showTerms ) {\n\t\t\tplaceholderItems.push( __( 'Category' ) );\n\t\t} else {\n\t\t\tplaceholderItems.push( __( 'Ancestor' ), __( 'Parent' ) );\n\t\t}\n\t\tplaceholder = (\n\t\t\t<nav\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--separator': `'${ separator }'`,\n\t\t\t\t} }\n\t\t\t\tinert=\"true\"\n\t\t\t>\n\t\t\t\t<ol>\n\t\t\t\t\t{ placeholderItems.map( ( text, index ) => (\n\t\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t\t<a href={ `#breadcrumbs-pseudo-link-${ index }` }>\n\t\t\t\t\t\t\t\t{ text }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ showCurrentItem && (\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span aria-current=\"page\">{ __( 'Current' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\tshowCurrentItem: true,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showHomeItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowHomeItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show home breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showHomeItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showHomeItem }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => ! showCurrentItem }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowCurrentItem: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show current breadcrumb' ) }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { showCurrentItem: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ showCurrentItem }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => separator !== separatorDefaultValue }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Separator' ) }\n\t\t\t\t\t\t\tvalue={ separator }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { separator: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\t\tif ( ! separator ) {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tseparator: separatorDefaultValue,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<CheckboxControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show on homepage' ) }\n\t\t\t\t\tchecked={ showOnHomePage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { showOnHomePage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'If this breadcrumbs block appears in a template or template part that\u2019s shown on the homepage, enable this option to display the breadcrumb trail. Otherwise, this setting has no effect.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<CheckboxControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Prefer taxonomy terms' ) }\n\t\t\t\t\tchecked={ prefersTaxonomy }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { prefersTaxonomy: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'The exact type of breadcrumbs shown will vary automatically depending on the page in which this block is displayed. In the specific case of a hierarchical post type with taxonomies, the breadcrumbs can either reflect its post hierarchy (default) or the hierarchy of its assigned taxonomy terms.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ showPlaceholder ? (\n\t\t\t\t\tplaceholder\n\t\t\t\t) : (\n\t\t\t\t\t<RawHTML inert=\"true\">{ content }</RawHTML>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// packages/block-library/src/button/index.js
|
|
2
2
|
import { __ } from "@wordpress/i18n";
|
|
3
3
|
import { button as icon } from "@wordpress/icons";
|
|
4
|
+
import { privateApis as blocksPrivateApis } from "@wordpress/blocks";
|
|
4
5
|
import initBlock from "../utils/init-block";
|
|
5
6
|
import deprecated from "./deprecated";
|
|
6
7
|
import edit from "./edit";
|
|
7
8
|
import metadata from "./block.json";
|
|
8
9
|
import save from "./save";
|
|
10
|
+
import { unlock } from "../lock-unlock";
|
|
11
|
+
var { fieldsKey, formKey } = unlock(blocksPrivateApis);
|
|
9
12
|
var { name } = metadata;
|
|
10
13
|
var settings = {
|
|
11
14
|
icon,
|
|
@@ -23,27 +26,27 @@ var settings = {
|
|
|
23
26
|
text: (a.text || "") + text
|
|
24
27
|
})
|
|
25
28
|
};
|
|
26
|
-
if (window.
|
|
27
|
-
settings
|
|
29
|
+
if (window.__experimentalContentOnlyInspectorFields) {
|
|
30
|
+
settings[fieldsKey] = [
|
|
28
31
|
{
|
|
32
|
+
id: "text",
|
|
29
33
|
label: __("Content"),
|
|
30
|
-
type: "
|
|
31
|
-
shownByDefault: true,
|
|
32
|
-
mapping: {
|
|
33
|
-
value: "text"
|
|
34
|
-
}
|
|
34
|
+
type: "richtext"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
+
id: "link",
|
|
37
38
|
label: __("Link"),
|
|
38
|
-
type: "
|
|
39
|
-
shownByDefault: false,
|
|
39
|
+
type: "link",
|
|
40
40
|
mapping: {
|
|
41
|
-
|
|
41
|
+
url: "url",
|
|
42
42
|
rel: "rel",
|
|
43
|
-
|
|
43
|
+
linkTarget: "linkTarget"
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
];
|
|
47
|
+
settings[formKey] = {
|
|
48
|
+
fields: ["text"]
|
|
49
|
+
};
|
|
47
50
|
}
|
|
48
51
|
var init = () => initBlock({ name, metadata, settings });
|
|
49
52
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/button/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nif ( window.
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,UAAU,YAAY;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'text',\n\t\t\tlabel: __( 'Content' ),\n\t\t\ttype: 'richtext',\n\t\t},\n\t\t{\n\t\t\tid: 'link',\n\t\t\tlabel: __( 'Link' ),\n\t\t\ttype: 'link',\n\t\t\tmapping: {\n\t\t\t\turl: 'url',\n\t\t\t\trel: 'rel',\n\t\t\t\tlinkTarget: 'linkTarget',\n\t\t\t},\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'text' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,UAAU,YAAY;AAC/B,SAAS,eAAe,yBAAyB;AAKjD,OAAO,eAAe;AACtB,OAAO,gBAAgB;AACvB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,OAAO,UAAU;AACjB,SAAS,cAAc;AAEvB,IAAM,EAAE,WAAW,QAAQ,IAAI,OAAQ,iBAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI;AAIV,IAAM,WAAW;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA,MACX,WAAW;AAAA,MACX,MAAM,GAAI,gBAAiB;AAAA,IAC5B;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO,CAAE,GAAG,EAAE,OAAO,GAAG,OAAS;AAAA,IAChC,GAAG;AAAA,IACH,OAAQ,EAAE,QAAQ,MAAO;AAAA,EAC1B;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,OAAO,GAAI,SAAU;AAAA,MACrB,MAAM;AAAA,IACP;AAAA,IACA;AAAA,MACC,IAAI;AAAA,MACJ,OAAO,GAAI,MAAO;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA,QACR,KAAK;AAAA,QACL,KAAK;AAAA,QACL,YAAY;AAAA,MACb;AAAA,IACD;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,MAAO;AAAA,EAClB;AACD;AAEO,IAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// packages/block-library/src/code/index.js
|
|
2
2
|
import { __ } from "@wordpress/i18n";
|
|
3
3
|
import { code as icon } from "@wordpress/icons";
|
|
4
|
+
import { privateApis as blocksPrivateApis } from "@wordpress/blocks";
|
|
4
5
|
import initBlock from "../utils/init-block";
|
|
5
6
|
import edit from "./edit";
|
|
6
7
|
import metadata from "./block.json";
|
|
7
8
|
import save from "./save";
|
|
8
9
|
import transforms from "./transforms";
|
|
10
|
+
import { unlock } from "../lock-unlock";
|
|
11
|
+
var { fieldsKey, formKey } = unlock(blocksPrivateApis);
|
|
9
12
|
var { name } = metadata;
|
|
10
13
|
var settings = {
|
|
11
14
|
icon,
|
|
@@ -28,17 +31,17 @@ var settings = {
|
|
|
28
31
|
edit,
|
|
29
32
|
save
|
|
30
33
|
};
|
|
31
|
-
if (window.
|
|
32
|
-
settings
|
|
34
|
+
if (window.__experimentalContentOnlyInspectorFields) {
|
|
35
|
+
settings[fieldsKey] = [
|
|
33
36
|
{
|
|
37
|
+
id: "content",
|
|
34
38
|
label: __("Code"),
|
|
35
|
-
type: "
|
|
36
|
-
shownByDefault: true,
|
|
37
|
-
mapping: {
|
|
38
|
-
value: "content"
|
|
39
|
-
}
|
|
39
|
+
type: "richtext"
|
|
40
40
|
}
|
|
41
41
|
];
|
|
42
|
+
settings[formKey] = {
|
|
43
|
+
fields: ["content"]
|
|
44
|
+
};
|
|
42
45
|
}
|
|
43
46
|
var init = () => initBlock({ name, metadata, settings });
|
|
44
47
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/code/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A \u201Cblock\u201D is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,QAAQ,YAAY;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\nimport { privateApis as blocksPrivateApis } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport { unlock } from '../lock-unlock';\n\nconst { fieldsKey, formKey } = unlock( blocksPrivateApis );\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A \u201Cblock\u201D is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nif ( window.__experimentalContentOnlyInspectorFields ) {\n\tsettings[ fieldsKey ] = [\n\t\t{\n\t\t\tid: 'content',\n\t\t\tlabel: __( 'Code' ),\n\t\t\ttype: 'richtext',\n\t\t},\n\t];\n\tsettings[ formKey ] = {\n\t\tfields: [ 'content' ],\n\t};\n}\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,QAAQ,YAAY;AAC7B,SAAS,eAAe,yBAAyB;AAKjD,OAAO,eAAe;AACtB,OAAO,UAAU;AACjB,OAAO,cAAc;AACrB,OAAO,UAAU;AACjB,OAAO,gBAAgB;AACvB,SAAS,cAAc;AAEvB,IAAM,EAAE,WAAW,QAAQ,IAAI,OAAQ,iBAAkB;AAEzD,IAAM,EAAE,KAAK,IAAI;AAIV,IAAM,WAAW;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACR,YAAY;AAAA;AAAA;AAAA,MAGX,SAAS;AAAA,QACR;AAAA,MACD;AAAA;AAAA,IAED;AAAA,EACD;AAAA,EACA,MAAO,YAAY,mBAAoB;AACtC,WAAO;AAAA,MACN,SAAS,WAAW,UAAU,SAAS,kBAAkB;AAAA,IAC1D;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,IAAK,OAAO,0CAA2C;AACtD,WAAU,SAAU,IAAI;AAAA,IACvB;AAAA,MACC,IAAI;AAAA,MACJ,OAAO,GAAI,MAAO;AAAA,MAClB,MAAM;AAAA,IACP;AAAA,EACD;AACA,WAAU,OAAQ,IAAI;AAAA,IACrB,QAAQ,CAAE,SAAU;AAAA,EACrB;AACD;AAEO,IAAM,OAAO,MAAM,UAAW,EAAE,MAAM,UAAU,SAAS,CAAE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -8,8 +8,11 @@ import {
|
|
|
8
8
|
privateApis as blockEditorPrivateApis
|
|
9
9
|
} from "@wordpress/block-editor";
|
|
10
10
|
import { __ } from "@wordpress/i18n";
|
|
11
|
+
import { MenuItem } from "@wordpress/components";
|
|
12
|
+
import { link } from "@wordpress/icons";
|
|
11
13
|
import { ALLOWED_MEDIA_TYPES } from "../shared";
|
|
12
14
|
import { unlock } from "../../lock-unlock";
|
|
15
|
+
import EmbedVideoUrlInput from "./embed-video-url-input";
|
|
13
16
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
17
|
var { cleanEmptyObject } = unlock(blockEditorPrivateApis);
|
|
15
18
|
function CoverBlockControls({
|
|
@@ -19,12 +22,14 @@ function CoverBlockControls({
|
|
|
19
22
|
currentSettings,
|
|
20
23
|
toggleUseFeaturedImage,
|
|
21
24
|
onClearMedia,
|
|
25
|
+
onSelectEmbedUrl,
|
|
22
26
|
blockEditingMode
|
|
23
27
|
}) {
|
|
24
28
|
const { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } = attributes;
|
|
25
29
|
const { hasInnerBlocks, url } = currentSettings;
|
|
26
30
|
const [prevMinHeightValue, setPrevMinHeightValue] = useState(minHeight);
|
|
27
31
|
const [prevMinHeightUnit, setPrevMinHeightUnit] = useState(minHeightUnit);
|
|
32
|
+
const [isEmbedUrlInputOpen, setIsEmbedUrlInputOpen] = useState(false);
|
|
28
33
|
const isMinFullHeight = minHeightUnit === "vh" && minHeight === 100 && !attributes?.style?.dimensions?.aspectRatio;
|
|
29
34
|
const isContentOnlyMode = blockEditingMode === "contentOnly";
|
|
30
35
|
const toggleMinFullHeight = () => {
|
|
@@ -83,14 +88,33 @@ function CoverBlockControls({
|
|
|
83
88
|
mediaId: id,
|
|
84
89
|
mediaURL: url,
|
|
85
90
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
86
|
-
accept: "image/*,video/*",
|
|
87
91
|
onSelect: onSelectMedia,
|
|
88
92
|
onToggleFeaturedImage: toggleUseFeaturedImage,
|
|
89
93
|
useFeaturedImage,
|
|
90
94
|
name: !url ? __("Add media") : __("Replace"),
|
|
91
|
-
onReset: onClearMedia
|
|
95
|
+
onReset: onClearMedia,
|
|
96
|
+
children: ({ onClose }) => /* @__PURE__ */ jsx(
|
|
97
|
+
MenuItem,
|
|
98
|
+
{
|
|
99
|
+
icon: link,
|
|
100
|
+
onClick: () => {
|
|
101
|
+
setIsEmbedUrlInputOpen(true);
|
|
102
|
+
onClose();
|
|
103
|
+
},
|
|
104
|
+
children: __("Embed video from URL")
|
|
105
|
+
}
|
|
106
|
+
)
|
|
92
107
|
}
|
|
93
|
-
) })
|
|
108
|
+
) }),
|
|
109
|
+
isEmbedUrlInputOpen && /* @__PURE__ */ jsx(
|
|
110
|
+
EmbedVideoUrlInput,
|
|
111
|
+
{
|
|
112
|
+
onSubmit: (embedUrl) => {
|
|
113
|
+
onSelectEmbedUrl(embedUrl);
|
|
114
|
+
},
|
|
115
|
+
onClose: () => setIsEmbedUrlInputOpen(false)
|
|
116
|
+
}
|
|
117
|
+
)
|
|
94
118
|
] });
|
|
95
119
|
}
|
|
96
120
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cover/edit/block-controls.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\nimport {\n\tBlockControls,\n\tMediaReplaceFlow,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\nimport { unlock } from '../../lock-unlock';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport default function CoverBlockControls( {\n\tattributes,\n\tsetAttributes,\n\tonSelectMedia,\n\tcurrentSettings,\n\ttoggleUseFeaturedImage,\n\tonClearMedia,\n\tblockEditingMode,\n} ) {\n\tconst { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } =\n\t\tattributes;\n\tconst { hasInnerBlocks, url } = currentSettings;\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] =\n\t\tuseState( minHeightUnit );\n\tconst isMinFullHeight =\n\t\tminHeightUnit === 'vh' &&\n\t\tminHeight === 100 &&\n\t\t! attributes?.style?.dimensions?.aspectRatio;\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height, and clear any aspect ratio value.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...attributes?.style,\n\t\t\t\tdimensions: {\n\t\t\t\t\t...attributes?.style?.dimensions,\n\t\t\t\t\taspectRatio: undefined, // Reset aspect ratio when minHeight is set.\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isContentOnlyMode && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\
|
|
5
|
-
"mappings": ";AAGA,SAAS,gBAAgB;AAEzB;AAAA,EACC;AAAA,EACA;AAAA,EACA,6CAA6C;AAAA,EAC7C,gDAAgD;AAAA,EAChD,eAAe;AAAA,OACT;AACP,SAAS,UAAU;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\nimport {\n\tBlockControls,\n\tMediaReplaceFlow,\n\t__experimentalBlockAlignmentMatrixControl as BlockAlignmentMatrixControl,\n\t__experimentalBlockFullHeightAligmentControl as FullHeightAlignmentControl,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { link } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\nimport { unlock } from '../../lock-unlock';\nimport EmbedVideoUrlInput from './embed-video-url-input';\n\nconst { cleanEmptyObject } = unlock( blockEditorPrivateApis );\n\nexport default function CoverBlockControls( {\n\tattributes,\n\tsetAttributes,\n\tonSelectMedia,\n\tcurrentSettings,\n\ttoggleUseFeaturedImage,\n\tonClearMedia,\n\tonSelectEmbedUrl,\n\tblockEditingMode,\n} ) {\n\tconst { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } =\n\t\tattributes;\n\tconst { hasInnerBlocks, url } = currentSettings;\n\n\tconst [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );\n\tconst [ prevMinHeightUnit, setPrevMinHeightUnit ] =\n\t\tuseState( minHeightUnit );\n\tconst [ isEmbedUrlInputOpen, setIsEmbedUrlInputOpen ] = useState( false );\n\tconst isMinFullHeight =\n\t\tminHeightUnit === 'vh' &&\n\t\tminHeight === 100 &&\n\t\t! attributes?.style?.dimensions?.aspectRatio;\n\tconst isContentOnlyMode = blockEditingMode === 'contentOnly';\n\n\tconst toggleMinFullHeight = () => {\n\t\tif ( isMinFullHeight ) {\n\t\t\t// If there aren't previous values, take the default ones.\n\t\t\tif ( prevMinHeightUnit === 'vh' && prevMinHeightValue === 100 ) {\n\t\t\t\treturn setAttributes( {\n\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\tminHeightUnit: undefined,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Set the previous values of height.\n\t\t\treturn setAttributes( {\n\t\t\t\tminHeight: prevMinHeightValue,\n\t\t\t\tminHeightUnit: prevMinHeightUnit,\n\t\t\t} );\n\t\t}\n\n\t\tsetPrevMinHeightValue( minHeight );\n\t\tsetPrevMinHeightUnit( minHeightUnit );\n\n\t\t// Set full height, and clear any aspect ratio value.\n\t\treturn setAttributes( {\n\t\t\tminHeight: 100,\n\t\t\tminHeightUnit: 'vh',\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...attributes?.style,\n\t\t\t\tdimensions: {\n\t\t\t\t\t...attributes?.style?.dimensions,\n\t\t\t\t\taspectRatio: undefined, // Reset aspect ratio when minHeight is set.\n\t\t\t\t},\n\t\t\t} ),\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isContentOnlyMode && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<BlockAlignmentMatrixControl\n\t\t\t\t\t\tlabel={ __( 'Change content position' ) }\n\t\t\t\t\t\tvalue={ contentPosition }\n\t\t\t\t\t\tonChange={ ( nextPosition ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tcontentPosition: nextPosition,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t\t<FullHeightAlignmentControl\n\t\t\t\t\t\tisActive={ isMinFullHeight }\n\t\t\t\t\t\tonToggle={ toggleMinFullHeight }\n\t\t\t\t\t\tisDisabled={ ! hasInnerBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\t\t\tuseFeaturedImage={ useFeaturedImage }\n\t\t\t\t\tname={ ! url ? __( 'Add media' ) : __( 'Replace' ) }\n\t\t\t\t\tonReset={ onClearMedia }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEmbedUrlInputOpen( true );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Embed video from URL' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MediaReplaceFlow>\n\t\t\t</BlockControls>\n\t\t\t{ isEmbedUrlInputOpen && (\n\t\t\t\t<EmbedVideoUrlInput\n\t\t\t\t\tonSubmit={ ( embedUrl ) => {\n\t\t\t\t\t\tonSelectEmbedUrl( embedUrl );\n\t\t\t\t\t} }\n\t\t\t\t\tonClose={ () => setIsEmbedUrlInputOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,gBAAgB;AAEzB;AAAA,EACC;AAAA,EACA;AAAA,EACA,6CAA6C;AAAA,EAC7C,gDAAgD;AAAA,EAChD,eAAe;AAAA,OACT;AACP,SAAS,UAAU;AACnB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAKrB,SAAS,2BAA2B;AACpC,SAAS,cAAc;AACvB,OAAO,wBAAwB;AA+D7B,mBAGG,KADD,YAFF;AA7DF,IAAM,EAAE,iBAAiB,IAAI,OAAQ,sBAAuB;AAE7C,SAAR,mBAAqC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,iBAAiB,IAAI,kBAAkB,WAAW,cAAc,IACvE;AACD,QAAM,EAAE,gBAAgB,IAAI,IAAI;AAEhC,QAAM,CAAE,oBAAoB,qBAAsB,IAAI,SAAU,SAAU;AAC1E,QAAM,CAAE,mBAAmB,oBAAqB,IAC/C,SAAU,aAAc;AACzB,QAAM,CAAE,qBAAqB,sBAAuB,IAAI,SAAU,KAAM;AACxE,QAAM,kBACL,kBAAkB,QAClB,cAAc,OACd,CAAE,YAAY,OAAO,YAAY;AAClC,QAAM,oBAAoB,qBAAqB;AAE/C,QAAM,sBAAsB,MAAM;AACjC,QAAK,iBAAkB;AAEtB,UAAK,sBAAsB,QAAQ,uBAAuB,KAAM;AAC/D,eAAO,cAAe;AAAA,UACrB,WAAW;AAAA,UACX,eAAe;AAAA,QAChB,CAAE;AAAA,MACH;AAGA,aAAO,cAAe;AAAA,QACrB,WAAW;AAAA,QACX,eAAe;AAAA,MAChB,CAAE;AAAA,IACH;AAEA,0BAAuB,SAAU;AACjC,yBAAsB,aAAc;AAGpC,WAAO,cAAe;AAAA,MACrB,WAAW;AAAA,MACX,eAAe;AAAA,MACf,OAAO,iBAAkB;AAAA,QACxB,GAAG,YAAY;AAAA,QACf,YAAY;AAAA,UACX,GAAG,YAAY,OAAO;AAAA,UACtB,aAAa;AAAA;AAAA,QACd;AAAA,MACD,CAAE;AAAA,IACH,CAAE;AAAA,EACH;AAEA,SACC,iCACG;AAAA,KAAE,qBACH,qBAAC,iBAAc,OAAM,SACpB;AAAA;AAAA,QAAC;AAAA;AAAA,UACA,OAAQ,GAAI,yBAA0B;AAAA,UACtC,OAAQ;AAAA,UACR,UAAW,CAAE,iBACZ,cAAe;AAAA,YACd,iBAAiB;AAAA,UAClB,CAAE;AAAA,UAEH,YAAa,CAAE;AAAA;AAAA,MAChB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,UAAW;AAAA,UACX,UAAW;AAAA,UACX,YAAa,CAAE;AAAA;AAAA,MAChB;AAAA,OACD;AAAA,IAED,oBAAC,iBAAc,OAAM,SACpB;AAAA,MAAC;AAAA;AAAA,QACA,SAAU;AAAA,QACV,UAAW;AAAA,QACX,cAAe;AAAA,QACf,UAAW;AAAA,QACX,uBAAwB;AAAA,QACxB;AAAA,QACA,MAAO,CAAE,MAAM,GAAI,WAAY,IAAI,GAAI,SAAU;AAAA,QACjD,SAAU;AAAA,QAER,WAAE,EAAE,QAAQ,MACb;AAAA,UAAC;AAAA;AAAA,YACA,MAAO;AAAA,YACP,SAAU,MAAM;AACf,qCAAwB,IAAK;AAC7B,sBAAQ;AAAA,YACT;AAAA,YAEE,aAAI,sBAAuB;AAAA;AAAA,QAC9B;AAAA;AAAA,IAEF,GACD;AAAA,IACE,uBACD;AAAA,MAAC;AAAA;AAAA,QACA,UAAW,CAAE,aAAc;AAC1B,2BAAkB,QAAS;AAAA,QAC5B;AAAA,QACA,SAAU,MAAM,uBAAwB,KAAM;AAAA;AAAA,IAC/C;AAAA,KAEF;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/cover/edit/cover-placeholder.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BlockIcon, MediaPlaceholder } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\n\nexport default function CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tonSelectMedia,\n\tonError,\n\tstyle,\n\ttoggleUseFeaturedImage,\n} ) {\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\
|
|
5
|
-
"mappings": ";AAGA,SAAS,WAAW,wBAAwB;AAC5C,SAAS,UAAU;AACnB,SAAS,SAAS,YAAY;AAK9B,SAAS,2BAA2B;AAY1B;AAVK,SAAR,iBAAmC;AAAA,EACzC,sBAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,oBAAC,aAAU,MAAc;AAAA,MAChC,QAAS;AAAA,QACR,OAAO,GAAI,OAAQ;AAAA,MACpB;AAAA,MACA,UAAW;AAAA,MACX,
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { BlockIcon, MediaPlaceholder } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { cover as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_MEDIA_TYPES } from '../shared';\n\nexport default function CoverPlaceholder( {\n\tdisableMediaButtons = false,\n\tchildren,\n\tonSelectMedia,\n\tonError,\n\tstyle,\n\ttoggleUseFeaturedImage,\n} ) {\n\treturn (\n\t\t<MediaPlaceholder\n\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Cover' ),\n\t\t\t} }\n\t\t\tonSelect={ onSelectMedia }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tdisableMediaButtons={ disableMediaButtons }\n\t\t\tonToggleFeaturedImage={ toggleUseFeaturedImage }\n\t\t\tonError={ onError }\n\t\t\tstyle={ style }\n\t\t>\n\t\t\t{ children }\n\t\t</MediaPlaceholder>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,WAAW,wBAAwB;AAC5C,SAAS,UAAU;AACnB,SAAS,SAAS,YAAY;AAK9B,SAAS,2BAA2B;AAY1B;AAVK,SAAR,iBAAmC;AAAA,EACzC,sBAAsB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,oBAAC,aAAU,MAAc;AAAA,MAChC,QAAS;AAAA,QACR,OAAO,GAAI,OAAQ;AAAA,MACpB;AAAA,MACA,UAAW;AAAA,MACX,cAAe;AAAA,MACf;AAAA,MACA,uBAAwB;AAAA,MACxB;AAAA,MACA;AAAA,MAEE;AAAA;AAAA,EACH;AAEF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// packages/block-library/src/cover/edit/embed-video-url-input.js
|
|
2
|
+
import { useState } from "@wordpress/element";
|
|
3
|
+
import {
|
|
4
|
+
__experimentalConfirmDialog as ConfirmDialog,
|
|
5
|
+
__experimentalVStack as VStack,
|
|
6
|
+
TextControl,
|
|
7
|
+
Notice
|
|
8
|
+
} from "@wordpress/components";
|
|
9
|
+
import { __ } from "@wordpress/i18n";
|
|
10
|
+
import { isValidVideoEmbedUrl } from "../embed-video-utils";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
function EmbedVideoUrlInput({ onSubmit, onClose }) {
|
|
13
|
+
const [url, setUrl] = useState("");
|
|
14
|
+
const [error, setError] = useState("");
|
|
15
|
+
const handleConfirm = () => {
|
|
16
|
+
if (!url) {
|
|
17
|
+
setError(__("Please enter a URL."));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (!isValidVideoEmbedUrl(url)) {
|
|
21
|
+
setError(
|
|
22
|
+
__(
|
|
23
|
+
"This URL is not supported. Please enter a valid video link from a supported provider."
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
onSubmit(url);
|
|
29
|
+
onClose();
|
|
30
|
+
};
|
|
31
|
+
return /* @__PURE__ */ jsx(
|
|
32
|
+
ConfirmDialog,
|
|
33
|
+
{
|
|
34
|
+
isOpen: true,
|
|
35
|
+
onConfirm: handleConfirm,
|
|
36
|
+
onCancel: onClose,
|
|
37
|
+
confirmButtonText: __("Add video"),
|
|
38
|
+
size: "medium",
|
|
39
|
+
children: /* @__PURE__ */ jsxs(VStack, { spacing: 4, children: [
|
|
40
|
+
error && /* @__PURE__ */ jsx(Notice, { status: "error", isDismissible: false, children: error }),
|
|
41
|
+
/* @__PURE__ */ jsx(
|
|
42
|
+
TextControl,
|
|
43
|
+
{
|
|
44
|
+
__next40pxDefaultSize: true,
|
|
45
|
+
label: __("Video URL"),
|
|
46
|
+
value: url,
|
|
47
|
+
onChange: (value) => {
|
|
48
|
+
setUrl(value);
|
|
49
|
+
setError("");
|
|
50
|
+
},
|
|
51
|
+
placeholder: __(
|
|
52
|
+
"Enter YouTube, Vimeo, or other video URL"
|
|
53
|
+
),
|
|
54
|
+
__nextHasNoMarginBottom: true,
|
|
55
|
+
help: __(
|
|
56
|
+
"Add a background video to the cover block that will autoplay in a loop."
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
] })
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
EmbedVideoUrlInput as default
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=embed-video-url-input.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/cover/edit/embed-video-url-input.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport {\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tNotice,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { isValidVideoEmbedUrl } from '../embed-video-utils';\n\nexport default function EmbedVideoUrlInput( { onSubmit, onClose } ) {\n\tconst [ url, setUrl ] = useState( '' );\n\tconst [ error, setError ] = useState( '' );\n\n\tconst handleConfirm = () => {\n\t\tif ( ! url ) {\n\t\t\tsetError( __( 'Please enter a URL.' ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isValidVideoEmbedUrl( url ) ) {\n\t\t\tsetError(\n\t\t\t\t__(\n\t\t\t\t\t'This URL is not supported. Please enter a valid video link from a supported provider.'\n\t\t\t\t)\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tonSubmit( url );\n\t\tonClose();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tonCancel={ onClose }\n\t\t\tconfirmButtonText={ __( 'Add video' ) }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t{ error && (\n\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t{ error }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Video URL' ) }\n\t\t\t\t\tvalue={ url }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetUrl( value );\n\t\t\t\t\t\tsetError( '' );\n\t\t\t\t\t} }\n\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t'Enter YouTube, Vimeo, or other video URL'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Add a background video to the cover block that will autoplay in a loop.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</ConfirmDialog>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,gBAAgB;AACzB;AAAA,EACC,+BAA+B;AAAA,EAC/B,wBAAwB;AAAA,EACxB;AAAA,EACA;AAAA,OACM;AACP,SAAS,UAAU;AAKnB,SAAS,4BAA4B;AAiClC,SAEE,KAFF;AA/BY,SAAR,mBAAqC,EAAE,UAAU,QAAQ,GAAI;AACnE,QAAM,CAAE,KAAK,MAAO,IAAI,SAAU,EAAG;AACrC,QAAM,CAAE,OAAO,QAAS,IAAI,SAAU,EAAG;AAEzC,QAAM,gBAAgB,MAAM;AAC3B,QAAK,CAAE,KAAM;AACZ,eAAU,GAAI,qBAAsB,CAAE;AACtC;AAAA,IACD;AAEA,QAAK,CAAE,qBAAsB,GAAI,GAAI;AACpC;AAAA,QACC;AAAA,UACC;AAAA,QACD;AAAA,MACD;AACA;AAAA,IACD;AAEA,aAAU,GAAI;AACd,YAAQ;AAAA,EACT;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,QAAM;AAAA,MACN,WAAY;AAAA,MACZ,UAAW;AAAA,MACX,mBAAoB,GAAI,WAAY;AAAA,MACpC,MAAK;AAAA,MAEL,+BAAC,UAAO,SAAU,GACf;AAAA,iBACD,oBAAC,UAAO,QAAO,SAAQ,eAAgB,OACpC,iBACH;AAAA,QAED;AAAA,UAAC;AAAA;AAAA,YACA,uBAAqB;AAAA,YACrB,OAAQ,GAAI,WAAY;AAAA,YACxB,OAAQ;AAAA,YACR,UAAW,CAAE,UAAW;AACvB,qBAAQ,KAAM;AACd,uBAAU,EAAG;AAAA,YACd;AAAA,YACA,aAAc;AAAA,cACb;AAAA,YACD;AAAA,YACA,yBAAuB;AAAA,YACvB,MAAO;AAAA,cACN;AAAA,YACD;AAAA;AAAA,QACD;AAAA,SACD;AAAA;AAAA,EACD;AAEF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|