@wordpress/block-library 9.30.1-next.a730c9c8c.0 → 9.31.1-next.f56bd8138.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 +40 -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 +15 -2
- package/build/accordion-content/index.js.map +1 -1
- package/build/accordion-header/edit.js +15 -39
- package/build/accordion-header/edit.js.map +1 -1
- package/build/accordion-header/index.js +6 -6
- package/build/accordion-header/index.js.map +1 -1
- package/build/accordion-header/save.js +15 -37
- package/build/accordion-header/save.js.map +1 -1
- package/build/accordion-panel/index.js +1 -2
- package/build/accordion-panel/index.js.map +1 -1
- package/build/avatar/hooks.js +7 -17
- package/build/avatar/hooks.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/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-time-to-read/edit.js +50 -7
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +8 -0
- package/build/post-time-to-read/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 +41 -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 +15 -2
- package/build-module/accordion-content/index.js.map +1 -1
- package/build-module/accordion-header/edit.js +16 -39
- package/build-module/accordion-header/edit.js.map +1 -1
- package/build-module/accordion-header/index.js +6 -6
- package/build-module/accordion-header/index.js.map +1 -1
- package/build-module/accordion-header/save.js +16 -37
- package/build-module/accordion-header/save.js.map +1 -1
- package/build-module/accordion-panel/index.js +1 -2
- package/build-module/accordion-panel/index.js.map +1 -1
- package/build-module/avatar/hooks.js +5 -15
- package/build-module/avatar/hooks.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/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-time-to-read/edit.js +50 -9
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +8 -0
- package/build-module/post-time-to-read/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/style-rtl.css +15 -8
- package/build-style/accordion/style.css +15 -8
- package/build-style/style-rtl.css +15 -8
- package/build-style/style.css +15 -8
- package/package.json +35 -35
- package/src/accordion/block.json +17 -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/style.scss +16 -8
- package/src/accordion/view.js +64 -15
- package/src/accordion-content/block.json +15 -2
- package/src/accordion-content/index.php +2 -1
- package/src/accordion-header/block.json +6 -6
- package/src/accordion-header/edit.js +19 -56
- package/src/accordion-header/save.js +27 -49
- package/src/accordion-panel/block.json +1 -2
- package/src/avatar/hooks.js +5 -10
- package/src/navigation/block.json +2 -1
- package/src/navigation-link/block.json +2 -1
- package/src/navigation-submenu/block.json +2 -1
- package/src/page-list/block.json +2 -1
- package/src/post-author/edit.js +16 -7
- package/src/post-time-to-read/block.json +8 -0
- package/src/post-time-to-read/edit.js +71 -10
- package/src/post-time-to-read/index.php +29 -17
- 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-content/icons.js +0 -23
- package/src/terms-query/inspector-controls.js +0 -239
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-library",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.31.1-next.f56bd8138.0",
|
|
4
4
|
"description": "Block library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -42,39 +42,39 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/runtime": "7.25.7",
|
|
45
|
-
"@wordpress/a11y": "^4.
|
|
46
|
-
"@wordpress/api-fetch": "^7.
|
|
47
|
-
"@wordpress/autop": "^4.
|
|
48
|
-
"@wordpress/blob": "^4.
|
|
49
|
-
"@wordpress/block-editor": "^15.
|
|
50
|
-
"@wordpress/blocks": "^15.
|
|
51
|
-
"@wordpress/components": "^30.
|
|
52
|
-
"@wordpress/compose": "^7.
|
|
53
|
-
"@wordpress/core-data": "^7.
|
|
54
|
-
"@wordpress/data": "^10.
|
|
55
|
-
"@wordpress/date": "^5.
|
|
56
|
-
"@wordpress/deprecated": "^4.
|
|
57
|
-
"@wordpress/dom": "^4.
|
|
58
|
-
"@wordpress/element": "^6.
|
|
59
|
-
"@wordpress/escape-html": "^3.
|
|
60
|
-
"@wordpress/hooks": "^4.
|
|
61
|
-
"@wordpress/html-entities": "^4.
|
|
62
|
-
"@wordpress/i18n": "^6.
|
|
63
|
-
"@wordpress/icons": "^10.
|
|
64
|
-
"@wordpress/interactivity": "^6.
|
|
65
|
-
"@wordpress/interactivity-router": "^2.
|
|
66
|
-
"@wordpress/keyboard-shortcuts": "^5.
|
|
67
|
-
"@wordpress/keycodes": "^4.
|
|
68
|
-
"@wordpress/notices": "^5.
|
|
69
|
-
"@wordpress/patterns": "^2.
|
|
70
|
-
"@wordpress/primitives": "^4.
|
|
71
|
-
"@wordpress/private-apis": "^1.
|
|
72
|
-
"@wordpress/reusable-blocks": "^5.
|
|
73
|
-
"@wordpress/rich-text": "^7.
|
|
74
|
-
"@wordpress/server-side-render": "^6.
|
|
75
|
-
"@wordpress/url": "^4.
|
|
76
|
-
"@wordpress/viewport": "^6.
|
|
77
|
-
"@wordpress/wordcount": "^4.
|
|
45
|
+
"@wordpress/a11y": "^4.31.1-next.f56bd8138.0",
|
|
46
|
+
"@wordpress/api-fetch": "^7.31.1-next.f56bd8138.0",
|
|
47
|
+
"@wordpress/autop": "^4.31.1-next.f56bd8138.0",
|
|
48
|
+
"@wordpress/blob": "^4.31.1-next.f56bd8138.0",
|
|
49
|
+
"@wordpress/block-editor": "^15.4.1-next.f56bd8138.0",
|
|
50
|
+
"@wordpress/blocks": "^15.4.1-next.f56bd8138.0",
|
|
51
|
+
"@wordpress/components": "^30.5.1-next.f56bd8138.0",
|
|
52
|
+
"@wordpress/compose": "^7.31.1-next.f56bd8138.0",
|
|
53
|
+
"@wordpress/core-data": "^7.31.1-next.f56bd8138.0",
|
|
54
|
+
"@wordpress/data": "^10.31.1-next.f56bd8138.0",
|
|
55
|
+
"@wordpress/date": "^5.31.1-next.f56bd8138.0",
|
|
56
|
+
"@wordpress/deprecated": "^4.31.1-next.f56bd8138.0",
|
|
57
|
+
"@wordpress/dom": "^4.31.1-next.f56bd8138.0",
|
|
58
|
+
"@wordpress/element": "^6.31.1-next.f56bd8138.0",
|
|
59
|
+
"@wordpress/escape-html": "^3.31.1-next.f56bd8138.0",
|
|
60
|
+
"@wordpress/hooks": "^4.31.1-next.f56bd8138.0",
|
|
61
|
+
"@wordpress/html-entities": "^4.31.1-next.f56bd8138.0",
|
|
62
|
+
"@wordpress/i18n": "^6.4.1-next.f56bd8138.0",
|
|
63
|
+
"@wordpress/icons": "^10.31.1-next.f56bd8138.0",
|
|
64
|
+
"@wordpress/interactivity": "^6.31.1-next.f56bd8138.0",
|
|
65
|
+
"@wordpress/interactivity-router": "^2.31.1-next.f56bd8138.0",
|
|
66
|
+
"@wordpress/keyboard-shortcuts": "^5.31.1-next.f56bd8138.0",
|
|
67
|
+
"@wordpress/keycodes": "^4.31.1-next.f56bd8138.0",
|
|
68
|
+
"@wordpress/notices": "^5.31.1-next.f56bd8138.0",
|
|
69
|
+
"@wordpress/patterns": "^2.31.1-next.f56bd8138.0",
|
|
70
|
+
"@wordpress/primitives": "^4.31.1-next.f56bd8138.0",
|
|
71
|
+
"@wordpress/private-apis": "^1.31.1-next.f56bd8138.0",
|
|
72
|
+
"@wordpress/reusable-blocks": "^5.31.1-next.f56bd8138.0",
|
|
73
|
+
"@wordpress/rich-text": "^7.31.1-next.f56bd8138.0",
|
|
74
|
+
"@wordpress/server-side-render": "^6.7.1-next.f56bd8138.0",
|
|
75
|
+
"@wordpress/url": "^4.31.1-next.f56bd8138.0",
|
|
76
|
+
"@wordpress/viewport": "^6.31.1-next.f56bd8138.0",
|
|
77
|
+
"@wordpress/wordcount": "^4.31.1-next.f56bd8138.0",
|
|
78
78
|
"change-case": "^4.1.2",
|
|
79
79
|
"clsx": "^2.1.1",
|
|
80
80
|
"colord": "^2.7.0",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"publishConfig": {
|
|
93
93
|
"access": "public"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "ea4a281fd857f48338877590de8c8eb9b9a8cef4"
|
|
96
96
|
}
|
package/src/accordion/block.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"color": {
|
|
21
21
|
"background": true,
|
|
22
|
-
"
|
|
22
|
+
"gradients": true
|
|
23
23
|
},
|
|
24
24
|
"__experimentalBorder": {
|
|
25
25
|
"color": true,
|
|
@@ -40,7 +40,20 @@
|
|
|
40
40
|
},
|
|
41
41
|
"shadow": true,
|
|
42
42
|
"layout": true,
|
|
43
|
-
"interactivity": true
|
|
43
|
+
"interactivity": true,
|
|
44
|
+
"typography": {
|
|
45
|
+
"fontSize": true,
|
|
46
|
+
"lineHeight": true,
|
|
47
|
+
"__experimentalFontFamily": true,
|
|
48
|
+
"__experimentalFontWeight": true,
|
|
49
|
+
"__experimentalFontStyle": true,
|
|
50
|
+
"__experimentalTextTransform": true,
|
|
51
|
+
"__experimentalTextDecoration": true,
|
|
52
|
+
"__experimentalLetterSpacing": true,
|
|
53
|
+
"__experimentalDefaultControls": {
|
|
54
|
+
"fontSize": true
|
|
55
|
+
}
|
|
56
|
+
}
|
|
44
57
|
},
|
|
45
58
|
"attributes": {
|
|
46
59
|
"iconPosition": {
|
|
@@ -62,5 +75,6 @@
|
|
|
62
75
|
},
|
|
63
76
|
"allowedBlocks": [ "core/accordion-content" ],
|
|
64
77
|
"textdomain": "default",
|
|
65
|
-
"style": "wp-block-accordion"
|
|
78
|
+
"style": "wp-block-accordion",
|
|
79
|
+
"viewScriptModule": "@wordpress/block-library/accordion/view"
|
|
66
80
|
}
|
package/src/accordion/edit.js
CHANGED
|
@@ -34,6 +34,7 @@ export default function Edit( {
|
|
|
34
34
|
attributes: { autoclose, iconPosition, showIcon },
|
|
35
35
|
clientId,
|
|
36
36
|
setAttributes,
|
|
37
|
+
isSelected: isSingleSelected,
|
|
37
38
|
} ) {
|
|
38
39
|
const blockProps = useBlockProps();
|
|
39
40
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
@@ -53,14 +54,13 @@ export default function Edit( {
|
|
|
53
54
|
|
|
54
55
|
return (
|
|
55
56
|
<>
|
|
56
|
-
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
</BlockControls>
|
|
57
|
+
{ isSingleSelected && (
|
|
58
|
+
<BlockControls group="other">
|
|
59
|
+
<ToolbarButton onClick={ addAccordionContentBlock }>
|
|
60
|
+
{ __( 'Add' ) }
|
|
61
|
+
</ToolbarButton>
|
|
62
|
+
</BlockControls>
|
|
63
|
+
) }
|
|
64
64
|
<InspectorControls key="setting">
|
|
65
65
|
<ToolsPanel
|
|
66
66
|
label={ __( 'Settings' ) }
|
|
@@ -109,6 +109,9 @@ export default function Edit( {
|
|
|
109
109
|
onChange={ ( value ) => {
|
|
110
110
|
setAttributes( {
|
|
111
111
|
showIcon: value,
|
|
112
|
+
iconPosition: value
|
|
113
|
+
? iconPosition
|
|
114
|
+
: 'right',
|
|
112
115
|
} );
|
|
113
116
|
} }
|
|
114
117
|
checked={ showIcon }
|
|
@@ -117,34 +120,36 @@ export default function Edit( {
|
|
|
117
120
|
) }
|
|
118
121
|
/>
|
|
119
122
|
</ToolsPanelItem>
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
isShownByDefault
|
|
123
|
-
hasValue={ () => iconPosition !== 'right' }
|
|
124
|
-
onDeselect={ () =>
|
|
125
|
-
setAttributes( { iconPosition: 'right' } )
|
|
126
|
-
}
|
|
127
|
-
>
|
|
128
|
-
<ToggleGroupControl
|
|
129
|
-
__nextHasNoMarginBottom
|
|
130
|
-
__next40pxDefaultSize
|
|
131
|
-
isBlock
|
|
123
|
+
{ showIcon && (
|
|
124
|
+
<ToolsPanelItem
|
|
132
125
|
label={ __( 'Icon Position' ) }
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
126
|
+
isShownByDefault
|
|
127
|
+
hasValue={ () => iconPosition !== 'right' }
|
|
128
|
+
onDeselect={ () =>
|
|
129
|
+
setAttributes( { iconPosition: 'right' } )
|
|
130
|
+
}
|
|
137
131
|
>
|
|
138
|
-
<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
value
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
132
|
+
<ToggleGroupControl
|
|
133
|
+
__nextHasNoMarginBottom
|
|
134
|
+
__next40pxDefaultSize
|
|
135
|
+
isBlock
|
|
136
|
+
label={ __( 'Icon Position' ) }
|
|
137
|
+
value={ iconPosition }
|
|
138
|
+
onChange={ ( value ) => {
|
|
139
|
+
setAttributes( { iconPosition: value } );
|
|
140
|
+
} }
|
|
141
|
+
>
|
|
142
|
+
<ToggleGroupControlOption
|
|
143
|
+
label={ __( 'Left' ) }
|
|
144
|
+
value="left"
|
|
145
|
+
/>
|
|
146
|
+
<ToggleGroupControlOption
|
|
147
|
+
label={ __( 'Right' ) }
|
|
148
|
+
value="right"
|
|
149
|
+
/>
|
|
150
|
+
</ToggleGroupControl>
|
|
151
|
+
</ToolsPanelItem>
|
|
152
|
+
) }
|
|
148
153
|
</ToolsPanel>
|
|
149
154
|
</InspectorControls>
|
|
150
155
|
<div { ...innerBlocksProps } />
|
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/style.scss
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
.wp-block-accordion {
|
|
2
|
+
// This block allows custom padding, margin, and border, as it affects how the block’s width and height are calculated.
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
.wp-block-accordion-content {
|
|
2
7
|
display: grid;
|
|
3
8
|
grid-template-rows: max-content 0fr;
|
|
@@ -7,7 +12,7 @@
|
|
|
7
12
|
grid-template-rows: max-content 1fr;
|
|
8
13
|
|
|
9
14
|
> .wp-block-accordion-header {
|
|
10
|
-
.accordion-content__toggle-icon
|
|
15
|
+
.accordion-content__toggle-icon {
|
|
11
16
|
transform: rotate(45deg);
|
|
12
17
|
}
|
|
13
18
|
}
|
|
@@ -36,8 +41,16 @@
|
|
|
36
41
|
width: 100%;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
|
-
.accordion-content__toggle
|
|
40
|
-
|
|
44
|
+
.accordion-content__toggle-title {
|
|
45
|
+
flex: 1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.accordion-content__toggle-icon {
|
|
49
|
+
width: 1.2em;
|
|
50
|
+
height: 1.2em;
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
justify-content: center;
|
|
41
54
|
}
|
|
42
55
|
|
|
43
56
|
.is-layout-flow > .wp-block-accordion-panel,
|
|
@@ -60,11 +73,6 @@
|
|
|
60
73
|
background-color: unset;
|
|
61
74
|
}
|
|
62
75
|
|
|
63
|
-
.wp-block-accordion-header.icon-position-left .accordion-content__toggle {
|
|
64
|
-
/* stylelint-disable-next-line declaration-property-value-allowed-list -- This should be refactored to not use the row-reverse value. */
|
|
65
|
-
flex-direction: row-reverse;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
76
|
.accordion-content__toggle:focus-visible {
|
|
69
77
|
outline: 2px solid -webkit-focus-ring-color;
|
|
70
78
|
outline-offset: 2px;
|
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": {
|
|
@@ -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
40
|
if ( $p->next_tag( array( 'class_name' => 'accordion-content__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' );
|
|
@@ -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,
|
|
@@ -63,7 +62,8 @@
|
|
|
63
62
|
"title": {
|
|
64
63
|
"type": "rich-text",
|
|
65
64
|
"source": "rich-text",
|
|
66
|
-
"selector": "
|
|
65
|
+
"selector": ".accordion-content__toggle-title",
|
|
66
|
+
"role": "content"
|
|
67
67
|
},
|
|
68
68
|
"level": {
|
|
69
69
|
"type": "number",
|