@wordpress/block-library 9.30.0 → 9.30.1-next.6f42e1382.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.
Files changed (189) hide show
  1. package/build/accordion-content/edit.js +8 -8
  2. package/build/accordion-content/edit.js.map +1 -1
  3. package/build/accordion-content/index.js +2 -1
  4. package/build/accordion-content/index.js.map +1 -1
  5. package/build/accordion-panel/index.js +2 -1
  6. package/build/accordion-panel/index.js.map +1 -1
  7. package/build/buttons/index.js +2 -1
  8. package/build/buttons/index.js.map +1 -1
  9. package/build/categories/edit.js +3 -1
  10. package/build/categories/edit.js.map +1 -1
  11. package/build/index.js +4 -0
  12. package/build/index.js.map +1 -1
  13. package/build/navigation/constants.js +5 -1
  14. package/build/navigation/constants.js.map +1 -1
  15. package/build/navigation/edit/index.js +45 -1
  16. package/build/navigation/edit/index.js.map +1 -1
  17. package/build/navigation/edit/leaf-more-menu.js +0 -1
  18. package/build/navigation/edit/leaf-more-menu.js.map +1 -1
  19. package/build/navigation/edit/menu-inspector-controls.js +40 -5
  20. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  21. package/build/navigation-link/block-inserter.js +69 -0
  22. package/build/navigation-link/block-inserter.js.map +1 -0
  23. package/build/navigation-link/dialog-wrapper.js +80 -0
  24. package/build/navigation-link/dialog-wrapper.js.map +1 -0
  25. package/build/navigation-link/link-ui.js +80 -120
  26. package/build/navigation-link/link-ui.js.map +1 -1
  27. package/build/navigation-link/page-creator.js +137 -0
  28. package/build/navigation-link/page-creator.js.map +1 -0
  29. package/build/search/edit.js +22 -14
  30. package/build/search/edit.js.map +1 -1
  31. package/build/social-links/index.js +2 -1
  32. package/build/social-links/index.js.map +1 -1
  33. package/build/table-of-contents/edit.js +33 -9
  34. package/build/table-of-contents/edit.js.map +1 -1
  35. package/build/table-of-contents/index.js +4 -0
  36. package/build/table-of-contents/index.js.map +1 -1
  37. package/build/table-of-contents/list.js +6 -3
  38. package/build/table-of-contents/list.js.map +1 -1
  39. package/build/table-of-contents/save.js +6 -3
  40. package/build/table-of-contents/save.js.map +1 -1
  41. package/build/term-template/edit.js +318 -0
  42. package/build/term-template/edit.js.map +1 -0
  43. package/build/term-template/index.js +109 -0
  44. package/build/term-template/index.js.map +1 -0
  45. package/build/term-template/save.js +16 -0
  46. package/build/term-template/save.js.map +1 -0
  47. package/build/term-template/variations.js +83 -0
  48. package/build/term-template/variations.js.map +1 -0
  49. package/build/terms-query/edit.js +20 -0
  50. package/build/terms-query/edit.js.map +1 -0
  51. package/build/terms-query/index.js +83 -0
  52. package/build/terms-query/index.js.map +1 -0
  53. package/build/terms-query/inspector-controls.js +246 -0
  54. package/build/terms-query/inspector-controls.js.map +1 -0
  55. package/build/terms-query/save.js +24 -0
  56. package/build/terms-query/save.js.map +1 -0
  57. package/build/terms-query/terms-query-content.js +71 -0
  58. package/build/terms-query/terms-query-content.js.map +1 -0
  59. package/build-module/accordion-content/edit.js +8 -8
  60. package/build-module/accordion-content/edit.js.map +1 -1
  61. package/build-module/accordion-content/index.js +2 -1
  62. package/build-module/accordion-content/index.js.map +1 -1
  63. package/build-module/accordion-panel/index.js +2 -1
  64. package/build-module/accordion-panel/index.js.map +1 -1
  65. package/build-module/buttons/index.js +2 -1
  66. package/build-module/buttons/index.js.map +1 -1
  67. package/build-module/categories/edit.js +3 -1
  68. package/build-module/categories/edit.js.map +1 -1
  69. package/build-module/index.js +4 -0
  70. package/build-module/index.js.map +1 -1
  71. package/build-module/navigation/constants.js +5 -1
  72. package/build-module/navigation/constants.js.map +1 -1
  73. package/build-module/navigation/edit/index.js +50 -4
  74. package/build-module/navigation/edit/index.js.map +1 -1
  75. package/build-module/navigation/edit/leaf-more-menu.js +0 -1
  76. package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
  77. package/build-module/navigation/edit/menu-inspector-controls.js +40 -5
  78. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  79. package/build-module/navigation-link/block-inserter.js +61 -0
  80. package/build-module/navigation-link/block-inserter.js.map +1 -0
  81. package/build-module/navigation-link/dialog-wrapper.js +75 -0
  82. package/build-module/navigation-link/dialog-wrapper.js.map +1 -0
  83. package/build-module/navigation-link/link-ui.js +85 -125
  84. package/build-module/navigation-link/link-ui.js.map +1 -1
  85. package/build-module/navigation-link/page-creator.js +130 -0
  86. package/build-module/navigation-link/page-creator.js.map +1 -0
  87. package/build-module/search/edit.js +22 -14
  88. package/build-module/search/edit.js.map +1 -1
  89. package/build-module/social-links/index.js +2 -1
  90. package/build-module/social-links/index.js.map +1 -1
  91. package/build-module/table-of-contents/edit.js +35 -11
  92. package/build-module/table-of-contents/edit.js.map +1 -1
  93. package/build-module/table-of-contents/index.js +4 -0
  94. package/build-module/table-of-contents/index.js.map +1 -1
  95. package/build-module/table-of-contents/list.js +6 -3
  96. package/build-module/table-of-contents/list.js.map +1 -1
  97. package/build-module/table-of-contents/save.js +6 -3
  98. package/build-module/table-of-contents/save.js.map +1 -1
  99. package/build-module/term-template/edit.js +310 -0
  100. package/build-module/term-template/edit.js.map +1 -0
  101. package/build-module/term-template/index.js +102 -0
  102. package/build-module/term-template/index.js.map +1 -0
  103. package/build-module/term-template/save.js +9 -0
  104. package/build-module/term-template/save.js.map +1 -0
  105. package/build-module/term-template/variations.js +76 -0
  106. package/build-module/term-template/variations.js.map +1 -0
  107. package/build-module/terms-query/edit.js +12 -0
  108. package/build-module/terms-query/edit.js.map +1 -0
  109. package/build-module/terms-query/index.js +76 -0
  110. package/build-module/terms-query/index.js.map +1 -0
  111. package/build-module/terms-query/inspector-controls.js +239 -0
  112. package/build-module/terms-query/inspector-controls.js.map +1 -0
  113. package/build-module/terms-query/save.js +17 -0
  114. package/build-module/terms-query/save.js.map +1 -0
  115. package/build-module/terms-query/terms-query-content.js +63 -0
  116. package/build-module/terms-query/terms-query-content.js.map +1 -0
  117. package/build-style/accordion/style-rtl.css +5 -6
  118. package/build-style/accordion/style.css +5 -6
  119. package/build-style/editor-rtl.css +38 -0
  120. package/build-style/editor.css +38 -0
  121. package/build-style/form-input/style-rtl.css +4 -3
  122. package/build-style/form-input/style.css +4 -3
  123. package/build-style/navigation-link/editor-rtl.css +14 -0
  124. package/build-style/navigation-link/editor.css +14 -0
  125. package/build-style/navigation-link/style-rtl.css +1 -1
  126. package/build-style/navigation-link/style.css +1 -1
  127. package/build-style/post-comments-form/style-rtl.css +8 -5
  128. package/build-style/post-comments-form/style.css +8 -5
  129. package/build-style/search/style-rtl.css +11 -12
  130. package/build-style/search/style.css +11 -12
  131. package/build-style/style-rtl.css +45 -27
  132. package/build-style/style.css +45 -27
  133. package/build-style/term-template/editor-rtl.css +160 -0
  134. package/build-style/term-template/editor.css +160 -0
  135. package/build-style/term-template/style-rtl.css +146 -0
  136. package/build-style/term-template/style.css +146 -0
  137. package/build-style/terms-query/style-rtl.css +140 -0
  138. package/build-style/terms-query/style.css +140 -0
  139. package/build-types/table-of-contents/list.d.ts +2 -1
  140. package/build-types/table-of-contents/list.d.ts.map +1 -1
  141. package/package.json +35 -35
  142. package/src/accordion/style.scss +6 -6
  143. package/src/accordion-content/block.json +2 -1
  144. package/src/accordion-content/edit.js +21 -27
  145. package/src/accordion-panel/block.json +2 -1
  146. package/src/buttons/block.json +2 -1
  147. package/src/categories/edit.js +2 -1
  148. package/src/cover/test/edit.js +1 -5
  149. package/src/editor.scss +1 -0
  150. package/src/form-input/style.scss +3 -2
  151. package/src/index.js +4 -0
  152. package/src/navigation/constants.js +4 -0
  153. package/src/navigation/edit/index.js +50 -1
  154. package/src/navigation/edit/leaf-more-menu.js +0 -1
  155. package/src/navigation/edit/menu-inspector-controls.js +40 -5
  156. package/src/navigation-link/block-inserter.js +65 -0
  157. package/src/navigation-link/dialog-wrapper.js +74 -0
  158. package/src/navigation-link/editor.scss +17 -0
  159. package/src/navigation-link/link-ui.js +108 -164
  160. package/src/navigation-link/page-creator.js +157 -0
  161. package/src/navigation-link/style.scss +1 -1
  162. package/src/post-comments-form/style.scss +11 -11
  163. package/src/post-date/index.php +18 -13
  164. package/src/search/edit.js +44 -13
  165. package/src/search/index.php +16 -2
  166. package/src/search/style.scss +15 -16
  167. package/src/social-links/block.json +2 -1
  168. package/src/style.scss +2 -0
  169. package/src/table-of-contents/block.json +4 -0
  170. package/src/table-of-contents/edit.js +58 -21
  171. package/src/table-of-contents/list.tsx +7 -2
  172. package/src/table-of-contents/save.js +7 -3
  173. package/src/term-template/block.json +73 -0
  174. package/src/term-template/edit.js +391 -0
  175. package/src/term-template/editor.scss +26 -0
  176. package/src/term-template/index.js +26 -0
  177. package/src/term-template/index.php +224 -0
  178. package/src/term-template/save.js +8 -0
  179. package/src/term-template/style.scss +12 -0
  180. package/src/term-template/variations.js +87 -0
  181. package/src/terms-query/block.json +49 -0
  182. package/src/terms-query/edit.js +10 -0
  183. package/src/terms-query/index.js +24 -0
  184. package/src/terms-query/index.php +44 -0
  185. package/src/terms-query/inspector-controls.js +233 -0
  186. package/src/terms-query/save.js +10 -0
  187. package/src/terms-query/style.scss +6 -0
  188. package/src/terms-query/terms-query-content.js +74 -0
  189. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,310 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { memo, useMemo, useState } from '@wordpress/element';
10
+ import { useSelect, useDispatch } from '@wordpress/data';
11
+ import { layout } from '@wordpress/icons';
12
+ import { __ } from '@wordpress/i18n';
13
+ import { BlockContextProvider, __experimentalUseBlockPreview as useBlockPreview, __experimentalBlockVariationPicker as BlockVariationPicker, useBlockProps, useInnerBlocksProps, store as blockEditorStore } from '@wordpress/block-editor';
14
+ import { useEntityRecords } from '@wordpress/core-data';
15
+ import { createBlocksFromInnerBlocksTemplate, store as blocksStore } from '@wordpress/blocks';
16
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
+ const TEMPLATE = [['core/group', {
18
+ layout: {
19
+ type: 'flex',
20
+ orientation: 'horizontal'
21
+ },
22
+ style: {
23
+ spacing: {
24
+ blockGap: '0.5rem'
25
+ }
26
+ },
27
+ metadata: {
28
+ name: __('Term Name with Count')
29
+ }
30
+ }, [['core/paragraph', {
31
+ metadata: {
32
+ name: __('Term Name'),
33
+ bindings: {
34
+ content: {
35
+ source: 'core/term-data',
36
+ args: {
37
+ key: 'name'
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }], ['core/paragraph', {
43
+ placeholder: __('(count)'),
44
+ metadata: {
45
+ name: __('Term Count'),
46
+ bindings: {
47
+ content: {
48
+ source: 'core/term-data',
49
+ args: {
50
+ key: 'count'
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }]]]];
56
+ function TermTemplateInnerBlocks({
57
+ classList
58
+ }) {
59
+ const innerBlocksProps = useInnerBlocksProps({
60
+ className: clsx('wp-block-term', classList)
61
+ }, {
62
+ template: TEMPLATE,
63
+ __unstableDisableLayoutClassNames: true
64
+ });
65
+ return /*#__PURE__*/_jsx("li", {
66
+ ...innerBlocksProps
67
+ });
68
+ }
69
+ function TermTemplateBlockPreview({
70
+ blocks,
71
+ blockContextId,
72
+ classList,
73
+ isHidden,
74
+ setActiveBlockContextId
75
+ }) {
76
+ const blockPreviewProps = useBlockPreview({
77
+ blocks,
78
+ props: {
79
+ className: clsx('wp-block-term', classList)
80
+ }
81
+ });
82
+ const handleOnClick = () => {
83
+ setActiveBlockContextId(blockContextId);
84
+ };
85
+ const style = {
86
+ display: isHidden ? 'none' : undefined
87
+ };
88
+ return /*#__PURE__*/_jsx("li", {
89
+ ...blockPreviewProps,
90
+ tabIndex: 0
91
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
92
+ ,
93
+ role: "button",
94
+ onClick: handleOnClick,
95
+ onKeyPress: handleOnClick,
96
+ style: style
97
+ });
98
+ }
99
+
100
+ // Prevent re-rendering of the block preview when the terms data changes.
101
+ const MemoizedTermTemplateBlockPreview = memo(TermTemplateBlockPreview);
102
+
103
+ /**
104
+ * Builds a hierarchical tree structure from flat terms array.
105
+ *
106
+ * @param {Array} terms Array of term objects.
107
+ * @return {Array} Tree structure with parent/child relationships.
108
+ */
109
+ function buildTermsTree(terms) {
110
+ const termsById = {};
111
+ const rootTerms = [];
112
+ terms.forEach(term => {
113
+ termsById[term.id] = {
114
+ term,
115
+ children: []
116
+ };
117
+ });
118
+ terms.forEach(term => {
119
+ if (term.parent && termsById[term.parent]) {
120
+ termsById[term.parent].children.push(termsById[term.id]);
121
+ } else {
122
+ rootTerms.push(termsById[term.id]);
123
+ }
124
+ });
125
+ return rootTerms;
126
+ }
127
+
128
+ /**
129
+ * Renders a single term node and its children recursively.
130
+ *
131
+ * @param {Object} termNode Term node with term object and children.
132
+ * @param {Function} renderTerm Function to render individual terms.
133
+ * @return {JSX.Element} Rendered term node with children.
134
+ */
135
+ function renderTermNode(termNode, renderTerm) {
136
+ return /*#__PURE__*/_jsxs("li", {
137
+ className: "wp-block-term",
138
+ children: [renderTerm(termNode.term), termNode.children.length > 0 && /*#__PURE__*/_jsx("ul", {
139
+ children: termNode.children.map(child => renderTermNode(child, renderTerm))
140
+ })]
141
+ });
142
+ }
143
+
144
+ /**
145
+ * Checks if a term is the currently active term.
146
+ *
147
+ * @param {number} termId The term ID to check.
148
+ * @param {number} activeBlockContextId The currently active block context ID.
149
+ * @param {Array} blockContexts Array of block contexts.
150
+ * @return {boolean} True if the term is active, false otherwise.
151
+ */
152
+ function isActiveTerm(termId, activeBlockContextId, blockContexts) {
153
+ return termId === (activeBlockContextId || blockContexts[0]?.termId);
154
+ }
155
+ export default function TermTemplateEdit({
156
+ clientId,
157
+ setAttributes,
158
+ context: {
159
+ termQuery: {
160
+ taxonomy,
161
+ order,
162
+ orderBy,
163
+ hideEmpty,
164
+ hierarchical,
165
+ parent,
166
+ perPage = 10
167
+ } = {}
168
+ },
169
+ __unstableLayoutClassNames
170
+ }) {
171
+ const [activeBlockContextId, setActiveBlockContextId] = useState();
172
+ const {
173
+ replaceInnerBlocks
174
+ } = useDispatch(blockEditorStore);
175
+ const queryArgs = {
176
+ order,
177
+ orderby: orderBy,
178
+ hide_empty: hideEmpty,
179
+ // To preview the data the closest to the frontend, we fetch the largest number of terms
180
+ // and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,
181
+ // while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.
182
+ per_page: 100
183
+ };
184
+ const {
185
+ records: terms,
186
+ isResolving
187
+ } = useEntityRecords('taxonomy', taxonomy, queryArgs);
188
+
189
+ // Filter to show only top-level terms if "Show only top-level terms" is enabled.
190
+ const filteredTerms = useMemo(() => {
191
+ if (!terms || parent !== 0) {
192
+ return terms;
193
+ }
194
+ return terms.filter(term => !term.parent);
195
+ }, [terms, parent]);
196
+ const {
197
+ blocks,
198
+ variations,
199
+ defaultVariation
200
+ } = useSelect(select => {
201
+ const {
202
+ getBlocks
203
+ } = select(blockEditorStore);
204
+ const {
205
+ getBlockVariations,
206
+ getDefaultBlockVariation
207
+ } = select(blocksStore);
208
+ return {
209
+ blocks: getBlocks(clientId),
210
+ variations: getBlockVariations('core/term-template', 'block'),
211
+ defaultVariation: getDefaultBlockVariation('core/term-template', 'block')
212
+ };
213
+ }, [clientId]);
214
+ const blockProps = useBlockProps({
215
+ className: __unstableLayoutClassNames
216
+ });
217
+ const blockContexts = useMemo(() => filteredTerms?.map(term => ({
218
+ taxonomy,
219
+ termId: term.id,
220
+ classList: `term-${term.id}`,
221
+ termData: term
222
+ })), [filteredTerms, taxonomy]);
223
+
224
+ // Show variation picker if no blocks exist.
225
+ if (!blocks?.length) {
226
+ return /*#__PURE__*/_jsx("div", {
227
+ ...blockProps,
228
+ children: /*#__PURE__*/_jsx(BlockVariationPicker, {
229
+ icon: layout,
230
+ label: __('Term Template'),
231
+ variations: variations,
232
+ instructions: __('Choose a layout for displaying terms:'),
233
+ onSelect: (nextVariation = defaultVariation) => {
234
+ if (nextVariation.attributes) {
235
+ setAttributes(nextVariation.attributes);
236
+ }
237
+ if (nextVariation.innerBlocks) {
238
+ replaceInnerBlocks(clientId, createBlocksFromInnerBlocksTemplate(nextVariation.innerBlocks), true);
239
+ }
240
+ },
241
+ allowSkip: true
242
+ })
243
+ });
244
+ }
245
+ if (isResolving) {
246
+ return /*#__PURE__*/_jsxs("ul", {
247
+ ...blockProps,
248
+ children: [/*#__PURE__*/_jsx("li", {
249
+ className: "wp-block-term term-loading",
250
+ children: /*#__PURE__*/_jsx("div", {
251
+ className: "term-loading-placeholder"
252
+ })
253
+ }), /*#__PURE__*/_jsx("li", {
254
+ className: "wp-block-term term-loading",
255
+ children: /*#__PURE__*/_jsx("div", {
256
+ className: "term-loading-placeholder"
257
+ })
258
+ }), /*#__PURE__*/_jsx("li", {
259
+ className: "wp-block-term term-loading",
260
+ children: /*#__PURE__*/_jsx("div", {
261
+ className: "term-loading-placeholder"
262
+ })
263
+ })]
264
+ });
265
+ }
266
+ if (!filteredTerms?.length) {
267
+ return /*#__PURE__*/_jsxs("p", {
268
+ ...blockProps,
269
+ children: [" ", __('No terms found.')]
270
+ });
271
+ }
272
+ const renderTerm = term => {
273
+ const blockContext = {
274
+ taxonomy,
275
+ termId: term.id,
276
+ classList: `term-${term.id}`,
277
+ termData: term
278
+ };
279
+ return /*#__PURE__*/_jsxs(BlockContextProvider, {
280
+ value: blockContext,
281
+ children: [isActiveTerm(term.id, activeBlockContextId, blockContexts) ? /*#__PURE__*/_jsx(TermTemplateInnerBlocks, {
282
+ classList: blockContext.classList
283
+ }) : null, /*#__PURE__*/_jsx(MemoizedTermTemplateBlockPreview, {
284
+ blocks: blocks,
285
+ blockContextId: term.id,
286
+ classList: blockContext.classList,
287
+ setActiveBlockContextId: setActiveBlockContextId,
288
+ isHidden: isActiveTerm(term.id, activeBlockContextId, blockContexts)
289
+ })]
290
+ }, term.id);
291
+ };
292
+ return /*#__PURE__*/_jsx(_Fragment, {
293
+ children: /*#__PURE__*/_jsx("ul", {
294
+ ...blockProps,
295
+ children: hierarchical ? buildTermsTree(filteredTerms).map(termNode => renderTermNode(termNode, renderTerm)) : blockContexts && blockContexts.slice(0, perPage).map(blockContext => /*#__PURE__*/_jsxs(BlockContextProvider, {
296
+ value: blockContext,
297
+ children: [blockContext.termId === (activeBlockContextId || blockContexts[0]?.termId) ? /*#__PURE__*/_jsx(TermTemplateInnerBlocks, {
298
+ classList: blockContext.classList
299
+ }) : null, /*#__PURE__*/_jsx(MemoizedTermTemplateBlockPreview, {
300
+ blocks: blocks,
301
+ blockContextId: blockContext.termId,
302
+ classList: blockContext.classList,
303
+ setActiveBlockContextId: setActiveBlockContextId,
304
+ isHidden: blockContext.termId === (activeBlockContextId || blockContexts[0]?.termId)
305
+ })]
306
+ }, blockContext.termId))
307
+ })
308
+ });
309
+ }
310
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clsx","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tparent,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\t// Filter to show only top-level terms if \"Show only top-level terms\" is enabled.\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms || parent !== 0 ) {\n\t\t\treturn terms;\n\t\t}\n\t\treturn terms.filter( ( term ) => ! term.parent );\n\t}, [ terms, parent ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { layout as icon } from '@wordpress/icons';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import initBlock from '../utils/init-block';
10
+ const metadata = {
11
+ $schema: "https://schemas.wp.org/trunk/block.json",
12
+ apiVersion: 3,
13
+ __experimental: true,
14
+ name: "core/term-template",
15
+ title: "Term Template",
16
+ category: "theme",
17
+ ancestor: ["core/terms-query"],
18
+ description: "Contains the block elements used to render a taxonomy term, like the name, description, and more.",
19
+ textdomain: "default",
20
+ usesContext: ["termQuery"],
21
+ attributes: {
22
+ namespace: {
23
+ type: "string"
24
+ }
25
+ },
26
+ supports: {
27
+ reusable: false,
28
+ html: false,
29
+ align: ["wide", "full"],
30
+ layout: {
31
+ allowSwitching: true,
32
+ allowEditing: true,
33
+ "default": {
34
+ type: "flex"
35
+ }
36
+ },
37
+ color: {
38
+ gradients: true,
39
+ link: true,
40
+ __experimentalDefaultControls: {
41
+ background: true,
42
+ text: true
43
+ }
44
+ },
45
+ typography: {
46
+ fontSize: true,
47
+ lineHeight: true,
48
+ __experimentalFontFamily: true,
49
+ __experimentalFontWeight: true,
50
+ __experimentalFontStyle: true,
51
+ __experimentalTextTransform: true,
52
+ __experimentalTextDecoration: true,
53
+ __experimentalLetterSpacing: true,
54
+ __experimentalDefaultControls: {
55
+ fontSize: true
56
+ }
57
+ },
58
+ spacing: {
59
+ margin: true,
60
+ padding: true,
61
+ blockGap: {
62
+ __experimentalDefault: "1.25em"
63
+ },
64
+ __experimentalDefaultControls: {
65
+ blockGap: true,
66
+ padding: false,
67
+ margin: false
68
+ }
69
+ },
70
+ interactivity: {
71
+ clientNavigation: true
72
+ },
73
+ __experimentalBorder: {
74
+ radius: true,
75
+ color: true,
76
+ width: true,
77
+ style: true
78
+ }
79
+ },
80
+ style: "wp-block-term-template",
81
+ variations: "file:./variations.js"
82
+ };
83
+ import edit from './edit';
84
+ import save from './save';
85
+ import variations from './variations';
86
+ const {
87
+ name
88
+ } = metadata;
89
+ export { metadata, name };
90
+ export const settings = {
91
+ icon,
92
+ variations,
93
+ edit,
94
+ save,
95
+ example: {}
96
+ };
97
+ export const init = () => initBlock({
98
+ name,
99
+ metadata,
100
+ settings
101
+ });
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["layout","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","textdomain","usesContext","attributes","namespace","type","supports","reusable","html","align","allowSwitching","allowEditing","color","gradients","link","__experimentalDefaultControls","background","text","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","spacing","margin","padding","blockGap","__experimentalDefault","interactivity","clientNavigation","__experimentalBorder","radius","width","style","variations","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/term-template/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { layout as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tvariations,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAI,QAAQ,kBAAkB;;AAEjD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;IAAApB,MAAA;MAAAqB,cAAA;MAAAC,YAAA;MAAA;QAAAN,IAAA;MAAA;IAAA;IAAAO,KAAA;MAAAC,SAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAX,6BAAA;QAAAI,QAAA;MAAA;IAAA;IAAAQ,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAC,QAAA;QAAAC,qBAAA;MAAA;MAAAhB,6BAAA;QAAAe,QAAA;QAAAD,OAAA;QAAAD,MAAA;MAAA;IAAA;IAAAI,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAvB,KAAA;MAAAwB,KAAA;MAAAC,KAAA;IAAA;EAAA;EAAAA,KAAA;EAAAC,UAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOF,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE1C;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAM6C,QAAQ,GAAG;EACvBnD,IAAI;EACJgD,UAAU;EACVC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMpD,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEiD;AAAS,CAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { InnerBlocks } from '@wordpress/block-editor';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ export default function TermTemplateSave() {
7
+ return /*#__PURE__*/_jsx(InnerBlocks.Content, {});
8
+ }
9
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["InnerBlocks","jsx","_jsx","TermTemplateSave","Content"],"sources":["@wordpress/block-library/src/term-template/save.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InnerBlocks } from '@wordpress/block-editor';\n\nexport default function TermTemplateSave() {\n\treturn <InnerBlocks.Content />;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,eAAe,SAASC,gBAAgBA,CAAA,EAAG;EAC1C,oBAAOD,IAAA,CAACF,WAAW,CAACI,OAAO,IAAE,CAAC;AAC/B","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { list, grid } from '@wordpress/icons';
6
+ const createInnerBlocks = (groupMetadata, groupStyle = {}) => [['core/group', {
7
+ layout: {
8
+ type: 'flex',
9
+ orientation: 'horizontal'
10
+ },
11
+ style: {
12
+ spacing: {
13
+ blockGap: '0.5rem'
14
+ },
15
+ ...groupStyle
16
+ },
17
+ metadata: {
18
+ name: groupMetadata
19
+ }
20
+ }, [['core/paragraph', {
21
+ metadata: {
22
+ name: __('Term Name'),
23
+ bindings: {
24
+ content: {
25
+ source: 'core/term-data',
26
+ args: {
27
+ key: 'name'
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }], ['core/paragraph', {
33
+ placeholder: __('(count)'),
34
+ metadata: {
35
+ name: __('Term Count'),
36
+ bindings: {
37
+ content: {
38
+ source: 'core/term-data',
39
+ args: {
40
+ key: 'count'
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }]]]];
46
+ const variations = [{
47
+ name: 'list',
48
+ title: __('List'),
49
+ description: __('Display terms in a list layout.'),
50
+ attributes: {
51
+ layout: {
52
+ type: 'default'
53
+ }
54
+ },
55
+ isDefault: true,
56
+ icon: list,
57
+ scope: ['block', 'inserter'],
58
+ innerBlocks: createInnerBlocks(__('Term Name with Count'))
59
+ }, {
60
+ name: 'grid',
61
+ title: __('Grid'),
62
+ description: __('Display terms in a grid layout.'),
63
+ attributes: {
64
+ layout: {
65
+ type: 'grid',
66
+ columnCount: 3
67
+ }
68
+ },
69
+ icon: grid,
70
+ scope: ['block', 'inserter'],
71
+ innerBlocks: createInnerBlocks(__('Term Card'), {
72
+ padding: '1rem'
73
+ })
74
+ }];
75
+ export default variations;
76
+ //# sourceMappingURL=variations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__","list","grid","createInnerBlocks","groupMetadata","groupStyle","layout","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","variations","title","description","attributes","isDefault","icon","scope","innerBlocks","columnCount","padding"],"sources":["@wordpress/block-library/src/term-template/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { list, grid } from '@wordpress/icons';\n\nconst createInnerBlocks = ( groupMetadata, groupStyle = {} ) => [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t\t...groupStyle,\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: groupMetadata,\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nconst variations = [\n\t{\n\t\tname: 'list',\n\t\ttitle: __( 'List' ),\n\t\tdescription: __( 'Display terms in a list layout.' ),\n\t\tattributes: { layout: { type: 'default' } },\n\t\tisDefault: true,\n\t\ticon: list,\n\t\tscope: [ 'block', 'inserter' ],\n\t\tinnerBlocks: createInnerBlocks( __( 'Term Name with Count' ) ),\n\t},\n\t{\n\t\tname: 'grid',\n\t\ttitle: __( 'Grid' ),\n\t\tdescription: __( 'Display terms in a grid layout.' ),\n\t\tattributes: { layout: { type: 'grid', columnCount: 3 } },\n\t\ticon: grid,\n\t\tscope: [ 'block', 'inserter' ],\n\t\tinnerBlocks: createInnerBlocks( __( 'Term Card' ), {\n\t\t\tpadding: '1rem',\n\t\t} ),\n\t},\n];\n\nexport default variations;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAE7C,MAAMC,iBAAiB,GAAGA,CAAEC,aAAa,EAAEC,UAAU,GAAG,CAAC,CAAC,KAAM,CAC/D,CACC,YAAY,EACZ;EACCC,MAAM,EAAE;IACPC,IAAI,EAAE,MAAM;IACZC,WAAW,EAAE;EACd,CAAC;EACDC,KAAK,EAAE;IACNC,OAAO,EAAE;MACRC,QAAQ,EAAE;IACX,CAAC;IACD,GAAGN;EACJ,CAAC;EACDO,QAAQ,EAAE;IACTC,IAAI,EAAET;EACP;AACD,CAAC,EACD,CACC,CACC,gBAAgB,EAChB;EACCQ,QAAQ,EAAE;IACTC,IAAI,EAAEb,EAAE,CAAE,WAAY,CAAC;IACvBc,QAAQ,EAAE;MACTC,OAAO,EAAE;QACRC,MAAM,EAAE,gBAAgB;QACxBC,IAAI,EAAE;UACLC,GAAG,EAAE;QACN;MACD;IACD;EACD;AACD,CAAC,CACD,EACD,CACC,gBAAgB,EAChB;EACCC,WAAW,EAAEnB,EAAE,CAAE,SAAU,CAAC;EAC5BY,QAAQ,EAAE;IACTC,IAAI,EAAEb,EAAE,CAAE,YAAa,CAAC;IACxBc,QAAQ,EAAE;MACTC,OAAO,EAAE;QACRC,MAAM,EAAE,gBAAgB;QACxBC,IAAI,EAAE;UACLC,GAAG,EAAE;QACN;MACD;IACD;EACD;AACD,CAAC,CACD,CACD,CACD,CACD;AAED,MAAME,UAAU,GAAG,CAClB;EACCP,IAAI,EAAE,MAAM;EACZQ,KAAK,EAAErB,EAAE,CAAE,MAAO,CAAC;EACnBsB,WAAW,EAAEtB,EAAE,CAAE,iCAAkC,CAAC;EACpDuB,UAAU,EAAE;IAAEjB,MAAM,EAAE;MAAEC,IAAI,EAAE;IAAU;EAAE,CAAC;EAC3CiB,SAAS,EAAE,IAAI;EACfC,IAAI,EAAExB,IAAI;EACVyB,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,CAAE;EAC9BC,WAAW,EAAExB,iBAAiB,CAAEH,EAAE,CAAE,sBAAuB,CAAE;AAC9D,CAAC,EACD;EACCa,IAAI,EAAE,MAAM;EACZQ,KAAK,EAAErB,EAAE,CAAE,MAAO,CAAC;EACnBsB,WAAW,EAAEtB,EAAE,CAAE,iCAAkC,CAAC;EACpDuB,UAAU,EAAE;IAAEjB,MAAM,EAAE;MAAEC,IAAI,EAAE,MAAM;MAAEqB,WAAW,EAAE;IAAE;EAAE,CAAC;EACxDH,IAAI,EAAEvB,IAAI;EACVwB,KAAK,EAAE,CAAE,OAAO,EAAE,UAAU,CAAE;EAC9BC,WAAW,EAAExB,iBAAiB,CAAEH,EAAE,CAAE,WAAY,CAAC,EAAE;IAClD6B,OAAO,EAAE;EACV,CAAE;AACH,CAAC,CACD;AAED,eAAeT,UAAU","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import TermsQueryContent from './terms-query-content';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ const TermsQueryEdit = props => {
7
+ return /*#__PURE__*/_jsx(TermsQueryContent, {
8
+ ...props
9
+ });
10
+ };
11
+ export default TermsQueryEdit;
12
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TermsQueryContent","jsx","_jsx","TermsQueryEdit","props"],"sources":["@wordpress/block-library/src/terms-query/edit.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport TermsQueryContent from './terms-query-content';\n\nconst TermsQueryEdit = ( props ) => {\n\treturn <TermsQueryContent { ...props } />;\n};\n\nexport default TermsQueryEdit;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,iBAAiB,MAAM,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtD,MAAMC,cAAc,GAAKC,KAAK,IAAM;EACnC,oBAAOF,IAAA,CAACF,iBAAiB;IAAA,GAAMI;EAAK,CAAI,CAAC;AAC1C,CAAC;AAED,eAAeD,cAAc","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { loop as icon } from '@wordpress/icons';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import initBlock from '../utils/init-block';
10
+ const metadata = {
11
+ $schema: "https://schemas.wp.org/trunk/block.json",
12
+ apiVersion: 3,
13
+ __experimental: true,
14
+ name: "core/terms-query",
15
+ title: "Terms Query",
16
+ category: "theme",
17
+ description: "An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.",
18
+ keywords: ["terms", "taxonomy", "categories", "tags", "list"],
19
+ textdomain: "default",
20
+ attributes: {
21
+ termQueryId: {
22
+ type: "number"
23
+ },
24
+ termQuery: {
25
+ type: "object",
26
+ "default": {
27
+ perPage: 10,
28
+ pages: 0,
29
+ taxonomy: "category",
30
+ order: "asc",
31
+ orderBy: "name",
32
+ hideEmpty: true,
33
+ include: [],
34
+ exclude: [],
35
+ parent: 0,
36
+ hierarchical: false
37
+ }
38
+ },
39
+ tagName: {
40
+ type: "string",
41
+ "default": "div"
42
+ },
43
+ namespace: {
44
+ type: "string"
45
+ }
46
+ },
47
+ providesContext: {
48
+ termQueryId: "termQueryId",
49
+ termQuery: "termQuery"
50
+ },
51
+ supports: {
52
+ align: ["wide", "full"],
53
+ html: false,
54
+ interactivity: true
55
+ },
56
+ allowedBlocks: ["core/term-template"],
57
+ style: "wp-block-terms-query"
58
+ };
59
+ import edit from './edit';
60
+ import save from './save';
61
+ const {
62
+ name
63
+ } = metadata;
64
+ export { metadata, name };
65
+ export const settings = {
66
+ icon,
67
+ edit,
68
+ save,
69
+ example: {}
70
+ };
71
+ export const init = () => initBlock({
72
+ name,
73
+ metadata,
74
+ settings
75
+ });
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["loop","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,OAAA;MAAAZ,IAAA;MAAA;IAAA;IAAAa,SAAA;MAAAb,IAAA;IAAA;EAAA;EAAAc,eAAA;IAAAf,WAAA;IAAAE,SAAA;EAAA;EAAAc,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,aAAA;EAAA;EAAAC,aAAA;EAAAC,KAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE9B;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAM+B,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMtC,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEmC;AAAS,CAAE,CAAC","ignoreList":[]}