@kickstartds/ds-agency-premium 1.6.71--canary.2005.8789d0a.0 → 1.6.71--canary.45.2008.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 (159) hide show
  1. package/dist/{BlogOverviewProps-ca3bc416.d.ts → BlogOverviewProps-b9fd1bfd.d.ts} +2 -2
  2. package/dist/{BlogPostProps-c04a5ed8.d.ts → BlogPostProps-b9fd1bfd.d.ts} +2 -2
  3. package/dist/BusinessCardProps-e10e7b62.d.ts +101 -0
  4. package/dist/ContentNavProps-0e282a9f.d.ts +36 -0
  5. package/dist/DownloadsProps-a49a977e.d.ts +34 -0
  6. package/dist/{PageProps-ca3bc416.d.ts → PageProps-b9fd1bfd.d.ts} +1 -1
  7. package/dist/{SectionProps-00ddee3a.d.ts → SectionProps-b9fd1bfd.d.ts} +7 -2
  8. package/dist/SplitEvenProps-789f8508.d.ts +65 -0
  9. package/dist/SplitWeightedProps-789f8508.d.ts +95 -0
  10. package/dist/components/blog-aside/index.d.ts +1 -1
  11. package/dist/components/blog-overview/blog-overview.schema.dereffed.json +11756 -4
  12. package/dist/components/blog-overview/index.d.ts +1 -1
  13. package/dist/components/blog-post/blog-post.schema.dereffed.json +11756 -4
  14. package/dist/components/blog-post/index.d.ts +1 -1
  15. package/dist/components/blog-post/index.js +1 -1
  16. package/dist/components/blog-teaser/index.d.ts +1 -1
  17. package/dist/components/breadcrumb/index.js +6 -1
  18. package/dist/components/business-card/business-card.css +1 -11
  19. package/dist/components/business-card/index.d.ts +1 -101
  20. package/dist/components/business-card/index.js +11 -1
  21. package/dist/components/button/button.css +2 -2
  22. package/dist/components/button/index.js +19 -9
  23. package/dist/components/button-group/index.js +11 -2
  24. package/dist/components/content-nav/index.d.ts +1 -36
  25. package/dist/components/content-nav/index.js +8 -1
  26. package/dist/components/cookie-consent/cookie-consent.css +110 -0
  27. package/dist/components/cookie-consent/cookie-consent.schema.dereffed.json +189 -0
  28. package/dist/components/cookie-consent/cookie-consent.schema.json +147 -0
  29. package/dist/components/cookie-consent/index.d.ts +102 -0
  30. package/dist/components/cookie-consent/index.js +30 -0
  31. package/dist/components/downloads/index.d.ts +1 -34
  32. package/dist/components/downloads/index.js +6 -1
  33. package/dist/components/event-appointment/index.js +8 -1
  34. package/dist/components/event-detail/index.js +1 -1
  35. package/dist/components/event-filter/index.js +28 -1
  36. package/dist/components/event-header/index.js +6 -2
  37. package/dist/components/event-latest/index.js +6 -1
  38. package/dist/components/event-latest-teaser/index.js +6 -1
  39. package/dist/components/event-list-teaser/index.js +8 -1
  40. package/dist/components/event-location/index.js +8 -1
  41. package/dist/components/event-login/index.js +11 -1
  42. package/dist/components/event-registration/index.js +14 -1
  43. package/dist/components/footer/footer.css +3 -3
  44. package/dist/components/footer/footer.schema.dereffed.json +12 -20
  45. package/dist/components/header/header.schema.dereffed.json +12 -20
  46. package/dist/components/headline/headline.css +3 -45
  47. package/dist/components/headline/index.js +13 -4
  48. package/dist/components/hero/hero.css +0 -22
  49. package/dist/components/index/index.d.ts +3 -3
  50. package/dist/components/nav-dropdown/nav-dropdown.css +3 -3
  51. package/dist/components/nav-flyout/nav-flyout.schema.dereffed.json +12 -20
  52. package/dist/components/nav-main/nav-main.schema.dereffed.json +12 -20
  53. package/dist/components/nav-main/nav-main.schema.json +12 -20
  54. package/dist/components/nav-topbar/nav-topbar.css +3 -3
  55. package/dist/components/nav-topbar/nav-topbar.schema.dereffed.json +12 -20
  56. package/dist/components/page/index.d.ts +1 -1
  57. package/dist/components/page/page.schema.dereffed.json +11756 -4
  58. package/dist/components/page-wrapper/index.js +1 -7
  59. package/dist/components/page-wrapper/tokens.css +249 -249
  60. package/dist/components/pagination/index.js +13 -1
  61. package/dist/components/presets.json +141 -46
  62. package/dist/components/providers/index.js +1 -1
  63. package/dist/components/search-bar/index.js +4 -1
  64. package/dist/components/search-filter/index.js +6 -1
  65. package/dist/components/search-result/index.js +6 -1
  66. package/dist/components/section/index.d.ts +1 -1
  67. package/dist/components/section/index.js +1 -3
  68. package/dist/components/section/section.css +19 -63
  69. package/dist/components/section/section.schema.dereffed.json +11756 -4
  70. package/dist/components/section/section.schema.json +16 -8
  71. package/dist/components/settings/settings.schema.dereffed.json +24 -40
  72. package/dist/components/slider/index.d.ts +3 -1
  73. package/dist/components/slider/index.js +19 -3
  74. package/dist/components/split-even/index.d.ts +9 -71
  75. package/dist/components/split-even/index.js +21 -2
  76. package/dist/components/split-even/split-even.css +1 -1
  77. package/dist/components/split-weighted/index.d.ts +7 -99
  78. package/dist/components/split-weighted/index.js +33 -4
  79. package/dist/components/stats/stats.css +4 -4
  80. package/dist/components/teaser-card/teaser-card.css +14 -14
  81. package/dist/global.css +2 -12
  82. package/dist/static/favicon/android-chrome-192x192.png +0 -0
  83. package/dist/static/favicon/android-chrome-512x512.png +0 -0
  84. package/dist/static/favicon/apple-touch-icon.png +0 -0
  85. package/dist/static/favicon/browserconfig.xml +9 -0
  86. package/dist/static/favicon/favicon-16x16.png +0 -0
  87. package/dist/static/favicon/favicon-192-192.png +20 -0
  88. package/dist/static/favicon/favicon-32x32.png +0 -0
  89. package/dist/static/favicon/favicon.ico +0 -0
  90. package/dist/static/favicon/mstile-144x144.png +0 -0
  91. package/dist/static/favicon/mstile-150x150.png +0 -0
  92. package/dist/static/favicon/mstile-310x150.png +0 -0
  93. package/dist/static/favicon/mstile-310x310.png +0 -0
  94. package/dist/static/favicon/mstile-70x70.png +0 -0
  95. package/dist/static/favicon/safari-pinned-tab.svg +30 -0
  96. package/dist/static/favicon/site.webmanifest +19 -1
  97. package/dist/static/logo-inverted.svg +12 -27
  98. package/dist/static/logo.svg +12 -27
  99. package/dist/tokens/IconSprite.js +0 -6
  100. package/dist/tokens/icon-sprite.html +0 -2
  101. package/dist/tokens/themes.css +4 -4
  102. package/dist/tokens/tokens.css +249 -249
  103. package/dist/tokens/tokens.js +376 -377
  104. package/package.json +1 -1
  105. package/dist/static/guenther/brands/cadillac.png +0 -0
  106. package/dist/static/guenther/brands/corvette.png +0 -0
  107. package/dist/static/guenther/brands/infiniti.png +0 -0
  108. package/dist/static/guenther/brands/isuzu.png +0 -0
  109. package/dist/static/guenther/brands/kia.png +0 -0
  110. package/dist/static/guenther/brands/maserati.png +0 -0
  111. package/dist/static/guenther/brands/micro.png +0 -0
  112. package/dist/static/guenther/brands/msg.png +0 -0
  113. package/dist/static/guenther/brands/nissan.png +0 -0
  114. package/dist/static/guenther/brands/saab.png +0 -0
  115. package/dist/static/guenther/brands/subaru.png +0 -0
  116. package/dist/static/guenther/car-1.webp +0 -0
  117. package/dist/static/guenther/car-2.webp +0 -0
  118. package/dist/static/guenther/car-cutout-1.avif +0 -0
  119. package/dist/static/guenther/car-cutout-2.avif +0 -0
  120. package/dist/static/guenther/car-cutout-3.png +0 -0
  121. package/dist/static/guenther/car-red.png +0 -0
  122. package/dist/static/guenther/car-store.png +0 -0
  123. package/dist/static/guenther/car-yellow.webp +0 -0
  124. package/dist/static/guenther/contact.jpg +0 -0
  125. package/dist/static/guenther/header-2.png +0 -0
  126. package/dist/static/guenther/header.jpg +0 -0
  127. package/dist/static/guenther/header.png +0 -0
  128. package/dist/static/guenther/kia-header.webp +0 -0
  129. package/dist/static/guenther/locations/farmsen.png +0 -0
  130. package/dist/static/guenther/locations/hamm.png +0 -0
  131. package/dist/static/guenther/locations/poppenbuettel.jpg +0 -0
  132. package/dist/static/guenther/nissan/19TDIEULHD_JUKE_CA_012_pace706.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  133. package/dist/static/guenther/nissan/19TDIEULHD_JUKE_P13A_CA_019C_pace705.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  134. package/dist/static/guenther/nissan/22NISSCA_JUKE_Trunk_Entry-Guard_pace704.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  135. package/dist/static/guenther/nissan/22NISSCA_JUKE_Trunk_Spoiler_pace703.jpg.ximg_.l_6_h.smart_.jpg +0 -0
  136. package/dist/static/guenther/nissan/24720-slide-juke1-mobil.jpg +0 -0
  137. package/dist/static/guenther/nissan/24720-slide-juke1.jpg +0 -0
  138. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_001-pace203.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  139. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_006-pace204.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  140. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_009-pace205.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  141. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_010-pace206.jpg.ximg_.l_12_m.smart_.jpg +0 -0
  142. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_012-pace305.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  143. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_015-pace304.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  144. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_016-pace306.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  145. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_017-pace405.jpg.ximg_.l_6_h.smart_.jpg +0 -0
  146. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_021-pace302.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  147. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_023-pace303.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  148. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_025-pace308.jpg.ximg_.l_6_h.smart_.jpg +0 -0
  149. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_031-pace404.jpg.ximg_.l_6_h.smart_.jpg +0 -0
  150. package/dist/static/guenther/nissan/24TDIEULHD_JUKE_MC_Lifestyle_pace-702.jpg.ximg_.l_12_h.smart_.jpg +0 -0
  151. package/dist/static/guenther/nissan/24TDIEURHD_JUKE_MC_019-pace307.jpg.ximg_.l_6_h.smart_.jpg +0 -0
  152. package/dist/static/guenther/nissan/24TDIEU_JUKE_Dimension-illustration-pace502.jpg.ximg_.l_4_h.smart_.jpg +0 -0
  153. package/dist/static/guenther/nissan/24TDIEU_JUKE_Dimension-illustration-pace503.jpg.ximg_.l_4_h.smart_-400x267.jpg +0 -0
  154. package/dist/static/guenther/nissan/24TDIEU_JUKE_Dimension-illustration-pace503.jpg.ximg_.l_4_h.smart_.jpg +0 -0
  155. package/dist/static/guenther/nissan/ACC_JUKE_mirrorcap_pace118-d.jpg.ximg_.m_12_h.smart_.jpg +0 -0
  156. package/dist/static/guenther/nissan/junke-abmessungen-600x400.jpg +0 -0
  157. package/dist/static/guenther/visual.png +0 -0
  158. /package/dist/{BlogAsideProps-fb0241df.d.ts → BlogAsideProps-c760fd2a.d.ts} +0 -0
  159. /package/dist/{BlogTeaserProps-d62a0a9a.d.ts → BlogTeaserProps-f5855e93.d.ts} +0 -0
@@ -0,0 +1,147 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "http://schema.mydesignsystem.com/cookie-consent.schema.json",
4
+ "title": "Cookie Consent",
5
+ "type": "object",
6
+ "properties": {
7
+ "notice": {
8
+ "title": "Initial Cookie Consent Notice",
9
+ "description": "The initial notice displayed to users regarding cookie consent.",
10
+ "type": "object",
11
+ "properties": {
12
+ "displayMode": {
13
+ "type": "string",
14
+ "enum": ["card", "banner"],
15
+ "description": "The display mode of the cookie consent component",
16
+ "default": "card"
17
+ },
18
+ "title": {
19
+ "type": "string",
20
+ "description": "The title of the cookie consent section",
21
+ "examples": ["We value your privacy"]
22
+ },
23
+ "acceptButton": {
24
+ "type": "object",
25
+ "properties": {
26
+ "label": {
27
+ "type": "string",
28
+ "description": "The label for the accept button",
29
+ "examples": ["Accept All Cookies"]
30
+ },
31
+ "variant": {
32
+ "type": "string",
33
+ "enum": ["primary", "secondary", "tertiary"],
34
+ "examples": ["primary"],
35
+ "description": "The variant of the accept button"
36
+ }
37
+ }
38
+ },
39
+ "rejectButton": {
40
+ "type": "object",
41
+ "properties": {
42
+ "label": {
43
+ "type": "string",
44
+ "description": "The label for the reject button",
45
+ "examples": ["Reject All Cookies"]
46
+ },
47
+ "variant": {
48
+ "type": "string",
49
+ "enum": ["primary", "secondary", "tertiary"],
50
+ "examples": ["tertiary"],
51
+ "description": "The variant of the reject button"
52
+ }
53
+ }
54
+ },
55
+ "customizeButton": {
56
+ "type": "object",
57
+ "properties": {
58
+ "label": {
59
+ "type": "string",
60
+ "description": "The label for the customize button",
61
+ "examples": ["Customize Cookies"]
62
+ },
63
+ "variant": {
64
+ "type": "string",
65
+ "enum": ["primary", "secondary", "tertiary"],
66
+ "examples": ["tertiary"],
67
+ "description": "The variant of the customize button"
68
+ }
69
+ }
70
+ },
71
+ "description": {
72
+ "type": "string",
73
+ "description": "The description of the cookie consent section",
74
+ "examples": [
75
+ "This website uses cookies to ensure you get the best experience on our website."
76
+ ]
77
+ }
78
+ }
79
+ },
80
+ "dialogue": {
81
+ "type": "object",
82
+ "title": "Cookie Consent Dialogue",
83
+ "description": "The dialogue displayed when users choose to customize their cookie preferences.",
84
+ "properties": {
85
+ "title": {
86
+ "type": "string",
87
+ "description": "The title of the cookie consent dialogue",
88
+ "examples": ["Manage Cookie Preferences"]
89
+ },
90
+ "description": {
91
+ "type": "string",
92
+ "description": "The description of the cookie consent dialogue",
93
+ "examples": [
94
+ "Customize your privacy settings here. You can choose which types of cookies and tracking technologies you allow."
95
+ ]
96
+ },
97
+ "required": {
98
+ "title": "Required Cookies",
99
+ "type": "array",
100
+ "items": {
101
+ "type": "object",
102
+ "properties": {
103
+ "name": {
104
+ "type": "string",
105
+ "description": "The name of the required cookie",
106
+ "examples": ["Session Cookie"]
107
+ },
108
+ "description": {
109
+ "type": "string",
110
+ "description": "A description of the required cookie",
111
+ "examples": [
112
+ "This cookie is essential for the website to function and cannot be disabled."
113
+ ]
114
+ }
115
+ }
116
+ }
117
+ },
118
+ "options": {
119
+ "type": "array",
120
+ "items": {
121
+ "type": "object",
122
+ "properties": {
123
+ "name": {
124
+ "type": "string",
125
+ "description": "The name of the cookie category",
126
+ "examples": ["Essential Cookies"]
127
+ },
128
+ "description": {
129
+ "type": "string",
130
+ "description": "A description of the cookie category",
131
+ "examples": [
132
+ "These cookies are necessary for the website to function."
133
+ ]
134
+ },
135
+ "checked": {
136
+ "type": "boolean",
137
+ "description": "Whether the cookie category is checked by default",
138
+ "default": true
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ },
146
+ "additionalProperties": false
147
+ }
@@ -0,0 +1,102 @@
1
+ /// <reference types="react" />
2
+ import { HTMLAttributes } 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
+ type RequiredCookies = {
10
+ /**
11
+ * The name of the required cookie
12
+ */
13
+ name?: string;
14
+ /**
15
+ * A description of the required cookie
16
+ */
17
+ description?: string;
18
+ }[];
19
+ interface CookieConsentProps {
20
+ notice?: InitialCookieConsentNotice;
21
+ dialogue?: CookieConsentDialogue;
22
+ }
23
+ /**
24
+ * The initial notice displayed to users regarding cookie consent.
25
+ */
26
+ interface InitialCookieConsentNotice {
27
+ /**
28
+ * The display mode of the cookie consent component
29
+ */
30
+ displayMode?: "card" | "banner";
31
+ /**
32
+ * The title of the cookie consent section
33
+ */
34
+ title?: string;
35
+ acceptButton?: {
36
+ /**
37
+ * The label for the accept button
38
+ */
39
+ label?: string;
40
+ /**
41
+ * The variant of the accept button
42
+ */
43
+ variant?: "primary" | "secondary" | "tertiary";
44
+ };
45
+ rejectButton?: {
46
+ /**
47
+ * The label for the reject button
48
+ */
49
+ label?: string;
50
+ /**
51
+ * The variant of the reject button
52
+ */
53
+ variant?: "primary" | "secondary" | "tertiary";
54
+ };
55
+ customizeButton?: {
56
+ /**
57
+ * The label for the customize button
58
+ */
59
+ label?: string;
60
+ /**
61
+ * The variant of the customize button
62
+ */
63
+ variant?: "primary" | "secondary" | "tertiary";
64
+ };
65
+ /**
66
+ * The description of the cookie consent section
67
+ */
68
+ description?: string;
69
+ }
70
+ /**
71
+ * The dialogue displayed when users choose to customize their cookie preferences.
72
+ */
73
+ interface CookieConsentDialogue {
74
+ /**
75
+ * The title of the cookie consent dialogue
76
+ */
77
+ title?: string;
78
+ /**
79
+ * The description of the cookie consent dialogue
80
+ */
81
+ description?: string;
82
+ required?: RequiredCookies;
83
+ options?: {
84
+ /**
85
+ * The name of the cookie category
86
+ */
87
+ name?: string;
88
+ /**
89
+ * A description of the cookie category
90
+ */
91
+ description?: string;
92
+ /**
93
+ * Whether the cookie category is checked by default
94
+ */
95
+ checked?: boolean;
96
+ }[];
97
+ }
98
+ declare const CookieConsentContextDefault: import("react").ForwardRefExoticComponent<CookieConsentProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
99
+ declare const CookieConsentContext: import("react").Context<import("react").ForwardRefExoticComponent<CookieConsentProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>>;
100
+ declare const CookieConsent: import("react").ForwardRefExoticComponent<CookieConsentProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
101
+ export type { CookieConsentProps };
102
+ export { CookieConsentContextDefault, CookieConsentContext, CookieConsent };
@@ -0,0 +1,30 @@
1
+ import "./cookie-consent.css";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useState, createContext, useContext } from 'react';
4
+ import classnames from 'classnames';
5
+ import { Headline } from '../headline/index.js';
6
+ import { Button } from '../button/index.js';
7
+ import { RichText } from '@kickstartds/base/lib/rich-text';
8
+ import Markdown from 'markdown-to-jsx';
9
+ import { Radio } from '@kickstartds/form/lib/radio';
10
+ import '@kickstartds/base/lib/headline';
11
+ import '../../helpers-12f48df8.js';
12
+ import '@kickstartds/base/lib/button';
13
+
14
+ const CookieConsentContextDefault = forwardRef(({ notice, dialogue }, ref) => {
15
+ const [showDialogue, setShowDialogue] = useState(false);
16
+ const [optionStates, setOptionStates] = useState(dialogue?.options?.map((option) => option.checked ?? true) // true = default checked
17
+ );
18
+ const handleRadioChange = (index, value) => {
19
+ setOptionStates((prev) => prev.map((checked, i) => (i === index ? value : checked)));
20
+ };
21
+ return (jsxs("div", { className: "dsa-cookie-consent", ref: ref, children: [jsxs("div", { className: classnames(`dsa-cookie-consent-notice dsa-cookie-consent-notice--${notice?.displayMode}`), children: [jsx(Headline, { spaceAfter: "minimum", text: notice?.title, level: "h2", style: "h3" }), jsx(RichText, { text: notice?.description }), jsxs("div", { className: "dsa-cookie-consent-notice__buttons", children: [jsx(Button, { size: "small", label: notice?.rejectButton?.label, variant: notice?.rejectButton?.variant }), jsx(Button, { size: "small", label: notice?.customizeButton?.label, variant: notice?.customizeButton?.variant, onClick: () => setShowDialogue(true) }), jsx(Button, { size: "small", label: notice?.acceptButton?.label, variant: notice?.acceptButton?.variant })] })] }), jsxs("div", { className: "dsa-cookie-consent-dialogue", hidden: !showDialogue, "aria-hidden": !showDialogue, children: [jsx(Button, { "aria-label": "Close Cookie Consent Dialogue", className: "dsa-cookie-consent-dialogue__close", icon: "close", label: "", onClick: () => setShowDialogue(false) }), jsxs("div", { className: "dsa-cookie-consent-dialogue__header", children: [jsx(Headline, { spaceAfter: "minimum", text: dialogue?.title, level: "h2" }), jsx(RichText, { text: dialogue?.description })] }), jsxs("div", { className: "dsa-cookie-consent-dialogue__options", children: [dialogue?.required?.map((option, index) => (jsxs("div", { className: "dsa-cookie-consent-dialogue__option", children: [jsx(Headline, { spaceAfter: "minimum", text: option.name, level: "h3", style: "h4" }, index), jsx(Markdown, { className: "dsa-cookie-consent-dialogue__description", children: option.description }), jsxs("div", { className: "dsa-cookie-consent-dialogue__toggle", children: [jsx(Radio, { checked: true, name: option.name, disabled: true, label: "Accept" }), jsx(Radio, { name: option.name, disabled: true, label: "Reject" })] })] }, index))), dialogue?.options?.map((option, index) => (jsxs("div", { className: "dsa-cookie-consent-dialogue__option", children: [jsx(Headline, { spaceAfter: "minimum", text: option.name, level: "h3", style: "h4" }, index), jsx(Markdown, { className: "dsa-cookie-consent-dialogue__description", children: option.description }), jsxs("div", { className: "dsa-cookie-consent-dialogue__toggle", children: [jsx(Radio, { name: option.name, checked: optionStates?.[index] ?? true, label: "Accept", onChange: () => handleRadioChange(index, true) }), jsx(Radio, { name: option.name, checked: optionStates ? !optionStates[index] : false, label: "Reject", onChange: () => handleRadioChange(index, false) })] })] }, index)))] }), jsxs("div", { className: "dsa-cookie-consent-dialogue__buttons", children: [jsx(Button, { size: "small", variant: "tertiary", label: "Accept All", onClick: () => setOptionStates(optionStates?.map(() => true)) }), jsx(Button, { size: "small", variant: "tertiary", label: "Reject All", onClick: () => setOptionStates(optionStates?.map(() => false)) }), jsx(Button, { size: "small", variant: "primary", label: "Save Preferences", onClick: () => setShowDialogue(false) })] })] }), jsx("div", { className: "dsa-cookie-consent-overlay", hidden: !showDialogue })] }));
22
+ });
23
+ const CookieConsentContext = createContext(CookieConsentContextDefault);
24
+ const CookieConsent = forwardRef((props, ref) => {
25
+ const Component = useContext(CookieConsentContext);
26
+ return jsx(Component, { ...props, ref: ref });
27
+ });
28
+ CookieConsent.displayName = "CookieConsent";
29
+
30
+ export { CookieConsent, CookieConsentContext, CookieConsentContextDefault };
@@ -1,39 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { HTMLAttributes } 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
- interface DownloadsProps {
10
- downloads?: {
11
- /**
12
- * The name of the file
13
- */
14
- name: string;
15
- /**
16
- * A brief description of the file
17
- */
18
- description?: string;
19
- /**
20
- * A URL to an image that previews the file.
21
- */
22
- previewImage?: string;
23
- /**
24
- * The URL to download the file from.
25
- */
26
- url: string;
27
- /**
28
- * The size of the download file
29
- */
30
- size?: string;
31
- /**
32
- * The format of the download file
33
- */
34
- format?: string;
35
- }[];
36
- }
3
+ import { DownloadsProps } from "../../DownloadsProps-a49a977e.js";
37
4
  declare const DownloadsContextDefault: import("react").ForwardRefExoticComponent<DownloadsProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
38
5
  declare const DownloadsContext: import("react").Context<import("react").ForwardRefExoticComponent<DownloadsProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>>;
39
6
  declare const Downloads: import("react").ForwardRefExoticComponent<DownloadsProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -4,6 +4,11 @@ import { forwardRef, createContext, useContext } from 'react';
4
4
  import { RichText } from '@kickstartds/base/lib/rich-text';
5
5
  import { Icon } from '@kickstartds/base/lib/icon';
6
6
  import { Picture } from '@kickstartds/base/lib/picture';
7
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
8
+
9
+ const defaults = {
10
+ "downloads": []
11
+ };
7
12
 
8
13
  const DownloadsContextDefault = forwardRef(({ downloads }, ref) => {
9
14
  return (jsx("div", { className: "dsa-downloads", ref: ref, children: downloads.map((item, index) => (jsxs("a", { href: item?.url, target: "_blank", className: "dsa-downloads-item", "aria-label": "Download file", children: [item?.previewImage ? (jsx(Picture, { "aria-hidden": true, className: "dsa-downloads-item__image", src: item.previewImage, alt: "" })) : (jsx(Icon, { "aria-hidden": true, className: "dsa-downloads-item__placeholder-icon", icon: "file" })), jsxs("div", { className: "dsa-downloads-item__header", children: [jsx("span", { className: "dsa-downloads-item__name", children: item.name }), (item?.format || item?.size || item?.description) && (jsxs("div", { className: "dsa-downloads-item__infos", children: [item?.format && (jsx("span", { className: "dsa-downloads-item__info dsa-downloads-item__format", children: item.format })), item?.size && (jsx("span", { className: "dsa-downloads-item__info dsa-downloads-item__size", children: item.size })), item?.description && (jsx(RichText, { className: "dsa-downloads-item__description", text: item.description }))] }))] }), jsxs("span", { "aria-hidden": true, className: "dsa-downloads-item__button", children: [jsx("span", { children: "Download" }), jsx(Icon, { "aria-hidden": true, icon: "download" })] })] }, index))) }));
@@ -11,7 +16,7 @@ const DownloadsContextDefault = forwardRef(({ downloads }, ref) => {
11
16
  const DownloadsContext = createContext(DownloadsContextDefault);
12
17
  const Downloads = forwardRef((props, ref) => {
13
18
  const Component = useContext(DownloadsContext);
14
- return jsx(Component, { ...props, ref: ref });
19
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
20
  });
16
21
  Downloads.displayName = "Downloads";
17
22
 
@@ -2,12 +2,19 @@ import "./event-appointment.css";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import { Icon } from '@kickstartds/base/lib/icon';
5
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
6
+
7
+ const defaults = {
8
+ "url": "#",
9
+ "newTab": true,
10
+ "ariaLabel": "Event Appointment"
11
+ };
5
12
 
6
13
  const EventAppointmentContextDefault = forwardRef(({ date, time, label, url, newTab, ariaLabel }, ref) => (jsxs("a", { className: "dsa-event-appointment", target: newTab ? "_blank" : "_self", "aria-label": ariaLabel, href: url, ref: ref, children: [jsxs("span", { className: "dsa-event-appointment__infos", children: [date && (jsxs("span", { className: "dsa-event-appointment__info dsa-event-appointment__info--date", children: [jsx(Icon, { className: "dsa-event-appointment__icon", "aria-hidden": true, icon: "date" }), date] })), time && (jsxs("span", { className: "dsa-event-appointment__info dsa-event-appointment__info--time", children: [jsx(Icon, { className: "dsa-event-appointment__icon", "aria-hidden": true, icon: "time" }), time] }))] }), jsxs("span", { className: "dsa-event-appointment__label", children: [label, jsx(Icon, { icon: "chevron-right" })] })] })));
7
14
  const EventAppointmentContext = createContext(EventAppointmentContextDefault);
8
15
  const EventAppointment = forwardRef((props, ref) => {
9
16
  const Component = useContext(EventAppointmentContext);
10
- return jsx(Component, { ...props, ref: ref });
17
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
11
18
  });
12
19
  EventAppointment.displayName = "EventAppointment";
13
20
 
@@ -10,12 +10,12 @@ import 'react';
10
10
  import 'classnames';
11
11
  import '@kickstartds/base/lib/icon';
12
12
  import '../event-appointment/index.js';
13
+ import '../../helpers-12f48df8.js';
13
14
  import '@kickstartds/core/lib/container';
14
15
  import '@kickstartds/core/lib/react';
15
16
  import '@kickstartds/base/lib/section';
16
17
  import '../section/js/Section.client.js';
17
18
  import '@kickstartds/core/lib/component';
18
- import '../../helpers-12f48df8.js';
19
19
  import '../text/index.js';
20
20
  import '@kickstartds/base/lib/tag-label';
21
21
  import '@kickstartds/base/lib/text-media';
@@ -4,9 +4,36 @@ import { forwardRef, createContext, useContext } from 'react';
4
4
  import { TextField } from '@kickstartds/form/lib/text-field';
5
5
  import { Checkbox } from '@kickstartds/form/lib/checkbox';
6
6
  import { Button } from '../button/index.js';
7
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
7
8
  import 'classnames';
8
9
  import '@kickstartds/base/lib/button';
9
10
 
11
+ const defaults = {
12
+ "datePicker": {
13
+ "title": "Find Appointment",
14
+ "dateFromInput": {
15
+ "label": "From",
16
+ "placeholder": "Select a date"
17
+ },
18
+ "dateToInput": {
19
+ "label": "To",
20
+ "placeholder": "Select a date"
21
+ },
22
+ "toggle": true
23
+ },
24
+ "categories": {
25
+ "title": "Categories",
26
+ "categoryCheckboxes": [],
27
+ "toggle": true
28
+ },
29
+ "applyButton": {
30
+ "label": "Filter Appointments"
31
+ },
32
+ "resetButton": {
33
+ "label": "Reset Filters"
34
+ }
35
+ };
36
+
10
37
  const EventFilterContextDefault = forwardRef(({ categories = {
11
38
  title: "Categories",
12
39
  toggle: true,
@@ -27,7 +54,7 @@ const EventFilterContextDefault = forwardRef(({ categories = {
27
54
  const EventFilterContext = createContext(EventFilterContextDefault);
28
55
  const EventFilter = forwardRef((props, ref) => {
29
56
  const Component = useContext(EventFilterContext);
30
- return jsx(Component, { ...props, ref: ref });
57
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
31
58
  });
32
59
  EventFilter.displayName = "EventFilter";
33
60
 
@@ -4,17 +4,21 @@ import { forwardRef, createContext, useContext } from 'react';
4
4
  import { Headline } from '../headline/index.js';
5
5
  import { Text } from '../text/index.js';
6
6
  import { TagLabel } from '@kickstartds/base/lib/tag-label';
7
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
7
8
  import 'classnames';
8
9
  import 'markdown-to-jsx';
9
10
  import '@kickstartds/base/lib/headline';
10
11
  import '@kickstartds/base/lib/rich-text';
11
- import '../../helpers-12f48df8.js';
12
+
13
+ const defaults = {
14
+ "categories": []
15
+ };
12
16
 
13
17
  const EventHeaderContextDefault = forwardRef(({ title, categories, intro }, ref) => (jsxs("div", { className: "dsa-event-header", ref: ref, children: [categories && categories.length > 0 && (jsx("div", { className: "dsa-event-header__categories", children: categories.map((category, index) => (jsx(TagLabel, { className: "dsa-event__category", label: category?.label }, index))) })), jsx(Headline, { text: title, level: "h1" }), intro && jsx(Text, { highlightText: true, text: intro })] })));
14
18
  const EventHeaderContext = createContext(EventHeaderContextDefault);
15
19
  const EventHeader = forwardRef((props, ref) => {
16
20
  const Component = useContext(EventHeaderContext);
17
- return jsx(Component, { ...props, ref: ref });
21
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
18
22
  });
19
23
  EventHeader.displayName = "EventHeader";
20
24
 
@@ -2,17 +2,22 @@ import "./event-latest.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import { EventLatestTeaser } from '../event-latest-teaser/index.js';
5
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
5
6
  import 'classnames';
6
7
  import '@kickstartds/base/lib/icon';
7
8
  import '@kickstartds/core/lib/container';
8
9
 
10
+ const defaults = {
11
+ "events": []
12
+ };
13
+
9
14
  const EventLatestContextDefault = forwardRef(({ events }, ref) => {
10
15
  return (jsx("div", { className: "dsa-event-latest", ref: ref, children: events.map((event, index) => (jsx(EventLatestTeaser, { ...event }, index))) }));
11
16
  });
12
17
  const EventLatestContext = createContext(EventLatestContextDefault);
13
18
  const EventLatest = forwardRef((props, ref) => {
14
19
  const Component = useContext(EventLatestContext);
15
- return jsx(Component, { ...props, ref: ref });
20
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
16
21
  });
17
22
  EventLatest.displayName = "EventLatest";
18
23
 
@@ -4,6 +4,11 @@ import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
5
  import { Icon } from '@kickstartds/base/lib/icon';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
8
+
9
+ const defaults = {
10
+ "calendar": {}
11
+ };
7
12
 
8
13
  const EventLatestTeaserContextDefault = forwardRef(({ date, title, cta, calendar, url, location, ariaLabel, className, ...rest }, ref) => {
9
14
  return (jsx(Container, { name: "event-latest-teaser", children: jsxs("a", { className: classnames(className, "dsa-event-latest-teaser"), ...rest, href: url, ref: ref, "aria-label": ariaLabel, children: [jsxs("span", { className: "dsa-event-latest-teaser__content", children: [jsxs("span", { className: "dsa-event-latest-teaser-calendar", children: [jsx("span", { className: "dsa-event-latest-teaser-calendar__day", children: calendar.day }), jsx("span", { className: "dsa-event-latest-teaser-calendar__month", children: calendar.month })] }), jsxs("span", { className: "dsa-event-latest-teaser__text", children: [jsx("span", { className: "dsa-event-latest-teaser__title", children: title }), jsxs("span", { className: "dsa-event-latest-teaser__infos", children: [jsxs("span", { className: "dsa-event-latest-teaser__info", children: [jsx(Icon, { "aria-hidden": true, icon: "date" }), date] }), jsxs("span", { className: "dsa-event-latest-teaser__info", children: [jsx(Icon, { "aria-hidden": true, icon: "map-pin" }), location] })] })] })] }), jsxs("span", { className: "dsa-event-latest-teaser__cta", children: [jsx("span", { children: cta }), jsx(Icon, { "aria-hidden": true, icon: "chevron-right" })] })] }) }));
@@ -11,7 +16,7 @@ const EventLatestTeaserContextDefault = forwardRef(({ date, title, cta, calendar
11
16
  const EventLatestTeaserContext = createContext(EventLatestTeaserContextDefault);
12
17
  const EventLatestTeaser = forwardRef((props, ref) => {
13
18
  const Component = useContext(EventLatestTeaserContext);
14
- return jsx(Component, { ...props, ref: ref });
19
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
20
  });
16
21
  EventLatestTeaser.displayName = "EventLatestTeaser";
17
22
 
@@ -7,6 +7,13 @@ import { Container } from '@kickstartds/core/lib/container';
7
7
  import { Picture } from '@kickstartds/base/lib/picture';
8
8
  import Markdown from 'markdown-to-jsx';
9
9
  import { TagLabel } from '@kickstartds/base/lib/tag-label';
10
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
11
+
12
+ const defaults = {
13
+ "location": {},
14
+ "tags": [],
15
+ "image": {}
16
+ };
10
17
 
11
18
  const EventListTeaserContextDefault = forwardRef(({ category, title, text, date, time, tags, location, image, ctaText, url, ariaLabel, className, ...rest }, ref) => {
12
19
  return (jsx(Container, { name: "event-list-teaser", children: jsxs("a", { className: classnames(className, "dsa-event-list-teaser"), ...rest, href: url, ref: ref, "aria-label": ariaLabel, children: [jsxs("div", { className: "dsa-event-list-teaser__content", children: [jsxs("div", { className: "dsa-event-list-teaser__header", children: [category && (jsx("span", { className: "dsa-event-list-teaser__category", children: category })), jsx("span", { className: "dsa-event-list-teaser__title", children: title })] }), tags && tags.length > 0 && (jsx("div", { className: "dsa-event-list-teaser__tags", children: tags.map((category) => (jsx(TagLabel, { label: category, size: "s" }, category))) })), jsx("div", { className: "dsa-event-list-teaser__infos", children: jsxs("div", { className: "dsa-event-list-teaser__details", children: [jsxs("div", { className: "dsa-event-list-teaser__date", children: [jsxs("span", { className: "dsa-event-list-teaser__info", children: [jsx(Icon, { "aria-hidden": true, icon: "date" }), date] }), jsxs("span", { className: "dsa-event-list-teaser__info", children: [jsx(Icon, { "aria-hidden": true, icon: "time" }), time] })] }), jsxs("div", { className: "dsa-event-list-teaser__location dsa-event-list-teaser__info", children: [jsx(Icon, { "aria-hidden": true, icon: "map-pin" }), jsxs("address", { children: [location?.name && (jsx("span", { className: "dsa-event-list-teaser__location-name", children: location.name })), jsx(Markdown, { className: "dsa-event-list-teaser__location-address", children: location?.address })] })] })] }) }), text && (jsx("p", { className: "dsa-event-list-teaser__teaser-text", children: text })), jsxs("div", { className: "dsa-event-list-teaser__cta", children: [jsx("span", { children: ctaText }), jsx(Icon, { "aria-hidden": true, icon: "chevron-right" })] })] }), image && image.src && (jsx("div", { className: "dsa-event-list-teaser__image", children: jsx(Picture, { src: image?.src, alt: image?.alt }) }))] }) }));
@@ -14,7 +21,7 @@ const EventListTeaserContextDefault = forwardRef(({ category, title, text, date,
14
21
  const EventListTeaserContext = createContext(EventListTeaserContextDefault);
15
22
  const EventListTeaser = forwardRef((props, ref) => {
16
23
  const Component = useContext(EventListTeaserContext);
17
- return jsx(Component, { ...props, ref: ref });
24
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
18
25
  });
19
26
  EventListTeaser.displayName = "EventListTeaser";
20
27
 
@@ -6,12 +6,19 @@ import { RichText } from '@kickstartds/base/lib/rich-text';
6
6
  import { Icon } from '@kickstartds/base/lib/icon';
7
7
  import { EventAppointment } from '../event-appointment/index.js';
8
8
  import { Container } from '@kickstartds/core/lib/container';
9
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
10
+
11
+ const defaults = {
12
+ "dates": [],
13
+ "displayMode": "spacious",
14
+ "links": []
15
+ };
9
16
 
10
17
  const EventLocationContextDefault = forwardRef(({ locationName, address, dates, links, displayMode, ...rest }, ref) => (jsx(Container, { name: "event-location", children: jsxs("div", { className: classnames("dsa-event-location", displayMode === "spacious" && `dsa-event-location--spacious`), ...rest, ref: ref, children: [address && (jsxs("div", { className: "dsa-event-location__info ", children: [jsx(Icon, { className: "dsa-event-location__icon", icon: "map-pin", "aria-hidden": true }), jsxs("div", { className: "dsa-event-location__text", children: [jsx("span", { className: "sr-only", children: "Address:" }), jsxs("address", { className: "dsa-event-location__address", children: [locationName && (jsx("span", { className: "dsa-event-location__name", children: locationName })), address && jsx(RichText, { text: address })] }), links && links.length > 0 && (jsx("div", { className: "dsa-event-location__links", children: links.map((link, index) => (jsx("a", { href: link.url, target: link.newTab ? "_blank" : "_self", className: "dsa-event-location__link", children: link.label }, index))) }))] })] })), dates && dates.length > 0 && (jsxs("div", { className: "dsa-event-location__appointments", children: [jsx("span", { className: "sr-only", children: "Appointments:" }), dates.map((item, index) => (createElement(EventAppointment, { ...item, key: index })))] }))] }) })));
11
18
  const EventLocationContext = createContext(EventLocationContextDefault);
12
19
  const EventLocation = forwardRef((props, ref) => {
13
20
  const Component = useContext(EventLocationContext);
14
- return jsx(Component, { ...props, ref: ref });
21
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
22
  });
16
23
  EventLocation.displayName = "EventLocation";
17
24
 
@@ -6,15 +6,25 @@ import { Link } from '@kickstartds/base/lib/link';
6
6
  import { TextField } from '@kickstartds/form/lib/text-field';
7
7
  import { Button } from '../button/index.js';
8
8
  import Markdown from 'markdown-to-jsx';
9
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
9
10
  import 'classnames';
10
11
  import '@kickstartds/base/lib/headline';
11
12
  import '@kickstartds/base/lib/button';
12
13
 
14
+ const defaults = {
15
+ "usernameInput": {},
16
+ "passwordInput": {},
17
+ "cta": {},
18
+ "resetPassword": {
19
+ "url": "#"
20
+ }
21
+ };
22
+
13
23
  const EventLoginContextDefault = forwardRef(({ headline, text, usernameInput, passwordInput, cta, resetPassword }, ref) => (jsxs("div", { ref: ref, className: "dsa-event-login", children: [jsx(Headline, { spaceAfter: "minimum", text: headline, level: "h2" }), jsx(Markdown, { className: "dsa-event-login__text", children: text }), jsxs("form", { className: "dsa-event-login__form", children: [jsxs("div", { className: "dsa-event-login__inputs", children: [jsx(TextField, { label: usernameInput.label, placeholder: usernameInput?.placeholder }), jsx(TextField, { type: "password", label: passwordInput.label, placeholder: passwordInput?.placeholder })] }), jsxs("div", { className: "dsa-event-login__actions", children: [jsx(Link, { className: "dsa-event-login__link", href: resetPassword?.url, children: resetPassword?.label || "Forgot your password?" }), jsx(Button, { label: cta.label, url: cta.url, "aria-label": cta?.ariaLabel, variant: "primary", size: "small" })] })] })] })));
14
24
  const EventLoginContext = createContext(EventLoginContextDefault);
15
25
  const EventLogin = forwardRef((props, ref) => {
16
26
  const Component = useContext(EventLoginContext);
17
- return jsx(Component, { ...props, ref: ref });
27
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
18
28
  });
19
29
  EventLogin.displayName = "EventLogin";
20
30
 
@@ -8,15 +8,28 @@ import Markdown from 'markdown-to-jsx';
8
8
  import { TextField } from '@kickstartds/form/lib/text-field';
9
9
  import { Checkbox } from '@kickstartds/form/lib/checkbox';
10
10
  import { Button } from '../button/index.js';
11
+ import { d as deepMergeDefaults } from '../../helpers-12f48df8.js';
11
12
  import 'classnames';
12
13
  import '@kickstartds/base/lib/headline';
13
14
  import '@kickstartds/base/lib/button';
14
15
 
16
+ const defaults = {
17
+ "link": {},
18
+ "location": {},
19
+ "nameInput": {},
20
+ "emailInput": {},
21
+ "mandatoryText": "_* Mandatory_",
22
+ "cta": {
23
+ "url": "#",
24
+ "ariaLabel": "Event Registration"
25
+ }
26
+ };
27
+
15
28
  const EventRegistrationContextDefault = forwardRef(({ date, time, title, link, label, location, nameInput, emailInput, mandatoryText, cta, confirmationCheckboxLabel, }, ref) => (jsxs("div", { ref: ref, className: "dsa-event-registration", children: [jsx(Headline, { spaceAfter: "minimum", text: title, level: "h2", sub: label, switchOrder: true }), jsxs("div", { className: "dsa-event-registration__infos", children: [jsxs("div", { className: "dsa-event-registration__details", children: [jsxs("div", { className: "dsa-event-registration__date", children: [jsxs("span", { className: "dsa-event-registration__info", children: [jsx(Icon, { "aria-hidden": true, icon: "date" }), date] }), jsxs("span", { className: "dsa-event-registration__info", children: [jsx(Icon, { "aria-hidden": true, icon: "time" }), time] })] }), jsxs("div", { className: "dsa-event-registration__location dsa-event-registration__info", children: [jsx(Icon, { "aria-hidden": true, icon: "map-pin" }), jsxs("address", { children: [location?.name && (jsx("span", { className: "dsa-event-registration__location-name", children: location.name })), jsx(Markdown, { className: "dsa-event-registration__location-address", children: location?.address })] })] })] }), jsx(Link, { className: "dsa-event-registration__link", href: link?.url, children: link?.text })] }), jsxs("form", { className: "dsa-event-registration__form", children: [jsxs("div", { className: "dsa-event-registration__inputs", children: [jsx(TextField, { label: nameInput.label, placeholder: nameInput?.placeholder }), jsx(TextField, { type: "email", label: emailInput.label, placeholder: emailInput?.placeholder }), jsx(Checkbox, { label: confirmationCheckboxLabel, name: "confirmation-checkbox", id: "confirmation-checkbox" })] }), jsxs("div", { className: "dsa-event-registration__footer", children: [jsx(Markdown, { className: "dsa-event-registration__mandatory-text", children: mandatoryText }), jsx(Button, { label: cta.label, url: cta.url, "aria-label": cta?.ariaLabel, variant: "primary", size: "small" })] })] })] })));
16
29
  const EventRegistrationContext = createContext(EventRegistrationContextDefault);
17
30
  const EventRegistration = forwardRef((props, ref) => {
18
31
  const Component = useContext(EventRegistrationContext);
19
- return jsx(Component, { ...props, ref: ref });
32
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
20
33
  });
21
34
  EventRegistration.displayName = "EventRegistration";
22
35
 
@@ -1,6 +1,6 @@
1
1
  .dsa-footer {
2
2
  --dsa-footer--background-color: var(--ks-background-color-default);
3
- --dsa-footer--border-top: none;
3
+ --dsa-footer--border-top: 1px solid var(--ks-border-color-default);
4
4
  --dsa-footer--max-width: var(--dsa-content--width_wide);
5
5
  --dsa-footer--gap-vertical: var(--ks-spacing-stack-m);
6
6
  --dsa-footer__byline--font: var(--ks-font-copy-xs);
@@ -8,9 +8,9 @@
8
8
  --dsa-footer__links--gap: var(--ks-spacing-stack-s) var(--ks-spacing-inline-m);
9
9
  --dsa-footer__link--font: var(--ks-font-interface-s);
10
10
  --dsa-footer__link--font-weight: var(--dsa-link--font-weight);
11
- --dsa-footer__link--color: var(--ks-text-color-interface-interactive);
11
+ --dsa-footer__link--color: var(--dsa-link--color);
12
12
  --dsa-footer__link--text-tecoration: none;
13
- --dsa-footer__link--text-tecoration_hover: none;
13
+ --dsa-footer__link--text-tecoration_hover: underline;
14
14
  --dsa-footer__logo--height: 1.5rem;
15
15
  }
16
16
  @media (min-width: 62em) {