@kickstartds/ds-agency-premium 1.4.16 → 1.4.17--canary.15.838.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 (35) hide show
  1. package/dist/{BlogAsideProps-e1cbd5d3.d.ts → BlogAsideProps-b06e0358.d.ts} +27 -10
  2. package/dist/BlogPostProps-6b3cff22.d.ts +1 -1
  3. package/dist/components/blog-aside/blog-aside.css +55 -21
  4. package/dist/components/blog-aside/blog-aside.schema.dereffed.json +74 -21
  5. package/dist/components/blog-aside/blog-aside.schema.json +3 -17
  6. package/dist/components/blog-aside/index.d.ts +1 -1
  7. package/dist/components/blog-aside/index.js +15 -32
  8. package/dist/components/blog-post/blog-post.schema.dereffed.json +74 -21
  9. package/dist/components/blog-post/index.js +12 -2
  10. package/dist/components/contact/contact.css +129 -0
  11. package/dist/components/contact/contact.schema.dereffed.json +125 -0
  12. package/dist/components/contact/contact.schema.json +107 -0
  13. package/dist/components/contact/index.d.ts +70 -0
  14. package/dist/components/contact/index.js +16 -0
  15. package/dist/components/headline/headline.css +43 -7
  16. package/dist/components/html/html.schema.json +25 -0
  17. package/dist/components/html/index.d.ts +26 -0
  18. package/dist/components/html/index.js +6 -0
  19. package/dist/components/page-wrapper/index.js +6 -0
  20. package/dist/components/page-wrapper/tokens.css +9 -9
  21. package/dist/components/presets.json +172 -8
  22. package/dist/components/providers/index.js +7 -1
  23. package/dist/components/split/index.d.ts +2 -1
  24. package/dist/components/split/index.js +11 -1
  25. package/dist/components/split/split.css +39 -10
  26. package/dist/components/split/split.schema.dereffed.json +12 -3
  27. package/dist/components/split/split.schema.json +7 -1
  28. package/dist/static/img/people/author-john.png +0 -0
  29. package/dist/static/img/people/contact-jim.png +0 -0
  30. package/dist/static/img/people/contact-john.png +0 -0
  31. package/dist/static/img/people/portrait-young-girl-smiling.jpg +0 -0
  32. package/dist/tokens/themes.css +4 -4
  33. package/dist/tokens/tokens.css +9 -9
  34. package/dist/tokens/tokens.js +9 -9
  35. package/package.json +1 -1
@@ -12,17 +12,25 @@ type Name = string;
12
12
  */
13
13
  type Byline = string;
14
14
  /**
15
- * The image URL of the author
15
+ * URL of the image to display
16
16
  */
17
- type Image = string;
17
+ type ImageSource = string;
18
18
  /**
19
- * The Twitter name of the author
19
+ * Alt text of the image
20
20
  */
21
- type Twitter = string;
21
+ type AltText = string;
22
22
  /**
23
- * The Email of the author
23
+ * Image uses all the horizontal space vailable
24
24
  */
25
- type Email = string;
25
+ type FullWidth = boolean;
26
+ /**
27
+ * Aspect Ratio of the Images
28
+ */
29
+ type AspectRatio = "wide" | "square" | "vertical";
30
+ /**
31
+ * Open link in new Tab
32
+ */
33
+ type OpenLinkInNewTab = boolean;
26
34
  /**
27
35
  * The icon name for the social link
28
36
  */
@@ -67,8 +75,17 @@ interface BlogAsideProps {
67
75
  interface Author {
68
76
  name: Name;
69
77
  byline?: Byline;
70
- image?: Image;
71
- twitter?: Twitter;
72
- email?: Email;
78
+ image?: {
79
+ src?: ImageSource;
80
+ alt?: AltText;
81
+ fullWidth?: FullWidth;
82
+ aspectRatio?: AspectRatio;
83
+ };
84
+ links?: {
85
+ icon?: string;
86
+ label?: string;
87
+ href?: string;
88
+ newTab?: OpenLinkInNewTab;
89
+ }[];
73
90
  }
74
- export { Name, Byline, Image, Twitter, Email, Icon, Href, Title, SocialSharing, ReadingTime, PublishedDate, BlogAsideProps, Author };
91
+ export { Name, Byline, ImageSource, AltText, FullWidth, AspectRatio, OpenLinkInNewTab, Icon, Href, Title, SocialSharing, ReadingTime, PublishedDate, BlogAsideProps, Author };
@@ -4,7 +4,7 @@
4
4
  * and run json-schema-to-typescript to regenerate this file.
5
5
  */
6
6
  import { BlogHeadProps } from "./BlogHeadProps-3f6e4072.js";
7
- import { BlogAsideProps } from "./BlogAsideProps-e1cbd5d3.js";
7
+ import { BlogAsideProps } from "./BlogAsideProps-b06e0358.js";
8
8
  import { SectionProps } from "./SectionProps-83d399b4.js";
9
9
  import { CtaProps } from "./CtaProps-93230a76.js";
10
10
  import { SeoProps } from "./SeoProps-f2d6dcaa.js";
@@ -1,37 +1,71 @@
1
+ .l-container--blog-aside {
2
+ /* stylelint-disable-next-line property-no-unknown */
3
+ container-name: blog-aside;
4
+ }
5
+
1
6
  .dsa-blog-aside {
2
- --dsa-blog-aside__title--color: var(--dsa-headline--color);
3
- --dsa-blog-aside__title--font: var(--dsa-headline_h3--font);
4
- --dsa-blog-aside__copy--color: var(--dsa-rich-text--color);
5
- --dsa-blog-aside__copy--font: var(--dsa-rich-text--font);
6
- --dsa-blog-aside__links--color: var(--dsa-link--color);
7
- --dsa-blog-aside__divider--color: var(--ks-border-color-accent);
7
+ --dsa-blog-aside--gap: var(--ks-spacing-stack-xs);
8
+ --dsa-blog-aside__author__title--font: var(--ks-font-copy-m);
9
+ --dsa-blog-aside__author__subtitle--font: var(--ks-font-copy-s);
10
+ --dsa-blog-aside__author__image--flex-basis: 120px;
11
+ --dsa-blog-aside__author__link--font: var(--ks-font-interface-s);
12
+ --dsa-blog-aside__meta__item--font: var(--ks-font-interface-s);
13
+ --dsa-blog-aside__meta__item--color: var(--ks-text-color-interface);
14
+ --dsa-blog-aside__meta__item__icon--size: 1.2em;
15
+ --dsa-blog-aside__share-bar__icon--size: 1.75em;
16
+ --dsa-blog-aside__sharebar__link--color: var(--dsa-link--color);
17
+ --dsa-blog-aside__sharebar__link--color_hover: var(--dsa-link--color_hover);
18
+ }
19
+ @container blog-aside (min-width: 640px) {
20
+ .dsa-blog-aside {
21
+ --dsa-blog-aside__author__title--font: var(--ks-font-copy-l);
22
+ --dsa-blog-aside__author__subtitle--font: var(--ks-font-copy-m);
23
+ --dsa-blog-aside__author__link--font: var(--ks-font-interface-m);
24
+ --dsa-blog-aside__meta__item--font: var(--ks-font-interface-m);
25
+ --dsa-blog-aside__share-bar__icon--size: 2em;
26
+ }
27
+ }
28
+
29
+ .l-container--blog-aside {
30
+ /* stylelint-disable-next-line property-no-unknown */
31
+ container-name: blog-aside;
8
32
  }
9
33
 
10
34
  .dsa-blog-aside {
11
- --c-post-aside--gap: var(--ks-spacing-stack-s);
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: var(--dsa-blog-aside--gap);
38
+ }
39
+ .dsa-blog-aside .dsa-contact {
40
+ --dsa-contact--gap-vertical: var(--dsa-blog-asde__author--gap-vertical, var(--ks-spacing-stack-xs));
41
+ --dsa-contact--gap-horizontal: var(--dsa-blog-asde__author--gap-horizontal, var(--ks-spacing-inline-xs));
42
+ --dsa-contact__image--flex-basis: var(--dsa-blog-aside__author__image--flex-basis, 200px);
43
+ --dsa-contact__title--font: var(--dsa-blog-aside__author__title--font, var(--ks-font-copy-m));
44
+ --dsa-contact__subtitle--font: var(--dsa-blog-aside__author__subtitle--font, var(--ks-font-copy-s));
45
+ --dsa-contact__link--font: var(--dsa-blog-aside__author__link--font, var(--ks-font-interface-s));
12
46
  }
13
47
  .dsa-blog-aside .c-post-meta {
14
- --c-post-meta--gap: var(--ks-spacing-m);
15
- --c-post-meta_item--gap: var(--ks-spacing-xs);
16
- --c-post-meta_item--font: var(--dsa-post-aside__meta__item--font, var(--ks-font-interface-s));
17
- --c-post-meta_item--color: var(--dsa-post-aside__meta__item--color, var(--ks-text-color-interface));
18
- --c-post-meta_item--icon-size: var(--dsa-post-aside__meta__item__icon--size, 1.2em);
48
+ --c-post-meta--gap: 0.25em var(--ks-spacing-inline-s);
49
+ --c-post-meta_item--gap: 0.5em;
50
+ --c-post-meta_item--font: var(--dsa-blog-aside__meta__item--font, var(--ks-font-interface-s));
51
+ --c-post-meta_item--color: var(--dsa-blog-aside__meta__item--color, var(--ks-text-color-interface));
52
+ --c-post-meta_item--icon-size: var(--dsa-blog-aside__meta__item__icon--size, 1.2em);
53
+ }
54
+ .dsa-blog-aside .c-post-share-bar {
55
+ --c-post-share-bar_link--icon-size: var(--dsa-blog-aside__share-bar__icon--size, 1.5rem);
19
56
  }
20
- .dsa-blog-aside .c-contact__copy {
21
- --c-rich-text-font: var(--dsa-post-aside__copy--font, var(--dsa-rich-text--font, var(--ks-font-copy-m)));
22
- --c-rich-text-color: var(--dsa-post-aside__copy--color, var(--dsa-rich-text--color, var(--ks-text-color-default)));
57
+ .dsa-blog-aside .c-post-share-bar .c-post-share-bar__link {
58
+ color: var(--dsa-blog-aside__sharebar__link--color, var(--dsa-link--color));
23
59
  }
24
- .dsa-blog-aside .dsa-headline .dsa-headline__headline {
25
- font: var(--dsa-post-aside__title--font, var(--dsa-headline_h3--font, var(--ks-font-display-l)));
26
- font-weight: var(--dsa-headline--font-weight);
27
- color: var(--dsa-post-aside__title--color, var(--dsa-headline--color, var(--ks-text-color-display)));
60
+ .dsa-blog-aside .c-post-share-bar .c-post-share-bar__link:hover {
61
+ color: var(--dsa-blog-aside__sharebar__link--color_hover, var(--dsa-link--color_hover));
28
62
  }
29
63
  .dsa-blog-aside .c-contact__links {
30
- color: var(--dsa-post-aside__links--color, var(--dsa-link--color));
64
+ color: var(--dsa-blog-aside__links--color, var(--dsa-link--color));
31
65
  }
32
66
  .dsa-blog-aside .c-contact__links .icon {
33
67
  color: inherit;
34
68
  }
35
69
  .dsa-blog-aside .c-divider {
36
- --c-divider--background: var(--dsa-post-aside__divider--color, var(--ks-border-color-accent));
70
+ --c-divider--background: var(--dsa-blog-aside__divider--color, var(--ks-border-color-accent));
37
71
  }
@@ -27,29 +27,82 @@
27
27
  ]
28
28
  },
29
29
  "image": {
30
- "title": "Image",
31
- "description": "The image URL of the author",
32
- "type": "string",
33
- "format": "image",
34
- "examples": [
35
- "img/people/author-emily.png"
36
- ]
37
- },
38
- "twitter": {
39
- "title": "Twitter",
40
- "description": "The Twitter name of the author",
41
- "type": "string",
42
- "examples": [
43
- "johndoe"
44
- ]
30
+ "type": "object",
31
+ "properties": {
32
+ "src": {
33
+ "type": "string",
34
+ "format": "image",
35
+ "title": "Image Source",
36
+ "description": "URL of the image to display",
37
+ "examples": [
38
+ "img/people/author-emily.png"
39
+ ]
40
+ },
41
+ "alt": {
42
+ "type": "string",
43
+ "title": "Alt Text",
44
+ "description": "Alt text of the image",
45
+ "examples": [
46
+ "Picture of Jane Smith"
47
+ ]
48
+ },
49
+ "fullWidth": {
50
+ "type": "boolean",
51
+ "title": "Full Width",
52
+ "description": "Image uses all the horizontal space vailable",
53
+ "default": false
54
+ },
55
+ "aspectRatio": {
56
+ "type": "string",
57
+ "title": "aspectRatio",
58
+ "description": "Aspect Ratio of the Images",
59
+ "enum": [
60
+ "wide",
61
+ "square",
62
+ "vertical"
63
+ ],
64
+ "default": "square"
65
+ }
66
+ },
67
+ "additionalProperties": false
45
68
  },
46
- "email": {
47
- "title": "Email",
48
- "description": "The Email of the author",
49
- "type": "string",
50
- "pattern": "^[A-Za-z0-9_!#$%&'*+/=?`{|}~^.-]+@[A-Za-z0-9.-]+$",
69
+ "links": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "object",
73
+ "properties": {
74
+ "icon": {
75
+ "type": "string"
76
+ },
77
+ "label": {
78
+ "type": "string"
79
+ },
80
+ "href": {
81
+ "type": "string",
82
+ "format": "uri"
83
+ },
84
+ "newTab": {
85
+ "title": "Open link in new Tab",
86
+ "description": "Open link in new Tab",
87
+ "type": "boolean",
88
+ "default": false
89
+ }
90
+ },
91
+ "additionalProperties": false
92
+ },
51
93
  "examples": [
52
- "johndoe@example.com"
94
+ [
95
+ {
96
+ "icon": "phone",
97
+ "label": "0228 / 688 966 20",
98
+ "href": "tel:+4922868896620"
99
+ },
100
+ {
101
+ "icon": "email",
102
+ "label": "mail@example.com",
103
+ "href": "mailto:mail@example.com"
104
+ }
105
+ ]
53
106
  ]
54
107
  }
55
108
  },
@@ -23,24 +23,10 @@
23
23
  "examples": ["CEO at Company"]
24
24
  },
25
25
  "image": {
26
- "title": "Image",
27
- "description": "The image URL of the author",
28
- "type": "string",
29
- "format": "image",
30
- "examples": ["img/people/author-emily.png"]
31
- },
32
- "twitter": {
33
- "title": "Twitter",
34
- "description": "The Twitter name of the author",
35
- "type": "string",
36
- "examples": ["johndoe"]
26
+ "$ref": "http://schema.mydesignsystem.com/contact.schema.json#/properties/image"
37
27
  },
38
- "email": {
39
- "title": "Email",
40
- "description": "The Email of the author",
41
- "type": "string",
42
- "pattern": "^[A-Za-z0-9_!#$%&'*+/=?`{|}~^.-]+@[A-Za-z0-9.-]+$",
43
- "examples": ["johndoe@example.com"]
28
+ "links": {
29
+ "$ref": "http://schema.mydesignsystem.com/contact.schema.json#/properties/links"
44
30
  }
45
31
  },
46
32
  "additionalProperties": false,
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { BlogAsideProps } from "../../BlogAsideProps-e1cbd5d3.js";
2
+ import { BlogAsideProps } from "../../BlogAsideProps-b06e0358.js";
3
3
  declare const BlogAsideContextDefault: import("react").ForwardRefExoticComponent<BlogAsideProps & import("react").RefAttributes<HTMLDivElement>>;
4
4
  declare const BlogAsideContext: import("react").Context<import("react").ForwardRefExoticComponent<BlogAsideProps & import("react").RefAttributes<HTMLDivElement>>>;
5
5
  declare const BlogAside: import("react").ForwardRefExoticComponent<BlogAsideProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,10 +1,21 @@
1
1
  import "./blog-aside.css";
2
- import { jsx } from 'react/jsx-runtime';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
- import { PostAside } from '@kickstartds/blog/lib/post-aside';
5
+ import { PostMeta } from '@kickstartds/blog/lib/post-meta';
6
+ import { PostShareBar } from '@kickstartds/blog/lib/post-share-bar';
7
+ import { Container } from '@kickstartds/core/lib/container';
8
+ import { Contact } from '../contact/index.js';
9
+ import { Headline } from '../headline/index.js';
10
+ import '@kickstartds/base/lib/picture';
11
+ import '@kickstartds/base/lib/contact';
12
+ import '@kickstartds/base/lib/link';
13
+ import '@kickstartds/base/lib/icon';
14
+ import '@kickstartds/base/lib/rich-text';
15
+ import 'markdown-to-jsx';
16
+ import '@kickstartds/base/lib/headline';
6
17
 
7
- const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime, date, className, ...rest }, ref) => {
18
+ const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime, date, className }) => {
8
19
  const socialLinks = socialSharing?.map((link) => {
9
20
  return {
10
21
  icon: link.icon,
@@ -23,35 +34,7 @@ const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime
23
34
  icon: "time",
24
35
  text: readingTime,
25
36
  });
26
- const authorLinks = [];
27
- if (author?.twitter)
28
- authorLinks.push({
29
- href: `https://twitter.com/${author.twitter}`,
30
- icon: "twitter",
31
- newTab: true,
32
- label: `@${author.twitter}`,
33
- });
34
- if (author?.email)
35
- authorLinks.push({
36
- href: `mailto:${author.email}`,
37
- icon: "email",
38
- newTab: false,
39
- label: author.email,
40
- });
41
- return (jsx(PostAside, { ...rest, className: classnames(className, "dsa-blog-aside"), author: {
42
- title: author?.name,
43
- image: author?.image && { src: author.image },
44
- copy: author?.byline,
45
- links: authorLinks,
46
- }, shareBar: {
47
- headline: {
48
- text: "Share this post",
49
- level: "h3",
50
- },
51
- links: socialLinks,
52
- }, meta: {
53
- items: metaItems,
54
- }, ref: ref }));
37
+ return (jsx(Container, { name: "blog-aside", children: jsxs("div", { className: classnames(className, "dsa-blog-aside"), children: [jsx(Contact, { className: "dsa-blog-aside__author", title: author?.name, subtitle: author?.byline, image: author?.image, links: author?.links }), metaItems && (jsx(Fragment, { children: jsx(PostMeta, { className: "dsa-blog-aside__meta", items: metaItems }) })), socialLinks && (jsxs("div", { children: [jsx(Headline, { text: "Share this Article", level: "p", style: "p", spaceAfter: "minimum" }), jsx(PostShareBar, { className: "dsa-blog-aside__share-bar", links: socialLinks })] }))] }) }));
55
38
  });
56
39
  const BlogAsideContext = createContext(BlogAsideContextDefault);
57
40
  const BlogAside = forwardRef((props, ref) => {
@@ -107,29 +107,82 @@
107
107
  ]
108
108
  },
109
109
  "image": {
110
- "title": "Image",
111
- "description": "The image URL of the author",
112
- "type": "string",
113
- "format": "image",
114
- "examples": [
115
- "img/people/author-emily.png"
116
- ]
117
- },
118
- "twitter": {
119
- "title": "Twitter",
120
- "description": "The Twitter name of the author",
121
- "type": "string",
122
- "examples": [
123
- "johndoe"
124
- ]
110
+ "type": "object",
111
+ "properties": {
112
+ "src": {
113
+ "type": "string",
114
+ "format": "image",
115
+ "title": "Image Source",
116
+ "description": "URL of the image to display",
117
+ "examples": [
118
+ "img/people/author-emily.png"
119
+ ]
120
+ },
121
+ "alt": {
122
+ "type": "string",
123
+ "title": "Alt Text",
124
+ "description": "Alt text of the image",
125
+ "examples": [
126
+ "Picture of Jane Smith"
127
+ ]
128
+ },
129
+ "fullWidth": {
130
+ "type": "boolean",
131
+ "title": "Full Width",
132
+ "description": "Image uses all the horizontal space vailable",
133
+ "default": false
134
+ },
135
+ "aspectRatio": {
136
+ "type": "string",
137
+ "title": "aspectRatio",
138
+ "description": "Aspect Ratio of the Images",
139
+ "enum": [
140
+ "wide",
141
+ "square",
142
+ "vertical"
143
+ ],
144
+ "default": "square"
145
+ }
146
+ },
147
+ "additionalProperties": false
125
148
  },
126
- "email": {
127
- "title": "Email",
128
- "description": "The Email of the author",
129
- "type": "string",
130
- "pattern": "^[A-Za-z0-9_!#$%&'*+/=?`{|}~^.-]+@[A-Za-z0-9.-]+$",
149
+ "links": {
150
+ "type": "array",
151
+ "items": {
152
+ "type": "object",
153
+ "properties": {
154
+ "icon": {
155
+ "type": "string"
156
+ },
157
+ "label": {
158
+ "type": "string"
159
+ },
160
+ "href": {
161
+ "type": "string",
162
+ "format": "uri"
163
+ },
164
+ "newTab": {
165
+ "title": "Open link in new Tab",
166
+ "description": "Open link in new Tab",
167
+ "type": "boolean",
168
+ "default": false
169
+ }
170
+ },
171
+ "additionalProperties": false
172
+ },
131
173
  "examples": [
132
- "johndoe@example.com"
174
+ [
175
+ {
176
+ "icon": "phone",
177
+ "label": "0228 / 688 966 20",
178
+ "href": "tel:+4922868896620"
179
+ },
180
+ {
181
+ "icon": "email",
182
+ "label": "mail@example.com",
183
+ "href": "mailto:mail@example.com"
184
+ }
185
+ ]
133
186
  ]
134
187
  }
135
188
  },
@@ -12,14 +12,24 @@ import '@kickstartds/core/lib/react';
12
12
  import '@kickstartds/base/lib/section';
13
13
  import '../section/js/Section.client.js';
14
14
  import '@kickstartds/core/lib/component';
15
- import '@kickstartds/blog/lib/post-aside';
15
+ import '@kickstartds/blog/lib/post-meta';
16
+ import '@kickstartds/blog/lib/post-share-bar';
17
+ import '@kickstartds/core/lib/container';
18
+ import '../contact/index.js';
19
+ import '@kickstartds/base/lib/picture';
20
+ import '@kickstartds/base/lib/contact';
21
+ import '@kickstartds/base/lib/link';
22
+ import '@kickstartds/base/lib/icon';
16
23
  import '@kickstartds/base/lib/rich-text';
24
+ import '../headline/index.js';
25
+ import 'markdown-to-jsx';
26
+ import '@kickstartds/base/lib/headline';
17
27
  import '@kickstartds/content/lib/storytelling';
18
28
  import '@kickstartds/base/lib/button';
19
29
  import '../button-group/index.js';
20
30
  import '@kickstartds/base/lib/button-group';
21
31
 
22
- const BlogPost = ({ head, content, aside, cta, children, }) => (jsxs(Fragment, { children: [jsx(Section, { width: "wide", children: jsxs(Split, { layout: "sidebarRight", children: [jsxs("div", { children: [head && jsx(BlogHead, { ...head }), content ? jsx(Text, { text: content }) : children] }), jsx(BlogAside, { ...aside })] }) }), cta && (jsx(Section, { content: { mode: "list" }, children: jsx(Cta, { ...cta }) }))] }));
32
+ const BlogPost = ({ head, content, aside, cta, children, }) => (jsxs(Fragment, { children: [jsx(Section, { width: "wide", children: jsxs(Split, { mainSectionWidth: "narrow", layout: "sidebarRight", children: [jsxs("div", { children: [head && jsx(BlogHead, { ...head }), content ? jsx(Text, { text: content }) : children] }), jsx(BlogAside, { ...aside })] }) }), cta && (jsx(Section, { content: { mode: "list" }, children: jsx(Cta, { ...cta }) }))] }));
23
33
  BlogPost.displayName = "BlogPost";
24
34
 
25
35
  export { BlogPost };
@@ -0,0 +1,129 @@
1
+ .l-container--contact {
2
+ /* stylelint-disable-next-line property-no-unknown */
3
+ container-name: contact;
4
+ }
5
+
6
+ .dsa-contact {
7
+ --dsa-contact--gap-horizontal: var(--ks-spacing-inline-m);
8
+ --dsa-contact--gap-vertical: var(--ks-spacing-stack-m);
9
+ --dsa-contact__header--gap: 0;
10
+ --dsa-contact__image--flex-basis: 200px;
11
+ --dsa-contact__image--border-radius: var(--ks-border-radius-card);
12
+ --dsa-contact__body--gap: var(--ks-spacing-stack-xs);
13
+ --dsa-contact__body--flex-basis: 300px;
14
+ --dsa-contact__copy--font: var(--dsa-rich-text--font);
15
+ --dsa-contact__copy--color: var(--dsa-rich-text--color);
16
+ --dsa-contact__title--color: var(--ks-text-color-display);
17
+ --dsa-contact__title--font: var(--ks-font-copy-l);
18
+ --dsa-contact__title--font-weight: var(--ks-font-weight-bold);
19
+ --dsa-contact__subtitle--color: var(--ks-text-color-display);
20
+ --dsa-contact__subtitle--font: var(--ks-font-copy-m);
21
+ --dsa-contact__subtitle--font-weight: var(--ks-font-weight-regular);
22
+ --dsa-contact__links--gap: 0;
23
+ --dsa-contact__link--color: var(--dsa-link--color);
24
+ --dsa-contact__link--color_hover: var(--dsa-link--color_hover);
25
+ --dsa-contact__link--font: var(--ks-font-interface-m);
26
+ --dsa-contact__link--font-weight: var(--dsa-link--font-weight);
27
+ --dsa-contact__link__icon--margin-right: 0.5em;
28
+ --dsa-contact__link__icon--size: 1.5em;
29
+ --dsa-contact__link__icon--color: inherit;
30
+ --dsa-contact__link--text-decoration: none;
31
+ --dsa-contact__link--text-decoration_hover: none;
32
+ }
33
+
34
+ .l-container--contact {
35
+ /* stylelint-disable-next-line property-no-unknown */
36
+ container-name: contact;
37
+ }
38
+
39
+ .dsa-contact {
40
+ display: flex;
41
+ flex-wrap: wrap;
42
+ gap: var(--dsa-contact--gap-horizontal) var(--dsa-contact--gap-vertical);
43
+ }
44
+ .dsa-contact__image-wrap, .dsa-contact__body {
45
+ flex-grow: 1;
46
+ }
47
+ .dsa-contact__body {
48
+ display: flex;
49
+ flex-grow: 1;
50
+ flex-shrink: 0;
51
+ flex-direction: column;
52
+ gap: var(--dsa-contact__body--gap);
53
+ flex-basis: var(--dsa-contact__body--flex-basis);
54
+ }
55
+ .dsa-contact__copy {
56
+ font: var(--dsa-contact__copy--font);
57
+ color: var(--dsa-contact__copy--color);
58
+ }
59
+ .dsa-contact__image-wrap {
60
+ flex: none;
61
+ flex-basis: var(--dsa-contact__image--flex-basis);
62
+ height: 100%;
63
+ width: 100%;
64
+ }
65
+ .dsa-contact--image-full-width .dsa-contact__image-wrap {
66
+ flex-grow: 1;
67
+ }
68
+ .dsa-contact--image-square .dsa-contact__image-wrap {
69
+ aspect-ratio: 1/1;
70
+ }
71
+ .dsa-contact--image-wide .dsa-contact__image-wrap {
72
+ aspect-ratio: 4/3;
73
+ }
74
+ .dsa-contact--image-vertical .dsa-contact__image-wrap {
75
+ aspect-ratio: 3/4;
76
+ }
77
+ .dsa-contact__image {
78
+ width: 100%;
79
+ object-fit: cover;
80
+ height: 100%;
81
+ border-radius: var(--dsa-contact__image--border-radius);
82
+ }
83
+ .dsa-contact__header {
84
+ display: flex;
85
+ flex-direction: column;
86
+ gap: var(--dsa-contact__header--gap);
87
+ }
88
+ .dsa-contact__title {
89
+ font: var(--dsa-contact__title--font);
90
+ color: var(--dsa-contact__title--color);
91
+ font-weight: var(--dsa-contact__title--font-weight);
92
+ }
93
+ .dsa-contact__subtitle {
94
+ font: var(--dsa-contact__subtitle--font);
95
+ color: var(--dsa-contact__subtitle--color);
96
+ font-weight: var(--dsa-contact__subtitle--font-weight);
97
+ }
98
+ .dsa-contact__links {
99
+ display: flex;
100
+ flex-direction: column;
101
+ gap: var(--dsa-contact__links--gap);
102
+ list-style: none;
103
+ padding: 0;
104
+ margin: 0;
105
+ }
106
+ .dsa-contact a.dsa-contact__link {
107
+ color: var(--dsa-contact__link--color);
108
+ font: var(--dsa-contact__link--font);
109
+ font-weight: var(--dsa-contact__link--font-weight);
110
+ text-decoration: var(--dsa-contact__link--text-decoration);
111
+ }
112
+ .dsa-contact a.dsa-contact__link .icon {
113
+ width: var(--dsa-contact__link__icon--size);
114
+ height: var(--dsa-contact__link__icon--size);
115
+ color: var(--dsa-contact__link__icon--color);
116
+ margin-right: var(--dsa-contact__link__icon--margin-right);
117
+ }
118
+ .dsa-contact a.dsa-contact__link:hover {
119
+ color: var(--dsa-contact__link--color_hover);
120
+ text-decoration: var(--dsa-contact__link--text-decoration_hover);
121
+ }
122
+ .dsa-contact .c-headline {
123
+ --c-headline--color: var(--dsa-contact__headline--color);
124
+ --c-headline--font: var(--dsa-contact__headline--font);
125
+ --c-headline--font-weight: var(--dsa-contact__headline--font-weight);
126
+ --c-headline__subheadline--color: var(--dsa-contact__headline__subheadline--color);
127
+ --c-headline__subheadline--font: var(--dsa-contact__headline__subheadline--font);
128
+ --c-headline__subheadline--font-weight: var(--dsa-contact__headline__subheadline--font-weight);
129
+ }