@kitconcept/volto-light-theme 6.0.0-alpha.9 → 6.0.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 (98) hide show
  1. package/.changelog.draft +1 -10
  2. package/CHANGELOG.md +215 -0
  3. package/README.md +6 -5
  4. package/locales/de/LC_MESSAGES/volto.po +171 -38
  5. package/locales/en/LC_MESSAGES/volto.po +170 -37
  6. package/locales/es/LC_MESSAGES/volto.po +171 -38
  7. package/locales/eu/LC_MESSAGES/volto.po +171 -38
  8. package/locales/pt_BR/volto.po +171 -38
  9. package/locales/volto.pot +171 -38
  10. package/package.json +15 -6
  11. package/src/components/Blocks/EventMetadata/View.jsx +32 -26
  12. package/src/components/Blocks/Listing/DefaultTemplate.jsx +19 -14
  13. package/src/components/Blocks/Listing/GridTemplate.jsx +9 -12
  14. package/src/components/Blocks/Listing/SummaryTemplate.jsx +9 -7
  15. package/src/components/Blocks/Teaser/DefaultBody.jsx +93 -0
  16. package/src/components/Footer/ColumnLinks.tsx +35 -0
  17. package/src/components/Footer/Footer.tsx +32 -0
  18. package/src/components/Footer/slots/Colophon.tsx +24 -0
  19. package/src/components/Footer/slots/Copyright.tsx +65 -0
  20. package/src/components/Footer/slots/CoreFooter.tsx +82 -0
  21. package/src/components/Footer/slots/FollowUsLogoAndLinks.tsx +80 -0
  22. package/src/components/Footer/slots/FooterLogos.tsx +44 -0
  23. package/src/components/Header/Header.tsx +257 -0
  24. package/src/components/Logo/Logo.tsx +85 -0
  25. package/src/components/{Footer/FooterLogos.tsx → LogosContainer/LogosContainer.tsx} +16 -36
  26. package/src/components/MobileNavigation/MobileNavigation.jsx +53 -18
  27. package/src/components/Navigation/Navigation.jsx +14 -3
  28. package/src/components/SearchWidget/IntranetSearchWidget.jsx +32 -5
  29. package/src/components/SearchWidget/SearchWidget.jsx +1 -1
  30. package/src/components/StickyMenu/StickyMenu.tsx +36 -0
  31. package/src/components/Summary/DefaultSummary.jsx +16 -0
  32. package/src/components/Summary/EventSummary.jsx +38 -0
  33. package/src/components/Summary/FileSummary.jsx +24 -0
  34. package/src/components/Summary/NewsItemSummary.jsx +40 -0
  35. package/src/components/Tags/Tags.jsx +46 -0
  36. package/src/components/Theme/EventView.jsx +19 -25
  37. package/src/components/Theme/NewsItemView.jsx +13 -9
  38. package/src/components/Theming/Theming.tsx +20 -17
  39. package/src/components/Widgets/{BlockAlignmentWidget.tsx → BlockAlignment.tsx} +9 -2
  40. package/src/components/Widgets/{BlockWidthWidget.tsx → BlockWidth.tsx} +10 -3
  41. package/src/components/Widgets/BlocksObject.tsx +353 -0
  42. package/src/components/Widgets/{ButtonsWidget.tsx → Buttons.tsx} +45 -4
  43. package/src/components/Widgets/ColorContrastChecker.tsx +117 -0
  44. package/src/components/Widgets/ColorPicker.tsx +59 -0
  45. package/src/components/Widgets/{ColorPickerWidget.tsx → ColorSwatch.tsx} +5 -5
  46. package/src/components/Widgets/ObjectList.tsx +342 -0
  47. package/src/components/Widgets/{ThemingColorPicker.tsx → RACThemingColorPicker.tsx} +4 -0
  48. package/src/components/Widgets/{SizeWidget.tsx → Size.tsx} +9 -2
  49. package/src/components/Widgets/ThemeColorSwatch.tsx +17 -0
  50. package/src/components/Widgets/schema/footerLinksSchema.ts +64 -0
  51. package/src/components/Widgets/schema/footerLogosSchema.ts +98 -0
  52. package/src/components/Widgets/schema/headerActionsSchema.ts +64 -0
  53. package/src/components/Widgets/schema/iconLinkListSchema.ts +98 -0
  54. package/src/config/blocks.tsx +37 -17
  55. package/src/config/settings.ts +54 -12
  56. package/src/config/slots.ts +36 -1
  57. package/src/config/summary.ts +24 -0
  58. package/src/config/widgets.ts +57 -23
  59. package/src/customizations/volto/components/manage/Blocks/Teaser/DefaultBody.jsx +8 -0
  60. package/src/customizations/volto/components/theme/Tags/Tags.jsx +11 -0
  61. package/src/customizations/volto/components/theme/View/RenderBlocks.jsx +2 -1
  62. package/src/helpers/DndSortableList.tsx +138 -0
  63. package/src/helpers/dates.js +22 -0
  64. package/src/helpers/doesNodeContainClick.js +64 -0
  65. package/src/helpers/useLiveData.ts +29 -0
  66. package/src/index.ts +31 -2
  67. package/src/primitives/IconLinkList.tsx +69 -0
  68. package/src/primitives/LinkList.tsx +35 -0
  69. package/src/theme/_bgcolor-blocks-layout.scss +50 -12
  70. package/src/theme/_content.scss +6 -0
  71. package/src/theme/_footer.scss +295 -41
  72. package/src/theme/_header.scss +132 -19
  73. package/src/theme/_layout.scss +11 -1
  74. package/src/theme/_sitemap.scss +4 -0
  75. package/src/theme/_utils.scss +14 -1
  76. package/src/theme/_variables.scss +12 -3
  77. package/src/theme/_widgets.scss +100 -9
  78. package/src/theme/blocks/_eventMetadata.scss +5 -2
  79. package/src/theme/blocks/_grid.scss +3 -3
  80. package/src/theme/blocks/_highlight.scss +17 -44
  81. package/src/theme/blocks/_listing.scss +25 -16
  82. package/src/theme/blocks/_maps.scss +3 -3
  83. package/src/theme/blocks/_slider.scss +5 -1
  84. package/src/theme/main.scss +1 -0
  85. package/src/theme/sticky-menu.scss +50 -0
  86. package/src/types.d.ts +102 -0
  87. package/tsconfig.json +1 -1
  88. package/src/components/Footer/Footer.jsx +0 -115
  89. package/src/components/Footer/FooterLinks.tsx +0 -57
  90. package/src/components/Header/Header.jsx +0 -161
  91. package/src/components/Logo/Logo.jsx +0 -51
  92. package/src/components/Widgets/AlignWidget.jsx +0 -80
  93. package/src/components/Widgets/BackgroundColorWidget.tsx +0 -17
  94. package/src/components/Widgets/BlocksObjectWidget.tsx +0 -333
  95. package/src/components/Widgets/FooterLinksWidget.tsx +0 -106
  96. package/src/components/Widgets/FooterLogosWidget.tsx +0 -120
  97. package/src/static/container-query-polyfill.modern.js +0 -1
  98. package/src/types/index.d.ts +0 -1
package/locales/volto.pot CHANGED
@@ -1,7 +1,7 @@
1
1
  msgid ""
2
2
  msgstr ""
3
3
  "Project-Id-Version: Plone\n"
4
- "POT-Creation-Date: 2024-05-31T09:46:26.312Z\n"
4
+ "POT-Creation-Date: 2025-04-22T18:37:47.615Z\n"
5
5
  "Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
6
6
  "Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
7
7
  "Content-Type: text/plain; charset=utf-8\n"
@@ -13,16 +13,48 @@ msgstr ""
13
13
  "Preferred-Encodings: utf-8\n"
14
14
  "Domain: volto\n"
15
15
 
16
+ #. Default: "Action"
17
+ #: components/Widgets/schema/headerActionsSchema
18
+ msgid "Action"
19
+ msgstr ""
20
+
21
+ #. Default: "Add"
22
+ #: components/Widgets/BlocksObject
23
+ #: components/Widgets/ObjectList
24
+ msgid "Add (object list)"
25
+ msgstr ""
26
+
27
+ #. Default: "Add action"
28
+ #: components/Widgets/schema/headerActionsSchema
29
+ msgid "Add action"
30
+ msgstr ""
31
+
32
+ #. Default: "Add link"
33
+ #: components/Widgets/schema/footerLinksSchema
34
+ msgid "Add link"
35
+ msgstr ""
36
+
37
+ #. Default: "Add logo"
38
+ #: components/Widgets/schema/footerLogosSchema
39
+ msgid "Add logo"
40
+ msgstr ""
41
+
42
+ #. Default: "Alignment"
43
+ #: components/Blocks/Button/schema
44
+ #: components/Blocks/Separator/schema
45
+ msgid "Alignment"
46
+ msgstr ""
47
+
48
+ #. Default: "Alt text"
49
+ #: components/Widgets/schema/footerLogosSchema
50
+ msgid "Alt text"
51
+ msgstr ""
52
+
16
53
  #. Default: "Back"
17
54
  #: components/MobileNavigation/MobileNavigation
18
55
  msgid "Back"
19
56
  msgstr ""
20
57
 
21
- #. Default: "Back to homepage"
22
- #: components/Logo/Logo
23
- msgid "Back to homepage"
24
- msgstr ""
25
-
26
58
  #. Default: "Background color"
27
59
  #: components/Blocks/schema
28
60
  msgid "Background color"
@@ -30,6 +62,8 @@ msgstr ""
30
62
 
31
63
  #. Default: "Block Width"
32
64
  #: components/Blocks/Button/schema
65
+ #: components/Blocks/Image/schema
66
+ #: components/Blocks/Separator/schema
33
67
  msgid "Block Width"
34
68
  msgstr ""
35
69
 
@@ -38,18 +72,13 @@ msgstr ""
38
72
  msgid "Breadcrumbs"
39
73
  msgstr ""
40
74
 
41
- #. Default: "Browse the site, drop an image, or type an URL"
42
- #: components/Blocks/Image/Edit
43
- msgid "Browse the site, drop an image, or type an URL"
44
- msgstr ""
45
-
46
75
  #. Default: "Button text"
47
76
  #: components/Blocks/Slider/schema
48
77
  msgid "Button text"
49
78
  msgstr ""
50
79
 
51
80
  #. Default: "Center"
52
- #: components/Widgets/AlignWidget
81
+ #: components/Widgets/BlockAlignment
53
82
  msgid "Center"
54
83
  msgstr ""
55
84
 
@@ -59,6 +88,17 @@ msgstr ""
59
88
  msgid "Close menu"
60
89
  msgstr ""
61
90
 
91
+ #. Default: "Collapse item"
92
+ #: components/Widgets/BlocksObject
93
+ #: components/Widgets/ObjectList
94
+ msgid "Collapse item"
95
+ msgstr ""
96
+
97
+ #. Default: "The color contrast ratio {contrastRatio}:1 might not be accessible for all. WCAG Level: {complianceLevel}"
98
+ #: components/Widgets/ColorContrastChecker
99
+ msgid "ColorContrastCheckerMessage"
100
+ msgstr ""
101
+
62
102
  #. Default: "Contact"
63
103
  #: components/Blocks/EventMetadata/View
64
104
  msgid "Contact"
@@ -74,8 +114,14 @@ msgstr ""
74
114
  msgid "Copyright"
75
115
  msgstr ""
76
116
 
117
+ #. Default: "Default"
118
+ #: components/Widgets/BlockWidth
119
+ msgid "Default"
120
+ msgstr ""
121
+
77
122
  #. Default: "Description"
78
123
  #: components/Blocks/Image/schema
124
+ #: components/Widgets/schema/footerLogosSchema
79
125
  msgid "Description"
80
126
  msgstr ""
81
127
 
@@ -84,6 +130,12 @@ msgstr ""
84
130
  msgid "Distributed under the {license}."
85
131
  msgstr ""
86
132
 
133
+ #. Default: "Empty object list"
134
+ #: components/Widgets/BlocksObject
135
+ #: components/Widgets/ObjectList
136
+ msgid "Empty object list"
137
+ msgstr ""
138
+
87
139
  #. Default: "End"
88
140
  #: components/Blocks/EventMetadata/View
89
141
  msgid "End"
@@ -95,7 +147,7 @@ msgid "Flag align"
95
147
  msgstr ""
96
148
 
97
149
  #. Default: "Full"
98
- #: components/Widgets/AlignWidget
150
+ #: components/Widgets/BlockWidth
99
151
  msgid "Full"
100
152
  msgstr ""
101
153
 
@@ -104,13 +156,24 @@ msgstr ""
104
156
  msgid "GNU GPL license"
105
157
  msgstr ""
106
158
 
159
+ #. Default: "Headline"
160
+ #: components/Widgets/schema/footerLogosSchema
161
+ msgid "Headline"
162
+ msgstr ""
163
+
107
164
  #. Default: "Hide Button"
108
165
  #: components/Blocks/Slider/schema
109
166
  msgid "Hide Button"
110
167
  msgstr ""
111
168
 
169
+ #. Default: "Hide description"
170
+ #: components/Widgets/schema/footerLogosSchema
171
+ msgid "Hide description"
172
+ msgstr ""
173
+
112
174
  #. Default: "Home"
113
175
  #: components/Breadcrumbs/Breadcrumbs
176
+ #: components/Logo/Logo
114
177
  #: components/MobileNavigation/MobileNavigation
115
178
  msgid "Home"
116
179
  msgstr ""
@@ -125,11 +188,36 @@ msgstr ""
125
188
  msgid "Image"
126
189
  msgstr ""
127
190
 
191
+ #. Default: "Large"
192
+ #: components/Widgets/Size
193
+ msgid "Large"
194
+ msgstr ""
195
+
196
+ #. Default: "Layout"
197
+ #: components/Widgets/BlockWidth
198
+ msgid "Layout"
199
+ msgstr ""
200
+
128
201
  #. Default: "Left"
129
- #: components/Widgets/AlignWidget
202
+ #: components/Widgets/BlockAlignment
130
203
  msgid "Left"
131
204
  msgstr ""
132
205
 
206
+ #. Default: "Link"
207
+ #: components/Widgets/schema/footerLinksSchema
208
+ msgid "Link"
209
+ msgstr ""
210
+
211
+ #. Default: "List"
212
+ #: index
213
+ msgid "List"
214
+ msgstr ""
215
+
216
+ #. Default: "List with images"
217
+ #: index
218
+ msgid "List with images"
219
+ msgstr ""
220
+
133
221
  #. Default: "Location"
134
222
  #: components/Blocks/EventMetadata/View
135
223
  msgid "Location"
@@ -140,16 +228,36 @@ msgstr ""
140
228
  msgid "Log in"
141
229
  msgstr ""
142
230
 
231
+ #. Default: "Logo"
232
+ #: components/Widgets/schema/footerLogosSchema
233
+ msgid "Logo"
234
+ msgstr ""
235
+
236
+ #. Default: "Logo image"
237
+ #: components/Widgets/schema/footerLogosSchema
238
+ msgid "Logo image"
239
+ msgstr ""
240
+
241
+ #. Default: "Logo of"
242
+ #: components/Logo/Logo
243
+ msgid "Logo of"
244
+ msgstr ""
245
+
246
+ #. Default: "Medium"
247
+ #: components/Widgets/Size
248
+ msgid "Medium"
249
+ msgstr ""
250
+
251
+ #. Default: "Narrow"
252
+ #: components/Widgets/BlockWidth
253
+ msgid "Narrow"
254
+ msgstr ""
255
+
143
256
  #. Default: "Next Page"
144
257
  #: components/Blocks/Listing/ListingBody
145
258
  msgid "Next Page"
146
259
  msgstr ""
147
260
 
148
- #. Default: "No date"
149
- #: components/Theme/EventView
150
- msgid "No date"
151
- msgstr ""
152
-
153
261
  #. Default: "No image selected"
154
262
  #: components/Blocks/Image/ImageSidebar
155
263
  msgid "No image selected"
@@ -160,6 +268,13 @@ msgstr ""
160
268
  msgid "No items found in this container."
161
269
  msgstr ""
162
270
 
271
+ #. Default: "Open in a new tab"
272
+ #: components/Widgets/schema/footerLinksSchema
273
+ #: components/Widgets/schema/footerLogosSchema
274
+ #: components/Widgets/schema/headerActionsSchema
275
+ msgid "Open in a new tab"
276
+ msgstr ""
277
+
163
278
  #. Default: "Open menu"
164
279
  #: components/MobileNavigation/MobileNavigation
165
280
  #: components/Navigation/Navigation
@@ -178,6 +293,7 @@ msgstr ""
178
293
 
179
294
  #. Default: "Please choose an existing content as source for this element"
180
295
  #: components/Blocks/Slider/DefaultBody
296
+ #: components/Blocks/Teaser/DefaultBody
181
297
  msgid "Please choose an existing content as source for this element"
182
298
  msgstr ""
183
299
 
@@ -211,13 +327,19 @@ msgstr ""
211
327
  msgid "Register"
212
328
  msgstr ""
213
329
 
330
+ #. Default: "Remove item"
331
+ #: components/Widgets/BlocksObject
332
+ #: components/Widgets/ObjectList
333
+ msgid "Remove item"
334
+ msgstr ""
335
+
214
336
  #. Default: "Result"
215
337
  #: components/Blocks/Listing/ListingBody
216
338
  msgid "Result"
217
339
  msgstr ""
218
340
 
219
341
  #. Default: "Right"
220
- #: components/Widgets/AlignWidget
342
+ #: components/Widgets/BlockAlignment
221
343
  msgid "Right"
222
344
  msgstr ""
223
345
 
@@ -251,9 +373,20 @@ msgstr ""
251
373
  msgid "Searched for"
252
374
  msgstr ""
253
375
 
254
- #. Default: "Site"
255
- #: components/Logo/Logo
256
- msgid "Site"
376
+ #. Default: "Settings"
377
+ #: components/Widgets/schema/footerLogosSchema
378
+ msgid "Settings"
379
+ msgstr ""
380
+
381
+ #. Default: "Short line"
382
+ #: components/Blocks/Separator/schema
383
+ msgid "Short line"
384
+ msgstr ""
385
+
386
+ #. Default: "Show item"
387
+ #: components/Widgets/BlocksObject
388
+ #: components/Widgets/ObjectList
389
+ msgid "Show item"
257
390
  msgstr ""
258
391
 
259
392
  #. Default: "Sitemap"
@@ -261,6 +394,11 @@ msgstr ""
261
394
  msgid "Sitemap"
262
395
  msgstr ""
263
396
 
397
+ #. Default: "Small"
398
+ #: components/Widgets/Size
399
+ msgid "Small"
400
+ msgstr ""
401
+
264
402
  #. Default: "Sorting"
265
403
  #: components/Blocks/Search/TopSideFacets
266
404
  msgid "Sorting"
@@ -281,6 +419,13 @@ msgstr ""
281
419
  msgid "Switch to"
282
420
  msgstr ""
283
421
 
422
+ #. Default: "Target"
423
+ #: components/Widgets/schema/footerLinksSchema
424
+ #: components/Widgets/schema/footerLogosSchema
425
+ #: components/Widgets/schema/headerActionsSchema
426
+ msgid "Target"
427
+ msgstr ""
428
+
284
429
  #. Default: "The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends."
285
430
  #: components/Footer/Footer
286
431
  msgid "The {plonecms} is {copyright} 2000-{current_year} by the {plonefoundation} and friends."
@@ -288,24 +433,17 @@ msgstr ""
288
433
 
289
434
  #. Default: "Title"
290
435
  #: components/Blocks/Image/schema
436
+ #: components/Widgets/schema/footerLinksSchema
437
+ #: components/Widgets/schema/footerLogosSchema
438
+ #: components/Widgets/schema/headerActionsSchema
291
439
  msgid "Title"
292
440
  msgstr ""
293
441
 
294
- #. Default: "Uploading image"
295
- #: components/Blocks/Image/Edit
296
- msgid "Uploading image"
297
- msgstr ""
298
-
299
442
  #. Default: "Website"
300
443
  #: components/Blocks/EventMetadata/View
301
444
  msgid "Website"
302
445
  msgstr ""
303
446
 
304
- #. Default: "Wide"
305
- #: components/Widgets/AlignWidget
306
- msgid "Wide"
307
- msgstr ""
308
-
309
447
  #. Default: "Clear image"
310
448
  #: components/Blocks/Image/ImageSidebar
311
449
  msgid "image_block_clear"
@@ -330,8 +468,3 @@ msgstr ""
330
468
  #: components/Blocks/Listing/ListingBody
331
469
  msgid "of"
332
470
  msgstr ""
333
-
334
- #. Default: ""
335
- #: components/Header/Header
336
- msgid "siteLabel"
337
- msgstr ""
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@kitconcept/volto-light-theme",
3
- "version": "6.0.0-alpha.9",
3
+ "version": "6.0.0",
4
4
  "description": "Volto Light Theme by kitconcept",
5
5
  "main": "src/index.ts",
6
- "types": "src/types/index.d.ts",
6
+ "types": "src/index.ts",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+ssh://git@github.com/kitconcept/volto-light-theme.git"
@@ -33,24 +33,33 @@
33
33
  "@types/react": "^18.3.12",
34
34
  "@types/react-dom": "^18.3.1",
35
35
  "release-it": "^17.7.0",
36
- "@plone/types": "1.0.0"
36
+ "@plone/types": "1.4.4"
37
37
  },
38
38
  "dependencies": {
39
+ "@dnd-kit/core": "6.0.8",
40
+ "@dnd-kit/sortable": "7.0.2",
41
+ "@dnd-kit/utilities": "3.2.2",
42
+ "react-animate-height": "^3.2.3",
43
+ "react-aria-components": "^1.7.0",
44
+ "react-colorful": "^5.6.1",
39
45
  "uuid": "^11.0.0",
40
- "@plone/components": "^2.2.1"
46
+ "@plone/components": "^3.0.2"
41
47
  },
42
48
  "peerDependencies": {
43
49
  "@eeacms/volto-accordion-block": "^10.4.6",
44
- "@kitconcept/volto-button-block": "^2.3.1 || ^3.0.3",
50
+ "@kitconcept/volto-banner-block": "^1.0.1",
51
+ "@kitconcept/volto-button-block": "^3.0.3",
45
52
  "@kitconcept/volto-dsgvo-banner": "^2.3.2",
46
53
  "@kitconcept/volto-heading-block": "^2.4.0",
47
- "@kitconcept/volto-highlight-block": "^4.0.0",
54
+ "@kitconcept/volto-highlight-block": "^4.1.0",
48
55
  "@kitconcept/volto-introduction-block": "^1.0.0",
49
56
  "@kitconcept/volto-separator-block": "^4.1.2",
50
57
  "@kitconcept/volto-slider-block": "^6.3.1",
58
+ "@plonegovbr/volto-social-media": "^2.0.0-alpha.5",
51
59
  "classnames": "^2.2.6",
52
60
  "lodash": "4.17.21",
53
61
  "react": "18.2.0",
62
+ "react-dom": "18.2.0",
54
63
  "react-intl": "^3.12.1",
55
64
  "react-redux": "^8.1.2",
56
65
  "react-router-dom": "^5.2.0"
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import { FormattedMessage, useIntl } from 'react-intl';
1
+ import { FormattedMessage } from 'react-intl';
3
2
  import FormattedDate from '@plone/volto/components/theme/FormattedDate/FormattedDate';
4
3
  import UniversalLink from '@plone/volto/components/manage/UniversalLink/UniversalLink';
5
4
  import { expandToBackendURL } from '@plone/volto/helpers/Url/Url';
@@ -7,14 +6,21 @@ import { Container } from '@plone/components';
7
6
 
8
7
  const EventMetadataView = (props) => {
9
8
  const content = props.properties;
10
- const dateOptions = {
11
- year: 'numeric',
12
- month: 'long',
13
- day: 'numeric',
14
- hour: 'numeric',
15
- minute: 'numeric',
16
- };
17
- const intl = useIntl();
9
+ const isWholeDay = !!content.whole_day;
10
+ const isOpenEnd = !content.end || !!content.open_end;
11
+ const dateOptions = isWholeDay
12
+ ? {
13
+ year: 'numeric',
14
+ month: 'long',
15
+ day: 'numeric',
16
+ }
17
+ : {
18
+ year: 'numeric',
19
+ month: 'long',
20
+ day: 'numeric',
21
+ hour: 'numeric',
22
+ minute: 'numeric',
23
+ };
18
24
 
19
25
  return (
20
26
  <div className="block eventMetadata ">
@@ -28,26 +34,26 @@ const EventMetadataView = (props) => {
28
34
  <div className="event-detail">
29
35
  {' '}
30
36
  {content?.start && (
31
- <FormattedDate date={content?.start} format={dateOptions} />
32
- )}{' '}
33
- {intl.locale === 'de' ? ' Uhr' : ''}
37
+ <FormattedDate date={content.start} format={dateOptions} />
38
+ )}
34
39
  </div>
35
40
  <div className="separator"></div>
36
41
  </div>
37
- <div className="event-title">
38
- <span className="event-heading">
39
- {' '}
40
- <FormattedMessage id="End" defaultMessage="End" />
41
- </span>
42
- <div className="event-detail">
43
- {' '}
44
- {content?.end && (
45
- <FormattedDate date={content?.end} format={dateOptions} />
46
- )}{' '}
47
- {intl.locale === 'de' ? ' Uhr' : ''}
42
+ {!isOpenEnd ? (
43
+ <div className="event-title">
44
+ <span className="event-heading">
45
+ {' '}
46
+ <FormattedMessage id="End" defaultMessage="End" />
47
+ </span>
48
+ <div className="event-detail">
49
+ {' '}
50
+ {content?.end && (
51
+ <FormattedDate date={content.end} format={dateOptions} />
52
+ )}
53
+ </div>
54
+ <div className="separator"></div>
48
55
  </div>
49
- <div className="separator"></div>
50
- </div>
56
+ ) : null}
51
57
  {content?.location && (
52
58
  <div className="event-title">
53
59
  <span className="event-heading">
@@ -1,11 +1,10 @@
1
1
  // See Customization for more info
2
- import React from 'react';
3
2
  import PropTypes from 'prop-types';
4
3
  import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink';
5
4
  import UniversalLink from '@plone/volto/components/manage/UniversalLink/UniversalLink';
6
- import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
7
-
8
- import { isInternalURL } from '@plone/volto/helpers/Url/Url';
5
+ import { flattenToAppURL, isInternalURL } from '@plone/volto/helpers/Url/Url';
6
+ import config from '@plone/volto/registry';
7
+ import DefaultSummary from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary';
9
8
 
10
9
  const DefaultTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
11
10
  let link = null;
@@ -24,16 +23,22 @@ const DefaultTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
24
23
  return (
25
24
  <>
26
25
  <div className="items">
27
- {items.map((item) => (
28
- <div className="listing-item" key={item['@id']}>
29
- <ConditionalLink item={item} condition={!isEditMode}>
30
- <div className="listing-body">
31
- <h2>{item.title ? item.title : item.id}</h2>
32
- <p>{item.description}</p>
33
- </div>
34
- </ConditionalLink>
35
- </div>
36
- ))}
26
+ {items.map((item) => {
27
+ const Summary =
28
+ config.getComponent({
29
+ name: 'Summary',
30
+ dependencies: [item['@type']],
31
+ }).component || DefaultSummary;
32
+ return (
33
+ <div className="listing-item" key={item['@id']}>
34
+ <ConditionalLink item={item} condition={!isEditMode}>
35
+ <div className="listing-body">
36
+ <Summary item={item} HeadingTag="h2" />
37
+ </div>
38
+ </ConditionalLink>
39
+ </div>
40
+ );
41
+ })}
37
42
  </div>
38
43
 
39
44
  {link && <div className="footer">{link}</div>}
@@ -2,11 +2,9 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink';
4
4
  import Component from '@plone/volto/components/theme/Component/Component';
5
- import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
6
-
5
+ import { flattenToAppURL, isInternalURL } from '@plone/volto/helpers/Url/Url';
7
6
  import config from '@plone/volto/registry';
8
-
9
- import { isInternalURL } from '@plone/volto/helpers/Url/Url';
7
+ import DefaultSummary from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary';
10
8
 
11
9
  const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
12
10
  let link = null;
@@ -27,11 +25,15 @@ const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
27
25
  <div className="items">
28
26
  {items.map((item) => {
29
27
  const ItemBodyTemplate = () => {
30
- const hasType = item['@type'];
31
28
  const CustomItemBodyTemplate = config.getComponent({
32
29
  name: 'GridListingItemTemplate',
33
- dependencies: [hasType],
30
+ dependencies: [item['@type']],
34
31
  }).component;
32
+ const Summary =
33
+ config.getComponent({
34
+ name: 'Summary',
35
+ dependencies: [item['@type']],
36
+ }).component || DefaultSummary;
35
37
 
36
38
  return CustomItemBodyTemplate ? (
37
39
  <CustomItemBodyTemplate item={item} />
@@ -47,12 +49,7 @@ const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
47
49
  )}
48
50
  <div className="item">
49
51
  <div className="content">
50
- {item?.head_title && (
51
- <div className="headline">{item.head_title}</div>
52
- )}
53
-
54
- <h2>{item?.title}</h2>
55
- {!item.hide_description && <p>{item?.description}</p>}
52
+ <Summary item={item} HeadingTag="h2" />
56
53
  </div>
57
54
  </div>
58
55
  </div>
@@ -2,10 +2,9 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import ConditionalLink from '@plone/volto/components/manage/ConditionalLink/ConditionalLink';
4
4
  import Component from '@plone/volto/components/theme/Component/Component';
5
- import { flattenToAppURL } from '@plone/volto/helpers/Url/Url';
5
+ import { flattenToAppURL, isInternalURL } from '@plone/volto/helpers/Url/Url';
6
6
  import config from '@plone/volto/registry';
7
-
8
- import { isInternalURL } from '@plone/volto/helpers/Url/Url';
7
+ import DefaultSummary from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary';
9
8
 
10
9
  const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
11
10
  let link = null;
@@ -25,11 +24,15 @@ const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
25
24
  <>
26
25
  <div className="items">
27
26
  {items.map((item) => {
28
- const hasType = item['@type'];
29
27
  const CustomItemBodyTemplate = config.getComponent({
30
28
  name: 'SummaryListingItemTemplate',
31
- dependencies: [hasType],
29
+ dependencies: [item['@type']],
32
30
  }).component;
31
+ const Summary =
32
+ config.getComponent({
33
+ name: 'Summary',
34
+ dependencies: [item['@type']],
35
+ }).component || DefaultSummary;
33
36
 
34
37
  const ItemBodyTemplate = () =>
35
38
  CustomItemBodyTemplate ? (
@@ -38,8 +41,7 @@ const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
38
41
  <>
39
42
  <Component componentName="PreviewImage" item={item} alt="" />
40
43
  <div className="listing-body">
41
- <h3>{item.title ? item.title : item.id}</h3>
42
- <p>{item.description}</p>
44
+ <Summary item={item} HeadingTag="h3" />
43
45
  </div>
44
46
  </>
45
47
  );