@wordpress/block-library 9.30.1-next.a730c9c8c.0 → 9.31.1-next.233ccab9b.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/edit.js +6 -5
- package/build/accordion/edit.js.map +1 -1
- package/build/accordion/index.js +39 -4
- package/build/accordion/index.js.map +1 -1
- package/build/accordion/save.js +2 -19
- package/build/accordion/save.js.map +1 -1
- package/build/accordion/view.js +50 -16
- package/build/accordion/view.js.map +1 -1
- package/build/accordion-content/index.js +17 -3
- package/build/accordion-content/index.js.map +1 -1
- package/build/accordion-content/save.js +5 -7
- package/build/accordion-content/save.js.map +1 -1
- package/build/accordion-header/edit.js +13 -47
- package/build/accordion-header/edit.js.map +1 -1
- package/build/accordion-header/index.js +6 -11
- package/build/accordion-header/index.js.map +1 -1
- package/build/accordion-header/save.js +11 -44
- package/build/accordion-header/save.js.map +1 -1
- package/build/accordion-panel/edit.js +2 -1
- package/build/accordion-panel/edit.js.map +1 -1
- package/build/accordion-panel/index.js +3 -3
- package/build/accordion-panel/index.js.map +1 -1
- package/build/accordion-panel/save.js +3 -1
- package/build/accordion-panel/save.js.map +1 -1
- package/build/avatar/hooks.js +7 -17
- package/build/avatar/hooks.js.map +1 -1
- package/build/group/variations.js +3 -4
- package/build/group/variations.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +6 -1
- package/build/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build/navigation/index.js +2 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/index.js +2 -1
- package/build/navigation-link/index.js.map +1 -1
- package/build/navigation-submenu/edit.js +2 -4
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/navigation-submenu/index.js +2 -1
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/page-list/index.js +2 -1
- package/build/page-list/index.js.map +1 -1
- package/build/post-author/edit.js +7 -6
- package/build/post-author/edit.js.map +1 -1
- package/build/post-date/edit.js +16 -3
- package/build/post-date/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +111 -11
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +17 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/table-of-contents/index.js +1 -0
- package/build/table-of-contents/index.js.map +1 -1
- package/build/term-description/edit.js +18 -2
- package/build/term-description/edit.js.map +1 -1
- package/build/term-description/index.js +1 -0
- package/build/term-description/index.js.map +1 -1
- package/build/term-description/use-term-description.js +85 -0
- package/build/term-description/use-term-description.js.map +1 -0
- package/build/term-template/edit.js +11 -7
- package/build/term-template/edit.js.map +1 -1
- package/build/term-template/index.js +1 -1
- package/build/terms-query/index.js +8 -2
- package/build/terms-query/index.js.map +1 -1
- package/build/terms-query/inspector-controls/advanced-controls.js +51 -0
- package/build/terms-query/inspector-controls/advanced-controls.js.map +1 -0
- package/build/terms-query/inspector-controls/display-options.js +87 -0
- package/build/terms-query/inspector-controls/display-options.js.map +1 -0
- package/build/terms-query/inspector-controls/empty-terms-control.js +38 -0
- package/build/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
- package/build/terms-query/inspector-controls/hierarchy-control.js +40 -0
- package/build/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
- package/build/terms-query/inspector-controls/index.js +127 -0
- package/build/terms-query/inspector-controls/index.js.map +1 -0
- package/build/terms-query/inspector-controls/max-terms-control.js +50 -0
- package/build/terms-query/inspector-controls/max-terms-control.js.map +1 -0
- package/build/terms-query/inspector-controls/ordering-controls.js +57 -0
- package/build/terms-query/inspector-controls/ordering-controls.js.map +1 -0
- package/build/terms-query/inspector-controls/taxonomy-control.js +52 -0
- package/build/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
- package/build/utils/hooks.js +15 -0
- package/build/utils/hooks.js.map +1 -1
- package/build-module/accordion/edit.js +6 -5
- package/build-module/accordion/edit.js.map +1 -1
- package/build-module/accordion/index.js +40 -4
- package/build-module/accordion/index.js.map +1 -1
- package/build-module/accordion/save.js +2 -17
- package/build-module/accordion/save.js.map +1 -1
- package/build-module/accordion/view.js +51 -17
- package/build-module/accordion/view.js.map +1 -1
- package/build-module/accordion-content/index.js +17 -3
- package/build-module/accordion-content/index.js.map +1 -1
- package/build-module/accordion-content/save.js +5 -7
- package/build-module/accordion-content/save.js.map +1 -1
- package/build-module/accordion-header/edit.js +14 -45
- package/build-module/accordion-header/edit.js.map +1 -1
- package/build-module/accordion-header/index.js +6 -11
- package/build-module/accordion-header/index.js.map +1 -1
- package/build-module/accordion-header/save.js +12 -42
- package/build-module/accordion-header/save.js.map +1 -1
- package/build-module/accordion-panel/edit.js +2 -1
- package/build-module/accordion-panel/edit.js.map +1 -1
- package/build-module/accordion-panel/index.js +3 -3
- package/build-module/accordion-panel/index.js.map +1 -1
- package/build-module/accordion-panel/save.js +3 -1
- package/build-module/accordion-panel/save.js.map +1 -1
- package/build-module/avatar/hooks.js +5 -15
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/group/variations.js +3 -4
- package/build-module/group/variations.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +6 -1
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build-module/navigation/index.js +2 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/index.js +2 -1
- package/build-module/navigation-link/index.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -3
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/navigation-submenu/index.js +2 -1
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/page-list/index.js +2 -1
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/post-author/edit.js +8 -7
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-date/edit.js +17 -4
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +112 -14
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +17 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/table-of-contents/index.js +1 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/term-description/edit.js +18 -2
- package/build-module/term-description/edit.js.map +1 -1
- package/build-module/term-description/index.js +1 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/term-description/use-term-description.js +79 -0
- package/build-module/term-description/use-term-description.js.map +1 -0
- package/build-module/term-template/edit.js +11 -7
- package/build-module/term-template/edit.js.map +1 -1
- package/build-module/term-template/index.js +1 -1
- package/build-module/terms-query/index.js +8 -2
- package/build-module/terms-query/index.js.map +1 -1
- package/build-module/terms-query/inspector-controls/advanced-controls.js +44 -0
- package/build-module/terms-query/inspector-controls/advanced-controls.js.map +1 -0
- package/build-module/terms-query/inspector-controls/display-options.js +80 -0
- package/build-module/terms-query/inspector-controls/display-options.js.map +1 -0
- package/build-module/terms-query/inspector-controls/empty-terms-control.js +31 -0
- package/build-module/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/hierarchy-control.js +33 -0
- package/build-module/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/index.js +119 -0
- package/build-module/terms-query/inspector-controls/index.js.map +1 -0
- package/build-module/terms-query/inspector-controls/max-terms-control.js +43 -0
- package/build-module/terms-query/inspector-controls/max-terms-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/ordering-controls.js +50 -0
- package/build-module/terms-query/inspector-controls/ordering-controls.js.map +1 -0
- package/build-module/terms-query/inspector-controls/taxonomy-control.js +45 -0
- package/build-module/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
- package/build-module/utils/hooks.js +14 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-style/accordion-content/style-rtl.css +155 -0
- package/build-style/accordion-content/style.css +155 -0
- package/build-style/{accordion → accordion-header}/style-rtl.css +12 -51
- package/build-style/{accordion → accordion-header}/style.css +12 -51
- package/build-style/accordion-panel/style-rtl.css +140 -0
- package/build-style/accordion-panel/style.css +140 -0
- package/build-style/style-rtl.css +25 -38
- package/build-style/style.css +25 -38
- package/package.json +35 -35
- package/src/accordion/block.json +16 -3
- package/src/accordion/edit.js +39 -34
- package/src/accordion/index.js +35 -1
- package/src/accordion/index.php +3 -19
- package/src/accordion/save.js +2 -16
- package/src/accordion/view.js +64 -15
- package/src/accordion-content/block.json +17 -3
- package/src/accordion-content/index.php +3 -2
- package/src/accordion-content/save.js +4 -10
- package/src/accordion-content/style.scss +21 -0
- package/src/accordion-header/block.json +6 -11
- package/src/accordion-header/edit.js +17 -61
- package/src/accordion-header/save.js +24 -54
- package/src/accordion-header/style.scss +39 -0
- package/src/accordion-panel/block.json +3 -3
- package/src/accordion-panel/edit.js +1 -0
- package/src/accordion-panel/save.js +3 -1
- package/src/accordion-panel/style.scss +8 -0
- package/src/avatar/hooks.js +5 -10
- package/src/comments/index.php +2 -2
- package/src/group/variations.js +3 -14
- package/src/navigation/block.json +2 -1
- package/src/navigation/edit/leaf-more-menu.js +9 -1
- package/src/navigation/index.php +2 -2
- package/src/navigation-link/block.json +2 -1
- package/src/navigation-submenu/block.json +2 -1
- package/src/navigation-submenu/edit.js +1 -4
- package/src/page-list/block.json +2 -1
- package/src/post-author/edit.js +16 -7
- package/src/post-date/edit.js +16 -16
- package/src/post-time-to-read/block.json +17 -1
- package/src/post-time-to-read/edit.js +167 -20
- package/src/post-time-to-read/index.php +47 -15
- package/src/social-link/index.php +2 -2
- package/src/style.scss +3 -1
- package/src/table-of-contents/block.json +1 -0
- package/src/table-of-contents/index.php +44 -0
- package/src/term-description/block.json +1 -0
- package/src/term-description/edit.js +18 -3
- package/src/term-description/use-term-description.js +109 -0
- package/src/term-template/block.json +1 -1
- package/src/term-template/edit.js +11 -6
- package/src/term-template/index.php +13 -7
- package/src/terms-query/block.json +8 -2
- package/src/terms-query/inspector-controls/advanced-controls.js +37 -0
- package/src/terms-query/inspector-controls/display-options.js +87 -0
- package/src/terms-query/inspector-controls/empty-terms-control.js +30 -0
- package/src/terms-query/inspector-controls/hierarchy-control.js +30 -0
- package/src/terms-query/inspector-controls/index.js +137 -0
- package/src/terms-query/inspector-controls/max-terms-control.js +44 -0
- package/src/terms-query/inspector-controls/ordering-controls.js +55 -0
- package/src/terms-query/inspector-controls/taxonomy-control.js +41 -0
- package/src/utils/hooks.js +9 -0
- package/build/accordion-content/icons.js +0 -30
- package/build/accordion-content/icons.js.map +0 -1
- package/build/terms-query/inspector-controls.js +0 -231
- package/build/terms-query/inspector-controls.js.map +0 -1
- package/build-module/accordion-content/icons.js +0 -22
- package/build-module/accordion-content/icons.js.map +0 -1
- package/build-module/terms-query/inspector-controls.js +0 -224
- package/build-module/terms-query/inspector-controls.js.map +0 -1
- package/src/accordion/style.scss +0 -82
- package/src/accordion-content/icons.js +0 -23
- package/src/terms-query/inspector-controls.js +0 -239
package/src/accordion/index.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* Internal dependencies
|
|
3
8
|
*/
|
|
@@ -13,7 +18,36 @@ export { metadata, name };
|
|
|
13
18
|
|
|
14
19
|
export const settings = {
|
|
15
20
|
icon,
|
|
16
|
-
example: {
|
|
21
|
+
example: {
|
|
22
|
+
innerBlocks: [
|
|
23
|
+
{
|
|
24
|
+
name: 'core/accordion-content',
|
|
25
|
+
innerBlocks: [
|
|
26
|
+
{
|
|
27
|
+
name: 'core/accordion-header',
|
|
28
|
+
attributes: {
|
|
29
|
+
title: __(
|
|
30
|
+
'Lorem ipsum dolor sit amet, consectetur.'
|
|
31
|
+
),
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: 'core/accordion-content',
|
|
38
|
+
innerBlocks: [
|
|
39
|
+
{
|
|
40
|
+
name: 'core/accordion-header',
|
|
41
|
+
attributes: {
|
|
42
|
+
title: __(
|
|
43
|
+
'Suspendisse commodo lacus, interdum et.'
|
|
44
|
+
),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
},
|
|
17
51
|
edit,
|
|
18
52
|
save,
|
|
19
53
|
};
|
package/src/accordion/index.php
CHANGED
|
@@ -15,28 +15,12 @@ function render_block_core_accordion( $attributes, $content ) {
|
|
|
15
15
|
return $content;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
$
|
|
19
|
-
|
|
20
|
-
$module_url = gutenberg_url( '/build-module/block-library/accordion/view.min.js' );
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
wp_register_script_module(
|
|
24
|
-
'@wordpress/block-library/accordion',
|
|
25
|
-
isset( $module_url ) ? $module_url : includes_url( "blocks/accordion/view{$suffix}.js" ),
|
|
26
|
-
array( '@wordpress/interactivity' ),
|
|
27
|
-
defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' )
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
wp_enqueue_script_module( '@wordpress/block-library/accordion' );
|
|
31
|
-
|
|
32
|
-
$p = new WP_HTML_Tag_Processor( $content );
|
|
33
|
-
$autoclose = $attributes['autoclose'] ? 'true' : 'false';
|
|
34
|
-
$icon = $attributes['icon'] ?? 'plus';
|
|
35
|
-
$icon_position = $attributes['iconPosition'] ?? 'right';
|
|
18
|
+
$p = new WP_HTML_Tag_Processor( $content );
|
|
19
|
+
$autoclose = $attributes['autoclose'] ? 'true' : 'false';
|
|
36
20
|
|
|
37
21
|
if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion' ) ) ) {
|
|
38
22
|
$p->set_attribute( 'data-wp-interactive', 'core/accordion' );
|
|
39
|
-
$p->set_attribute( 'data-wp-context', '{ "autoclose": ' . $autoclose . ', "
|
|
23
|
+
$p->set_attribute( 'data-wp-context', '{ "autoclose": ' . $autoclose . ', "accordionContents": [] }' );
|
|
40
24
|
|
|
41
25
|
// Only modify content if directives have been set.
|
|
42
26
|
$content = $p->get_updated_html();
|
package/src/accordion/save.js
CHANGED
|
@@ -1,23 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
8
4
|
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
9
5
|
|
|
10
|
-
export default function save(
|
|
11
|
-
const { iconPosition } = attributes;
|
|
6
|
+
export default function save() {
|
|
12
7
|
const blockProps = useBlockProps.save();
|
|
13
|
-
|
|
14
|
-
{
|
|
15
|
-
'icon-position-left': iconPosition === 'left',
|
|
16
|
-
},
|
|
17
|
-
blockProps.className
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<div { ...useInnerBlocksProps.save( { ...blockProps, className } ) } />
|
|
22
|
-
);
|
|
8
|
+
return <div { ...useInnerBlocksProps.save( blockProps ) } />;
|
|
23
9
|
}
|
package/src/accordion/view.js
CHANGED
|
@@ -1,38 +1,87 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { store, getContext } from '@wordpress/interactivity';
|
|
4
|
+
import { store, getContext, withSyncEvent } from '@wordpress/interactivity';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
store( 'core/accordion', {
|
|
7
7
|
state: {
|
|
8
8
|
get isOpen() {
|
|
9
|
-
const {
|
|
10
|
-
|
|
9
|
+
const { id, accordionContents } = getContext();
|
|
10
|
+
const accordionContent = accordionContents.find(
|
|
11
|
+
( item ) => item.id === id
|
|
12
|
+
);
|
|
13
|
+
return accordionContent ? accordionContent.isOpen : false;
|
|
11
14
|
},
|
|
12
15
|
},
|
|
13
16
|
actions: {
|
|
14
17
|
toggle: () => {
|
|
15
18
|
const context = getContext();
|
|
16
|
-
const { id, autoclose } = context;
|
|
19
|
+
const { id, autoclose, accordionContents } = context;
|
|
20
|
+
const accordionContent = accordionContents.find(
|
|
21
|
+
( item ) => item.id === id
|
|
22
|
+
);
|
|
17
23
|
|
|
18
24
|
if ( autoclose ) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
);
|
|
25
|
+
accordionContents.forEach( ( item ) => {
|
|
26
|
+
item.isOpen =
|
|
27
|
+
item.id === id ? ! accordionContent.isOpen : false;
|
|
28
|
+
} );
|
|
24
29
|
} else {
|
|
25
|
-
|
|
30
|
+
accordionContent.isOpen = ! accordionContent.isOpen;
|
|
26
31
|
}
|
|
27
32
|
},
|
|
33
|
+
handleKeyDown: withSyncEvent( ( event ) => {
|
|
34
|
+
if (
|
|
35
|
+
event.key !== 'ArrowUp' &&
|
|
36
|
+
event.key !== 'ArrowDown' &&
|
|
37
|
+
event.key !== 'Home' &&
|
|
38
|
+
event.key !== 'End'
|
|
39
|
+
) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
const context = getContext();
|
|
45
|
+
const { id, accordionContents } = context;
|
|
46
|
+
const currentIndex = accordionContents.findIndex(
|
|
47
|
+
( item ) => item.id === id
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
let nextIndex;
|
|
51
|
+
|
|
52
|
+
switch ( event.key ) {
|
|
53
|
+
case 'ArrowUp':
|
|
54
|
+
nextIndex = Math.max( 0, currentIndex - 1 );
|
|
55
|
+
break;
|
|
56
|
+
case 'ArrowDown':
|
|
57
|
+
nextIndex = Math.min(
|
|
58
|
+
currentIndex + 1,
|
|
59
|
+
accordionContents.length - 1
|
|
60
|
+
);
|
|
61
|
+
break;
|
|
62
|
+
case 'Home':
|
|
63
|
+
nextIndex = 0;
|
|
64
|
+
break;
|
|
65
|
+
case 'End':
|
|
66
|
+
nextIndex = accordionContents.length - 1;
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const nextId = accordionContents[ nextIndex ].id;
|
|
71
|
+
const nextButton = document.getElementById( nextId );
|
|
72
|
+
if ( nextButton ) {
|
|
73
|
+
nextButton.focus();
|
|
74
|
+
}
|
|
75
|
+
} ),
|
|
28
76
|
},
|
|
29
77
|
callbacks: {
|
|
30
|
-
|
|
78
|
+
initAccordionContents: () => {
|
|
31
79
|
const context = getContext();
|
|
32
80
|
const { id, openByDefault } = context;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
81
|
+
context.accordionContents.push( {
|
|
82
|
+
id,
|
|
83
|
+
isOpen: openByDefault,
|
|
84
|
+
} );
|
|
36
85
|
},
|
|
37
86
|
},
|
|
38
87
|
} );
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"supports": {
|
|
12
12
|
"color": {
|
|
13
13
|
"background": true,
|
|
14
|
-
"
|
|
14
|
+
"gradients": true
|
|
15
15
|
},
|
|
16
16
|
"interactivity": true,
|
|
17
17
|
"spacing": {
|
|
@@ -31,7 +31,20 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"shadow": true,
|
|
34
|
-
"layout": true
|
|
34
|
+
"layout": true,
|
|
35
|
+
"typography": {
|
|
36
|
+
"fontSize": true,
|
|
37
|
+
"lineHeight": true,
|
|
38
|
+
"__experimentalFontFamily": true,
|
|
39
|
+
"__experimentalFontWeight": true,
|
|
40
|
+
"__experimentalFontStyle": true,
|
|
41
|
+
"__experimentalTextTransform": true,
|
|
42
|
+
"__experimentalTextDecoration": true,
|
|
43
|
+
"__experimentalLetterSpacing": true,
|
|
44
|
+
"__experimentalDefaultControls": {
|
|
45
|
+
"fontSize": true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
35
48
|
},
|
|
36
49
|
"attributes": {
|
|
37
50
|
"openByDefault": {
|
|
@@ -39,5 +52,6 @@
|
|
|
39
52
|
"default": false
|
|
40
53
|
}
|
|
41
54
|
},
|
|
42
|
-
"textdomain": "default"
|
|
55
|
+
"textdomain": "default",
|
|
56
|
+
"style": "wp-block-accordion-content"
|
|
43
57
|
}
|
|
@@ -35,10 +35,11 @@ function block_core_accordion_content_render( $attributes, $content ) {
|
|
|
35
35
|
$open_by_default = $attributes['openByDefault'] ? 'true' : 'false';
|
|
36
36
|
$p->set_attribute( 'data-wp-context', '{ "id": "' . $unique_id . '", "openByDefault": ' . $open_by_default . ' }' );
|
|
37
37
|
$p->set_attribute( 'data-wp-class--is-open', 'state.isOpen' );
|
|
38
|
-
$p->set_attribute( 'data-wp-init', 'callbacks.
|
|
38
|
+
$p->set_attribute( 'data-wp-init', 'callbacks.initAccordionContents' );
|
|
39
39
|
|
|
40
|
-
if ( $p->next_tag( array( 'class_name' => 'accordion-
|
|
40
|
+
if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-header__toggle' ) ) ) {
|
|
41
41
|
$p->set_attribute( 'data-wp-on--click', 'actions.toggle' );
|
|
42
|
+
$p->set_attribute( 'data-wp-on--keydown', 'actions.handleKeyDown' );
|
|
42
43
|
$p->set_attribute( 'id', $unique_id );
|
|
43
44
|
$p->set_attribute( 'aria-controls', $unique_id . '-panel' );
|
|
44
45
|
$p->set_attribute( 'data-wp-bind--aria-expanded', 'state.isOpen' );
|
|
@@ -9,17 +9,11 @@ import clsx from 'clsx';
|
|
|
9
9
|
|
|
10
10
|
export default function save( { attributes } ) {
|
|
11
11
|
const { openByDefault } = attributes;
|
|
12
|
-
const blockProps = useBlockProps.save(
|
|
13
|
-
|
|
14
|
-
{
|
|
12
|
+
const blockProps = useBlockProps.save( {
|
|
13
|
+
className: clsx( {
|
|
15
14
|
'is-open': openByDefault,
|
|
16
|
-
},
|
|
17
|
-
blockProps.className
|
|
18
|
-
);
|
|
19
|
-
const innerBlocksProps = useInnerBlocksProps.save( {
|
|
20
|
-
...blockProps,
|
|
21
|
-
className,
|
|
15
|
+
} ),
|
|
22
16
|
} );
|
|
23
|
-
|
|
17
|
+
const innerBlocksProps = useInnerBlocksProps.save( blockProps );
|
|
24
18
|
return <div { ...innerBlocksProps } />;
|
|
25
19
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.wp-block-accordion-content {
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-rows: max-content 0fr;
|
|
4
|
+
|
|
5
|
+
&.is-open {
|
|
6
|
+
grid-template-rows: max-content 1fr;
|
|
7
|
+
|
|
8
|
+
> .wp-block-accordion-header .wp-block-accordion-header__toggle-icon {
|
|
9
|
+
transform: rotate(45deg);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Add transitions only for users who do not prefer reduced motion */
|
|
14
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
15
|
+
transition: grid-template-rows 0.3s ease-out;
|
|
16
|
+
|
|
17
|
+
> .wp-block-accordion-header .wp-block-accordion-header__toggle-icon {
|
|
18
|
+
transition: transform 0.2s ease-in-out;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -15,17 +15,16 @@
|
|
|
15
15
|
"anchor": true,
|
|
16
16
|
"color": {
|
|
17
17
|
"background": true,
|
|
18
|
-
"
|
|
18
|
+
"gradients": true
|
|
19
19
|
},
|
|
20
20
|
"align": false,
|
|
21
21
|
"interactivity": true,
|
|
22
22
|
"spacing": {
|
|
23
23
|
"padding": true,
|
|
24
|
-
"margin": [ "top", "bottom" ],
|
|
25
24
|
"__experimentalDefaultControls": {
|
|
26
|
-
"padding": true
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
"padding": true
|
|
26
|
+
},
|
|
27
|
+
"__experimentalSkipSerialization": true
|
|
29
28
|
},
|
|
30
29
|
"__experimentalBorder": {
|
|
31
30
|
"color": true,
|
|
@@ -40,7 +39,6 @@
|
|
|
40
39
|
}
|
|
41
40
|
},
|
|
42
41
|
"typography": {
|
|
43
|
-
"textAlign": true,
|
|
44
42
|
"fontSize": true,
|
|
45
43
|
"__experimentalFontFamily": true,
|
|
46
44
|
"__experimentalFontWeight": true,
|
|
@@ -63,7 +61,8 @@
|
|
|
63
61
|
"title": {
|
|
64
62
|
"type": "rich-text",
|
|
65
63
|
"source": "rich-text",
|
|
66
|
-
"selector": "
|
|
64
|
+
"selector": ".wp-block-accordion-header__toggle-title",
|
|
65
|
+
"role": "content"
|
|
67
66
|
},
|
|
68
67
|
"level": {
|
|
69
68
|
"type": "number",
|
|
@@ -72,10 +71,6 @@
|
|
|
72
71
|
"levelOptions": {
|
|
73
72
|
"type": "array"
|
|
74
73
|
},
|
|
75
|
-
"textAlignment": {
|
|
76
|
-
"type": "string",
|
|
77
|
-
"default": "left"
|
|
78
|
-
},
|
|
79
74
|
"iconPosition": {
|
|
80
75
|
"type": "string",
|
|
81
76
|
"enum": [ "left", "right" ],
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
@@ -9,26 +5,15 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
5
|
import { useEffect } from '@wordpress/element';
|
|
10
6
|
import {
|
|
11
7
|
useBlockProps,
|
|
12
|
-
__experimentalUseBorderProps as useBorderProps,
|
|
13
|
-
__experimentalUseColorProps as useColorProps,
|
|
14
8
|
__experimentalGetSpacingClassesAndStyles as useSpacingProps,
|
|
15
|
-
__experimentalGetShadowClassesAndStyles as useShadowProps,
|
|
16
9
|
BlockControls,
|
|
17
10
|
HeadingLevelDropdown,
|
|
18
11
|
RichText,
|
|
19
12
|
} from '@wordpress/block-editor';
|
|
20
13
|
import { ToolbarGroup } from '@wordpress/components';
|
|
21
|
-
/**
|
|
22
|
-
* Internal dependencies
|
|
23
|
-
*/
|
|
24
|
-
import { plus } from '../accordion-content/icons';
|
|
25
|
-
|
|
26
|
-
const ICONS = {
|
|
27
|
-
plus,
|
|
28
|
-
};
|
|
29
14
|
|
|
30
15
|
export default function Edit( { attributes, setAttributes, context } ) {
|
|
31
|
-
const { level, title,
|
|
16
|
+
const { level, title, levelOptions } = attributes;
|
|
32
17
|
const {
|
|
33
18
|
'core/accordion-icon-position': iconPosition,
|
|
34
19
|
'core/accordion-show-icon': showIcon,
|
|
@@ -46,13 +31,7 @@ export default function Edit( { attributes, setAttributes, context } ) {
|
|
|
46
31
|
}, [ iconPosition, showIcon, setAttributes ] );
|
|
47
32
|
|
|
48
33
|
const blockProps = useBlockProps();
|
|
49
|
-
const borderProps = useBorderProps( attributes );
|
|
50
|
-
const colorProps = useColorProps( attributes );
|
|
51
34
|
const spacingProps = useSpacingProps( attributes );
|
|
52
|
-
const shadowProps = useShadowProps( attributes );
|
|
53
|
-
|
|
54
|
-
const Icon = ICONS.plus;
|
|
55
|
-
const shouldShowIcon = showIcon && Icon;
|
|
56
35
|
|
|
57
36
|
return (
|
|
58
37
|
<>
|
|
@@ -67,38 +46,23 @@ export default function Edit( { attributes, setAttributes, context } ) {
|
|
|
67
46
|
/>
|
|
68
47
|
</ToolbarGroup>
|
|
69
48
|
</BlockControls>
|
|
70
|
-
<TagName
|
|
71
|
-
{ ...blockProps }
|
|
72
|
-
className={ clsx(
|
|
73
|
-
blockProps.className,
|
|
74
|
-
colorProps.className,
|
|
75
|
-
borderProps.className,
|
|
76
|
-
'accordion-content__heading',
|
|
77
|
-
{
|
|
78
|
-
[ `has-custom-font-size` ]: blockProps.style.fontSize,
|
|
79
|
-
[ `icon-position-left` ]: iconPosition === 'left',
|
|
80
|
-
[ `has-text-align-${ textAlign }` ]: textAlign,
|
|
81
|
-
}
|
|
82
|
-
) }
|
|
83
|
-
style={ {
|
|
84
|
-
...borderProps.style,
|
|
85
|
-
...colorProps.style,
|
|
86
|
-
...shadowProps.style,
|
|
87
|
-
} }
|
|
88
|
-
>
|
|
49
|
+
<TagName { ...blockProps }>
|
|
89
50
|
<button
|
|
90
|
-
className=
|
|
51
|
+
className="wp-block-accordion-header__toggle"
|
|
91
52
|
style={ {
|
|
92
53
|
...spacingProps.style,
|
|
93
54
|
} }
|
|
94
55
|
>
|
|
56
|
+
{ showIcon && iconPosition === 'left' && (
|
|
57
|
+
<span
|
|
58
|
+
className="wp-block-accordion-header__toggle-icon"
|
|
59
|
+
aria-hidden="true"
|
|
60
|
+
>
|
|
61
|
+
+
|
|
62
|
+
</span>
|
|
63
|
+
) }
|
|
95
64
|
<RichText
|
|
96
|
-
|
|
97
|
-
'core/bold',
|
|
98
|
-
'core/italic',
|
|
99
|
-
'core/image',
|
|
100
|
-
'core/strikethrough',
|
|
101
|
-
] }
|
|
65
|
+
withoutInteractiveFormatting
|
|
102
66
|
disableLineBreaks
|
|
103
67
|
tagName="span"
|
|
104
68
|
value={ title }
|
|
@@ -106,22 +70,14 @@ export default function Edit( { attributes, setAttributes, context } ) {
|
|
|
106
70
|
setAttributes( { title: newTitle } )
|
|
107
71
|
}
|
|
108
72
|
placeholder={ __( 'Accordion title' ) }
|
|
73
|
+
className="wp-block-accordion-header__toggle-title"
|
|
109
74
|
/>
|
|
110
|
-
{
|
|
75
|
+
{ showIcon && iconPosition === 'right' && (
|
|
111
76
|
<span
|
|
112
|
-
className=
|
|
113
|
-
|
|
114
|
-
{
|
|
115
|
-
'has-icon-plus': true,
|
|
116
|
-
}
|
|
117
|
-
) }
|
|
118
|
-
style={ {
|
|
119
|
-
// TO-DO: make this configurable
|
|
120
|
-
width: `1.2em`,
|
|
121
|
-
height: `1.2em`,
|
|
122
|
-
} }
|
|
77
|
+
className="wp-block-accordion-header__toggle-icon"
|
|
78
|
+
aria-hidden="true"
|
|
123
79
|
>
|
|
124
|
-
|
|
80
|
+
+
|
|
125
81
|
</span>
|
|
126
82
|
) }
|
|
127
83
|
</button>
|
|
@@ -1,78 +1,48 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
1
|
/**
|
|
6
2
|
* WordPress dependencies
|
|
7
3
|
*/
|
|
8
4
|
import {
|
|
9
5
|
useBlockProps,
|
|
10
|
-
__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,
|
|
11
|
-
__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,
|
|
12
6
|
__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,
|
|
13
|
-
__experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles,
|
|
14
7
|
RichText,
|
|
15
8
|
} from '@wordpress/block-editor';
|
|
16
|
-
/**
|
|
17
|
-
* Internal dependencies
|
|
18
|
-
*/
|
|
19
|
-
import { plus } from '../accordion-content/icons';
|
|
20
|
-
|
|
21
|
-
const ICONS = {
|
|
22
|
-
plus,
|
|
23
|
-
};
|
|
24
9
|
|
|
25
10
|
export default function save( { attributes } ) {
|
|
26
|
-
const { level, title, iconPosition,
|
|
11
|
+
const { level, title, iconPosition, showIcon } = attributes;
|
|
27
12
|
const TagName = 'h' + level;
|
|
28
13
|
|
|
29
14
|
const blockProps = useBlockProps.save();
|
|
30
|
-
const borderProps = getBorderClassesAndStyles( attributes );
|
|
31
|
-
const colorProps = getColorClassesAndStyles( attributes );
|
|
32
15
|
const spacingProps = getSpacingClassesAndStyles( attributes );
|
|
33
|
-
const shadowProps = getShadowClassesAndStyles( attributes );
|
|
34
|
-
|
|
35
|
-
const Icon = ICONS.plus;
|
|
36
16
|
|
|
37
17
|
return (
|
|
38
|
-
<TagName
|
|
39
|
-
{ ...blockProps }
|
|
40
|
-
className={ clsx(
|
|
41
|
-
blockProps.className,
|
|
42
|
-
colorProps.className,
|
|
43
|
-
borderProps.className,
|
|
44
|
-
'accordion-content__heading',
|
|
45
|
-
{
|
|
46
|
-
[ `has-custom-font-size` ]: blockProps?.style?.fontSize,
|
|
47
|
-
[ `icon-position-left` ]: iconPosition === 'left',
|
|
48
|
-
[ `has-text-align-${ textAlign }` ]: textAlign,
|
|
49
|
-
}
|
|
50
|
-
) }
|
|
51
|
-
style={ {
|
|
52
|
-
...borderProps.style,
|
|
53
|
-
...colorProps.style,
|
|
54
|
-
...shadowProps.style,
|
|
55
|
-
} }
|
|
56
|
-
>
|
|
18
|
+
<TagName { ...blockProps }>
|
|
57
19
|
<button
|
|
58
|
-
className=
|
|
20
|
+
className="wp-block-accordion-header__toggle"
|
|
59
21
|
style={ {
|
|
60
22
|
...spacingProps.style,
|
|
61
23
|
} }
|
|
62
24
|
>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
{
|
|
75
|
-
|
|
25
|
+
{ showIcon && iconPosition === 'left' && (
|
|
26
|
+
<span
|
|
27
|
+
className="wp-block-accordion-header__toggle-icon"
|
|
28
|
+
aria-hidden="true"
|
|
29
|
+
>
|
|
30
|
+
+
|
|
31
|
+
</span>
|
|
32
|
+
) }
|
|
33
|
+
<RichText.Content
|
|
34
|
+
className="wp-block-accordion-header__toggle-title"
|
|
35
|
+
tagName="span"
|
|
36
|
+
value={ title }
|
|
37
|
+
/>
|
|
38
|
+
{ showIcon && iconPosition === 'right' && (
|
|
39
|
+
<span
|
|
40
|
+
className="wp-block-accordion-header__toggle-icon"
|
|
41
|
+
aria-hidden="true"
|
|
42
|
+
>
|
|
43
|
+
+
|
|
44
|
+
</span>
|
|
45
|
+
) }
|
|
76
46
|
</button>
|
|
77
47
|
</TagName>
|
|
78
48
|
);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.wp-block-accordion-header__toggle {
|
|
2
|
+
font-family: inherit;
|
|
3
|
+
font-size: inherit;
|
|
4
|
+
font-weight: inherit;
|
|
5
|
+
line-height: inherit;
|
|
6
|
+
letter-spacing: inherit;
|
|
7
|
+
text-transform: inherit;
|
|
8
|
+
text-decoration: inherit;
|
|
9
|
+
word-spacing: inherit;
|
|
10
|
+
background: none;
|
|
11
|
+
border: none;
|
|
12
|
+
color: inherit;
|
|
13
|
+
padding: var(--wp--preset--spacing--20, 1em) 0;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
outline: none;
|
|
16
|
+
overflow: hidden;
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
text-align: inherit;
|
|
20
|
+
position: relative;
|
|
21
|
+
width: 100%;
|
|
22
|
+
|
|
23
|
+
&:focus-visible {
|
|
24
|
+
outline: 2px solid -webkit-focus-ring-color;
|
|
25
|
+
outline-offset: 2px;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.wp-block-accordion-header__toggle-title {
|
|
30
|
+
flex: 1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.wp-block-accordion-header__toggle-icon {
|
|
34
|
+
width: 1.2em;
|
|
35
|
+
height: 1.2em;
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
}
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
"supports": {
|
|
11
11
|
"color": {
|
|
12
12
|
"background": true,
|
|
13
|
-
"
|
|
13
|
+
"gradients": true
|
|
14
14
|
},
|
|
15
15
|
"interactivity": true,
|
|
16
16
|
"spacing": {
|
|
17
17
|
"padding": true,
|
|
18
|
-
"margin": [ "top", "bottom" ],
|
|
19
18
|
"blockGap": true,
|
|
20
19
|
"__experimentalDefaultControls": {
|
|
21
20
|
"padding": true,
|
|
@@ -68,5 +67,6 @@
|
|
|
68
67
|
"default": false
|
|
69
68
|
}
|
|
70
69
|
},
|
|
71
|
-
"textdomain": "default"
|
|
70
|
+
"textdomain": "default",
|
|
71
|
+
"style": "wp-block-accordion-panel"
|
|
72
72
|
}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
|
|
5
5
|
|
|
6
6
|
export default function save() {
|
|
7
|
-
const blockProps = useBlockProps.save(
|
|
7
|
+
const blockProps = useBlockProps.save( {
|
|
8
|
+
role: 'region',
|
|
9
|
+
} );
|
|
8
10
|
const innerBlocksProps = useInnerBlocksProps.save( blockProps );
|
|
9
11
|
return <div { ...innerBlocksProps } />;
|
|
10
12
|
}
|