@kitconcept/volto-light-theme 7.0.0-beta.6 → 7.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.
- package/.changelog.draft +3 -2
- package/CHANGELOG.md +19 -0
- package/locales/de/LC_MESSAGES/volto.po +1 -1
- package/package.json +1 -1
- package/src/components/Blocks/Listing/DefaultTemplate.jsx +2 -1
- package/src/components/Blocks/Listing/GridTemplate.jsx +13 -12
- package/src/components/Blocks/Listing/SummaryTemplate.jsx +2 -2
- package/src/components/Blocks/Slider/Data.jsx +20 -6
- package/src/components/Blocks/Teaser/DefaultBody.tsx +7 -6
- package/src/components/Summary/DefaultSummary.tsx +5 -0
- package/src/components/Theming/Theming.tsx +1 -1
- package/src/theme/blocks/_accordion.scss +3 -0
- package/src/theme/blocks/_search.scss +2 -0
- package/src/theme/card.scss +2 -2
- package/src/theme/person.scss +65 -27
package/.changelog.draft
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
## 7.0.0
|
|
1
|
+
## 7.0.0 (2025-09-25)
|
|
2
2
|
|
|
3
3
|
### Bugfix
|
|
4
4
|
|
|
5
|
-
-
|
|
5
|
+
- Ensure the Refresh Content button correctly loads the preview image when using preview_image_link for Slider block. @iFlameing
|
|
6
|
+
- Last german literal fix: ALT-Text. @sneridagh
|
|
6
7
|
|
|
7
8
|
|
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
<!-- towncrier release notes start -->
|
|
10
10
|
|
|
11
|
+
## 7.0.0 (2025-09-25)
|
|
12
|
+
|
|
13
|
+
### Bugfix
|
|
14
|
+
|
|
15
|
+
- Ensure the Refresh Content button correctly loads the preview image when using preview_image_link for Slider block. @iFlameing
|
|
16
|
+
- Last german literal fix: ALT-Text. @sneridagh
|
|
17
|
+
|
|
18
|
+
## 7.0.0-beta.7 (2025-09-24)
|
|
19
|
+
|
|
20
|
+
### Feature
|
|
21
|
+
|
|
22
|
+
- Make it possible for custom Summary components to disable being linked. @davisagli
|
|
23
|
+
|
|
24
|
+
### Bugfix
|
|
25
|
+
|
|
26
|
+
- Enable add block button in accordion block @iRohitSingh [#668](https://github.com/kitconcept/volto-light-theme/pull/668)
|
|
27
|
+
- Safely check for `voltolighttheme.theme` behavior on Theming component. @ericof [#671](https://github.com/kitconcept/volto-light-theme/pull/671)
|
|
28
|
+
- Fix styles for person listing in Search block grid variation. @danalvrz
|
|
29
|
+
|
|
11
30
|
## 7.0.0-beta.6 (2025-09-22)
|
|
12
31
|
|
|
13
32
|
### Bugfix
|
|
@@ -67,7 +67,7 @@ msgstr "Ausrichtung"
|
|
|
67
67
|
#: components/Widgets/schema/footerLogosSchema
|
|
68
68
|
#: components/Widgets/schema/iconLinkListSchema
|
|
69
69
|
msgid "Alt text"
|
|
70
|
-
msgstr "
|
|
70
|
+
msgstr "ALT-Text"
|
|
71
71
|
|
|
72
72
|
#. Default: "Ascending"
|
|
73
73
|
#: components/Blocks/EventCalendar/Search/components/SortOn
|
package/package.json
CHANGED
|
@@ -31,6 +31,7 @@ const DefaultTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
31
31
|
name: 'Summary',
|
|
32
32
|
dependencies: [item['@type']],
|
|
33
33
|
}).component || DefaultSummary;
|
|
34
|
+
const showLink = !Summary.hideLink && !isEditMode;
|
|
34
35
|
return (
|
|
35
36
|
<div
|
|
36
37
|
className={cx('listing-item', {
|
|
@@ -38,7 +39,7 @@ const DefaultTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
38
39
|
})}
|
|
39
40
|
key={item['@id']}
|
|
40
41
|
>
|
|
41
|
-
<Card href={
|
|
42
|
+
<Card href={showLink ? item['@id'] : null}>
|
|
42
43
|
<Card.Summary>
|
|
43
44
|
<Summary item={item} HeadingTag="h2" />
|
|
44
45
|
</Card.Summary>
|
|
@@ -26,18 +26,19 @@ const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
26
26
|
<>
|
|
27
27
|
<div className="items">
|
|
28
28
|
{items.map((item) => {
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const CustomItemBodyTemplate = config.getComponent({
|
|
30
|
+
name: 'GridListingItemTemplate',
|
|
31
|
+
dependencies: [item['@type']],
|
|
32
|
+
}).component;
|
|
33
|
+
const Summary =
|
|
34
|
+
config.getComponent({
|
|
35
|
+
name: 'Summary',
|
|
32
36
|
dependencies: [item['@type']],
|
|
33
|
-
}).component;
|
|
34
|
-
|
|
35
|
-
config.getComponent({
|
|
36
|
-
name: 'Summary',
|
|
37
|
-
dependencies: [item['@type']],
|
|
38
|
-
}).component || DefaultSummary;
|
|
37
|
+
}).component || DefaultSummary;
|
|
38
|
+
const showLink = !Summary.hideLink && !isEditMode;
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
const ItemBodyTemplate = (props) =>
|
|
41
|
+
CustomItemBodyTemplate ? (
|
|
41
42
|
<CustomItemBodyTemplate item={item} />
|
|
42
43
|
) : (
|
|
43
44
|
<>
|
|
@@ -53,7 +54,7 @@ const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
53
54
|
</Card.Summary>
|
|
54
55
|
</>
|
|
55
56
|
);
|
|
56
|
-
|
|
57
|
+
|
|
57
58
|
return (
|
|
58
59
|
<div
|
|
59
60
|
className={cx('listing-item', {
|
|
@@ -61,7 +62,7 @@ const GridTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
61
62
|
})}
|
|
62
63
|
key={item['@id']}
|
|
63
64
|
>
|
|
64
|
-
<Card href={
|
|
65
|
+
<Card href={showLink ? item['@id'] : null}>
|
|
65
66
|
<ItemBodyTemplate item={item} />
|
|
66
67
|
</Card>
|
|
67
68
|
</div>
|
|
@@ -34,7 +34,7 @@ const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
34
34
|
name: 'Summary',
|
|
35
35
|
dependencies: [item['@type']],
|
|
36
36
|
}).component || DefaultSummary;
|
|
37
|
-
|
|
37
|
+
const showLink = !Summary.hideLink && !isEditMode;
|
|
38
38
|
const ItemBodyTemplate = (props) =>
|
|
39
39
|
CustomItemBodyTemplate ? (
|
|
40
40
|
<CustomItemBodyTemplate item={item} />
|
|
@@ -57,7 +57,7 @@ const SummaryTemplate = ({ items, linkTitle, linkHref, isEditMode }) => {
|
|
|
57
57
|
})}
|
|
58
58
|
key={item['@id']}
|
|
59
59
|
>
|
|
60
|
-
<Card href={
|
|
60
|
+
<Card href={showLink ? item['@id'] : null}>
|
|
61
61
|
<ItemBodyTemplate item={item} />
|
|
62
62
|
</Card>
|
|
63
63
|
</div>
|
|
@@ -28,6 +28,16 @@ const messages = defineMessages({
|
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
+
function getImageField(resp) {
|
|
32
|
+
if (!resp) return null;
|
|
33
|
+
|
|
34
|
+
if (resp.preview_image_link) return 'preview_image_link';
|
|
35
|
+
if (resp.preview_image) return 'preview_image';
|
|
36
|
+
if (resp.image) return 'image';
|
|
37
|
+
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
|
|
31
41
|
const SliderData = (props) => {
|
|
32
42
|
const {
|
|
33
43
|
block,
|
|
@@ -48,16 +58,20 @@ const SliderData = (props) => {
|
|
|
48
58
|
'@type': resp?.['@type'],
|
|
49
59
|
Description: resp?.description,
|
|
50
60
|
Title: resp.title,
|
|
51
|
-
hasPreviewImage: resp
|
|
61
|
+
hasPreviewImage: getImageField(resp) ? true : false,
|
|
52
62
|
head_title: resp.head_title ?? null,
|
|
53
|
-
image_field: resp
|
|
54
|
-
? 'preview_image'
|
|
55
|
-
: resp?.image
|
|
56
|
-
? 'image'
|
|
57
|
-
: null,
|
|
63
|
+
image_field: getImageField(resp),
|
|
58
64
|
image_scales: {
|
|
59
65
|
preview_image: [resp?.preview_image],
|
|
60
66
|
image: [resp?.image],
|
|
67
|
+
preview_image_link: resp?.preview_image_link
|
|
68
|
+
? [
|
|
69
|
+
{
|
|
70
|
+
...resp?.preview_image_link?.['image_scales']?.image?.[0],
|
|
71
|
+
base_path: resp?.preview_image_link?.['@id'],
|
|
72
|
+
},
|
|
73
|
+
]
|
|
74
|
+
: [],
|
|
61
75
|
},
|
|
62
76
|
title: resp.title,
|
|
63
77
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isInternalURL } from '@plone/volto/helpers/Url/Url';
|
|
2
2
|
import DefaultSummary from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary';
|
|
3
|
+
import type { SummaryComponentType } from '@kitconcept/volto-light-theme/components/Summary/DefaultSummary';
|
|
3
4
|
import Card from '../../../primitives/Card/Card';
|
|
4
5
|
import config from '@plone/volto/registry';
|
|
5
6
|
|
|
@@ -10,11 +11,11 @@ const TeaserDefaultTemplate = (props) => {
|
|
|
10
11
|
const url = data.preview_image?.[0]?.['@id'];
|
|
11
12
|
|
|
12
13
|
const Image = config.getComponent('Image').component;
|
|
13
|
-
const Summary =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
const Summary = (config.getComponent({
|
|
15
|
+
name: 'Summary',
|
|
16
|
+
dependencies: [href['@type']],
|
|
17
|
+
}).component || DefaultSummary) as SummaryComponentType;
|
|
18
|
+
const showLink = !Summary.hideLink && !isEditMode;
|
|
18
19
|
const { openExternalLinkInNewTab } = config.settings;
|
|
19
20
|
const openLinkInNewTab =
|
|
20
21
|
data.openLinkInNewTab ||
|
|
@@ -23,7 +24,7 @@ const TeaserDefaultTemplate = (props) => {
|
|
|
23
24
|
|
|
24
25
|
return (
|
|
25
26
|
<Card
|
|
26
|
-
href={
|
|
27
|
+
href={showLink ? href['@id'] : null}
|
|
27
28
|
openLinkInNewTab={openLinkInNewTab}
|
|
28
29
|
>
|
|
29
30
|
<Card.Image
|
|
@@ -8,6 +8,10 @@ export type DefaultSummaryProps = {
|
|
|
8
8
|
hide_description?: boolean;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
export type SummaryComponentType = React.ComponentType<DefaultSummaryProps> & {
|
|
12
|
+
hideLink?: boolean;
|
|
13
|
+
};
|
|
14
|
+
|
|
11
15
|
const DefaultSummary = (props: DefaultSummaryProps) => {
|
|
12
16
|
const { item, HeadingTag = 'h3', a11yLabelId, hide_description } = props;
|
|
13
17
|
return (
|
|
@@ -20,5 +24,6 @@ const DefaultSummary = (props: DefaultSummaryProps) => {
|
|
|
20
24
|
</>
|
|
21
25
|
);
|
|
22
26
|
};
|
|
27
|
+
DefaultSummary.hideLink = false;
|
|
23
28
|
|
|
24
29
|
export default DefaultSummary;
|
|
@@ -48,7 +48,7 @@ const Theming = ({ content }: { content: Content }) => {
|
|
|
48
48
|
const addingFromInherited =
|
|
49
49
|
location.pathname.endsWith('/add') &&
|
|
50
50
|
flattenToAppURL(
|
|
51
|
-
content?.['@components']?.inherit?.['voltolighttheme.theme']
|
|
51
|
+
content?.['@components']?.inherit?.['voltolighttheme.theme']?.from['@id'],
|
|
52
52
|
) === getBaseUrl(location.pathname);
|
|
53
53
|
|
|
54
54
|
let liveContent;
|
package/src/theme/card.scss
CHANGED
package/src/theme/person.scss
CHANGED
|
@@ -227,37 +227,72 @@ body .block.gridBlock .contained .person-teaser .card-inner {
|
|
|
227
227
|
.description {
|
|
228
228
|
margin-bottom: $spacing-small;
|
|
229
229
|
}
|
|
230
|
+
|
|
231
|
+
.summary-extra-info.email {
|
|
232
|
+
a {
|
|
233
|
+
width: auto;
|
|
234
|
+
}
|
|
235
|
+
svg.icon {
|
|
236
|
+
margin-right: 8px;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
230
239
|
}
|
|
231
240
|
}
|
|
232
|
-
}
|
|
233
241
|
|
|
234
|
-
.
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
align-items: inherit;
|
|
242
|
+
&:not(.grid) .listing-item.person-listing {
|
|
243
|
+
.summary-room-phone {
|
|
244
|
+
justify-content: flex-start;
|
|
245
|
+
gap: 0;
|
|
246
|
+
.summary-extra-info {
|
|
247
|
+
&:not(:last-child)::after {
|
|
248
|
+
margin: 0 7px 0 10px;
|
|
249
|
+
content: '|';
|
|
250
|
+
}
|
|
251
|
+
}
|
|
245
252
|
}
|
|
246
253
|
}
|
|
247
|
-
|
|
248
|
-
padding-right: 0px !important;
|
|
249
|
-
padding-left: 0px !important;
|
|
250
|
-
text-align: center;
|
|
254
|
+
}
|
|
251
255
|
|
|
252
|
-
|
|
253
|
-
|
|
256
|
+
.block.listing.grid,
|
|
257
|
+
.block.search.grid {
|
|
258
|
+
.listing-item.person-listing {
|
|
259
|
+
.card {
|
|
260
|
+
background: var(--theme-color);
|
|
254
261
|
}
|
|
255
|
-
|
|
262
|
+
.image-wrapper {
|
|
263
|
+
margin: 0 auto;
|
|
264
|
+
}
|
|
265
|
+
.listing-item {
|
|
266
|
+
&,
|
|
267
|
+
& a {
|
|
268
|
+
align-items: inherit;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
.card-summary {
|
|
272
|
+
padding-right: 0px !important;
|
|
273
|
+
padding-left: 0px !important;
|
|
274
|
+
text-align: center;
|
|
256
275
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
276
|
+
.description {
|
|
277
|
+
margin-bottom: $spacing-small !important;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.summary-extra-info {
|
|
282
|
+
justify-content: center;
|
|
283
|
+
}
|
|
284
|
+
.summary-room-phone {
|
|
285
|
+
display: inline-flex;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.summary-extra-info.email {
|
|
289
|
+
svg.icon {
|
|
290
|
+
margin-right: 10px;
|
|
291
|
+
}
|
|
292
|
+
a {
|
|
293
|
+
width: auto;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
261
296
|
}
|
|
262
297
|
}
|
|
263
298
|
|
|
@@ -308,10 +343,13 @@ body.person-squared-images,
|
|
|
308
343
|
}
|
|
309
344
|
}
|
|
310
345
|
}
|
|
311
|
-
.block.listing
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
346
|
+
.block.listing,
|
|
347
|
+
.block.search {
|
|
348
|
+
.listing-item.person-listing .card-summary {
|
|
349
|
+
.summary-room-phone {
|
|
350
|
+
flex-direction: column;
|
|
351
|
+
gap: 0;
|
|
352
|
+
}
|
|
315
353
|
}
|
|
316
354
|
}
|
|
317
355
|
}
|