@wordpress/block-library 9.41.0 → 9.41.1-next.v.202603161435.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/build/cover/edit/cover-placeholder.cjs +7 -0
- package/build/cover/edit/cover-placeholder.cjs.map +2 -2
- package/build/html/block.json +2 -1
- package/build/html/modal.cjs +142 -147
- package/build/html/modal.cjs.map +3 -3
- package/build/icon/block.json +3 -12
- package/build/image/edit.cjs +7 -0
- package/build/image/edit.cjs.map +2 -2
- package/build/image/image.cjs +5 -9
- package/build/image/image.cjs.map +2 -2
- package/build/media-text/media-container.cjs +6 -0
- package/build/media-text/media-container.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +21 -14
- package/build/navigation/edit/index.cjs.map +3 -3
- package/build/navigation/view.cjs +9 -2
- package/build/navigation/view.cjs.map +2 -2
- package/build/navigation-link/block.json +5 -0
- package/build/navigation-link/shared/use-link-preview.cjs +29 -0
- package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
- package/build/nextpage/block.json +0 -1
- package/build/paragraph/edit.cjs +1 -1
- package/build/paragraph/edit.cjs.map +1 -1
- package/build/playlist/edit.cjs +3 -23
- package/build/playlist/edit.cjs.map +3 -3
- package/build/playlist/utils.cjs +48 -0
- package/build/playlist/utils.cjs.map +7 -0
- package/build/playlist-track/block.json +0 -0
- package/build/post-excerpt/block.json +1 -3
- package/build/post-excerpt/deprecated.cjs +112 -0
- package/build/post-excerpt/deprecated.cjs.map +7 -0
- package/build/post-excerpt/edit.cjs +11 -30
- package/build/post-excerpt/edit.cjs.map +3 -3
- package/build/post-excerpt/index.cjs +3 -1
- package/build/post-excerpt/index.cjs.map +3 -3
- package/build/private-apis.cjs +3 -1
- package/build/private-apis.cjs.map +2 -2
- package/build/shortcode/block.json +2 -1
- package/build/site-logo/edit.cjs +1 -3
- package/build/site-logo/edit.cjs.map +2 -2
- package/build/tab/add-tab-toolbar-control.cjs +22 -5
- package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
- package/build/tab/remove-tab-toolbar-control.cjs +19 -1
- package/build/tab/remove-tab-toolbar-control.cjs.map +2 -2
- package/build/tabs/edit.cjs +85 -7
- package/build/tabs/edit.cjs.map +2 -2
- package/build/tabs/index.cjs +12 -2
- package/build/tabs/index.cjs.map +2 -2
- package/build/tabs-menu/block.json +1 -6
- package/build/tabs-menu/edit.cjs +11 -151
- package/build/tabs-menu/edit.cjs.map +3 -3
- package/build/tabs-menu/save.cjs.map +2 -2
- package/build/tabs-menu-item/block.json +14 -11
- package/build/tabs-menu-item/controls.cjs +2 -133
- package/build/tabs-menu-item/controls.cjs.map +3 -3
- package/build/tabs-menu-item/edit.cjs +44 -56
- package/build/tabs-menu-item/edit.cjs.map +3 -3
- package/build/tabs-menu-item/save.cjs +0 -1
- package/build/tabs-menu-item/save.cjs.map +2 -2
- package/build/template-part/edit/index.cjs +6 -4
- package/build/template-part/edit/index.cjs.map +2 -2
- package/build/utils/media-control.cjs +72 -29
- package/build/utils/media-control.cjs.map +3 -3
- package/build-module/cover/edit/cover-placeholder.mjs +7 -0
- package/build-module/cover/edit/cover-placeholder.mjs.map +2 -2
- package/build-module/html/block.json +2 -1
- package/build-module/html/modal.mjs +144 -149
- package/build-module/html/modal.mjs.map +2 -2
- package/build-module/icon/block.json +3 -12
- package/build-module/image/edit.mjs +7 -0
- package/build-module/image/edit.mjs.map +2 -2
- package/build-module/image/image.mjs +5 -9
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/media-text/media-container.mjs +7 -1
- package/build-module/media-text/media-container.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +22 -14
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/view.mjs +9 -2
- package/build-module/navigation/view.mjs.map +2 -2
- package/build-module/navigation-link/block.json +5 -0
- package/build-module/navigation-link/shared/use-link-preview.mjs +28 -0
- package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
- package/build-module/nextpage/block.json +0 -1
- package/build-module/paragraph/edit.mjs +2 -2
- package/build-module/paragraph/edit.mjs.map +1 -1
- package/build-module/playlist/edit.mjs +2 -18
- package/build-module/playlist/edit.mjs.map +2 -2
- package/build-module/playlist/utils.mjs +23 -0
- package/build-module/playlist/utils.mjs.map +7 -0
- package/build-module/playlist-track/block.json +0 -0
- package/build-module/post-excerpt/block.json +1 -3
- package/build-module/post-excerpt/deprecated.mjs +81 -0
- package/build-module/post-excerpt/deprecated.mjs.map +7 -0
- package/build-module/post-excerpt/edit.mjs +12 -34
- package/build-module/post-excerpt/edit.mjs.map +2 -2
- package/build-module/post-excerpt/index.mjs +3 -1
- package/build-module/post-excerpt/index.mjs.map +2 -2
- package/build-module/private-apis.mjs +3 -1
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/shortcode/block.json +2 -1
- package/build-module/site-logo/edit.mjs +1 -3
- package/build-module/site-logo/edit.mjs.map +2 -2
- package/build-module/tab/add-tab-toolbar-control.mjs +22 -5
- package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
- package/build-module/tab/remove-tab-toolbar-control.mjs +19 -1
- package/build-module/tab/remove-tab-toolbar-control.mjs.map +2 -2
- package/build-module/tabs/edit.mjs +87 -9
- package/build-module/tabs/edit.mjs.map +2 -2
- package/build-module/tabs/index.mjs +12 -2
- package/build-module/tabs/index.mjs.map +2 -2
- package/build-module/tabs-menu/block.json +1 -6
- package/build-module/tabs-menu/edit.mjs +13 -162
- package/build-module/tabs-menu/edit.mjs.map +2 -2
- package/build-module/tabs-menu/save.mjs.map +2 -2
- package/build-module/tabs-menu-item/block.json +14 -11
- package/build-module/tabs-menu-item/controls.mjs +4 -143
- package/build-module/tabs-menu-item/controls.mjs.map +2 -2
- package/build-module/tabs-menu-item/edit.mjs +45 -57
- package/build-module/tabs-menu-item/edit.mjs.map +3 -3
- package/build-module/tabs-menu-item/save.mjs +0 -1
- package/build-module/tabs-menu-item/save.mjs.map +2 -2
- package/build-module/template-part/edit/index.mjs +6 -4
- package/build-module/template-part/edit/index.mjs.map +2 -2
- package/build-module/utils/media-control.mjs +73 -30
- package/build-module/utils/media-control.mjs.map +2 -2
- package/build-style/common-rtl.css +1 -0
- package/build-style/common.css +1 -0
- package/build-style/editor-rtl.css +55 -17
- package/build-style/editor.css +55 -17
- package/build-style/html/editor-rtl.css +10 -6
- package/build-style/html/editor.css +10 -6
- package/build-style/navigation/style-rtl.css +15 -1
- package/build-style/navigation/style.css +15 -1
- package/build-style/navigation-overlay-close/style-rtl.css +3 -3
- package/build-style/navigation-overlay-close/style.css +3 -3
- package/build-style/playlist/style-rtl.css +4 -0
- package/build-style/playlist/style.css +4 -0
- package/build-style/style-rtl.css +23 -4
- package/build-style/style.css +23 -4
- package/build-style/tabs-menu/editor-rtl.css +5 -3
- package/build-style/tabs-menu/editor.css +5 -3
- package/package.json +38 -38
- package/src/accordion-item/index.php +17 -5
- package/src/common.scss +1 -0
- package/src/cover/edit/cover-placeholder.js +8 -0
- package/src/cover/index.php +8 -0
- package/src/details/index.php +47 -0
- package/src/html/block.json +2 -1
- package/src/html/editor.scss +15 -5
- package/src/html/modal.js +26 -22
- package/src/icon/block.json +3 -12
- package/src/image/edit.js +8 -0
- package/src/image/image.js +8 -13
- package/src/media-text/media-container.js +8 -1
- package/src/navigation/edit/index.js +26 -14
- package/src/navigation/index.php +27 -13
- package/src/navigation/style.scss +17 -1
- package/src/navigation/view.js +14 -2
- package/src/navigation-link/block.json +5 -0
- package/src/navigation-link/index.php +10 -10
- package/src/navigation-link/shared/test/use-link-preview.test.js +149 -0
- package/src/navigation-link/shared/use-link-preview.js +43 -1
- package/src/navigation-overlay-close/style.scss +3 -3
- package/src/navigation-submenu/index.php +17 -11
- package/src/nextpage/block.json +0 -1
- package/src/paragraph/edit.js +2 -2
- package/src/playlist/edit.js +1 -34
- package/src/playlist/style.scss +5 -0
- package/src/playlist/test/edit.js +1 -1
- package/src/playlist/utils.js +42 -0
- package/src/playlist-track/block.json +0 -0
- package/src/playlist-track/edit.js +0 -0
- package/src/playlist-track/index.js +0 -0
- package/src/playlist-track/index.php +0 -0
- package/src/playlist-track/init.js +0 -0
- package/src/playlist-track/style.scss +0 -0
- package/src/post-excerpt/block.json +1 -3
- package/src/post-excerpt/deprecated.js +84 -0
- package/src/post-excerpt/edit.js +14 -39
- package/src/post-excerpt/index.js +2 -0
- package/src/private-apis.js +2 -0
- package/src/shortcode/block.json +2 -1
- package/src/site-logo/edit.js +1 -3
- package/src/tab/add-tab-toolbar-control.js +48 -23
- package/src/tab/remove-tab-toolbar-control.js +30 -10
- package/src/tabs/edit.js +133 -10
- package/src/tabs/index.js +12 -2
- package/src/tabs-menu/block.json +1 -6
- package/src/tabs-menu/edit.js +13 -214
- package/src/tabs-menu/editor.scss +7 -3
- package/src/tabs-menu/index.php +42 -27
- package/src/tabs-menu/save.js +0 -4
- package/src/tabs-menu-item/block.json +14 -11
- package/src/tabs-menu-item/controls.js +4 -167
- package/src/tabs-menu-item/edit.js +60 -69
- package/src/tabs-menu-item/index.php +11 -23
- package/src/tabs-menu-item/save.js +0 -1
- package/src/template-part/edit/index.js +5 -1
- package/src/utils/media-control.js +61 -21
- package/src/utils/media-control.scss +54 -18
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import {
|
|
5
5
|
Button,
|
|
6
6
|
DropZone,
|
|
7
|
-
|
|
7
|
+
FlexBlock,
|
|
8
8
|
Spinner,
|
|
9
9
|
__experimentalItemGroup as ItemGroup,
|
|
10
10
|
__experimentalHStack as HStack,
|
|
@@ -14,36 +14,62 @@ import {
|
|
|
14
14
|
MediaReplaceFlow,
|
|
15
15
|
store as blockEditorStore,
|
|
16
16
|
} from '@wordpress/block-editor';
|
|
17
|
+
import { focus } from '@wordpress/dom';
|
|
18
|
+
import { useRef } from '@wordpress/element';
|
|
17
19
|
import { __ } from '@wordpress/i18n';
|
|
18
20
|
import { useSelect } from '@wordpress/data';
|
|
21
|
+
import { reset as resetIcon } from '@wordpress/icons';
|
|
22
|
+
import { getFilename } from '@wordpress/url';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Focuses the toggle button.
|
|
26
|
+
*
|
|
27
|
+
* @param {Object} containerRef - ref object containing current element
|
|
28
|
+
*/
|
|
29
|
+
const focusToggleButton = ( containerRef ) => {
|
|
30
|
+
// Use requestAnimationFrame to ensure DOM updates are complete.
|
|
31
|
+
window.requestAnimationFrame( () => {
|
|
32
|
+
const [ toggleButton ] = focus.tabbable.find( containerRef?.current );
|
|
33
|
+
if ( ! toggleButton ) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
toggleButton.focus();
|
|
38
|
+
} );
|
|
39
|
+
};
|
|
19
40
|
|
|
20
41
|
/**
|
|
21
42
|
* MediaControlPreview - Preview component showing media thumbnail and filename
|
|
22
43
|
*
|
|
23
44
|
* @param {Object} props
|
|
24
45
|
* @param {string} props.url Media URL for thumbnail
|
|
25
|
-
* @param {string} props.alt Alt text for image
|
|
26
46
|
* @param {string} props.filename Filename to display
|
|
27
47
|
* @param {Object} props.itemGroupProps Optional props to pass to ItemGroup
|
|
28
48
|
* @param {string} props.className Optional className for Truncate
|
|
49
|
+
* @param {string} props.label Optional label for accessibility
|
|
29
50
|
* @return {Element} Preview component
|
|
30
51
|
*/
|
|
31
52
|
export function MediaControlPreview( {
|
|
32
53
|
url,
|
|
33
|
-
alt,
|
|
34
54
|
filename,
|
|
35
55
|
itemGroupProps,
|
|
36
56
|
className,
|
|
57
|
+
label,
|
|
37
58
|
} ) {
|
|
38
59
|
return (
|
|
39
60
|
<ItemGroup { ...itemGroupProps } as="span">
|
|
40
|
-
<HStack justify="flex-start"
|
|
41
|
-
<
|
|
42
|
-
|
|
61
|
+
<HStack justify="flex-start">
|
|
62
|
+
<span
|
|
63
|
+
className="block-library-utils__media-control__inspector-image-indicator"
|
|
64
|
+
style={ {
|
|
65
|
+
backgroundImage: url ? `url(${ url })` : undefined,
|
|
66
|
+
} }
|
|
67
|
+
/>
|
|
68
|
+
<FlexBlock>
|
|
43
69
|
<Truncate numberOfLines={ 1 } className={ className }>
|
|
44
|
-
{ filename }
|
|
70
|
+
{ filename ?? label }
|
|
45
71
|
</Truncate>
|
|
46
|
-
</
|
|
72
|
+
</FlexBlock>
|
|
47
73
|
</HStack>
|
|
48
74
|
</ItemGroup>
|
|
49
75
|
);
|
|
@@ -55,7 +81,6 @@ export function MediaControlPreview( {
|
|
|
55
81
|
* @param {Object} props
|
|
56
82
|
* @param {number} props.mediaId Media attachment ID
|
|
57
83
|
* @param {string} props.mediaUrl Media URL
|
|
58
|
-
* @param {string} props.alt Alt text for preview
|
|
59
84
|
* @param {string} props.filename Filename to display
|
|
60
85
|
* @param {Array} props.allowedTypes Allowed media types
|
|
61
86
|
* @param {Function} props.onSelect Callback when media selected
|
|
@@ -69,7 +94,6 @@ export function MediaControlPreview( {
|
|
|
69
94
|
export function MediaControl( {
|
|
70
95
|
mediaId,
|
|
71
96
|
mediaUrl,
|
|
72
|
-
alt = '',
|
|
73
97
|
filename,
|
|
74
98
|
allowedTypes,
|
|
75
99
|
onSelect,
|
|
@@ -77,7 +101,7 @@ export function MediaControl( {
|
|
|
77
101
|
onError,
|
|
78
102
|
onReset,
|
|
79
103
|
isUploading = false,
|
|
80
|
-
emptyLabel = __( '
|
|
104
|
+
emptyLabel = __( 'Media' ),
|
|
81
105
|
} ) {
|
|
82
106
|
const { getSettings } = useSelect( blockEditorStore );
|
|
83
107
|
const onFilesDrop = ( filesList ) => {
|
|
@@ -95,10 +119,15 @@ export function MediaControl( {
|
|
|
95
119
|
multiple: false,
|
|
96
120
|
} );
|
|
97
121
|
};
|
|
122
|
+
const containerRef = useRef();
|
|
98
123
|
|
|
99
124
|
return (
|
|
100
|
-
<div
|
|
125
|
+
<div
|
|
126
|
+
ref={ containerRef }
|
|
127
|
+
className="block-library-utils__media-control"
|
|
128
|
+
>
|
|
101
129
|
<MediaReplaceFlow
|
|
130
|
+
className="block-library-utils__media-control__replace-flow"
|
|
102
131
|
mediaId={ mediaId }
|
|
103
132
|
mediaURL={ mediaUrl }
|
|
104
133
|
allowedTypes={ allowedTypes }
|
|
@@ -106,15 +135,14 @@ export function MediaControl( {
|
|
|
106
135
|
onSelectURL={ onSelectURL }
|
|
107
136
|
onError={ onError }
|
|
108
137
|
name={
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
)
|
|
138
|
+
<MediaControlPreview
|
|
139
|
+
url={ mediaUrl }
|
|
140
|
+
filename={ filename }
|
|
141
|
+
className="block-library-utils__media-control__inspector-media-replace-title"
|
|
142
|
+
label={
|
|
143
|
+
mediaUrl ? getFilename( filename ) : emptyLabel
|
|
144
|
+
}
|
|
145
|
+
/>
|
|
118
146
|
}
|
|
119
147
|
renderToggle={ ( props ) => (
|
|
120
148
|
<Button { ...props } __next40pxDefaultSize>
|
|
@@ -123,6 +151,18 @@ export function MediaControl( {
|
|
|
123
151
|
) }
|
|
124
152
|
onReset={ onReset }
|
|
125
153
|
/>
|
|
154
|
+
{ mediaUrl && onReset && (
|
|
155
|
+
<Button
|
|
156
|
+
label={ __( 'Reset' ) }
|
|
157
|
+
className="block-library-utils__media-control__reset"
|
|
158
|
+
size="small"
|
|
159
|
+
icon={ resetIcon }
|
|
160
|
+
onClick={ () => {
|
|
161
|
+
onReset();
|
|
162
|
+
focusToggleButton( containerRef );
|
|
163
|
+
} }
|
|
164
|
+
/>
|
|
165
|
+
) }
|
|
126
166
|
<DropZone onFilesDrop={ onFilesDrop } />
|
|
127
167
|
</div>
|
|
128
168
|
);
|
|
@@ -11,31 +11,67 @@
|
|
|
11
11
|
display: none;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
color: $gray-900;
|
|
16
|
-
box-shadow: inset 0 0 0 1px $gray-400;
|
|
17
|
-
width: 100%;
|
|
14
|
+
.block-library-utils__media-control__replace-flow {
|
|
18
15
|
display: block;
|
|
19
|
-
height: $grid-unit-50;
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
color:
|
|
23
|
-
|
|
17
|
+
button.components-button {
|
|
18
|
+
color: $gray-900;
|
|
19
|
+
box-shadow: inset 0 0 0 1px $gray-400;
|
|
20
|
+
width: 100%;
|
|
21
|
+
display: block;
|
|
22
|
+
height: $grid-unit-50;
|
|
23
|
+
padding-right: $grid-unit-40;
|
|
24
|
+
|
|
25
|
+
&:hover {
|
|
26
|
+
color: var(--wp-admin-theme-color);
|
|
27
|
+
}
|
|
24
28
|
|
|
25
|
-
|
|
26
|
-
|
|
29
|
+
&:focus {
|
|
30
|
+
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
|
31
|
+
}
|
|
27
32
|
}
|
|
28
33
|
}
|
|
34
|
+
}
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
.block-library-utils__media-control__inspector-media-replace-title {
|
|
37
|
+
word-break: break-all;
|
|
38
|
+
// The Button component is white-space: nowrap, and that won't work with line-clamp.
|
|
39
|
+
white-space: normal;
|
|
40
|
+
|
|
41
|
+
// Without this, the ellipsis can sometimes be partially hidden by the Button padding.
|
|
42
|
+
text-align: start;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.block-library-utils__media-control__inspector-image-indicator {
|
|
46
|
+
width: 20px;
|
|
47
|
+
height: 20px;
|
|
48
|
+
border-radius: $radius-small;
|
|
49
|
+
box-shadow: inset 0 0 0 $border-width rgba(0, 0, 0, 0.2);
|
|
50
|
+
background: $white linear-gradient(-45deg, transparent 48%, $gray-300 48%, $gray-300 52%, transparent 52%);
|
|
51
|
+
background-size: cover;
|
|
52
|
+
// Show a thin outline in Windows high contrast mode, otherwise the button is invisible.
|
|
53
|
+
outline: 1px solid transparent;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.block-library-utils__media-control__reset {
|
|
57
|
+
position: absolute;
|
|
58
|
+
right: 0;
|
|
59
|
+
top: $grid-unit;
|
|
60
|
+
margin: auto $grid-unit auto;
|
|
61
|
+
opacity: 0;
|
|
62
|
+
border-radius: $radius-small;
|
|
63
|
+
@media not ( prefers-reduced-motion ) {
|
|
64
|
+
transition: opacity 0.1s ease-in-out;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.block-library-utils__media-control:hover &,
|
|
68
|
+
&:focus,
|
|
69
|
+
&:hover {
|
|
70
|
+
opacity: 1;
|
|
32
71
|
}
|
|
33
72
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
aspect-ratio: 1;
|
|
38
|
-
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
|
|
39
|
-
border-radius: 2px;
|
|
73
|
+
@media (hover: none) {
|
|
74
|
+
// Show reset button on devices that do not support hover.
|
|
75
|
+
opacity: 1;
|
|
40
76
|
}
|
|
41
77
|
}
|