@kickstartds/ds-agency-premium 1.2.10--canary.168.f4de958.0 → 1.2.10--canary.175.799b9aa.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 (130) hide show
  1. package/dist/BlogAsideProps-e1cbd5d3.d.ts +74 -0
  2. package/dist/BlogHeadProps-f9a49428.d.ts +31 -0
  3. package/dist/BlogTeaserProps-525f7f9f.d.ts +79 -0
  4. package/dist/FeatureProps-f8a75850.d.ts +52 -0
  5. package/dist/FeaturesProps-b05859d6.d.ts +34 -0
  6. package/dist/SeoProps-f2d6dcaa.d.ts +36 -0
  7. package/dist/{TeaserCardProps-3fce7be4.d.ts → TeaserCardProps-b9c28e78.d.ts} +1 -1
  8. package/dist/components/blog-aside/blog-aside.css +33 -5
  9. package/dist/components/blog-aside/blog-aside.schema.dereffed.json +5 -3
  10. package/dist/components/blog-aside/blog-aside.schema.json +5 -3
  11. package/dist/components/blog-aside/index.d.ts +6 -76
  12. package/dist/components/blog-aside/index.js +17 -10
  13. package/dist/components/blog-head/blog-head.css +22 -2
  14. package/dist/components/blog-head/blog-head.schema.dereffed.json +2 -1
  15. package/dist/components/blog-head/blog-head.schema.json +2 -1
  16. package/dist/components/blog-head/index.d.ts +6 -34
  17. package/dist/components/blog-head/index.js +10 -4
  18. package/dist/components/blog-overview/blog-overview.schema.dereffed.json +18 -0
  19. package/dist/components/blog-overview/index.d.ts +39 -0
  20. package/dist/components/blog-overview/index.js +17 -0
  21. package/dist/components/blog-post/blog-post.schema.dereffed.json +7 -4
  22. package/dist/components/blog-post/index.d.ts +39 -0
  23. package/dist/components/blog-post/index.js +24 -0
  24. package/dist/components/blog-teaser/blog-teaser.css +49 -25
  25. package/dist/components/blog-teaser/blog-teaser.schema.dereffed.json +6 -0
  26. package/dist/components/blog-teaser/blog-teaser.schema.json +6 -0
  27. package/dist/components/blog-teaser/index.d.ts +6 -81
  28. package/dist/components/blog-teaser/index.js +25 -16
  29. package/dist/components/button/button.css +109 -59
  30. package/dist/components/button/index.js +2 -1
  31. package/dist/components/faq/faq.css +27 -14
  32. package/dist/components/faq/faq.schema.dereffed.json +2 -0
  33. package/dist/components/faq/faq.schema.json +2 -0
  34. package/dist/components/faq/index.d.ts +6 -3
  35. package/dist/components/faq/index.js +8 -4
  36. package/dist/components/feature/feature.css +99 -0
  37. package/dist/components/feature/feature.schema.dereffed.json +91 -0
  38. package/dist/components/feature/feature.schema.json +67 -0
  39. package/dist/components/feature/index.d.ts +7 -49
  40. package/dist/components/feature/index.js +19 -15
  41. package/dist/components/features/features.css +7 -93
  42. package/dist/components/features/features.schema.dereffed.json +36 -2
  43. package/dist/components/features/features.schema.json +3 -47
  44. package/dist/components/features/index.d.ts +7 -4
  45. package/dist/components/features/index.js +13 -20
  46. package/dist/components/footer/footer.css +21 -17
  47. package/dist/components/footer/footer.schema.dereffed.json +4 -83
  48. package/dist/components/footer/footer.schema.json +33 -2
  49. package/dist/components/footer/index.d.ts +23 -5
  50. package/dist/components/footer/index.js +1 -1
  51. package/dist/components/gallery/gallery.css +31 -23
  52. package/dist/components/gallery/gallery.schema.dereffed.json +2 -0
  53. package/dist/components/gallery/gallery.schema.json +2 -0
  54. package/dist/components/gallery/index.d.ts +6 -3
  55. package/dist/components/gallery/index.js +11 -6
  56. package/dist/components/header/header.css +19 -43
  57. package/dist/components/header/header.schema.dereffed.json +18 -93
  58. package/dist/components/header/header.schema.json +31 -1
  59. package/dist/components/header/index.d.ts +24 -5
  60. package/dist/components/header/index.js +1 -1
  61. package/dist/components/headline/headline.css +76 -46
  62. package/dist/components/headline/index.d.ts +1 -1
  63. package/dist/components/headline/index.js +1 -1
  64. package/dist/components/hero/hero.css +39 -33
  65. package/dist/components/hero/index.js +1 -1
  66. package/dist/components/image/image.css +12 -6
  67. package/dist/components/image/image.schema.dereffed.json +4 -4
  68. package/dist/components/image/image.schema.json +4 -4
  69. package/dist/components/image/index.d.ts +7 -7
  70. package/dist/components/image-text/image-text.css +14 -3
  71. package/dist/components/image-text/image-text.schema.dereffed.json +2 -0
  72. package/dist/components/image-text/image-text.schema.json +2 -0
  73. package/dist/components/image-text/index.d.ts +7 -4
  74. package/dist/components/image-text/index.js +19 -13
  75. package/dist/components/logo/index.d.ts +27 -0
  76. package/dist/components/logo/index.js +12 -0
  77. package/dist/components/logo/logo.schema.dereffed.json +38 -0
  78. package/dist/components/logo/logo.schema.json +31 -0
  79. package/dist/components/nav-main/index.d.ts +2 -0
  80. package/dist/components/nav-main/index.js +3 -2
  81. package/dist/components/nav-main/nav-main.css +67 -64
  82. package/dist/components/nav-main/nav-main.schema.dereffed.json +17 -11
  83. package/dist/components/nav-main/nav-main.schema.json +15 -12
  84. package/dist/components/nav-main/nav-toggle.css +12 -7
  85. package/dist/components/page/page.schema.dereffed.json +46 -5
  86. package/dist/components/page/page.schema.json +1 -1
  87. package/dist/components/page-wrapper/index.d.ts +2 -3
  88. package/dist/components/page-wrapper/index.js +7 -472
  89. package/dist/components/page-wrapper/tokens.css +40 -40
  90. package/dist/components/providers/index.js +1 -1
  91. package/dist/components/raw-page-wrapper/index.d.ts +3 -0
  92. package/dist/components/raw-page-wrapper/index.js +492 -0
  93. package/dist/components/section/index.d.ts +2 -2
  94. package/dist/components/section/section.schema.dereffed.json +45 -4
  95. package/dist/components/settings/settings.schema.dereffed.json +22 -176
  96. package/dist/components/stat/index.d.ts +32 -0
  97. package/dist/components/stat/index.js +11 -0
  98. package/dist/components/stat/stat.schema.dereffed.json +64 -0
  99. package/dist/components/stat/stat.schema.json +48 -0
  100. package/dist/components/teaser-card/index.d.ts +4 -2
  101. package/dist/components/teaser-card/index.js +16 -13
  102. package/dist/components/teaser-card/teaser-card.css +68 -40
  103. package/dist/components/teaser-card/teaser-card.schema.dereffed.json +2 -2
  104. package/dist/components/teaser-card/teaser-card.schema.json +2 -2
  105. package/dist/components/testimonial/index.d.ts +44 -0
  106. package/dist/components/testimonial/index.js +19 -0
  107. package/dist/components/testimonial/testimonial.schema.dereffed.json +60 -0
  108. package/dist/components/testimonial/testimonial.schema.json +46 -0
  109. package/dist/components/text/index.d.ts +6 -3
  110. package/dist/components/text/index.js +10 -4
  111. package/dist/components/text/text.css +19 -9
  112. package/dist/components/text/text.schema.dereffed.json +1 -0
  113. package/dist/components/text/text.schema.json +1 -0
  114. package/dist/global.css +241 -91
  115. package/dist/static/tokens-business.css +1549 -0
  116. package/dist/static/tokens-google.css +1553 -0
  117. package/dist/static/tokens-ngo.css +1547 -0
  118. package/dist/static/tokens-telekom.css +1549 -0
  119. package/dist/static/tokens.css +1554 -0
  120. package/dist/tokens/tokens.css +40 -40
  121. package/dist/tokens/tokens.js +39 -39
  122. package/package.json +5 -4
  123. package/dist/FeaturesProps-32f5bc0d.d.ts +0 -284
  124. package/dist/tokens/themes.css +0 -4657
  125. package/dist/tokens/themes.css.d.ts +0 -0
  126. package/dist/tokens/themes.css.js +0 -1
  127. /package/dist/static/fonts/{lughausen → business}/novelpro-regular.woff +0 -0
  128. /package/dist/static/fonts/{lughausen → business}/novelsanspro-bold.woff +0 -0
  129. /package/dist/static/fonts/{lughausen → business}/novelsanspro-regular.woff +0 -0
  130. /package/dist/static/{logo-lughausen.svg → logo-business.svg} +0 -0
@@ -1,23 +1,27 @@
1
+ import "./feature.css";
1
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
+ import { forwardRef, createContext, useContext } from 'react';
2
4
  import classnames from 'classnames';
3
5
  import { Icon } from '@kickstartds/base/lib/icon';
4
6
  import { Button } from '../button/index.js';
5
7
  import { Link } from '@kickstartds/base/lib/link';
6
- import 'react';
7
8
  import '@kickstartds/base/lib/button';
8
9
 
9
- const Feature = ({ style = "stack", title, text, icon, ctaToggle = true, ctaStyle = "link", ctaTarget, ctaLabel = "Read more", }) => {
10
- return (jsxs("div", { className: classnames(`c-feature c-feature--${style === `stack`
11
- ? `stack c-feature--large`
12
- : style === `besideSmall`
13
- ? `beside c-feature--small`
14
- : style === `besideLarge`
15
- ? `beside c-feature--large`
16
- : style === `intext`
17
- ? `intext c-feature--small`
18
- : style === `centered`
19
- ? `centered c-feature--large`
20
- : `${style}`}`), children: [jsxs("div", { className: "c-feature__header", children: [icon && jsx(Icon, { className: "c-feature__icon", icon: icon }), jsx("span", { className: "c-feature__title", children: title })] }), text || ctaStyle === "intext" ? (jsxs("p", { className: "c-feature__text", children: [text, ctaStyle === "intext" && ctaToggle ? (jsxs(Fragment, { children: [" ", " ", jsx(Link, { href: ctaTarget, children: ctaLabel ? ctaLabel : "See more" })] })) : ("")] })) : (""), ctaToggle && (ctaStyle === "link" || ctaStyle === "button") && (jsx("div", { className: "c-feature__cta", children: ctaStyle === "link" ? (jsxs(Link, { className: "c-feature__link", href: ctaTarget, children: [ctaLabel ? ctaLabel : "See more", jsx(Icon, { icon: "arrow-right" })] })) : ctaStyle === "button" ? (jsx(Button, { className: "c-feature__button", size: "small", target: ctaTarget, label: ctaLabel ? ctaLabel : "See more" })) : ("") }))] }));
21
- };
10
+ const FeatureContextDefault = forwardRef(({ style = "stack", title, text, icon, cta: { toggle = true, style: ctaStyle = "link", target, label = "Read more", }, ...rest }, ref) => (jsxs("div", { ...rest, ref: ref, className: classnames(`c-feature c-feature--${style === `stack`
11
+ ? `stack c-feature--large`
12
+ : style === `besideSmall`
13
+ ? `beside c-feature--small`
14
+ : style === `besideLarge`
15
+ ? `beside c-feature--large`
16
+ : style === `intext`
17
+ ? `intext c-feature--small`
18
+ : style === `centered`
19
+ ? `centered c-feature--large`
20
+ : `${style}`}`), children: [jsxs("div", { className: "c-feature__header", children: [icon && jsx(Icon, { className: "c-feature__icon", icon: icon }), jsx("span", { className: "c-feature__title", children: title })] }), text || ctaStyle === "intext" ? (jsxs("p", { className: "c-feature__text", children: [text, ctaStyle === "intext" && toggle ? (jsxs(Fragment, { children: [" ", jsx(Link, { href: target, children: label ? label : "See more" })] })) : ("")] })) : (""), toggle && (ctaStyle === "link" || ctaStyle === "button") && (jsx("div", { className: "c-feature__cta", children: ctaStyle === "link" ? (jsxs(Link, { className: "c-feature__link", href: target, children: [label ? label : "See more", jsx(Icon, { icon: "arrow-right" })] })) : ctaStyle === "button" ? (jsx(Button, { className: "c-feature__button", size: "small", target: target, label: label ? label : "See more" })) : ("") }))] })));
21
+ const FeatureContext = createContext(FeatureContextDefault);
22
+ const Feature = forwardRef((props, ref) => {
23
+ const Component = useContext(FeatureContext);
24
+ return jsx(Component, { ...props, ref: ref });
25
+ });
22
26
 
23
- export { Feature };
27
+ export { Feature, FeatureContext, FeatureContextDefault };
@@ -1,31 +1,18 @@
1
- .c-feature {
2
- --c-feature-icon--color: var(--ks-text-color-primary);
3
- }
4
- .c-feature--small {
5
- --c-feature-icon--size: calc(var(--ks-line-height-interface-m) * var(--ks-font-size-interface-m));
6
- --c-feature--stack: var(--ks-spacing-stack-xs);
7
- --c-feature-icon--gap: var(--ks-spacing-xs);
8
- }
9
- .c-feature--large {
10
- --c-feature-icon--size: calc(var(--ks-font-size-copy-m) * 2.5);
11
- --c-feature--stack: var(--ks-spacing-stack-s);
12
- --c-feature-icon--gap: var(--ks-spacing-s);
13
- }
14
- .c-feature--large.c-feature--beside {
15
- --c-feature--stack: var(--ks-spacing-stack-xs);
16
- }
17
- .c-feature--stack.c-feature--large {
18
- --c-feature-icon--gap: var(--ks-spacing-xs);
1
+ .c-features {
2
+ --dsa-features--gap-vertical: var(--ks-spacing-stack-l);
3
+ --dsa-features--gap-horizontal: var(--ks-spacing-inline-m);
19
4
  }
20
5
 
6
+ .c-features {
7
+ gap: var(--dsa-features--gap-vertical, var(--ks-spacing-stack-l)) var(--dsa-features--gap-horizontal, var(--ks-spacing-inline-m));
8
+ }
21
9
  .c-features--list {
22
10
  display: flex;
23
11
  flex-direction: column;
24
- gap: var(--ks-spacing-stack-m);
12
+ gap: var(--dsa-features--gap-vertical);
25
13
  }
26
14
  .c-features--large-tiles {
27
15
  display: grid;
28
- gap: var(--ks-spacing-stack-l) var(--ks-spacing-inline-m);
29
16
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
30
17
  }
31
18
  .c-features--large-tiles .c-feature {
@@ -35,81 +22,8 @@
35
22
  }
36
23
  .c-features--small-tiles {
37
24
  display: grid;
38
- gap: var(--ks-spacing-stack-l) var(--ks-spacing-inline-m);
39
25
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
40
26
  }
41
27
  .l-section--align-center .c-features--small-tiles {
42
28
  justify-content: center;
43
- }
44
-
45
- .c-feature {
46
- display: flex;
47
- position: relative;
48
- flex-direction: column;
49
- gap: var(--c-feature--stack);
50
- }
51
- .c-feature--beside {
52
- padding-left: calc(var(--c-feature-icon--size) + var(--c-feature-icon--gap));
53
- }
54
- .c-feature--beside .c-feature__icon {
55
- position: absolute;
56
- top: 0;
57
- left: 0;
58
- }
59
- .c-feature--stack .c-feature__header {
60
- display: flex;
61
- flex-direction: column;
62
- align-items: flex-start;
63
- }
64
- .c-feature--centered .c-feature__header {
65
- display: flex;
66
- flex-direction: column;
67
- align-items: center;
68
- }
69
- .c-feature--centered .c-feature__title,
70
- .c-feature--centered .c-feature__text {
71
- text-align: center;
72
- }
73
- .c-feature--centered .c-feature__cta {
74
- display: flex;
75
- justify-content: center;
76
- }
77
- .c-feature__header {
78
- display: flex;
79
- align-items: center;
80
- gap: var(--c-feature-icon--gap);
81
- }
82
- .c-feature__title {
83
- font: var(--ks-font-interface-m);
84
- color: var(--ks-color-fg);
85
- font-family: var(--ks-font-family-display);
86
- font-weight: var(--ks-font-weight-semi-bold);
87
- }
88
- .c-feature__text {
89
- color: var(--ks-text-color-default);
90
- font: var(--ks-font-copy-s);
91
- margin: 0;
92
- }
93
- .c-feature__icon {
94
- color: var(--c-feature-icon--color);
95
- width: var(--c-feature-icon--size);
96
- height: var(--c-feature-icon--size);
97
- }
98
- .c-feature__cta {
99
- margin-top: auto;
100
- }
101
- .c-feature__link {
102
- font: var(--ks-font-copy-s);
103
- display: flex;
104
- align-items: center;
105
- gap: var(--ks-spacing-xxs);
106
- font-weight: var(--ks-font-weight-semi-bold) !important;
107
- width: fit-content;
108
- }
109
- .c-feature__link .icon {
110
- width: 1.125em;
111
- height: 1.125em;
112
- }
113
- .c-feature__button {
114
- margin-top: calc(var(--c-feature--stack) * 0.5);
115
29
  }
@@ -48,11 +48,15 @@
48
48
  },
49
49
  "additionalProperties": false
50
50
  },
51
- "items": {
51
+ "feature": {
52
52
  "type": "array",
53
- "title": "Items",
53
+ "title": "Features",
54
54
  "description": "The features to display",
55
55
  "items": {
56
+ "$schema": "http://json-schema.org/draft-07/schema#",
57
+ "$id": "http://schema.mydesignsystem.com/feature.schema.json",
58
+ "title": "Feature",
59
+ "description": "Partial Component used to display a feature",
56
60
  "type": "object",
57
61
  "properties": {
58
62
  "icon": {
@@ -79,6 +83,17 @@
79
83
  "This is a feature"
80
84
  ]
81
85
  },
86
+ "style": {
87
+ "type": "string",
88
+ "enum": [
89
+ "intext",
90
+ "stack",
91
+ "centered",
92
+ "besideLarge",
93
+ "besideSmall"
94
+ ],
95
+ "default": "stack"
96
+ },
82
97
  "cta": {
83
98
  "type": "object",
84
99
  "title": "Call to Action",
@@ -99,9 +114,28 @@
99
114
  "examples": [
100
115
  "See all our partners"
101
116
  ]
117
+ },
118
+ "toggle": {
119
+ "type": "boolean",
120
+ "title": "Call to Action Toggle",
121
+ "description": "Activate/disable the CTAs",
122
+ "default": true
123
+ },
124
+ "style": {
125
+ "type": "string",
126
+ "description": "Choose the style of the CTA",
127
+ "enum": [
128
+ "button",
129
+ "link",
130
+ "intext"
131
+ ],
132
+ "default": "link"
102
133
  }
103
134
  },
104
135
  "additionalProperties": false
136
+ },
137
+ "type": {
138
+ "const": "feature"
105
139
  }
106
140
  },
107
141
  "additionalProperties": false,
@@ -34,56 +34,12 @@
34
34
  },
35
35
  "additionalProperties": false
36
36
  },
37
- "items": {
37
+ "feature": {
38
38
  "type": "array",
39
- "title": "Items",
39
+ "title": "Features",
40
40
  "description": "The features to display",
41
41
  "items": {
42
- "type": "object",
43
- "properties": {
44
- "icon": {
45
- "type": "string",
46
- "title": "Icon",
47
- "description": "The icon for the feature",
48
- "examples": ["person"]
49
- },
50
- "title": {
51
- "type": "string",
52
- "title": "Title",
53
- "description": "The title of the feature",
54
- "examples": ["Feature 1"]
55
- },
56
- "text": {
57
- "type": "string",
58
- "title": "Text",
59
- "description": "The description of the feature",
60
- "examples": ["This is a feature"]
61
- },
62
- "cta": {
63
- "type": "object",
64
- "title": "Call to Action",
65
- "description": "The call to action",
66
- "properties": {
67
- "target": {
68
- "type": "string",
69
- "title": "Call to Action target",
70
- "description": "The CTA target",
71
- "default": "#",
72
- "format": "uri"
73
- },
74
- "label": {
75
- "type": "string",
76
- "title": "Link Label",
77
- "description": "The text label displayed on the link",
78
- "default": "See more",
79
- "examples": ["See all our partners"]
80
- }
81
- },
82
- "additionalProperties": false
83
- }
84
- },
85
- "additionalProperties": false,
86
- "required": ["title"]
42
+ "$ref": "http://schema.mydesignsystem.com/feature.schema.json"
87
43
  },
88
44
  "minItems": 1,
89
45
  "maxItems": 8
@@ -1,4 +1,7 @@
1
- import { HTMLAttributes, FC } from "react";
2
- import { FeaturesProps } from "../../FeaturesProps-32f5bc0d.js";
3
- declare const Features: FC<FeaturesProps & HTMLAttributes<HTMLDivElement>>;
4
- export { Features };
1
+ /// <reference types="react" />
2
+ import { HTMLAttributes } from "react";
3
+ import { FeaturesProps } from "../../FeaturesProps-b05859d6.js";
4
+ declare const FeaturesContextDefault: import("react").ForwardRefExoticComponent<FeaturesProps & Omit<HTMLAttributes<HTMLDivElement>, "style"> & import("react").RefAttributes<HTMLDivElement>>;
5
+ declare const FeaturesContext: import("react").Context<import("react").ForwardRefExoticComponent<FeaturesProps & Omit<HTMLAttributes<HTMLDivElement>, "style"> & import("react").RefAttributes<HTMLDivElement>>>;
6
+ declare const Features: import("react").ForwardRefExoticComponent<FeaturesProps & Omit<HTMLAttributes<HTMLDivElement>, "style"> & import("react").RefAttributes<HTMLDivElement>>;
7
+ export { FeaturesContextDefault, FeaturesContext, Features };
@@ -1,32 +1,25 @@
1
1
  import "./features.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, createContext, useContext } from 'react';
3
4
  import classnames from 'classnames';
4
5
  import { Feature } from '../feature/index.js';
5
6
  import '@kickstartds/base/lib/icon';
6
7
  import '../button/index.js';
7
- import 'react';
8
8
  import '@kickstartds/base/lib/button';
9
9
  import '@kickstartds/base/lib/link';
10
10
 
11
- const Features = ({ layout = "largeTiles", ctas = {
11
+ const FeaturesContextDefault = forwardRef(({ layout = "largeTiles", ctas = {
12
12
  style: "link",
13
13
  toggle: true,
14
- }, style = "intext", items = [], ...props }) => {
15
- return (jsx("div", { className: classnames(`c-features c-features--${layout === "largeTiles"
16
- ? "large-tiles"
17
- : layout === "smallTiles"
18
- ? "small-tiles"
19
- : `${layout}`}`), ...props, children: items.map((item, index) => (jsx(Feature, { title: item.title, text: item.text, style: style === "intext"
20
- ? "intext"
21
- : style === "stack"
22
- ? "stack"
23
- : style === "centered"
24
- ? "centered"
25
- : style === "besideLarge"
26
- ? "besideLarge"
27
- : style === "besideSmall"
28
- ? "besideSmall"
29
- : undefined, icon: item?.icon, ctaLabel: item?.cta?.label, ctaTarget: item?.cta?.target, ctaToggle: ctas?.toggle, ctaStyle: ctas?.style }, index))) }));
30
- };
14
+ }, style = "intext", feature: features = [], ...rest }, ref) => (jsx("div", { ...rest, ref: ref, className: classnames(`c-features c-features--${layout === "largeTiles"
15
+ ? "large-tiles"
16
+ : layout === "smallTiles"
17
+ ? "small-tiles"
18
+ : `${layout}`}`), children: features.map((feature, index) => (jsx(Feature, { ...feature, style: style }, index))) })));
19
+ const FeaturesContext = createContext(FeaturesContextDefault);
20
+ const Features = forwardRef((props, ref) => {
21
+ const Component = useContext(FeaturesContext);
22
+ return jsx(Component, { ...props, ref: ref });
23
+ });
31
24
 
32
- export { Features };
25
+ export { Features, FeaturesContext, FeaturesContextDefault };
@@ -1,14 +1,18 @@
1
1
  .c-footer {
2
- --g-logo--height: 1.5rem;
3
- }
4
- @media (min-width: 42rem) {
5
- .c-footer {
6
- --g-logo--height: 1.5rem;
7
- }
2
+ --dsa-footer--background-color: var(--ks-background-color-default);
3
+ --dsa-footer--border-top: 1px solid var(--ks-border-color-accent);
4
+ --dsa-footer--max-width: var(--l-section--content-width-wide);
5
+ --dsa-footer--gap-vertical: var(--ks-spacing-stack-m);
6
+ --dsa-footer__trademark--font: var(--ks-font-copy-xs);
7
+ --dsa-footer__trademark--color: var(--ks-text-color-default);
8
+ --dsa-footer__links--gap: var(--ks-spacing-stack-s) var(--ks-spacing-inline-m);
9
+ --dsa-footer__links--font: var(--ks-font-interface-s);
10
+ --dsa-footer__links--color: var(--dsa-link--color);
11
+ --dsa-footer__logo--height: 1.5rem;
8
12
  }
9
13
  @media (min-width: 62em) {
10
14
  .c-footer {
11
- --g-logo--height: 2rem;
15
+ --dsa-footer__logo--height: 2rem;
12
16
  }
13
17
  }
14
18
 
@@ -17,37 +21,37 @@
17
21
  z-index: 1;
18
22
  width: 100%;
19
23
  display: flex;
20
- background-color: var(--ks-background-color-default);
24
+ background-color: var(--dsa-footer--background-color, var(--ks-background-color-default));
21
25
  }
22
26
  .c-footer__content {
23
27
  padding: var(--l-section--space-small) var(--l-section--content-padding);
24
- border-top: 1px solid var(--ks-border-color-accent);
25
- max-width: var(--l-section--content-width-wide);
28
+ border-top: var(--dsa-footer--border-top, 1px solid var(--ks-border-color-accent));
29
+ max-width: var(--dsa-footer--max-width, var(--l-section--content-width-wide));
26
30
  width: 100%;
27
31
  margin: auto;
28
32
  display: flex;
29
33
  flex-direction: column;
30
34
  align-items: center;
31
- gap: var(--ks-spacing-stack-m);
35
+ gap: var(--dsa-footer--gap-vertical, var(--ks-spacing-stack-m));
32
36
  }
33
37
  .c-footer__logo {
34
38
  display: block;
35
39
  }
36
40
  .c-footer__logo img {
37
- height: var(--g-logo--height);
41
+ height: var(--dsa-footer__logo--height);
38
42
  width: auto;
39
43
  }
40
44
  .c-footer__trademark {
41
- font: var(--ks-font-copy-xs);
42
- color: var(--ks-text-color-default);
45
+ font: var(--dsa-footer__trademark--font, var(--ks-font-copy-xs));
46
+ color: var(--dsa-footer__trademark--color, var(--ks-text-color-default));
43
47
  }
44
48
  .c-footer__links {
45
49
  display: flex;
46
50
  flex-wrap: wrap;
47
51
  justify-content: center;
48
- gap: var(--ks-spacing-inline-m);
52
+ gap: var(--dsa-footer__links--gap, var(--ks-spacing-stack-s) var(--ks-spacing-inline-m));
49
53
  }
50
54
  .c-footer__link {
51
- font: var(--ks-font-interface-s);
52
- --g-link--color: var(--ks-text-color-default);
55
+ font: var(--dsa-footer__links--font, var(--ks-font-interface-s));
56
+ color: var(--dsa-footer__links--color, var(--dsa-link--color));
53
57
  }
@@ -5,10 +5,7 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "logo": {
8
- "$schema": "http://json-schema.org/draft-07/schema#",
9
- "$id": "http://schema.kickstartds.com/base/picture.schema.json",
10
- "title": "Picture",
11
- "description": "Base component to display a picture",
8
+ "title": "Logo",
12
9
  "type": "object",
13
10
  "properties": {
14
11
  "src": {
@@ -20,12 +17,6 @@
20
17
  "https://picsum.photos/seed/kdspicture/300/300"
21
18
  ]
22
19
  },
23
- "srcSet": {
24
- "title": "Picture sourceset",
25
- "description": "Use a srcSet to display picture",
26
- "type": "string",
27
- "format": "image"
28
- },
29
20
  "alt": {
30
21
  "title": "Alt text",
31
22
  "description": "Alt text to display for picture",
@@ -48,84 +39,13 @@
48
39
  "examples": [
49
40
  300
50
41
  ]
51
- },
52
- "className": {
53
- "title": "Additional Classes",
54
- "description": "Add additional css classes that should be applied to the button",
55
- "type": "string"
56
- },
57
- "component": {
58
- "title": "`ks-component` attribute",
59
- "description": "Optional custom component identifier",
60
- "type": "string"
61
- },
62
- "id": {
63
- "title": "Id",
64
- "description": "Add id attribute to the image",
65
- "type": "string"
66
- },
67
- "itemProp": {
68
- "title": "`itemprop` attribute",
69
- "description": "Define an itemprop attribute for the picture",
70
- "type": "string"
71
- },
72
- "style": {
73
- "title": "`style` attribute",
74
- "description": "Define a style attribute for the picture",
75
- "type": "string"
76
- },
77
- "noscript": {
78
- "title": "Noscript",
79
- "description": "Render noscript fallback",
80
- "type": "boolean",
81
- "default": true
82
- },
83
- "lazy": {
84
- "title": "Lazy",
85
- "description": "Load the picture lazily",
86
- "type": "boolean",
87
- "default": true
88
- },
89
- "sources": {
90
- "title": "Sources",
91
- "description": "Additional sources. This will result in a `picture`-Element",
92
- "type": "array",
93
- "items": {
94
- "type": "object",
95
- "properties": {
96
- "srcSet": {
97
- "title": "Picture sourceset",
98
- "description": "Use a srcSet to display picture",
99
- "type": "string",
100
- "format": "image"
101
- },
102
- "media": {
103
- "title": "TODO MEDIA TITLE",
104
- "description": "TODO MEDIA DESCRIPTION",
105
- "type": "string"
106
- },
107
- "type": {
108
- "title": "TODO TYPE TITLE",
109
- "description": "TODO TYPE DESCRIPTION",
110
- "type": "string"
111
- }
112
- },
113
- "additionalProperties": false
114
- }
115
- },
116
- "pictureClassName": {
117
- "title": "`class` attribute",
118
- "description": "Set additional class(es) to the picture",
119
- "type": "string"
120
- },
121
- "type": {
122
- "const": "picture"
123
42
  }
124
43
  },
125
44
  "additionalProperties": false
126
45
  },
127
46
  "logoHref": {
128
47
  "type": "string",
48
+ "format": "uri",
129
49
  "default": "/"
130
50
  },
131
51
  "navItems": {
@@ -134,7 +54,8 @@
134
54
  "type": "object",
135
55
  "properties": {
136
56
  "href": {
137
- "type": "string"
57
+ "type": "string",
58
+ "format": "uri"
138
59
  },
139
60
  "label": {
140
61
  "type": "string"
@@ -5,10 +5,41 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "logo": {
8
- "$ref": "http://schema.kickstartds.com/base/picture.schema.json"
8
+ "title": "Logo",
9
+ "type": "object",
10
+ "properties": {
11
+ "src": {
12
+ "title": "Source",
13
+ "description": "Picture source",
14
+ "type": "string",
15
+ "format": "image",
16
+ "examples": ["https://picsum.photos/seed/kdspicture/300/300"]
17
+ },
18
+ "alt": {
19
+ "title": "Alt text",
20
+ "description": "Alt text to display for picture",
21
+ "type": "string"
22
+ },
23
+ "width": {
24
+ "title": "Width",
25
+ "description": "Width of the picture",
26
+ "type": "integer",
27
+ "minimum": 0,
28
+ "examples": [300]
29
+ },
30
+ "height": {
31
+ "title": "Height",
32
+ "description": "Height of the picture",
33
+ "type": "integer",
34
+ "minimum": 0,
35
+ "examples": [300]
36
+ }
37
+ },
38
+ "additionalProperties": false
9
39
  },
10
40
  "logoHref": {
11
41
  "type": "string",
42
+ "format": "uri",
12
43
  "default": "/"
13
44
  },
14
45
  "navItems": {
@@ -16,7 +47,7 @@
16
47
  "items": {
17
48
  "type": "object",
18
49
  "properties": {
19
- "href": { "type": "string" },
50
+ "href": { "type": "string", "format": "uri" },
20
51
  "label": { "type": "string" },
21
52
  "target": { "type": "string" }
22
53
  },
@@ -5,12 +5,24 @@ import { FC } from "react";
5
5
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
6
6
  * and run json-schema-to-typescript to regenerate this file.
7
7
  */
8
- import { PictureProps } from "@kickstartds/base/lib/picture/typing";
8
+ /**
9
+ * Picture source
10
+ */
11
+ type Source = string;
12
+ /**
13
+ * Alt text to display for picture
14
+ */
15
+ type AltText = string;
16
+ /**
17
+ * Width of the picture
18
+ */
19
+ type Width = number;
20
+ /**
21
+ * Height of the picture
22
+ */
23
+ type Height = number;
9
24
  interface FooterProps {
10
- /**
11
- * Referenced component PictureProps
12
- */
13
- logo: PictureProps;
25
+ logo: Logo;
14
26
  logoHref?: string;
15
27
  navItems?: {
16
28
  href: string;
@@ -18,5 +30,11 @@ interface FooterProps {
18
30
  target?: string;
19
31
  }[];
20
32
  }
33
+ interface Logo {
34
+ src?: Source;
35
+ alt?: AltText;
36
+ width?: Width;
37
+ height?: Height;
38
+ }
21
39
  declare const Footer: FC<FooterProps>;
22
40
  export { Footer };
@@ -6,6 +6,6 @@ import { Picture } from '@kickstartds/base/lib/picture';
6
6
  import { Link } from '@kickstartds/base/lib/link';
7
7
 
8
8
  const now = new Date();
9
- const Footer = ({ logo, logoHref = "/", navItems = [], }) => (jsx("div", { className: classnames("c-footer"), children: jsxs("div", { className: "c-footer__content", children: [jsx(Link, { className: "c-footer__logo", href: logoHref, children: jsx(Picture, { ...logo }) }), jsxs("span", { className: "c-footer__trademark", children: ["\u00A9 ", now.getFullYear(), " systemics Inc. All rights reserved."] }), navItems.length > 0 ? (jsx("div", { className: "c-footer__links", children: navItems.map(({ label, ...linkProps }) => (createElement(Link, { ...linkProps, className: "c-footer__link", key: linkProps.href + label }, label))) })) : null] }) }));
9
+ const Footer = ({ logo, logoHref = "/", navItems = [], }) => (jsx("div", { className: classnames("c-footer"), children: jsxs("div", { className: "c-footer__content", children: [jsx(Link, { className: "c-footer__logo", href: logoHref, children: jsx(Picture, { ...logo, lazy: true }) }), jsxs("span", { className: "c-footer__trademark", children: ["\u00A9 ", now.getFullYear(), " systemics Inc. All rights reserved."] }), navItems.length > 0 ? (jsx("div", { className: "c-footer__links", children: navItems.map(({ label, ...linkProps }) => (createElement(Link, { ...linkProps, className: "c-footer__link", key: linkProps.href + label }, label))) })) : null] }) }));
10
10
 
11
11
  export { Footer };