@kickstartds/ds-agency-premium 1.4.14 → 1.4.16--canary.15.832.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 (48) hide show
  1. package/dist/{BlogAsideProps-e1cbd5d3.d.ts → BlogAsideProps-99489f0b.d.ts} +11 -4
  2. package/dist/{BlogOverviewProps-83d399b4.d.ts → BlogOverviewProps-9f207f1c.d.ts} +2 -2
  3. package/dist/{BlogPostProps-3f6e4072.d.ts → BlogPostProps-99489f0b.d.ts} +2 -2
  4. package/dist/{PageProps-83d399b4.d.ts → PageProps-aa29c554.d.ts} +1 -1
  5. package/dist/{SectionProps-03ff6d21.d.ts → SectionProps-83d399b4.d.ts} +1 -1
  6. package/dist/components/blog-aside/blog-aside.css +8 -16
  7. package/dist/components/blog-aside/blog-aside.schema.dereffed.json +21 -7
  8. package/dist/components/blog-aside/blog-aside.schema.json +16 -5
  9. package/dist/components/blog-aside/index.d.ts +1 -1
  10. package/dist/components/blog-aside/index.js +2 -2
  11. package/dist/components/blog-overview/index.d.ts +1 -1
  12. package/dist/components/blog-post/blog-post.schema.dereffed.json +21 -7
  13. package/dist/components/blog-post/index.d.ts +1 -1
  14. package/dist/components/blog-post/index.js +1 -1
  15. package/dist/components/blog-teaser/index.d.ts +1 -1
  16. package/dist/components/contact/contact.css +125 -0
  17. package/dist/components/contact/contact.schema.dereffed.json +125 -0
  18. package/dist/components/contact/contact.schema.json +107 -0
  19. package/dist/components/contact/index.d.ts +70 -0
  20. package/dist/components/contact/index.js +16 -0
  21. package/dist/components/hero/hero.css +2 -2
  22. package/dist/components/html/html.schema.json +25 -0
  23. package/dist/components/html/index.d.ts +26 -0
  24. package/dist/components/html/index.js +6 -0
  25. package/dist/components/image-story/index.d.ts +1 -1
  26. package/dist/components/index/index.d.ts +3 -3
  27. package/dist/components/page/index.d.ts +1 -1
  28. package/dist/components/page-wrapper/index.js +6 -0
  29. package/dist/components/page-wrapper/tokens.css +9 -9
  30. package/dist/components/presets.json +140 -6
  31. package/dist/components/providers/index.js +7 -1
  32. package/dist/components/section/index.d.ts +1 -1
  33. package/dist/components/split/index.d.ts +2 -1
  34. package/dist/components/split/index.js +11 -1
  35. package/dist/components/split/split.css +36 -10
  36. package/dist/components/split/split.schema.dereffed.json +12 -3
  37. package/dist/components/split/split.schema.json +7 -1
  38. package/dist/components/video-curtain/video-curtain.css +2 -2
  39. package/dist/static/img/people/author-john.png +0 -0
  40. package/dist/static/img/people/contact-jim.png +0 -0
  41. package/dist/static/img/people/contact-john.png +0 -0
  42. package/dist/static/img/people/portrait-young-girl-smiling.jpg +0 -0
  43. package/dist/tokens/themes.css +4 -4
  44. package/dist/tokens/tokens.css +9 -9
  45. package/dist/tokens/tokens.js +9 -9
  46. package/package.json +1 -1
  47. /package/dist/{BlogTeaserProps-71a3cb5c.d.ts → BlogTeaserProps-f5855e93.d.ts} +0 -0
  48. /package/dist/{ImageStoryProps-03ff6d21.d.ts → ImageStoryProps-e853e1e7.d.ts} +0 -0
@@ -12,9 +12,13 @@ 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
+ /**
19
+ * Alt text of the image
20
+ */
21
+ type AltText = string;
18
22
  /**
19
23
  * The Twitter name of the author
20
24
  */
@@ -67,8 +71,11 @@ interface BlogAsideProps {
67
71
  interface Author {
68
72
  name: Name;
69
73
  byline?: Byline;
70
- image?: Image;
74
+ image?: {
75
+ src?: ImageSource;
76
+ alt?: AltText;
77
+ };
71
78
  twitter?: Twitter;
72
79
  email?: Email;
73
80
  }
74
- export { Name, Byline, Image, Twitter, Email, Icon, Href, Title, SocialSharing, ReadingTime, PublishedDate, BlogAsideProps, Author };
81
+ export { Name, Byline, ImageSource, AltText, Twitter, Email, Icon, Href, Title, SocialSharing, ReadingTime, PublishedDate, BlogAsideProps, Author };
@@ -3,8 +3,8 @@
3
3
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
4
  * and run json-schema-to-typescript to regenerate this file.
5
5
  */
6
- import { SectionProps } from "./SectionProps-03ff6d21.js";
7
- import { BlogTeaserProps } from "./BlogTeaserProps-71a3cb5c.js";
6
+ import { SectionProps } from "./SectionProps-83d399b4.js";
7
+ import { BlogTeaserProps } from "./BlogTeaserProps-f5855e93.js";
8
8
  import { CtaProps } from "./CtaProps-93230a76.js";
9
9
  import { SeoProps } from "./SeoProps-f2d6dcaa.js";
10
10
  /**
@@ -4,8 +4,8 @@
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";
8
- import { SectionProps } from "./SectionProps-03ff6d21.js";
7
+ import { BlogAsideProps } from "./BlogAsideProps-99489f0b.js";
8
+ import { SectionProps } from "./SectionProps-83d399b4.js";
9
9
  import { CtaProps } from "./CtaProps-93230a76.js";
10
10
  import { SeoProps } from "./SeoProps-f2d6dcaa.js";
11
11
  /**
@@ -3,7 +3,7 @@
3
3
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
4
  * and run json-schema-to-typescript to regenerate this file.
5
5
  */
6
- import { SectionProps } from "./SectionProps-03ff6d21.js";
6
+ import { SectionProps } from "./SectionProps-83d399b4.js";
7
7
  import { SeoProps } from "./SeoProps-f2d6dcaa.js";
8
8
  /**
9
9
  * Collection of sections (with their contents) to render on the page
@@ -8,7 +8,7 @@ import { FaqProps } from "./FaqProps-ad618cd5.js";
8
8
  import { FeaturesProps } from "./FeaturesProps-b05859d6.js";
9
9
  import { GalleryProps } from "./GalleryProps-76e7de44.js";
10
10
  import { HeroProps } from "./HeroProps-cf82a16d.js";
11
- import { ImageStoryProps } from "./ImageStoryProps-03ff6d21.js";
11
+ import { ImageStoryProps } from "./ImageStoryProps-e853e1e7.js";
12
12
  import { ImageTextProps } from "./ImageTextProps-9286cca4.js";
13
13
  import { LogosProps } from "./LogosProps-f9474fe2.js";
14
14
  import { MosaicProps } from "./MosaicProps-d52c7151.js";
@@ -1,8 +1,9 @@
1
1
  .dsa-blog-aside {
2
+ --dsa-blog-aside__meta__item--font: var(--ks-font-interface-s);
3
+ --dsa-blog-aside__meta__item--color: var(--ks-text-color-interface);
4
+ --dsa-blog-aside__meta__item__icon--size: 1.2em;
2
5
  --dsa-blog-aside__title--color: var(--dsa-headline--color);
3
6
  --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
7
  --dsa-blog-aside__links--color: var(--dsa-link--color);
7
8
  --dsa-blog-aside__divider--color: var(--ks-border-color-accent);
8
9
  }
@@ -13,25 +14,16 @@
13
14
  .dsa-blog-aside .c-post-meta {
14
15
  --c-post-meta--gap: var(--ks-spacing-m);
15
16
  --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);
19
- }
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)));
23
- }
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)));
17
+ --c-post-meta_item--font: var(--dsa-blog-aside__meta__item--font, var(--ks-font-interface-s));
18
+ --c-post-meta_item--color: var(--dsa-blog-aside__meta__item--color, var(--ks-text-color-interface));
19
+ --c-post-meta_item--icon-size: var(--dsa-blog-aside__meta__item__icon--size, 1.2em);
28
20
  }
29
21
  .dsa-blog-aside .c-contact__links {
30
- color: var(--dsa-post-aside__links--color, var(--dsa-link--color));
22
+ color: var(--dsa-blog-aside__links--color, var(--dsa-link--color));
31
23
  }
32
24
  .dsa-blog-aside .c-contact__links .icon {
33
25
  color: inherit;
34
26
  }
35
27
  .dsa-blog-aside .c-divider {
36
- --c-divider--background: var(--dsa-post-aside__divider--color, var(--ks-border-color-accent));
28
+ --c-divider--background: var(--dsa-blog-aside__divider--color, var(--ks-border-color-accent));
37
29
  }
@@ -27,13 +27,27 @@
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
- ]
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
+ },
50
+ "additionalProperties": false
37
51
  },
38
52
  "twitter": {
39
53
  "title": "Twitter",
@@ -23,11 +23,22 @@
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"]
26
+ "type": "object",
27
+ "properties": {
28
+ "src": {
29
+ "type": "string",
30
+ "format": "image",
31
+ "title": "Image Source",
32
+ "description": "URL of the image to display",
33
+ "examples": ["img/people/author-emily.png"]
34
+ },
35
+ "alt": {
36
+ "type": "string",
37
+ "title": "Alt Text",
38
+ "description": "Alt text of the image",
39
+ "examples": ["Picture of Jane Smith"]
40
+ }
41
+ }
31
42
  },
32
43
  "twitter": {
33
44
  "title": "Twitter",
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { BlogAsideProps } from "../../BlogAsideProps-e1cbd5d3.js";
2
+ import { BlogAsideProps } from "../../BlogAsideProps-99489f0b.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>>;
@@ -40,8 +40,8 @@ const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime
40
40
  });
41
41
  return (jsx(PostAside, { ...rest, className: classnames(className, "dsa-blog-aside"), author: {
42
42
  title: author?.name,
43
- image: author?.image && { src: author.image },
44
- copy: author?.byline,
43
+ subtitle: author?.byline,
44
+ image: author?.image,
45
45
  links: authorLinks,
46
46
  }, shareBar: {
47
47
  headline: {
@@ -1,4 +1,4 @@
1
- import { BlogOverviewProps } from "../../BlogOverviewProps-83d399b4.js";
1
+ import { BlogOverviewProps } from "../../BlogOverviewProps-9f207f1c.js";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
  declare const BlogOverview: FC<PropsWithChildren<BlogOverviewProps>>;
4
4
  export { BlogOverview };
@@ -107,13 +107,27 @@
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
- ]
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
+ },
130
+ "additionalProperties": false
117
131
  },
118
132
  "twitter": {
119
133
  "title": "Twitter",
@@ -1,4 +1,4 @@
1
- import { BlogPostProps } from "../../BlogPostProps-3f6e4072.js";
1
+ import { BlogPostProps } from "../../BlogPostProps-99489f0b.js";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
  declare const BlogPost: FC<PropsWithChildren<BlogPostProps>>;
4
4
  export { BlogPost };
@@ -19,7 +19,7 @@ import '@kickstartds/base/lib/button';
19
19
  import '../button-group/index.js';
20
20
  import '@kickstartds/base/lib/button-group';
21
21
 
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 }) }))] }));
22
+ 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
23
  BlogPost.displayName = "BlogPost";
24
24
 
25
25
  export { BlogPost };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { BlogTeaserProps } from "../../BlogTeaserProps-71a3cb5c.js";
2
+ import { BlogTeaserProps } from "../../BlogTeaserProps-f5855e93.js";
3
3
  declare const BlogTeaserContextDefault: import("react").ForwardRefExoticComponent<BlogTeaserProps & import("react").RefAttributes<HTMLDivElement>>;
4
4
  declare const BlogTeaserContext: import("react").Context<import("react").ForwardRefExoticComponent<BlogTeaserProps & import("react").RefAttributes<HTMLDivElement>>>;
5
5
  declare const BlogTeaser: import("react").ForwardRefExoticComponent<BlogTeaserProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,125 @@
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
+ }
31
+
32
+ .l-container--contact {
33
+ /* stylelint-disable-next-line property-no-unknown */
34
+ container-name: contact;
35
+ }
36
+
37
+ .dsa-contact {
38
+ display: flex;
39
+ flex-wrap: wrap;
40
+ gap: var(--dsa-contact--gap-horizontal) var(--dsa-contact--gap-vertical);
41
+ }
42
+ .dsa-contact__image-wrap, .dsa-contact__body {
43
+ flex-grow: 1;
44
+ }
45
+ .dsa-contact__body {
46
+ display: flex;
47
+ flex-grow: 1;
48
+ flex-shrink: 0;
49
+ flex-direction: column;
50
+ gap: var(--dsa-contact__body--gap);
51
+ flex-basis: var(--dsa-contact__body--flex-basis);
52
+ }
53
+ .dsa-contact__copy {
54
+ font: var(--dsa-contact__copy--font);
55
+ color: var(--dsa-contact__copy--color);
56
+ }
57
+ .dsa-contact__image-wrap {
58
+ flex: none;
59
+ flex-basis: var(--dsa-contact__image--flex-basis);
60
+ height: 100%;
61
+ width: 100%;
62
+ }
63
+ .dsa-contact--image-full-width .dsa-contact__image-wrap {
64
+ flex-grow: 1;
65
+ }
66
+ .dsa-contact--image-square .dsa-contact__image-wrap {
67
+ aspect-ratio: 1/1;
68
+ }
69
+ .dsa-contact--image-wide .dsa-contact__image-wrap {
70
+ aspect-ratio: 4/3;
71
+ }
72
+ .dsa-contact--image-vertical .dsa-contact__image-wrap {
73
+ aspect-ratio: 3/4;
74
+ }
75
+ .dsa-contact__image {
76
+ width: 100%;
77
+ object-fit: cover;
78
+ height: 100%;
79
+ border-radius: var(--dsa-contact__image--border-radius);
80
+ }
81
+ .dsa-contact__header {
82
+ display: flex;
83
+ flex-direction: column;
84
+ gap: var(--dsa-contact__header--gap);
85
+ }
86
+ .dsa-contact__title {
87
+ font: var(--dsa-contact__title--font);
88
+ color: var(--dsa-contact__title--color);
89
+ font-weight: var(--dsa-contact__title--font-weight);
90
+ }
91
+ .dsa-contact__subtitle {
92
+ font: var(--dsa-contact__subtitle--font);
93
+ color: var(--dsa-contact__subtitle--color);
94
+ font-weight: var(--dsa-contact__subtitle--font-weight);
95
+ }
96
+ .dsa-contact__links {
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: var(--dsa-contact__links--gap);
100
+ list-style: none;
101
+ padding: 0;
102
+ margin: 0;
103
+ }
104
+ .dsa-contact a.dsa-contact__link {
105
+ color: var(--dsa-contact__link--color);
106
+ font: var(--dsa-contact__link--font);
107
+ font-weight: var(--dsa-contact__link--font-weight);
108
+ }
109
+ .dsa-contact a.dsa-contact__link .icon {
110
+ width: var(--dsa-contact__link__icon--size);
111
+ height: var(--dsa-contact__link__icon--size);
112
+ color: var(--dsa-contact__link__icon--color);
113
+ margin-right: var(--dsa-contact__link__icon--margin-right);
114
+ }
115
+ .dsa-contact a.dsa-contact__link:hover {
116
+ color: var(--dsa-contact__link--color_hover);
117
+ }
118
+ .dsa-contact .c-headline {
119
+ --c-headline--color: var(--dsa-contact__headline--color);
120
+ --c-headline--font: var(--dsa-contact__headline--font);
121
+ --c-headline--font-weight: var(--dsa-contact__headline--font-weight);
122
+ --c-headline__subheadline--color: var(--dsa-contact__headline__subheadline--color);
123
+ --c-headline__subheadline--font: var(--dsa-contact__headline__subheadline--font);
124
+ --c-headline__subheadline--font-weight: var(--dsa-contact__headline__subheadline--font-weight);
125
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "http://schema.mydesignsystem.com/contact.schema.json",
4
+ "title": "Contact",
5
+ "description": "Component used for user interaction",
6
+ "type": "object",
7
+ "properties": {
8
+ "image": {
9
+ "type": "object",
10
+ "properties": {
11
+ "src": {
12
+ "type": "string",
13
+ "format": "image",
14
+ "title": "Image Source",
15
+ "description": "URL of the image to display",
16
+ "examples": [
17
+ "img/people/author-emily.png"
18
+ ]
19
+ },
20
+ "alt": {
21
+ "type": "string",
22
+ "title": "Alt Text",
23
+ "description": "Alt text of the image",
24
+ "examples": [
25
+ "Picture of Jane Smith"
26
+ ]
27
+ },
28
+ "fullWidth": {
29
+ "type": "boolean",
30
+ "title": "Full Width",
31
+ "description": "Image uses all the horizontal space vailable",
32
+ "default": false
33
+ },
34
+ "aspectRatio": {
35
+ "type": "string",
36
+ "title": "aspectRatio",
37
+ "description": "Aspect Ratio of the Images",
38
+ "enum": [
39
+ "wide",
40
+ "square",
41
+ "vertical"
42
+ ],
43
+ "default": "square"
44
+ }
45
+ },
46
+ "additionalProperties": false
47
+ },
48
+ "title": {
49
+ "title": "Title",
50
+ "description": "Name, company name, etc.",
51
+ "type": "string",
52
+ "examples": [
53
+ "Jane Smith"
54
+ ]
55
+ },
56
+ "subtitle": {
57
+ "title": "Subtitle",
58
+ "description": "Position, profession, department, location, etc.",
59
+ "type": "string",
60
+ "examples": [
61
+ "CEO at Company"
62
+ ]
63
+ },
64
+ "links": {
65
+ "type": "array",
66
+ "items": {
67
+ "type": "object",
68
+ "properties": {
69
+ "icon": {
70
+ "type": "string"
71
+ },
72
+ "label": {
73
+ "type": "string"
74
+ },
75
+ "href": {
76
+ "type": "string",
77
+ "format": "uri"
78
+ },
79
+ "newTab": {
80
+ "title": "Open link in new Tab",
81
+ "description": "Open link in new Tab",
82
+ "type": "boolean",
83
+ "default": false
84
+ }
85
+ },
86
+ "additionalProperties": false
87
+ },
88
+ "examples": [
89
+ [
90
+ {
91
+ "icon": "phone",
92
+ "label": "0228 / 688 966 20",
93
+ "href": "tel:+4922868896620"
94
+ },
95
+ {
96
+ "icon": "email",
97
+ "label": "mail@example.com",
98
+ "href": "mailto:mail@example.com"
99
+ }
100
+ ]
101
+ ]
102
+ },
103
+ "copy": {
104
+ "title": "Copy text",
105
+ "type": "string"
106
+ },
107
+ "className": {
108
+ "title": "Class",
109
+ "description": "Additional css classes attached to the wrapping element",
110
+ "type": "string"
111
+ },
112
+ "component": {
113
+ "title": "`ks-component` attribute",
114
+ "description": "Optional custom component identifier",
115
+ "type": "string"
116
+ },
117
+ "type": {
118
+ "const": "contact"
119
+ }
120
+ },
121
+ "additionalProperties": false,
122
+ "required": [
123
+ "name"
124
+ ]
125
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "http://schema.mydesignsystem.com/contact.schema.json",
4
+ "title": "Contact",
5
+ "description": "Component used for user interaction",
6
+ "type": "object",
7
+ "properties": {
8
+ "image": {
9
+ "type": "object",
10
+ "properties": {
11
+ "src": {
12
+ "type": "string",
13
+ "format": "image",
14
+ "title": "Image Source",
15
+ "description": "URL of the image to display",
16
+ "examples": ["img/people/author-emily.png"]
17
+ },
18
+ "alt": {
19
+ "type": "string",
20
+ "title": "Alt Text",
21
+ "description": "Alt text of the image",
22
+ "examples": ["Picture of Jane Smith"]
23
+ },
24
+ "fullWidth": {
25
+ "type": "boolean",
26
+ "title": "Full Width",
27
+ "description": "Image uses all the horizontal space vailable",
28
+ "default": false
29
+ },
30
+ "aspectRatio": {
31
+ "type": "string",
32
+ "title": "aspectRatio",
33
+ "description": "Aspect Ratio of the Images",
34
+ "enum": ["wide", "square", "vertical"],
35
+ "default": "square"
36
+ }
37
+ }
38
+ },
39
+ "title": {
40
+ "title": "Title",
41
+ "description": "Name, company name, etc.",
42
+ "type": "string",
43
+ "examples": ["Jane Smith"]
44
+ },
45
+ "subtitle": {
46
+ "title": "Subtitle",
47
+ "description": "Position, profession, department, location, etc.",
48
+ "type": "string",
49
+ "examples": ["CEO at Company"]
50
+ },
51
+ "links": {
52
+ "type": "array",
53
+ "items": {
54
+ "type": "object",
55
+ "properties": {
56
+ "icon": {
57
+ "type": "string"
58
+ },
59
+ "label": {
60
+ "type": "string"
61
+ },
62
+ "href": {
63
+ "type": "string",
64
+ "format": "uri"
65
+ },
66
+ "newTab": {
67
+ "title": "Open link in new Tab",
68
+ "description": "Open link in new Tab",
69
+ "type": "boolean",
70
+ "default": false
71
+ }
72
+ },
73
+ "additionalProperties": false
74
+ },
75
+ "examples": [
76
+ [
77
+ {
78
+ "icon": "phone",
79
+ "label": "0228 / 688 966 20",
80
+ "href": "tel:+4922868896620"
81
+ },
82
+ {
83
+ "icon": "email",
84
+ "label": "mail@example.com",
85
+ "href": "mailto:mail@example.com"
86
+ }
87
+ ]
88
+ ]
89
+ },
90
+ "copy": {
91
+ "title": "Copy text",
92
+ "type": "string"
93
+ },
94
+ "className": {
95
+ "title": "Class",
96
+ "description": "Additional css classes attached to the wrapping element",
97
+ "type": "string"
98
+ },
99
+ "component": {
100
+ "title": "`ks-component` attribute",
101
+ "description": "Optional custom component identifier",
102
+ "type": "string"
103
+ }
104
+ },
105
+ "additionalProperties": false,
106
+ "required": ["name"]
107
+ }