@wordpress/block-library 9.40.2-next.v.202602271551.0 → 9.40.2
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/accordion/view.cjs +34 -0
- package/build/accordion/view.cjs.map +2 -2
- package/build/comment-reply-link/edit.cjs +2 -1
- package/build/comment-reply-link/edit.cjs.map +2 -2
- package/build/comments/edit/placeholder.cjs +2 -1
- package/build/comments/edit/placeholder.cjs.map +2 -2
- package/build/cover/edit/index.cjs +39 -26
- package/build/cover/edit/index.cjs.map +2 -2
- package/build/cover/embed-video-utils.cjs +8 -6
- package/build/cover/embed-video-utils.cjs.map +2 -2
- package/build/embed/embed-preview.cjs +2 -1
- package/build/embed/embed-preview.cjs.map +2 -2
- package/build/html/block.json +2 -1
- package/build/html/modal.cjs +147 -230
- package/build/html/modal.cjs.map +3 -3
- package/build/icon/block.json +3 -12
- package/build/image/image.cjs +1 -1
- package/build/image/image.cjs.map +2 -2
- package/build/latest-comments/deprecated.cjs +33 -0
- package/build/latest-comments/deprecated.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +125 -123
- package/build/navigation/edit/index.cjs.map +3 -3
- package/build/navigation/edit/leaf-more-menu.cjs +6 -68
- package/build/navigation/edit/leaf-more-menu.cjs.map +3 -3
- package/build/navigation/edit/menu-inspector-controls.cjs +91 -20
- package/build/navigation/edit/menu-inspector-controls.cjs.map +3 -3
- package/build/navigation/edit/navigation-menu-selector.cjs +4 -5
- package/build/navigation/edit/navigation-menu-selector.cjs.map +3 -3
- package/build/navigation/edit/placeholder/index.cjs +2 -2
- package/build/navigation/edit/placeholder/index.cjs.map +3 -3
- package/build/navigation/use-navigation-entities.cjs +67 -0
- package/build/navigation/use-navigation-entities.cjs.map +7 -0
- package/build/navigation/view.cjs +9 -2
- package/build/navigation/view.cjs.map +2 -2
- package/build/navigation-link/edit.cjs +2 -1
- package/build/navigation-link/edit.cjs.map +2 -2
- package/build/navigation-link/shared/use-handle-link-change.cjs +19 -3
- package/build/navigation-link/shared/use-handle-link-change.cjs.map +3 -3
- package/build/navigation-link/shared/use-link-preview.cjs +2 -2
- package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
- package/build/navigation-submenu/edit.cjs +8 -22
- package/build/navigation-submenu/edit.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/post-navigation-link/block.json +3 -1
- package/build/post-navigation-link/edit.cjs +36 -2
- package/build/post-navigation-link/edit.cjs.map +3 -3
- package/build/post-navigation-link/index.cjs +0 -2
- package/build/post-navigation-link/index.cjs.map +3 -3
- package/build/post-title/block.json +3 -1
- package/build/post-title/deprecated.cjs +1 -82
- package/build/post-title/deprecated.cjs.map +3 -3
- package/build/post-title/edit.cjs +36 -10
- package/build/post-title/edit.cjs.map +3 -3
- package/build/query-title/block.json +3 -1
- package/build/query-title/deprecated.cjs +1 -70
- package/build/query-title/deprecated.cjs.map +3 -3
- package/build/query-title/edit.cjs +35 -17
- package/build/query-title/edit.cjs.map +3 -3
- package/build/shortcode/block.json +2 -1
- package/build/site-tagline/block.json +4 -6
- package/build/site-tagline/deprecated.cjs +1 -66
- package/build/site-tagline/deprecated.cjs.map +3 -3
- package/build/site-tagline/edit.cjs +28 -14
- package/build/site-tagline/edit.cjs.map +3 -3
- package/build/site-title/block.json +3 -1
- package/build/site-title/deprecated.cjs +1 -79
- package/build/site-title/deprecated.cjs.map +3 -3
- package/build/site-title/edit.cjs +30 -14
- package/build/site-title/edit.cjs.map +3 -3
- package/build/tabs-menu-item/block.json +26 -1
- package/build/tabs-menu-item/controls.cjs +100 -2
- package/build/tabs-menu-item/controls.cjs.map +3 -3
- package/build/tabs-menu-item/edit.cjs +65 -6
- package/build/tabs-menu-item/edit.cjs.map +2 -2
- package/build/tabs-menu-item/save.cjs +15 -1
- package/build/tabs-menu-item/save.cjs.map +2 -2
- package/build-module/accordion/view.mjs +35 -1
- package/build-module/accordion/view.mjs.map +2 -2
- package/build-module/comment-reply-link/edit.mjs +3 -2
- package/build-module/comment-reply-link/edit.mjs.map +2 -2
- package/build-module/comments/edit/placeholder.mjs +3 -2
- package/build-module/comments/edit/placeholder.mjs.map +2 -2
- package/build-module/cover/edit/index.mjs +47 -29
- package/build-module/cover/edit/index.mjs.map +2 -2
- package/build-module/cover/embed-video-utils.mjs +7 -5
- package/build-module/cover/embed-video-utils.mjs.map +2 -2
- package/build-module/embed/embed-preview.mjs +2 -1
- package/build-module/embed/embed-preview.mjs.map +2 -2
- package/build-module/html/block.json +2 -1
- package/build-module/html/modal.mjs +149 -232
- package/build-module/html/modal.mjs.map +2 -2
- package/build-module/icon/block.json +3 -12
- package/build-module/image/image.mjs +1 -1
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/latest-comments/deprecated.mjs +33 -0
- package/build-module/latest-comments/deprecated.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +125 -123
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/edit/leaf-more-menu.mjs +7 -73
- package/build-module/navigation/edit/leaf-more-menu.mjs.map +2 -2
- package/build-module/navigation/edit/menu-inspector-controls.mjs +101 -21
- package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
- package/build-module/navigation/edit/navigation-menu-selector.mjs +5 -6
- package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
- package/build-module/navigation/edit/placeholder/index.mjs +2 -2
- package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
- package/build-module/navigation/use-navigation-entities.mjs +46 -0
- package/build-module/navigation/use-navigation-entities.mjs.map +7 -0
- package/build-module/navigation/view.mjs +9 -2
- package/build-module/navigation/view.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs +2 -1
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-handle-link-change.mjs +19 -3
- package/build-module/navigation-link/shared/use-handle-link-change.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
- package/build-module/navigation-submenu/edit.mjs +9 -23
- package/build-module/navigation-submenu/edit.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/post-navigation-link/block.json +3 -1
- package/build-module/post-navigation-link/edit.mjs +30 -3
- package/build-module/post-navigation-link/edit.mjs.map +2 -2
- package/build-module/post-navigation-link/index.mjs +0 -2
- package/build-module/post-navigation-link/index.mjs.map +2 -2
- package/build-module/post-title/block.json +3 -1
- package/build-module/post-title/deprecated.mjs +1 -82
- package/build-module/post-title/deprecated.mjs.map +2 -2
- package/build-module/post-title/edit.mjs +27 -10
- package/build-module/post-title/edit.mjs.map +2 -2
- package/build-module/query-title/block.json +3 -1
- package/build-module/query-title/deprecated.mjs +1 -70
- package/build-module/query-title/deprecated.mjs.map +2 -2
- package/build-module/query-title/edit.mjs +36 -17
- package/build-module/query-title/edit.mjs.map +2 -2
- package/build-module/shortcode/block.json +2 -1
- package/build-module/site-tagline/block.json +4 -6
- package/build-module/site-tagline/deprecated.mjs +1 -66
- package/build-module/site-tagline/deprecated.mjs.map +2 -2
- package/build-module/site-tagline/edit.mjs +29 -14
- package/build-module/site-tagline/edit.mjs.map +2 -2
- package/build-module/site-title/block.json +3 -1
- package/build-module/site-title/deprecated.mjs +1 -79
- package/build-module/site-title/deprecated.mjs.map +2 -2
- package/build-module/site-title/edit.mjs +31 -14
- package/build-module/site-title/edit.mjs.map +2 -2
- package/build-module/tabs-menu-item/block.json +26 -1
- package/build-module/tabs-menu-item/controls.mjs +104 -3
- package/build-module/tabs-menu-item/controls.mjs.map +2 -2
- package/build-module/tabs-menu-item/edit.mjs +66 -6
- package/build-module/tabs-menu-item/edit.mjs.map +2 -2
- package/build-module/tabs-menu-item/save.mjs +15 -1
- package/build-module/tabs-menu-item/save.mjs.map +2 -2
- package/build-style/editor-rtl.css +20 -6
- package/build-style/editor.css +20 -6
- package/build-style/html/editor-rtl.css +10 -6
- package/build-style/html/editor.css +10 -6
- package/build-style/icon/editor-rtl.css +5 -0
- package/build-style/icon/editor.css +5 -0
- 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/style-rtl.css +30 -7
- package/build-style/style.css +30 -7
- package/build-style/tabs-menu-item/editor-rtl.css +5 -0
- package/build-style/tabs-menu-item/editor.css +5 -0
- package/build-style/tabs-menu-item/style-rtl.css +12 -3
- package/build-style/tabs-menu-item/style.css +12 -3
- package/package.json +38 -38
- package/src/accordion/view.js +44 -1
- package/src/accordion-item/index.php +18 -5
- package/src/comment-reply-link/edit.js +5 -2
- package/src/comments/edit/placeholder.js +5 -2
- package/src/cover/edit/index.js +72 -35
- package/src/cover/embed-video-utils.js +9 -7
- package/src/cover/index.php +12 -4
- package/src/details/index.php +47 -0
- package/src/embed/embed-preview.js +6 -5
- package/src/html/block.json +2 -1
- package/src/html/editor.scss +15 -5
- package/src/html/modal.js +32 -99
- package/src/icon/block.json +3 -12
- package/src/icon/editor.scss +5 -0
- package/src/icon/index.php +3 -1
- package/src/image/image.js +14 -15
- package/src/image/index.php +7 -5
- package/src/latest-comments/deprecated.js +33 -0
- package/src/navigation/edit/index.js +136 -134
- package/src/navigation/edit/leaf-more-menu.js +11 -86
- package/src/navigation/edit/menu-inspector-controls.js +142 -23
- package/src/navigation/edit/navigation-menu-selector.js +5 -6
- package/src/navigation/edit/placeholder/index.js +2 -3
- package/src/navigation/edit/test/navigation-menu-selector.js +20 -23
- package/src/navigation/index.php +62 -9
- package/src/navigation/style.scss +17 -1
- package/src/navigation/use-navigation-entities.js +72 -0
- package/src/navigation/view.js +14 -2
- package/src/navigation-link/edit.js +1 -0
- package/src/navigation-link/shared/test/use-handle-link-change.test.js +212 -0
- package/src/navigation-link/shared/test/use-link-preview.test.js +9 -0
- package/src/navigation-link/shared/use-handle-link-change.js +36 -9
- package/src/navigation-link/shared/use-link-preview.js +6 -9
- package/src/navigation-overlay-close/style.scss +3 -3
- package/src/navigation-submenu/edit.js +11 -28
- package/src/nextpage/block.json +0 -1
- package/src/page-list/index.php +1 -1
- package/src/paragraph/edit.js +2 -2
- package/src/post-featured-image/index.php +4 -2
- package/src/post-navigation-link/block.json +3 -1
- package/src/post-navigation-link/edit.js +35 -2
- package/src/post-navigation-link/index.js +0 -2
- package/src/post-title/block.json +3 -1
- package/src/post-title/deprecated.js +1 -86
- package/src/post-title/edit.js +18 -2
- package/src/query-title/block.json +3 -1
- package/src/query-title/deprecated.js +1 -74
- package/src/query-title/edit.js +27 -11
- package/src/query-title/index.php +1 -1
- package/src/shortcode/block.json +2 -1
- package/src/site-tagline/block.json +4 -6
- package/src/site-tagline/deprecated.js +1 -70
- package/src/site-tagline/edit.js +22 -9
- package/src/site-title/block.json +3 -1
- package/src/site-title/deprecated.js +1 -83
- package/src/site-title/edit.js +22 -9
- package/src/tabs-menu-item/block.json +26 -1
- package/src/tabs-menu-item/controls.js +108 -0
- package/src/tabs-menu-item/edit.js +79 -6
- package/src/tabs-menu-item/editor.scss +6 -0
- package/src/tabs-menu-item/save.js +26 -1
- package/src/tabs-menu-item/style.scss +14 -3
- package/build/navigation/edit/navigation-link-ui.cjs +0 -97
- package/build/navigation/edit/navigation-link-ui.cjs.map +0 -7
- package/build/navigation/edit/navigation-list-view-header.cjs +0 -86
- package/build/navigation/edit/navigation-list-view-header.cjs.map +0 -7
- package/build/post-navigation-link/deprecated.cjs +0 -100
- package/build/post-navigation-link/deprecated.cjs.map +0 -7
- package/build-module/navigation/edit/navigation-link-ui.mjs +0 -76
- package/build-module/navigation/edit/navigation-link-ui.mjs.map +0 -7
- package/build-module/navigation/edit/navigation-list-view-header.mjs +0 -58
- package/build-module/navigation/edit/navigation-list-view-header.mjs.map +0 -7
- package/build-module/post-navigation-link/deprecated.mjs +0 -69
- package/build-module/post-navigation-link/deprecated.mjs.map +0 -7
- package/src/navigation/edit/navigation-link-ui.js +0 -115
- package/src/navigation/edit/navigation-list-view-header.js +0 -62
- package/src/post-navigation-link/deprecated.js +0 -72
|
@@ -3,7 +3,10 @@ import clsx from "clsx";
|
|
|
3
3
|
import { __, isRTL } from "@wordpress/i18n";
|
|
4
4
|
import {
|
|
5
5
|
BlockControls,
|
|
6
|
-
|
|
6
|
+
InspectorControls,
|
|
7
|
+
store as blockEditorStore,
|
|
8
|
+
__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,
|
|
9
|
+
__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients
|
|
7
10
|
} from "@wordpress/block-editor";
|
|
8
11
|
import { ToolbarGroup, ToolbarItem, Button } from "@wordpress/components";
|
|
9
12
|
import {
|
|
@@ -127,12 +130,30 @@ function TabBlockMover({
|
|
|
127
130
|
) });
|
|
128
131
|
}
|
|
129
132
|
function Controls({
|
|
133
|
+
attributes,
|
|
134
|
+
setAttributes,
|
|
135
|
+
clientId,
|
|
130
136
|
tabsClientId,
|
|
131
137
|
tabClientId,
|
|
132
138
|
tabIndex,
|
|
133
139
|
tabsCount,
|
|
134
|
-
tabsMenuClientId
|
|
140
|
+
tabsMenuClientId,
|
|
141
|
+
activeBackgroundColor,
|
|
142
|
+
setActiveBackgroundColor,
|
|
143
|
+
activeTextColor,
|
|
144
|
+
setActiveTextColor,
|
|
145
|
+
hoverBackgroundColor,
|
|
146
|
+
setHoverBackgroundColor,
|
|
147
|
+
hoverTextColor,
|
|
148
|
+
setHoverTextColor
|
|
135
149
|
}) {
|
|
150
|
+
const {
|
|
151
|
+
customActiveBackgroundColor,
|
|
152
|
+
customActiveTextColor,
|
|
153
|
+
customHoverBackgroundColor,
|
|
154
|
+
customHoverTextColor
|
|
155
|
+
} = attributes;
|
|
156
|
+
const colorSettings = useMultipleOriginColorsAndGradients();
|
|
136
157
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
137
158
|
/* @__PURE__ */ jsx(
|
|
138
159
|
TabBlockMover,
|
|
@@ -145,7 +166,87 @@ function Controls({
|
|
|
145
166
|
}
|
|
146
167
|
),
|
|
147
168
|
/* @__PURE__ */ jsx(AddTabToolbarControl, { tabsClientId }),
|
|
148
|
-
/* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId })
|
|
169
|
+
/* @__PURE__ */ jsx(RemoveTabToolbarControl, { tabsClientId }),
|
|
170
|
+
/* @__PURE__ */ jsx(InspectorControls, { group: "color", children: /* @__PURE__ */ jsx(
|
|
171
|
+
ColorGradientSettingsDropdown,
|
|
172
|
+
{
|
|
173
|
+
settings: [
|
|
174
|
+
{
|
|
175
|
+
label: __("Active background"),
|
|
176
|
+
colorValue: activeBackgroundColor?.color ?? customActiveBackgroundColor,
|
|
177
|
+
onColorChange: (value) => {
|
|
178
|
+
setActiveBackgroundColor(value);
|
|
179
|
+
setAttributes({
|
|
180
|
+
customActiveBackgroundColor: value
|
|
181
|
+
});
|
|
182
|
+
},
|
|
183
|
+
resetAllFilter: () => {
|
|
184
|
+
setActiveBackgroundColor(void 0);
|
|
185
|
+
setAttributes({
|
|
186
|
+
customActiveBackgroundColor: void 0
|
|
187
|
+
});
|
|
188
|
+
},
|
|
189
|
+
clearable: true
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
label: __("Active text"),
|
|
193
|
+
colorValue: activeTextColor?.color ?? customActiveTextColor,
|
|
194
|
+
onColorChange: (value) => {
|
|
195
|
+
setActiveTextColor(value);
|
|
196
|
+
setAttributes({
|
|
197
|
+
customActiveTextColor: value
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
resetAllFilter: () => {
|
|
201
|
+
setActiveTextColor(void 0);
|
|
202
|
+
setAttributes({
|
|
203
|
+
customActiveTextColor: void 0
|
|
204
|
+
});
|
|
205
|
+
},
|
|
206
|
+
clearable: true
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
label: __("Hover background"),
|
|
210
|
+
colorValue: hoverBackgroundColor?.color ?? customHoverBackgroundColor,
|
|
211
|
+
onColorChange: (value) => {
|
|
212
|
+
setHoverBackgroundColor(value);
|
|
213
|
+
setAttributes({
|
|
214
|
+
customHoverBackgroundColor: value
|
|
215
|
+
});
|
|
216
|
+
},
|
|
217
|
+
resetAllFilter: () => {
|
|
218
|
+
setHoverBackgroundColor(void 0);
|
|
219
|
+
setAttributes({
|
|
220
|
+
customHoverBackgroundColor: void 0
|
|
221
|
+
});
|
|
222
|
+
},
|
|
223
|
+
clearable: true
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
label: __("Hover text"),
|
|
227
|
+
colorValue: hoverTextColor?.color ?? customHoverTextColor,
|
|
228
|
+
onColorChange: (value) => {
|
|
229
|
+
setHoverTextColor(value);
|
|
230
|
+
setAttributes({
|
|
231
|
+
customHoverTextColor: value
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
resetAllFilter: () => {
|
|
235
|
+
setHoverTextColor(void 0);
|
|
236
|
+
setAttributes({
|
|
237
|
+
customHoverTextColor: void 0
|
|
238
|
+
});
|
|
239
|
+
},
|
|
240
|
+
clearable: true
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
panelId: clientId,
|
|
244
|
+
disableCustomColors: false,
|
|
245
|
+
__experimentalIsRenderedInSidebar: true,
|
|
246
|
+
__next40pxDefaultSize: true,
|
|
247
|
+
...colorSettings
|
|
248
|
+
}
|
|
249
|
+
) })
|
|
149
250
|
] });
|
|
150
251
|
}
|
|
151
252
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/tabs-menu-item/controls.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nfunction TabBlockMover( {\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n\ttabsClientId,\n} ) {\n\tconst {\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\tupdateBlockAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst { tabPanelClientId, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\t// Get orientation directly from the tabs-menu block's layout attribute.\n\t\t\t// This is more reliable than getBlockListSettings which is set asynchronously.\n\t\t\tconst tabsMenuAttributes = tabsMenuClientId\n\t\t\t\t? getBlockAttributes( tabsMenuClientId )\n\t\t\t\t: null;\n\t\t\treturn {\n\t\t\t\ttabPanelClientId: getBlockRootClientId( tabClientId ),\n\t\t\t\torientation:\n\t\t\t\t\ttabsMenuAttributes?.layout?.orientation || 'horizontal',\n\t\t\t};\n\t\t},\n\t\t[ tabClientId, tabsMenuClientId ]\n\t);\n\n\tconst isFirst = tabIndex === 0;\n\tconst isLast = tabIndex === tabsCount - 1;\n\tconst isHorizontal = orientation === 'horizontal';\n\n\t// Icons and labels based on orientation (respects RTL for horizontal)\n\tlet upIcon, downIcon, upLabel, downLabel;\n\tif ( isHorizontal ) {\n\t\tif ( isRTL() ) {\n\t\t\tupIcon = chevronRight;\n\t\t\tdownIcon = chevronLeft;\n\t\t\tupLabel = __( 'Move tab right' );\n\t\t\tdownLabel = __( 'Move tab left' );\n\t\t} else {\n\t\t\tupIcon = chevronLeft;\n\t\t\tdownIcon = chevronRight;\n\t\t\tupLabel = __( 'Move tab left' );\n\t\t\tdownLabel = __( 'Move tab right' );\n\t\t}\n\t} else {\n\t\tupIcon = chevronUp;\n\t\tdownIcon = chevronDown;\n\t\tupLabel = __( 'Move tab up' );\n\t\tdownLabel = __( 'Move tab down' );\n\t}\n\n\t// Handle moving tab and updating active index to follow the moved tab\n\tconst handleMoveUp = () => {\n\t\tmoveBlocksUp( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex - 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleMoveDown = () => {\n\t\tmoveBlocksDown( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex + 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\t// Don't render if only one tab\n\tif ( tabsCount <= 1 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup\n\t\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t\t'is-horizontal': isHorizontal,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-up-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ upIcon }\n\t\t\t\t\t\t\t\tlabel={ upLabel }\n\t\t\t\t\t\t\t\tdisabled={ isFirst }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveUp }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-down-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ downIcon }\n\t\t\t\t\t\t\t\tlabel={ downLabel }\n\t\t\t\t\t\t\t\tdisabled={ isLast }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveDown }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nexport default function Controls( {\n\ttabsClientId,\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<TabBlockMover\n\t\t\t\ttabClientId={ tabClientId }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\ttabsCount={ tabsCount }\n\t\t\t\ttabsMenuClientId={ tabsMenuClientId }\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t/>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t</>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,IAAI,aAAa;AAC1B;AAAA,EACC;AAAA,EACA,SAAS;AAAA,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab/remove-tab-toolbar-control';\n\nfunction TabBlockMover( {\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n\ttabsClientId,\n} ) {\n\tconst {\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\tupdateBlockAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst { tabPanelClientId, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\t// Get orientation directly from the tabs-menu block's layout attribute.\n\t\t\t// This is more reliable than getBlockListSettings which is set asynchronously.\n\t\t\tconst tabsMenuAttributes = tabsMenuClientId\n\t\t\t\t? getBlockAttributes( tabsMenuClientId )\n\t\t\t\t: null;\n\t\t\treturn {\n\t\t\t\ttabPanelClientId: getBlockRootClientId( tabClientId ),\n\t\t\t\torientation:\n\t\t\t\t\ttabsMenuAttributes?.layout?.orientation || 'horizontal',\n\t\t\t};\n\t\t},\n\t\t[ tabClientId, tabsMenuClientId ]\n\t);\n\n\tconst isFirst = tabIndex === 0;\n\tconst isLast = tabIndex === tabsCount - 1;\n\tconst isHorizontal = orientation === 'horizontal';\n\n\t// Icons and labels based on orientation (respects RTL for horizontal)\n\tlet upIcon, downIcon, upLabel, downLabel;\n\tif ( isHorizontal ) {\n\t\tif ( isRTL() ) {\n\t\t\tupIcon = chevronRight;\n\t\t\tdownIcon = chevronLeft;\n\t\t\tupLabel = __( 'Move tab right' );\n\t\t\tdownLabel = __( 'Move tab left' );\n\t\t} else {\n\t\t\tupIcon = chevronLeft;\n\t\t\tdownIcon = chevronRight;\n\t\t\tupLabel = __( 'Move tab left' );\n\t\t\tdownLabel = __( 'Move tab right' );\n\t\t}\n\t} else {\n\t\tupIcon = chevronUp;\n\t\tdownIcon = chevronDown;\n\t\tupLabel = __( 'Move tab up' );\n\t\tdownLabel = __( 'Move tab down' );\n\t}\n\n\t// Handle moving tab and updating active index to follow the moved tab\n\tconst handleMoveUp = () => {\n\t\tmoveBlocksUp( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex - 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleMoveDown = () => {\n\t\tmoveBlocksDown( [ tabClientId ], tabPanelClientId );\n\t\t// Update editorActiveTabIndex to follow the moved tab\n\t\tif ( tabsClientId ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex + 1,\n\t\t\t} );\n\t\t}\n\t};\n\n\t// Don't render if only one tab\n\tif ( tabsCount <= 1 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup\n\t\t\t\tclassName={ clsx( 'block-editor-block-mover', {\n\t\t\t\t\t'is-horizontal': isHorizontal,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-up-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ upIcon }\n\t\t\t\t\t\t\t\tlabel={ upLabel }\n\t\t\t\t\t\t\t\tdisabled={ isFirst }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveUp }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t\t<ToolbarItem>\n\t\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t\t\t\t'is-down-button'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticon={ downIcon }\n\t\t\t\t\t\t\t\tlabel={ downLabel }\n\t\t\t\t\t\t\t\tdisabled={ isLast }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tonClick={ handleMoveDown }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarItem>\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nexport default function Controls( {\n\tattributes,\n\tsetAttributes,\n\tclientId,\n\ttabsClientId,\n\ttabClientId,\n\ttabIndex,\n\ttabsCount,\n\ttabsMenuClientId,\n\tactiveBackgroundColor,\n\tsetActiveBackgroundColor,\n\tactiveTextColor,\n\tsetActiveTextColor,\n\thoverBackgroundColor,\n\tsetHoverBackgroundColor,\n\thoverTextColor,\n\tsetHoverTextColor,\n} ) {\n\tconst {\n\t\tcustomActiveBackgroundColor,\n\t\tcustomActiveTextColor,\n\t\tcustomHoverBackgroundColor,\n\t\tcustomHoverTextColor,\n\t} = attributes;\n\n\tconst colorSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<TabBlockMover\n\t\t\t\ttabClientId={ tabClientId }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\ttabsCount={ tabsCount }\n\t\t\t\ttabsMenuClientId={ tabsMenuClientId }\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t/>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Active background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\tactiveBackgroundColor?.color ??\n\t\t\t\t\t\t\t\tcustomActiveBackgroundColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetActiveBackgroundColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveBackgroundColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetActiveBackgroundColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveBackgroundColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Active text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\tactiveTextColor?.color ?? customActiveTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetActiveTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetActiveTextColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomActiveTextColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Hover background' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\thoverBackgroundColor?.color ??\n\t\t\t\t\t\t\t\tcustomHoverBackgroundColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetHoverBackgroundColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverBackgroundColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetHoverBackgroundColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverBackgroundColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Hover text' ),\n\t\t\t\t\t\t\tcolorValue:\n\t\t\t\t\t\t\t\thoverTextColor?.color ?? customHoverTextColor,\n\t\t\t\t\t\t\tonColorChange: ( value ) => {\n\t\t\t\t\t\t\t\tsetHoverTextColor( value );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverTextColor: value,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresetAllFilter: () => {\n\t\t\t\t\t\t\t\tsetHoverTextColor( undefined );\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcustomHoverTextColor: undefined,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclearable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\tdisableCustomColors={ false }\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t{ ...colorSettings }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -3,6 +3,7 @@ import clsx from "clsx";
|
|
|
3
3
|
import { __, sprintf } from "@wordpress/i18n";
|
|
4
4
|
import {
|
|
5
5
|
useBlockProps,
|
|
6
|
+
withColors,
|
|
6
7
|
store as blockEditorStore,
|
|
7
8
|
RichText
|
|
8
9
|
} from "@wordpress/block-editor";
|
|
@@ -12,8 +13,18 @@ import slugFromLabel from "../tab/slug-from-label.mjs";
|
|
|
12
13
|
import Controls from "./controls.mjs";
|
|
13
14
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
15
|
function Edit({
|
|
16
|
+
attributes,
|
|
17
|
+
setAttributes,
|
|
15
18
|
context,
|
|
16
19
|
clientId,
|
|
20
|
+
activeBackgroundColor,
|
|
21
|
+
setActiveBackgroundColor,
|
|
22
|
+
activeTextColor,
|
|
23
|
+
setActiveTextColor,
|
|
24
|
+
hoverBackgroundColor,
|
|
25
|
+
setHoverBackgroundColor,
|
|
26
|
+
hoverTextColor,
|
|
27
|
+
setHoverTextColor,
|
|
17
28
|
__unstableLayoutClassNames: layoutClassNames
|
|
18
29
|
}) {
|
|
19
30
|
const tabIndex = context["core/tabs-menu-item-index"] ?? 0;
|
|
@@ -88,6 +99,35 @@ function Edit({
|
|
|
88
99
|
__unstableMarkNextChangeAsNotPersistent
|
|
89
100
|
]
|
|
90
101
|
);
|
|
102
|
+
const customColorStyles = useMemo(() => {
|
|
103
|
+
const styles = {};
|
|
104
|
+
const activeBg = activeBackgroundColor?.color || attributes.customActiveBackgroundColor;
|
|
105
|
+
const activeText = activeTextColor?.color || attributes.customActiveTextColor;
|
|
106
|
+
const hoverBg = hoverBackgroundColor?.color || attributes.customHoverBackgroundColor;
|
|
107
|
+
const hoverText = hoverTextColor?.color || attributes.customHoverTextColor;
|
|
108
|
+
if (activeBg) {
|
|
109
|
+
styles["--custom-tab-active-color"] = activeBg;
|
|
110
|
+
}
|
|
111
|
+
if (activeText) {
|
|
112
|
+
styles["--custom-tab-active-text-color"] = activeText;
|
|
113
|
+
}
|
|
114
|
+
if (hoverBg) {
|
|
115
|
+
styles["--custom-tab-hover-color"] = hoverBg;
|
|
116
|
+
}
|
|
117
|
+
if (hoverText) {
|
|
118
|
+
styles["--custom-tab-hover-text-color"] = hoverText;
|
|
119
|
+
}
|
|
120
|
+
return styles;
|
|
121
|
+
}, [
|
|
122
|
+
activeBackgroundColor?.color,
|
|
123
|
+
attributes.customActiveBackgroundColor,
|
|
124
|
+
activeTextColor?.color,
|
|
125
|
+
attributes.customActiveTextColor,
|
|
126
|
+
hoverBackgroundColor?.color,
|
|
127
|
+
attributes.customHoverBackgroundColor,
|
|
128
|
+
hoverTextColor?.color,
|
|
129
|
+
attributes.customHoverTextColor
|
|
130
|
+
]);
|
|
91
131
|
const tabPanelId = tabId || `tab-${tabIndex}`;
|
|
92
132
|
const tabLabelId = `${tabPanelId}--tab`;
|
|
93
133
|
const blockProps = useBlockProps({
|
|
@@ -95,6 +135,7 @@ function Edit({
|
|
|
95
135
|
"is-active": isActiveTab,
|
|
96
136
|
"is-selected": isSelectedTab
|
|
97
137
|
}),
|
|
138
|
+
style: customColorStyles,
|
|
98
139
|
"aria-controls": tabPanelId,
|
|
99
140
|
"aria-selected": isActiveTab,
|
|
100
141
|
id: tabLabelId,
|
|
@@ -106,11 +147,24 @@ function Edit({
|
|
|
106
147
|
/* @__PURE__ */ jsx(
|
|
107
148
|
Controls,
|
|
108
149
|
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
150
|
+
...{
|
|
151
|
+
attributes,
|
|
152
|
+
setAttributes,
|
|
153
|
+
clientId,
|
|
154
|
+
tabsClientId,
|
|
155
|
+
tabClientId,
|
|
156
|
+
tabIndex,
|
|
157
|
+
tabsCount: tabsList.length,
|
|
158
|
+
tabsMenuClientId,
|
|
159
|
+
activeBackgroundColor,
|
|
160
|
+
setActiveBackgroundColor,
|
|
161
|
+
activeTextColor,
|
|
162
|
+
setActiveTextColor,
|
|
163
|
+
hoverBackgroundColor,
|
|
164
|
+
setHoverBackgroundColor,
|
|
165
|
+
hoverTextColor,
|
|
166
|
+
setHoverTextColor
|
|
167
|
+
}
|
|
114
168
|
}
|
|
115
169
|
),
|
|
116
170
|
/* @__PURE__ */ jsx("div", { ...blockProps, children: /* @__PURE__ */ jsx(
|
|
@@ -129,7 +183,13 @@ function Edit({
|
|
|
129
183
|
) })
|
|
130
184
|
] });
|
|
131
185
|
}
|
|
186
|
+
var edit_default = withColors(
|
|
187
|
+
"activeBackgroundColor",
|
|
188
|
+
"activeTextColor",
|
|
189
|
+
"hoverBackgroundColor",
|
|
190
|
+
"hoverTextColor"
|
|
191
|
+
)(Edit);
|
|
132
192
|
export {
|
|
133
|
-
|
|
193
|
+
edit_default as default
|
|
134
194
|
};
|
|
135
195
|
//# sourceMappingURL=edit.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/tabs-menu-item/edit.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport slugFromLabel from '../tab/slug-from-label';\nimport Controls from './controls';\n\
|
|
5
|
-
"mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,IAAI,eAAe;AAC5B;AAAA,EACC;AAAA,EACA,SAAS;AAAA,EACT;AAAA,OACM;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,aAAa,eAAe;AAKrC,OAAO,mBAAmB;AAC1B,OAAO,cAAc;
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\twithColors,\n\tstore as blockEditorStore,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport slugFromLabel from '../tab/slug-from-label';\nimport Controls from './controls';\n\nfunction Edit( {\n\tattributes,\n\tsetAttributes,\n\tcontext,\n\tclientId,\n\tactiveBackgroundColor,\n\tsetActiveBackgroundColor,\n\tactiveTextColor,\n\tsetActiveTextColor,\n\thoverBackgroundColor,\n\tsetHoverBackgroundColor,\n\thoverTextColor,\n\tsetHoverTextColor,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\t// Context from tabs-menu (per-item context via BlockContextProvider)\n\tconst tabIndex = context[ 'core/tabs-menu-item-index' ] ?? 0;\n\tconst tabId = context[ 'core/tabs-menu-item-id' ] ?? '';\n\tconst tabLabel = context[ 'core/tabs-menu-item-label' ] ?? '';\n\tconst tabClientId = context[ 'core/tabs-menu-item-clientId' ] ?? '';\n\n\t// Context from parent tabs block, memoized to prevent unnecessary re-renders.\n\tconst contextTabsList = context[ 'core/tabs-list' ];\n\tconst tabsList = useMemo(\n\t\t() => contextTabsList || [],\n\t\t[ contextTabsList ]\n\t);\n\tconst activeTabIndex = context[ 'core/tabs-activeTabIndex' ] ?? 0;\n\tconst editorActiveTabIndex = context[ 'core/tabs-editorActiveTabIndex' ];\n\n\t// Memoize effectiveActiveIndex to ensure it updates when context changes\n\tconst effectiveActiveIndex = useMemo( () => {\n\t\treturn editorActiveTabIndex ?? activeTabIndex;\n\t}, [ editorActiveTabIndex, activeTabIndex ] );\n\n\tconst isActiveTab = tabIndex === effectiveActiveIndex;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Get parent tabs clientId for updating editorActiveTabIndex\n\tconst { tabsClientId, tabsMenuClientId, selectedTabClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\t// tabs-menu-item -> tabs-menu -> tabs\n\t\t\tconst _tabsMenuClientId = getBlockRootClientId( clientId );\n\t\t\tconst _tabsClientId = _tabsMenuClientId\n\t\t\t\t? getBlockRootClientId( _tabsMenuClientId )\n\t\t\t\t: null;\n\n\t\t\tconst selectedIds = getSelectedBlockClientIds();\n\n\t\t\t// Find if any tab is selected\n\t\t\tlet selectedTab = null;\n\t\t\tfor ( const tab of tabsList ) {\n\t\t\t\tif (\n\t\t\t\t\tselectedIds.includes( tab.clientId ) ||\n\t\t\t\t\thasSelectedInnerBlock( tab.clientId, true )\n\t\t\t\t) {\n\t\t\t\t\tselectedTab = tab.clientId;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\ttabsMenuClientId: _tabsMenuClientId,\n\t\t\t\tselectedTabClientId: selectedTab,\n\t\t\t};\n\t\t},\n\t\t[ clientId, tabsList ]\n\t);\n\n\tconst isSelectedTab = tabClientId === selectedTabClientId;\n\n\t// Update tab label in the tab block\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst handleLabelChange = useCallback(\n\t\t( newLabel ) => {\n\t\t\tif ( tabClientId ) {\n\t\t\t\tupdateBlockAttributes( tabClientId, {\n\t\t\t\t\tlabel: newLabel,\n\t\t\t\t\tanchor: slugFromLabel( newLabel, tabIndex ),\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ updateBlockAttributes, tabClientId, tabIndex ]\n\t);\n\n\t// Update editor active tab index on parent tabs block when tab is clicked\n\tconst handleTabClick = useCallback(\n\t\t( event ) => {\n\t\t\tevent.preventDefault();\n\n\t\t\t// Update the parent tabs block's editorActiveTabIndex (ephemeral, not persisted)\n\t\t\tif ( tabsClientId && tabIndex !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: tabIndex,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\ttabIndex,\n\t\t\teffectiveActiveIndex,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t]\n\t);\n\n\t// Build CSS custom properties for active/hover color states\n\tconst customColorStyles = useMemo( () => {\n\t\tconst styles = {};\n\n\t\t// Active/hover colors from custom attributes\n\t\tconst activeBg =\n\t\t\tactiveBackgroundColor?.color ||\n\t\t\tattributes.customActiveBackgroundColor;\n\t\tconst activeText =\n\t\t\tactiveTextColor?.color || attributes.customActiveTextColor;\n\t\tconst hoverBg =\n\t\t\thoverBackgroundColor?.color ||\n\t\t\tattributes.customHoverBackgroundColor;\n\t\tconst hoverText =\n\t\t\thoverTextColor?.color || attributes.customHoverTextColor;\n\n\t\tif ( activeBg ) {\n\t\t\tstyles[ '--custom-tab-active-color' ] = activeBg;\n\t\t}\n\t\tif ( activeText ) {\n\t\t\tstyles[ '--custom-tab-active-text-color' ] = activeText;\n\t\t}\n\t\tif ( hoverBg ) {\n\t\t\tstyles[ '--custom-tab-hover-color' ] = hoverBg;\n\t\t}\n\t\tif ( hoverText ) {\n\t\t\tstyles[ '--custom-tab-hover-text-color' ] = hoverText;\n\t\t}\n\n\t\treturn styles;\n\t}, [\n\t\tactiveBackgroundColor?.color,\n\t\tattributes.customActiveBackgroundColor,\n\t\tactiveTextColor?.color,\n\t\tattributes.customActiveTextColor,\n\t\thoverBackgroundColor?.color,\n\t\tattributes.customHoverBackgroundColor,\n\t\thoverTextColor?.color,\n\t\tattributes.customHoverTextColor,\n\t] );\n\n\tconst tabPanelId = tabId || `tab-${ tabIndex }`;\n\tconst tabLabelId = `${ tabPanelId }--tab`;\n\n\t// Use blockProps for core style engine support\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( layoutClassNames, {\n\t\t\t'is-active': isActiveTab,\n\t\t\t'is-selected': isSelectedTab,\n\t\t} ),\n\t\tstyle: customColorStyles,\n\t\t'aria-controls': tabPanelId,\n\t\t'aria-selected': isActiveTab,\n\t\tid: tabLabelId,\n\t\trole: 'tab',\n\t\ttabIndex: -1,\n\t\tonClick: handleTabClick,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<Controls\n\t\t\t\t{ ...{\n\t\t\t\t\tattributes,\n\t\t\t\t\tsetAttributes,\n\t\t\t\t\tclientId,\n\t\t\t\t\ttabsClientId,\n\t\t\t\t\ttabClientId,\n\t\t\t\t\ttabIndex,\n\t\t\t\t\ttabsCount: tabsList.length,\n\t\t\t\t\ttabsMenuClientId,\n\t\t\t\t\tactiveBackgroundColor,\n\t\t\t\t\tsetActiveBackgroundColor,\n\t\t\t\t\tactiveTextColor,\n\t\t\t\t\tsetActiveTextColor,\n\t\t\t\t\thoverBackgroundColor,\n\t\t\t\t\tsetHoverBackgroundColor,\n\t\t\t\t\thoverTextColor,\n\t\t\t\t\tsetHoverTextColor,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tplaceholder={ sprintf(\n\t\t\t\t\t\t/* translators: %d is the tab index + 1 */\n\t\t\t\t\t\t__( 'Tab title %d' ),\n\t\t\t\t\t\ttabIndex + 1\n\t\t\t\t\t) }\n\t\t\t\t\tvalue={ tabLabel || '' }\n\t\t\t\t\tonChange={ handleLabelChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withColors(\n\t'activeBackgroundColor',\n\t'activeTextColor',\n\t'hoverBackgroundColor',\n\t'hoverTextColor'\n)( Edit );\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
// packages/block-library/src/tabs-menu-item/save.js
|
|
2
2
|
import { useBlockProps } from "@wordpress/block-editor";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
function save() {
|
|
4
|
+
function save({ attributes }) {
|
|
5
|
+
const customColorStyles = {};
|
|
6
|
+
if (attributes.customActiveBackgroundColor) {
|
|
7
|
+
customColorStyles["--custom-tab-active-color"] = attributes.customActiveBackgroundColor;
|
|
8
|
+
}
|
|
9
|
+
if (attributes.customActiveTextColor) {
|
|
10
|
+
customColorStyles["--custom-tab-active-text-color"] = attributes.customActiveTextColor;
|
|
11
|
+
}
|
|
12
|
+
if (attributes.customHoverBackgroundColor) {
|
|
13
|
+
customColorStyles["--custom-tab-hover-color"] = attributes.customHoverBackgroundColor;
|
|
14
|
+
}
|
|
15
|
+
if (attributes.customHoverTextColor) {
|
|
16
|
+
customColorStyles["--custom-tab-hover-text-color"] = attributes.customHoverTextColor;
|
|
17
|
+
}
|
|
5
18
|
const blockProps = useBlockProps.save({
|
|
6
19
|
className: "wp-block-tabs-menu-item__template",
|
|
20
|
+
style: customColorStyles,
|
|
7
21
|
type: "button",
|
|
8
22
|
role: "tab"
|
|
9
23
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/tabs-menu-item/save.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: 'wp-block-tabs-menu-item__template',\n\t\ttype: 'button',\n\t\trole: 'tab',\n\t} );\n\n\treturn <button { ...blockProps } />;\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,qBAAqB;
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\t// Build CSS custom properties for active/hover colors\n\tconst customColorStyles = {};\n\n\t// Active/hover colors from custom attributes\n\tif ( attributes.customActiveBackgroundColor ) {\n\t\tcustomColorStyles[ '--custom-tab-active-color' ] =\n\t\t\tattributes.customActiveBackgroundColor;\n\t}\n\tif ( attributes.customActiveTextColor ) {\n\t\tcustomColorStyles[ '--custom-tab-active-text-color' ] =\n\t\t\tattributes.customActiveTextColor;\n\t}\n\tif ( attributes.customHoverBackgroundColor ) {\n\t\tcustomColorStyles[ '--custom-tab-hover-color' ] =\n\t\t\tattributes.customHoverBackgroundColor;\n\t}\n\tif ( attributes.customHoverTextColor ) {\n\t\tcustomColorStyles[ '--custom-tab-hover-text-color' ] =\n\t\t\tattributes.customHoverTextColor;\n\t}\n\n\t// useBlockProps.save includes all core style engine classes and styles\n\t// The button content is replaced by PHP during rendering, so we output\n\t// an empty button as a template.\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName: 'wp-block-tabs-menu-item__template',\n\t\tstyle: customColorStyles,\n\t\ttype: 'button',\n\t\trole: 'tab',\n\t} );\n\n\treturn <button { ...blockProps } />;\n}\n"],
|
|
5
|
+
"mappings": ";AAGA,SAAS,qBAAqB;AAkCtB;AAhCO,SAAR,KAAuB,EAAE,WAAW,GAAI;AAE9C,QAAM,oBAAoB,CAAC;AAG3B,MAAK,WAAW,6BAA8B;AAC7C,sBAAmB,2BAA4B,IAC9C,WAAW;AAAA,EACb;AACA,MAAK,WAAW,uBAAwB;AACvC,sBAAmB,gCAAiC,IACnD,WAAW;AAAA,EACb;AACA,MAAK,WAAW,4BAA6B;AAC5C,sBAAmB,0BAA2B,IAC7C,WAAW;AAAA,EACb;AACA,MAAK,WAAW,sBAAuB;AACtC,sBAAmB,+BAAgC,IAClD,WAAW;AAAA,EACb;AAKA,QAAM,aAAa,cAAc,KAAM;AAAA,IACtC,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,EACP,CAAE;AAEF,SAAO,oBAAC,YAAS,GAAG,YAAa;AAClC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -818,20 +818,21 @@ html :where(.wp-block-column) {
|
|
|
818
818
|
right: 0;
|
|
819
819
|
}
|
|
820
820
|
|
|
821
|
-
|
|
822
|
-
|
|
821
|
+
@media (min-width: 600px) {
|
|
822
|
+
.block-library-html__modal:not(.is-full-screen) {
|
|
823
|
+
height: 9999rem;
|
|
824
|
+
}
|
|
823
825
|
}
|
|
824
826
|
.block-library-html__modal .components-modal__children-container {
|
|
825
827
|
height: 100%;
|
|
826
828
|
}
|
|
827
829
|
|
|
828
830
|
.block-library-html__modal-tabs {
|
|
829
|
-
|
|
831
|
+
flex: 1;
|
|
830
832
|
}
|
|
831
833
|
|
|
832
834
|
.block-library-html__modal-content {
|
|
833
835
|
flex: 1;
|
|
834
|
-
min-height: 0;
|
|
835
836
|
}
|
|
836
837
|
|
|
837
838
|
.block-library-html__modal-tab {
|
|
@@ -871,9 +872,17 @@ html :where(.wp-block-column) {
|
|
|
871
872
|
display: flex;
|
|
872
873
|
align-items: center;
|
|
873
874
|
justify-content: center;
|
|
874
|
-
padding: 16px;
|
|
875
|
-
flex: 1;
|
|
876
875
|
min-height: 0;
|
|
876
|
+
overflow-y: auto;
|
|
877
|
+
flex: 1;
|
|
878
|
+
}
|
|
879
|
+
.block-library-html__preview iframe {
|
|
880
|
+
height: 100%;
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
.wp-block[data-align=center] > .wp-block-icon {
|
|
884
|
+
display: flex;
|
|
885
|
+
justify-content: center;
|
|
877
886
|
}
|
|
878
887
|
|
|
879
888
|
.wp-block-icon__inserter {
|
|
@@ -2335,6 +2344,7 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
|
|
|
2335
2344
|
}
|
|
2336
2345
|
|
|
2337
2346
|
.wp-block-tabs-menu-item.is-selected {
|
|
2347
|
+
outline: 2px solid var(--wp-admin-theme-color, #007cba);
|
|
2338
2348
|
outline-offset: 2px;
|
|
2339
2349
|
}
|
|
2340
2350
|
|
|
@@ -2345,6 +2355,10 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
|
|
|
2345
2355
|
.block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
|
|
2346
2356
|
flex-basis: 100% !important;
|
|
2347
2357
|
}
|
|
2358
|
+
.block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
|
|
2359
|
+
background-color: var(--custom-tab-hover-color, #eaeaea) !important;
|
|
2360
|
+
color: var(--custom-tab-hover-text-color, #000) !important;
|
|
2361
|
+
}
|
|
2348
2362
|
|
|
2349
2363
|
.block-editor-template-part__selection-modal {
|
|
2350
2364
|
z-index: 1000001;
|
package/build-style/editor.css
CHANGED
|
@@ -820,20 +820,21 @@ html :where(.wp-block-column) {
|
|
|
820
820
|
left: 0;
|
|
821
821
|
}
|
|
822
822
|
|
|
823
|
-
|
|
824
|
-
|
|
823
|
+
@media (min-width: 600px) {
|
|
824
|
+
.block-library-html__modal:not(.is-full-screen) {
|
|
825
|
+
height: 9999rem;
|
|
826
|
+
}
|
|
825
827
|
}
|
|
826
828
|
.block-library-html__modal .components-modal__children-container {
|
|
827
829
|
height: 100%;
|
|
828
830
|
}
|
|
829
831
|
|
|
830
832
|
.block-library-html__modal-tabs {
|
|
831
|
-
|
|
833
|
+
flex: 1;
|
|
832
834
|
}
|
|
833
835
|
|
|
834
836
|
.block-library-html__modal-content {
|
|
835
837
|
flex: 1;
|
|
836
|
-
min-height: 0;
|
|
837
838
|
}
|
|
838
839
|
|
|
839
840
|
.block-library-html__modal-tab {
|
|
@@ -874,9 +875,17 @@ html :where(.wp-block-column) {
|
|
|
874
875
|
display: flex;
|
|
875
876
|
align-items: center;
|
|
876
877
|
justify-content: center;
|
|
877
|
-
padding: 16px;
|
|
878
|
-
flex: 1;
|
|
879
878
|
min-height: 0;
|
|
879
|
+
overflow-y: auto;
|
|
880
|
+
flex: 1;
|
|
881
|
+
}
|
|
882
|
+
.block-library-html__preview iframe {
|
|
883
|
+
height: 100%;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
.wp-block[data-align=center] > .wp-block-icon {
|
|
887
|
+
display: flex;
|
|
888
|
+
justify-content: center;
|
|
880
889
|
}
|
|
881
890
|
|
|
882
891
|
.wp-block-icon__inserter {
|
|
@@ -2339,6 +2348,7 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
|
|
|
2339
2348
|
}
|
|
2340
2349
|
|
|
2341
2350
|
.wp-block-tabs-menu-item.is-selected {
|
|
2351
|
+
outline: 2px solid var(--wp-admin-theme-color, #007cba);
|
|
2342
2352
|
outline-offset: 2px;
|
|
2343
2353
|
}
|
|
2344
2354
|
|
|
@@ -2349,6 +2359,10 @@ html[dir=rtl] .has-drop-cap:not(:focus)::first-letter {
|
|
|
2349
2359
|
.block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
|
|
2350
2360
|
flex-basis: 100% !important;
|
|
2351
2361
|
}
|
|
2362
|
+
.block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
|
|
2363
|
+
background-color: var(--custom-tab-hover-color, #eaeaea) !important;
|
|
2364
|
+
color: var(--custom-tab-hover-text-color, #000) !important;
|
|
2365
|
+
}
|
|
2352
2366
|
|
|
2353
2367
|
.block-editor-template-part__selection-modal {
|
|
2354
2368
|
z-index: 1000001;
|
|
@@ -95,20 +95,21 @@
|
|
|
95
95
|
right: 0;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
@media (min-width: 600px) {
|
|
99
|
+
.block-library-html__modal:not(.is-full-screen) {
|
|
100
|
+
height: 9999rem;
|
|
101
|
+
}
|
|
100
102
|
}
|
|
101
103
|
.block-library-html__modal .components-modal__children-container {
|
|
102
104
|
height: 100%;
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
.block-library-html__modal-tabs {
|
|
106
|
-
|
|
108
|
+
flex: 1;
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
.block-library-html__modal-content {
|
|
110
112
|
flex: 1;
|
|
111
|
-
min-height: 0;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
.block-library-html__modal-tab {
|
|
@@ -148,7 +149,10 @@
|
|
|
148
149
|
display: flex;
|
|
149
150
|
align-items: center;
|
|
150
151
|
justify-content: center;
|
|
151
|
-
padding: 16px;
|
|
152
|
-
flex: 1;
|
|
153
152
|
min-height: 0;
|
|
153
|
+
overflow-y: auto;
|
|
154
|
+
flex: 1;
|
|
155
|
+
}
|
|
156
|
+
.block-library-html__preview iframe {
|
|
157
|
+
height: 100%;
|
|
154
158
|
}
|
|
@@ -95,20 +95,21 @@
|
|
|
95
95
|
left: 0;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
@media (min-width: 600px) {
|
|
99
|
+
.block-library-html__modal:not(.is-full-screen) {
|
|
100
|
+
height: 9999rem;
|
|
101
|
+
}
|
|
100
102
|
}
|
|
101
103
|
.block-library-html__modal .components-modal__children-container {
|
|
102
104
|
height: 100%;
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
.block-library-html__modal-tabs {
|
|
106
|
-
|
|
108
|
+
flex: 1;
|
|
107
109
|
}
|
|
108
110
|
|
|
109
111
|
.block-library-html__modal-content {
|
|
110
112
|
flex: 1;
|
|
111
|
-
min-height: 0;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
.block-library-html__modal-tab {
|
|
@@ -149,7 +150,10 @@
|
|
|
149
150
|
display: flex;
|
|
150
151
|
align-items: center;
|
|
151
152
|
justify-content: center;
|
|
152
|
-
padding: 16px;
|
|
153
|
-
flex: 1;
|
|
154
153
|
min-height: 0;
|
|
154
|
+
overflow-y: auto;
|
|
155
|
+
flex: 1;
|
|
156
|
+
}
|
|
157
|
+
.block-library-html__preview iframe {
|
|
158
|
+
height: 100%;
|
|
155
159
|
}
|
|
@@ -43,6 +43,11 @@
|
|
|
43
43
|
* React Native specific.
|
|
44
44
|
* These variables do not appear to be used anywhere else.
|
|
45
45
|
*/
|
|
46
|
+
.wp-block[data-align=center] > .wp-block-icon {
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
.wp-block-icon__inserter {
|
|
47
52
|
padding: 0 24px;
|
|
48
53
|
margin: 0 -24px;
|
|
@@ -43,6 +43,11 @@
|
|
|
43
43
|
* React Native specific.
|
|
44
44
|
* These variables do not appear to be used anywhere else.
|
|
45
45
|
*/
|
|
46
|
+
.wp-block[data-align=center] > .wp-block-icon {
|
|
47
|
+
display: flex;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
}
|
|
50
|
+
|
|
46
51
|
.wp-block-icon__inserter {
|
|
47
52
|
padding: 0 24px;
|
|
48
53
|
margin: 0 -24px;
|
|
@@ -244,7 +244,17 @@
|
|
|
244
244
|
transform: rotate(90deg);
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
|
|
247
|
+
@media (hover: hover) {
|
|
248
|
+
.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
|
|
249
|
+
visibility: visible;
|
|
250
|
+
overflow: visible;
|
|
251
|
+
opacity: 1;
|
|
252
|
+
width: auto;
|
|
253
|
+
height: auto;
|
|
254
|
+
min-width: 200px;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
|
|
248
258
|
.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container {
|
|
249
259
|
visibility: visible;
|
|
250
260
|
overflow: visible;
|
|
@@ -564,6 +574,10 @@ button.wp-block-navigation-item__content {
|
|
|
564
574
|
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
|
|
565
575
|
display: block;
|
|
566
576
|
}
|
|
577
|
+
.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container {
|
|
578
|
+
left: auto;
|
|
579
|
+
right: 0;
|
|
580
|
+
}
|
|
567
581
|
@media (min-width: 600px) {
|
|
568
582
|
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
|
|
569
583
|
display: block;
|