@kitconcept/website 2.0.0-alpha.8 → 2.0.0-beta.1

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 CHANGED
@@ -1,7 +1,8 @@
1
- ## 2.0.0-alpha.8 (2026-02-06)
1
+ ## 2.0.0-beta.1 (2026-06-23)
2
2
 
3
- ### Bugfix
3
+ ### Feature
4
4
 
5
- - Volto 19a23, core 2a9, VLT8a15 @sneridagh
5
+ - Add Person content type styled @iRohitSingh [#41](https://github.com/kitconcept/kitconcept-website/issue/41)
6
+ - Upgrade kitconcept-core to version 2.0.0-beta.1. @ericof [#66](https://github.com/kitconcept/kitconcept-website/issue/66)
6
7
 
7
8
 
package/.release-it.json CHANGED
@@ -4,15 +4,18 @@
4
4
  },
5
5
  "hooks": {
6
6
  "after:bump": [
7
- "pipx run towncrier build --draft --yes --version ${version} > .changelog.draft",
8
- "pipx run towncrier build --yes --version ${version}",
7
+ "node -e \"const fs=require('fs');const m=JSON.parse(fs.readFileSync('../../mrs.developer.json','utf8'));if(!m.core||!m.core.tag){console.error('Missing mrs.developer core.tag');process.exit(1);}const p=JSON.parse(fs.readFileSync('package.json','utf8'));p.volto_version=m.core.tag;fs.writeFileSync('package.json',JSON.stringify(p,null,2)+'\\n');\"",
8
+ "git add package.json",
9
+ "uvx towncrier build --draft --yes --version ${version} > .changelog.draft",
10
+ "uvx towncrier build --yes --version ${version}",
9
11
  "cp ../../README.md ./ && cp CHANGELOG.md ../../CHANGELOG.md",
10
- "git add ../../CHANGELOG.md"
12
+ "python3 -c 'import json; data = json.load(open(\"../../package.json\")); data[\"version\"] = \"${version}\"; json.dump(data, open(\"../../package.json\", \"w\"), indent=2)'",
13
+ "git add ../../CHANGELOG.md ../../package.json"
11
14
  ],
12
15
  "after:release": "rm .changelog.draft README.md"
13
16
  },
14
17
  "git": {
15
- "changelog": "pipx run towncrier build --draft --yes --version 0.0.0",
18
+ "changelog": "uvx towncrier build --draft --yes --version 0.0.0",
16
19
  "commit": false,
17
20
  "tag": false
18
21
  },
package/CHANGELOG.md CHANGED
@@ -8,6 +8,135 @@
8
8
 
9
9
  <!-- towncrier release notes start -->
10
10
 
11
+ ## 2.0.0-beta.1 (2026-06-23)
12
+
13
+ ### Feature
14
+
15
+ - Add Person content type styled @iRohitSingh [#41](https://github.com/kitconcept/kitconcept-website/issue/41)
16
+ - Upgrade kitconcept-core to version 2.0.0-beta.1. @ericof [#66](https://github.com/kitconcept/kitconcept-website/issue/66)
17
+
18
+ ## 2.0.0-alpha.27 (2026-06-12)
19
+
20
+ ### Bugfix
21
+
22
+ - Removes the "View" select from the "More" menu in the Toolbar.
23
+ Upgrade to Volto 19.1.4.
24
+ See https://github.com/plone/volto/releases/tag/19.1.4
25
+ See https://github.com/kitconcept/volto-light-theme/releases/tag/8.0.0a30 @sneridagh
26
+ - Update to VLT and Volto 19.1.2. @sneridagh
27
+
28
+ See https://github.com/plone/volto/releases/tag/19.1.2
29
+ See https://github.com/kitconcept/volto-light-theme/releases/tag/8.0.0a29
30
+
31
+ ## 2.0.0-alpha.26 (2026-06-08)
32
+
33
+ ### Bugfix
34
+
35
+ - Fixed accordion does not work with the "Order" tab. Use `@eea/volto-accordion-block` 12.0.0. @Tishasoumya-02
36
+ - Upgrade Volto 19.1.0 @sneridagh
37
+
38
+ ### Internal
39
+
40
+ - Added acceptance tests infrastructure. @sneridagh [#30](https://github.com/kitconcept/kitconcept-website/issue/30)
41
+
42
+ ## 2.0.0-alpha.25 (2026-05-26)
43
+
44
+ ## 2.0.0-alpha.24 (2026-05-15)
45
+
46
+ ### Bugfix
47
+
48
+ - Update to core 2a18 and VLT 2a28. @sneridagh
49
+
50
+ ## 2.0.0-alpha.23 (2026-05-06)
51
+
52
+ ### Internal
53
+
54
+ - Update to @kitconcept/core 2.0.0a18 (no significant frontend changes). @davisagli
55
+
56
+ ## 2.0.0-alpha.22 (2026-05-06)
57
+
58
+ ### Bugfix
59
+
60
+ - Update to k.core 2a16.
61
+ https://github.com/kitconcept/kitconcept-core/releases/tag/2.0.0a15
62
+ https://github.com/kitconcept/kitconcept-core/releases/tag/2.0.0a16 @sneridagh
63
+
64
+ ## 2.0.0-alpha.21 (2026-05-04)
65
+
66
+ ### Bugfix
67
+
68
+ - Upgrade to Volto 19a33.
69
+ Language fix. @sneridagh
70
+
71
+ ## 2.0.0-alpha.20 (2026-04-30)
72
+
73
+ ### Bugfix
74
+
75
+ - Update to Volto 19a32.
76
+ https://github.com/plone/volto/releases/tag/19.0.0-alpha.32 @sneridagh
77
+
78
+ ## 2.0.0-alpha.19 (2026-04-30)
79
+
80
+ ### Bugfix
81
+
82
+ - Upgrade Volto 19a31 and VLT 8a24.
83
+ https://github.com/kitconcept/volto-light-theme/releases/tag/8.0.0a24 @sneridagh
84
+
85
+ ## 2.0.0-alpha.18 (2026-04-22)
86
+
87
+ ## 2.0.0-alpha.17 (2026-04-22)
88
+
89
+ ### Internal
90
+
91
+ - Rerelease of 2a16. @sneridagh
92
+
93
+ ## 2.0.0-alpha.16 (2026-04-21)
94
+
95
+ ## 2.0.0-alpha.15 (2026-04-21)
96
+
97
+ ### Bugfix
98
+
99
+ - Update to volto-light-theme 8.0.0a20 (footer improvements). @davisagli
100
+
101
+ ## 2.0.0-alpha.14 (2026-04-17)
102
+
103
+ ### Bugfix
104
+
105
+ - Update VLT 8a19 and Volto 19a29. @sneridagh
106
+
107
+ ## 2.0.0-alpha.13 (2026-03-31)
108
+
109
+ ### Feature
110
+
111
+ - Add ContactList block. @iFlameing
112
+ - See https://github.com/kitconcept/kitconcept-core/releases/tag/2.0.0a14 @sneridagh
113
+
114
+ ## 2.0.0-alpha.12 (2026-03-09)
115
+
116
+ ### Feature
117
+
118
+ - Added add-on @plone-collective/volto-image-editor. @sneridagh
119
+
120
+ ## 2.0.0-alpha.11 (2026-03-04)
121
+
122
+ ### Feature
123
+
124
+ - Update to VLT 8a17.
125
+ See https://github.com/kitconcept/volto-light-theme/releases/tag/8.0.0a17 @sneridagh [#vlt8a17](https://github.com/kitconcept/kitconcept-website/issue/vlt8a17)
126
+
127
+ ### Internal
128
+
129
+ - Added command for upgrading dependencies. @davisagli @sneridagh
130
+
131
+ ## 2.0.0-alpha.10 (2026-02-16)
132
+
133
+ ### Bugfix
134
+
135
+ - Update to core 2a10.
136
+ See https://github.com/kitconcept/kitconcept-core/releases/tag/2.0.0a10 @sneridagh
137
+
138
+ ## 2.0.0-alpha.9 (2026-02-09)
139
+
11
140
  ## 2.0.0-alpha.8 (2026-02-06)
12
141
 
13
142
  ### Bugfix
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitconcept/website",
3
- "version": "2.0.0-alpha.8",
3
+ "version": "2.0.0-beta.1",
4
4
  "description": "A CMS solution for public websites. Created by kitconcept.",
5
5
  "main": "src/index.ts",
6
6
  "license": "MIT",
@@ -32,8 +32,8 @@
32
32
  "release-it": "^19.0.5",
33
33
  "typescript": "^5.7.3",
34
34
  "vitest": "^3.1.2",
35
- "@plone/scripts": "4.0.0-alpha.4",
36
- "@plone/types": "2.0.0-alpha.14"
35
+ "@plone/scripts": "4.0.1",
36
+ "@plone/types": "2.0.0"
37
37
  },
38
38
  "addons": [
39
39
  "@eeacms/volto-accordion-block",
@@ -41,6 +41,7 @@
41
41
  "@kitconcept/volto-bm3-compat",
42
42
  "@kitconcept/volto-button-block",
43
43
  "@kitconcept/volto-calendar-block",
44
+ "@kitconcept/volto-contact-block",
44
45
  "@kitconcept/volto-carousel-block",
45
46
  "@kitconcept/volto-dsgvo-banner",
46
47
  "@kitconcept/volto-heading-block",
@@ -51,28 +52,32 @@
51
52
  "@kitconcept/volto-slider-block",
52
53
  "@plonegovbr/volto-social-media",
53
54
  "@plone/volto-form-block",
55
+ "@plone-collective/volto-image-editor",
54
56
  "@kitconcept/volto-light-theme",
55
57
  "@kitconcept/core"
56
58
  ],
57
59
  "dependencies": {
58
- "@eeacms/volto-accordion-block": "^10.4.6",
60
+ "@eeacms/volto-accordion-block": "^12.0.0",
59
61
  "@plonegovbr/volto-social-media": "^3.0.0-alpha.0",
60
62
  "@plone/volto-form-block": "^1.0.0-alpha.0",
61
- "@kitconcept/volto-light-theme": "8.0.0-alpha.15",
62
- "@kitconcept/core": "2.0.0-alpha.9",
63
- "@kitconcept/volto-button-block": "5.0.0-alpha.0",
64
- "@kitconcept/volto-calendar-block": "1.0.0-alpha.6",
65
- "@kitconcept/volto-banner-block": "1.1.0",
66
- "@kitconcept/volto-carousel-block": "3.0.0-alpha.0",
63
+ "@plone-collective/volto-image-editor": "1.0.1",
64
+ "@kitconcept/core": "2.0.0-beta.1",
65
+ "@kitconcept/volto-light-theme": "8.0.0-alpha.30",
67
66
  "@kitconcept/volto-bm3-compat": "1.0.0-alpha.1",
67
+ "@kitconcept/volto-contact-block": "1.0.0-alpha.5",
68
+ "@kitconcept/volto-calendar-block": "1.0.0-alpha.9",
69
+ "@kitconcept/volto-banner-block": "1.2.0",
70
+ "@kitconcept/volto-dsgvo-banner": "4.0.0-alpha.1",
68
71
  "@kitconcept/volto-heading-block": "2.5.0",
69
- "@kitconcept/volto-highlight-block": "4.5.1",
70
- "@kitconcept/volto-introduction-block": "1.3.0",
71
- "@kitconcept/volto-logos-block": "4.0.0-alpha.0",
72
- "@kitconcept/volto-slider-block": "7.0.0-alpha.0",
72
+ "@kitconcept/volto-button-block": "5.0.0-alpha.2",
73
+ "@kitconcept/volto-carousel-block": "3.0.0-alpha.1",
74
+ "@kitconcept/volto-introduction-block": "1.4.1",
75
+ "@kitconcept/volto-highlight-block": "5.0.0-alpha.0",
76
+ "@kitconcept/volto-logos-block": "4.0.0-alpha.1",
73
77
  "@kitconcept/volto-separator-block": "5.0.0-alpha.0",
74
- "@kitconcept/volto-dsgvo-banner": "3.0.1"
78
+ "@kitconcept/volto-slider-block": "7.0.0-alpha.1"
75
79
  },
80
+ "volto_version": "19.1.4",
76
81
  "scripts": {
77
82
  "i18n": "rm -rf build/messages && NODE_ENV=production i18n --addon",
78
83
  "dry-release": "release-it --dry-run",
@@ -0,0 +1,11 @@
1
+ import { defaultStylingSchema } from '@kitconcept/volto-light-theme/components/Blocks/schema';
2
+ import type { JSONSchema, SchemaEnhancerArgs } from '@plone/types';
3
+ export const ContactListStylingSchema = ({
4
+ schema,
5
+ formData,
6
+ intl,
7
+ }: SchemaEnhancerArgs): JSONSchema => {
8
+ defaultStylingSchema({ schema, formData, intl });
9
+
10
+ return schema;
11
+ };
@@ -0,0 +1,272 @@
1
+ /**
2
+ * PersonView view component.
3
+ * @module components/theme/View/PersonView
4
+ */
5
+
6
+ import React from 'react';
7
+ import { FormattedMessage } from 'react-intl';
8
+ import config from '@plone/volto/registry';
9
+ import mobilePhoneSVG from '@plone/volto/icons/mobile.svg';
10
+ import officePhoneSVG from '@plone/volto/icons/headset.svg';
11
+ import mailSVG from '@plone/volto/icons/email.svg';
12
+ import worldSVG from '@plone/volto/icons/world.svg';
13
+ import faxSVG from '@plone/volto/icons/printer.svg';
14
+
15
+ import Icon from '@plone/volto/components/theme/Icon/Icon';
16
+
17
+ interface PersonViewProps {
18
+ content: {
19
+ first_name: string;
20
+ last_name?: string;
21
+ description?: string;
22
+ text?: {
23
+ data: string;
24
+ };
25
+ image?: {
26
+ scales?: {
27
+ preview?: {
28
+ download: string;
29
+ };
30
+ };
31
+ download?: string;
32
+ };
33
+ contact_name?: string;
34
+ contact_email?: string;
35
+ contact_phone?: string;
36
+ contact_website?: string;
37
+ contact_building?: string;
38
+ contact_room?: string;
39
+ office_phone?: string;
40
+ fax?: string;
41
+ address?: string;
42
+ };
43
+ }
44
+
45
+ /**
46
+ * PersonView view component class.
47
+ * @function PersonView
48
+ * @params {object} content Content object.
49
+ * @returns {string} Markup of the component.
50
+ */
51
+ const PersonView: React.FC<PersonViewProps> = ({ content }) => {
52
+ const Container = config.getComponent({ name: 'Container' }).component;
53
+ const Image = config.getComponent({ name: 'Image' }).component;
54
+
55
+ const profile = {
56
+ fullName: content.last_name
57
+ ? `${content.first_name} ${content.last_name}`
58
+ : content.first_name,
59
+ };
60
+
61
+ const contact = {
62
+ officePhone: content.office_phone ?? null,
63
+ mobilePhone: content.contact_phone ?? null,
64
+ fax: content.fax ?? null,
65
+ email: content.contact_email ?? null,
66
+ website: content.contact_website ?? null,
67
+ contactBuilding: content.contact_building ?? null,
68
+ contactRoom: content.contact_room ?? null,
69
+ };
70
+
71
+ return (
72
+ <Container id="page-document" className="view-wrapper person-view">
73
+ <div className="person-profile">
74
+ <header className="profile-header">
75
+ {content.image?.download && (
76
+ <Image
77
+ className="profile-image"
78
+ item={content}
79
+ imageField="image"
80
+ alt={profile.fullName}
81
+ />
82
+ )}
83
+
84
+ <div className="profile-info">
85
+ <h1>{profile.fullName}</h1>
86
+ </div>
87
+ </header>
88
+
89
+ {(contact.officePhone ||
90
+ contact.mobilePhone ||
91
+ contact.fax ||
92
+ contact.email ||
93
+ contact.website) && (
94
+ <div className="contact-wrapper">
95
+ <section aria-labelledby="contact-heading">
96
+ <h2 id="contact-heading">
97
+ <FormattedMessage id="Contact" defaultMessage="Contact" />
98
+ </h2>
99
+ <div className="contact-list">
100
+ {contact.officePhone && (
101
+ <div className="contact-item">
102
+ <Icon
103
+ title={
104
+ <FormattedMessage id="Phone" defaultMessage="Phone" />
105
+ }
106
+ name={officePhoneSVG}
107
+ size="36px"
108
+ />
109
+ <a
110
+ href={`tel:${contact.officePhone}`}
111
+ aria-label="Office phone"
112
+ >
113
+ {contact.officePhone}
114
+ </a>
115
+ </div>
116
+ )}
117
+
118
+ {contact.mobilePhone && (
119
+ <div className="contact-item">
120
+ <Icon
121
+ title={
122
+ <FormattedMessage id="Phone" defaultMessage="Phone" />
123
+ }
124
+ name={mobilePhoneSVG}
125
+ size="36px"
126
+ />
127
+ <a
128
+ href={`tel:${contact.mobilePhone}`}
129
+ aria-label="Mobile phone"
130
+ >
131
+ <span aria-label="Mobile phone">
132
+ {contact.mobilePhone}
133
+ </span>
134
+ </a>
135
+ </div>
136
+ )}
137
+
138
+ {contact.fax && (
139
+ <div className="contact-item">
140
+ <Icon
141
+ title={
142
+ <FormattedMessage id="Phone" defaultMessage="Phone" />
143
+ }
144
+ name={faxSVG}
145
+ size="36px"
146
+ />
147
+ <span aria-label="Fax">{contact.fax}</span>
148
+ </div>
149
+ )}
150
+
151
+ {contact.email && (
152
+ <div className="contact-item">
153
+ <Icon
154
+ title={
155
+ <FormattedMessage id="E-mail" defaultMessage="E-mail" />
156
+ }
157
+ name={mailSVG}
158
+ size="36px"
159
+ />
160
+ <a href={`mailto:${contact.email}`} aria-label="Email">
161
+ {contact.email}
162
+ </a>
163
+ </div>
164
+ )}
165
+
166
+ {contact.website && (
167
+ <div className="contact-item">
168
+ <Icon
169
+ title={
170
+ <FormattedMessage id="Site" defaultMessage="Site" />
171
+ }
172
+ name={worldSVG}
173
+ size="36px"
174
+ />
175
+ <a href={contact.website} aria-label="Website">
176
+ {contact.website}
177
+ </a>
178
+ </div>
179
+ )}
180
+ </div>
181
+ </section>
182
+
183
+ {(content.address ||
184
+ contact.contactBuilding ||
185
+ contact.contactRoom) && (
186
+ <section aria-labelledby="address-heading">
187
+ <h2 id="address-heading">
188
+ <FormattedMessage id="Address" defaultMessage="Address" />
189
+ </h2>
190
+ <address>
191
+ <div className="building-room">
192
+ {contact.contactBuilding && (
193
+ <div>
194
+ <FormattedMessage
195
+ id="Building"
196
+ defaultMessage="Building"
197
+ />{' '}
198
+ {contact.contactBuilding}
199
+ {contact.contactRoom && (
200
+ <span>
201
+ {' '}
202
+ /{' '}
203
+ <FormattedMessage
204
+ id="Room"
205
+ defaultMessage="Room"
206
+ />{' '}
207
+ {contact.contactRoom}
208
+ </span>
209
+ )}
210
+ </div>
211
+ )}
212
+ </div>
213
+
214
+ {content.address && (
215
+ <p className="address">{content.address}</p>
216
+ )}
217
+ </address>
218
+ </section>
219
+ )}
220
+ </div>
221
+ )}
222
+
223
+ {content.text && (
224
+ <section className="bio-section" aria-labelledby="bio-heading">
225
+ <h2 id="bio-heading">
226
+ <FormattedMessage id="Bio" defaultMessage="Bio" />
227
+ </h2>
228
+ <div className="bio-content">
229
+ <p dangerouslySetInnerHTML={{ __html: content.text.data }} />
230
+ </div>
231
+ <svg
232
+ className="bio-section-border bio-section-border--desktop"
233
+ viewBox="0 0 948 63"
234
+ fill="none"
235
+ xmlns="http://www.w3.org/2000/svg"
236
+ >
237
+ <path
238
+ d="M0.582031 1H117.744V60.9434L177.688 1H947.416"
239
+ stroke="black"
240
+ />
241
+ </svg>
242
+ <svg
243
+ className="bio-section-border bio-section-border--tablet"
244
+ width="730"
245
+ height="63"
246
+ viewBox="0 0 730 63"
247
+ fill="none"
248
+ xmlns="http://www.w3.org/2000/svg"
249
+ >
250
+ <path d="M0 1H56.7997V60.9434L116.766 1H730" stroke="black" />
251
+ </svg>
252
+ <svg
253
+ className="bio-section-border bio-section-border--mobile"
254
+ width="335"
255
+ height="63"
256
+ viewBox="0 0 335 63"
257
+ fill="none"
258
+ xmlns="http://www.w3.org/2000/svg"
259
+ >
260
+ <path
261
+ d="M0.652344 1H57.4304V60.9434L117.374 1H334.347"
262
+ stroke="black"
263
+ />
264
+ </svg>
265
+ </section>
266
+ )}
267
+ </div>
268
+ </Container>
269
+ );
270
+ };
271
+
272
+ export default PersonView;
@@ -0,0 +1,26 @@
1
+ import type { ConfigType } from '@plone/registry';
2
+ import type { StyleDefinition } from '@plone/types';
3
+ import { ContactListStylingSchema } from '../components/Blocks/ContactList/schema';
4
+
5
+ declare module '@plone/types' {
6
+ export interface BlocksConfigData {
7
+ contactList: BlockConfigBase;
8
+ }
9
+
10
+ export interface BlockConfigBase {
11
+ themes?: StyleDefinition[];
12
+ templates: {
13
+ [key: string]: {
14
+ label: string;
15
+ template: any;
16
+ };
17
+ };
18
+ }
19
+ }
20
+
21
+ export default function install(config: ConfigType) {
22
+ config.blocks.blocksConfig.contactList.schemaEnhancer =
23
+ ContactListStylingSchema;
24
+
25
+ return config;
26
+ }
@@ -1,9 +1,7 @@
1
1
  import { ConfigType } from '@plone/registry';
2
2
 
3
3
  export default function install(config: ConfigType) {
4
- config.settings.isMultilingual = false;
5
- config.settings.supportedLanguages = ['en'];
6
- config.settings.defaultLanguage = 'en';
4
+ config.settings.supportedLanguages = ['de', 'en'];
7
5
 
8
6
  // Volto Light Theme Configuration
9
7
  config.settings.siteHeader = true;
package/src/index.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  import { ConfigType } from '@plone/registry';
2
2
  import installSettings from './config/settings';
3
+ import installBlocks from './config/blocks';
4
+ import PersonView from './components/theme/PersonView';
3
5
 
4
6
  const applyConfig = (config: ConfigType) => {
5
7
  installSettings(config);
8
+ installBlocks(config);
9
+
10
+ config.views.contentTypesViews.Person = PersonView;
11
+
6
12
  return config;
7
13
  };
8
14
 
@@ -0,0 +1,6 @@
1
+ @import 'components/person';
2
+
3
+ // Removes the "View" from the "More" menu in the Toolbar.
4
+ .inline.field.field-wrapper-display-select {
5
+ display: none;
6
+ }
@@ -0,0 +1,214 @@
1
+ #page-document.view-wrapper.person-view {
2
+ .person-profile {
3
+ background: var(--accent-color);
4
+ color: var(--accent-foreground-color);
5
+ }
6
+
7
+ header.profile-header,
8
+ .contact-wrapper,
9
+ .bio-section {
10
+ max-width: var(--default-container-width);
11
+ margin: 0 auto;
12
+ }
13
+ }
14
+
15
+ .profile-header {
16
+ display: flex;
17
+ align-items: center;
18
+ padding-top: $spacing-large;
19
+ padding-bottom: $spacing-xlarge;
20
+ border-top: 1px solid var(--accent-foreground-color);
21
+ margin-bottom: $spacing-large;
22
+ gap: $spacing-small;
23
+ }
24
+
25
+ .profile-image {
26
+ width: 300px;
27
+ height: 300px;
28
+ flex-shrink: 0;
29
+ border-radius: 50%;
30
+ object-fit: cover;
31
+ }
32
+
33
+ .profile-info {
34
+ h1 {
35
+ font-size: 48px;
36
+ font-style: normal;
37
+ font-weight: 700;
38
+ line-height: 60px;
39
+ }
40
+ }
41
+
42
+ .contact-wrapper {
43
+ display: grid;
44
+ padding-bottom: $spacing-large;
45
+ gap: $spacing-large;
46
+ grid-template-columns: 1fr 1fr;
47
+ }
48
+
49
+ .contact-wrapper,
50
+ .bio-section {
51
+ h2 {
52
+ padding-bottom: $spacing-small;
53
+ border-bottom: 1px solid var(--accent-foreground-color);
54
+ margin: 0;
55
+ font-size: 18px;
56
+ font-weight: 700;
57
+ letter-spacing: 1px;
58
+ text-transform: uppercase;
59
+ }
60
+ }
61
+
62
+ .contact-list {
63
+ display: flex;
64
+ flex-direction: column;
65
+ padding-top: $spacing-medium;
66
+ gap: $spacing-small;
67
+
68
+ .contact-item {
69
+ display: flex;
70
+ align-items: center;
71
+ gap: 10px;
72
+ svg path {
73
+ fill: var(--accent-foreground-color);
74
+ }
75
+ }
76
+
77
+ a {
78
+ color: inherit;
79
+ text-decoration: underline;
80
+ }
81
+ }
82
+
83
+ address {
84
+ padding-top: $spacing-medium;
85
+ font-style: normal;
86
+
87
+ h3 {
88
+ font-size: 18px;
89
+ font-style: normal;
90
+ font-weight: 700;
91
+ line-height: 24px;
92
+ }
93
+ }
94
+
95
+ .bio-section {
96
+ padding-top: $spacing-large;
97
+ padding-bottom: $spacing-large;
98
+
99
+ .bio-content {
100
+ padding: $spacing-medium 0;
101
+
102
+ p {
103
+ font-size: 24px;
104
+ font-weight: 300;
105
+ line-height: 33px;
106
+ a {
107
+ font: inherit;
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ // Bio section border responsive display
114
+ .bio-section-border--desktop,
115
+ .bio-section-border--tablet,
116
+ .bio-section-border--mobile {
117
+ width: 100%;
118
+ height: auto;
119
+ path {
120
+ stroke: var(--accent-foreground-color);
121
+ }
122
+ }
123
+
124
+ .bio-section-border--desktop {
125
+ display: block;
126
+ }
127
+
128
+ .bio-section-border--tablet,
129
+ .bio-section-border--mobile {
130
+ display: none;
131
+ }
132
+
133
+ @media (max-width: 730px) {
134
+ .bio-section-border--desktop {
135
+ display: none;
136
+ }
137
+ .bio-section-border--tablet {
138
+ display: block;
139
+ }
140
+ }
141
+
142
+ @media (max-width: 980px) {
143
+ .person-profile {
144
+ padding: 0 $spacing-small;
145
+
146
+ .profile-header {
147
+ padding-bottom: $spacing-large;
148
+
149
+ .profile-info {
150
+ h1 {
151
+ margin-top: 25px;
152
+ margin-bottom: $spacing-small;
153
+ font-size: 30px;
154
+ font-weight: $bold;
155
+ line-height: 36px;
156
+ }
157
+ }
158
+ }
159
+
160
+ .profile-image {
161
+ width: 210px;
162
+ height: 210px;
163
+ }
164
+ .contact-wrapper,
165
+ .bio-section {
166
+ padding-bottom: $spacing-large;
167
+
168
+ h2 {
169
+ font-size: 14px;
170
+ line-height: 18px;
171
+ }
172
+ }
173
+ .bio-section {
174
+ padding-top: 30px;
175
+ }
176
+ }
177
+ }
178
+
179
+ @media (max-width: 500px) {
180
+ .bio-section-border--tablet {
181
+ display: none;
182
+ }
183
+ .bio-section-border--mobile {
184
+ display: block;
185
+ }
186
+ }
187
+
188
+ @media (max-width: $largest-mobile-screen) {
189
+ .person-profile {
190
+ .profile-header {
191
+ flex-direction: column;
192
+ align-items: start;
193
+ padding-bottom: $spacing-small;
194
+ gap: $spacing-small;
195
+ text-align: left;
196
+
197
+ .profile-info h1 {
198
+ margin-bottom: $spacing-medium !important;
199
+ }
200
+ }
201
+ .contact-wrapper {
202
+ gap: $spacing-small;
203
+ grid-template-columns: 1fr;
204
+
205
+ section {
206
+ padding-top: $spacing-medium;
207
+ }
208
+ }
209
+ .bio-section {
210
+ padding-top: 0;
211
+ padding-bottom: $spacing-medium;
212
+ }
213
+ }
214
+ }
package/tsconfig.json CHANGED
@@ -17,7 +17,10 @@
17
17
  "jsx": "react-jsx",
18
18
  "paths": {
19
19
  "@plone/volto/*": ["../../core/packages/volto/src/*"],
20
- "@kitconcept/website/*": ["./src/*"]
20
+ "@kitconcept/website/*": ["./src/*"],
21
+ "@kitconcept/volto-light-theme/*": [
22
+ "./node_modules/@kitconcept/volto-light-theme/src/*"
23
+ ]
21
24
  }
22
25
  },
23
26
  "include": ["src", "src/**/*.js"],