@kickstartds/ds-agency-premium 1.4.15 → 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 (45) hide show
  1. package/dist/{BlogAsideProps-e1cbd5d3.d.ts → BlogAsideProps-99489f0b.d.ts} +11 -4
  2. package/dist/{BlogPostProps-83d399b4.d.ts → BlogPostProps-99489f0b.d.ts} +1 -1
  3. package/dist/SectionProps-83d399b4.d.ts +1 -1
  4. package/dist/components/blog-aside/blog-aside.css +8 -16
  5. package/dist/components/blog-aside/blog-aside.schema.dereffed.json +21 -7
  6. package/dist/components/blog-aside/blog-aside.schema.json +16 -5
  7. package/dist/components/blog-aside/index.d.ts +1 -1
  8. package/dist/components/blog-aside/index.js +2 -2
  9. package/dist/components/blog-overview/index.d.ts +1 -1
  10. package/dist/components/blog-post/blog-post.schema.dereffed.json +21 -7
  11. package/dist/components/blog-post/index.d.ts +1 -1
  12. package/dist/components/blog-post/index.js +1 -1
  13. package/dist/components/contact/contact.css +125 -0
  14. package/dist/components/contact/contact.schema.dereffed.json +125 -0
  15. package/dist/components/contact/contact.schema.json +107 -0
  16. package/dist/components/contact/index.d.ts +70 -0
  17. package/dist/components/contact/index.js +16 -0
  18. package/dist/components/hero/hero.css +2 -2
  19. package/dist/components/html/html.schema.json +25 -0
  20. package/dist/components/html/index.d.ts +26 -0
  21. package/dist/components/html/index.js +6 -0
  22. package/dist/components/image-story/index.d.ts +1 -1
  23. package/dist/components/index/index.d.ts +3 -3
  24. package/dist/components/page/index.d.ts +1 -1
  25. package/dist/components/page-wrapper/index.js +6 -0
  26. package/dist/components/page-wrapper/tokens.css +9 -9
  27. package/dist/components/presets.json +140 -6
  28. package/dist/components/providers/index.js +7 -1
  29. package/dist/components/split/index.d.ts +2 -1
  30. package/dist/components/split/index.js +11 -1
  31. package/dist/components/split/split.css +36 -10
  32. package/dist/components/split/split.schema.dereffed.json +12 -3
  33. package/dist/components/split/split.schema.json +7 -1
  34. package/dist/components/video-curtain/video-curtain.css +2 -2
  35. package/dist/static/img/people/author-john.png +0 -0
  36. package/dist/static/img/people/contact-jim.png +0 -0
  37. package/dist/static/img/people/contact-john.png +0 -0
  38. package/dist/static/img/people/portrait-young-girl-smiling.jpg +0 -0
  39. package/dist/tokens/themes.css +4 -4
  40. package/dist/tokens/tokens.css +9 -9
  41. package/dist/tokens/tokens.js +9 -9
  42. package/package.json +1 -1
  43. /package/dist/{BlogOverviewProps-83d399b4.d.ts → BlogOverviewProps-9f207f1c.d.ts} +0 -0
  44. /package/dist/{ImageStoryProps-03ff6d21.d.ts → ImageStoryProps-e853e1e7.d.ts} +0 -0
  45. /package/dist/{PageProps-83d399b4.d.ts → PageProps-aa29c554.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 };
@@ -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-99489f0b.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";
@@ -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-83d399b4.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 };
@@ -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
+ }
@@ -0,0 +1,70 @@
1
+ /// <reference types="react" />
2
+ import { HTMLAttributes, FC, PropsWithChildren } from "react";
3
+ /* eslint-disable */
4
+ /**
5
+ * This file was automatically generated by json-schema-to-typescript.
6
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
7
+ * and run json-schema-to-typescript to regenerate this file.
8
+ */
9
+ /**
10
+ * URL of the image to display
11
+ */
12
+ type ImageSource = string;
13
+ /**
14
+ * Alt text of the image
15
+ */
16
+ type AltText = string;
17
+ /**
18
+ * Image uses all the horizontal space vailable
19
+ */
20
+ type FullWidth = boolean;
21
+ /**
22
+ * Aspect Ratio of the Images
23
+ */
24
+ type AspectRatio = "wide" | "square" | "vertical";
25
+ /**
26
+ * Name, company name, etc.
27
+ */
28
+ type Title = string;
29
+ /**
30
+ * Position, profession, department, location, etc.
31
+ */
32
+ type Subtitle = string;
33
+ /**
34
+ * Open link in new Tab
35
+ */
36
+ type OpenLinkInNewTab = boolean;
37
+ type CopyText = string;
38
+ /**
39
+ * Additional css classes attached to the wrapping element
40
+ */
41
+ type Class = string;
42
+ /**
43
+ * Optional custom component identifier
44
+ */
45
+ type KsComponentAttribute = string;
46
+ /**
47
+ * Component used for user interaction
48
+ */
49
+ interface ContactProps {
50
+ image?: {
51
+ src?: ImageSource;
52
+ alt?: AltText;
53
+ fullWidth?: FullWidth;
54
+ aspectRatio?: AspectRatio;
55
+ };
56
+ title?: Title;
57
+ subtitle?: Subtitle;
58
+ links?: {
59
+ icon?: string;
60
+ label?: string;
61
+ href?: string;
62
+ newTab?: OpenLinkInNewTab;
63
+ }[];
64
+ copy?: CopyText;
65
+ className?: Class;
66
+ component?: KsComponentAttribute;
67
+ }
68
+ declare const Contact: import("react").ForwardRefExoticComponent<ContactProps & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLAnchorElement>>;
69
+ declare const ContactProvider: FC<PropsWithChildren>;
70
+ export { Contact, ContactProvider };