@kickstartds/ds-agency-premium 1.7.0--canary.46.1791.0 → 1.7.0--canary.46.1801.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 (42) hide show
  1. package/dist/components/blog-aside/index.js +6 -1
  2. package/dist/components/blog-author/index.js +10 -1
  3. package/dist/components/blog-head/index.js +6 -1
  4. package/dist/components/blog-overview/index.js +1 -0
  5. package/dist/components/blog-post/index.js +1 -0
  6. package/dist/components/blog-teaser/index.js +10 -1
  7. package/dist/components/contact/index.js +10 -1
  8. package/dist/components/cta/index.js +18 -1
  9. package/dist/components/divider/index.js +6 -1
  10. package/dist/components/faq/index.js +6 -1
  11. package/dist/components/feature/index.js +12 -1
  12. package/dist/components/features/index.js +12 -1
  13. package/dist/components/footer/index.js +11 -1
  14. package/dist/components/gallery/index.js +8 -1
  15. package/dist/components/header/index.js +13 -1
  16. package/dist/components/hero/index.js +15 -1
  17. package/dist/components/html/index.js +8 -1
  18. package/dist/components/image-story/index.js +14 -1
  19. package/dist/components/image-text/index.js +7 -1
  20. package/dist/components/logo/index.js +6 -1
  21. package/dist/components/logos/index.js +12 -1
  22. package/dist/components/mosaic/index.js +8 -1
  23. package/dist/components/nav-flyout/index.js +7 -1
  24. package/dist/components/nav-main/index.js +11 -1
  25. package/dist/components/nav-topbar/index.js +7 -1
  26. package/dist/components/page-wrapper/index.js +1 -0
  27. package/dist/components/page-wrapper/tokens.css +1 -1
  28. package/dist/components/providers/index.js +1 -0
  29. package/dist/components/section/index.js +25 -1
  30. package/dist/components/stat/index.js +4 -1
  31. package/dist/components/stats/index.js +6 -1
  32. package/dist/components/teaser-card/index.js +11 -1
  33. package/dist/components/testimonial/index.js +7 -1
  34. package/dist/components/testimonials/index.js +8 -1
  35. package/dist/components/text/index.js +8 -1
  36. package/dist/components/video-curtain/index.js +11 -1
  37. package/dist/helpers-84d80d46.d.ts +5 -0
  38. package/dist/helpers-84d80d46.js +33 -0
  39. package/dist/tokens/themes.css +4 -4
  40. package/dist/tokens/tokens.css +1 -1
  41. package/dist/tokens/tokens.js +1 -1
  42. package/package.json +3 -3
@@ -7,6 +7,7 @@ import { PostShareBar } from '@kickstartds/blog/lib/post-share-bar';
7
7
  import { Container } from '@kickstartds/core/lib/container';
8
8
  import { BlogAuthor } from '../blog-author/index.js';
9
9
  import { Headline } from '../headline/index.js';
10
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
10
11
  import '../contact/index.js';
11
12
  import '@kickstartds/base/lib/picture';
12
13
  import '@kickstartds/base/lib/contact';
@@ -16,6 +17,10 @@ import '@kickstartds/base/lib/rich-text';
16
17
  import 'markdown-to-jsx';
17
18
  import '@kickstartds/base/lib/headline';
18
19
 
20
+ const defaults = {
21
+ "socialSharing": []
22
+ };
23
+
19
24
  const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime, date, className, ...props }, ref) => {
20
25
  const socialLinks = socialSharing?.map((link) => {
21
26
  return {
@@ -40,7 +45,7 @@ const BlogAsideContextDefault = forwardRef(({ author, socialSharing, readingTime
40
45
  const BlogAsideContext = createContext(BlogAsideContextDefault);
41
46
  const BlogAside = forwardRef((props, ref) => {
42
47
  const Component = useContext(BlogAsideContext);
43
- return jsx(Component, { ...props, ref: ref });
48
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
44
49
  });
45
50
  BlogAside.displayName = "BlogAside";
46
51
 
@@ -1,6 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, createContext, useContext } from 'react';
3
3
  import { Contact } from '../contact/index.js';
4
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
4
5
  import 'classnames';
5
6
  import '@kickstartds/base/lib/picture';
6
7
  import '@kickstartds/base/lib/contact';
@@ -9,13 +10,21 @@ import '@kickstartds/base/lib/icon';
9
10
  import '@kickstartds/base/lib/rich-text';
10
11
  import '@kickstartds/core/lib/container';
11
12
 
13
+ const defaults = {
14
+ "image": {
15
+ "fullWidth": false,
16
+ "aspectRatio": "square"
17
+ },
18
+ "links": []
19
+ };
20
+
12
21
  const BlogAuthorContextDefault = forwardRef(({ name, byline, image, links, ...props }, ref) => {
13
22
  return (jsx(Contact, { ref: ref, ...props, className: "dsa-blog-aside__author", title: name, subtitle: byline, image: image, links: links }));
14
23
  });
15
24
  const BlogAuthorContext = createContext(BlogAuthorContextDefault);
16
25
  const BlogAuthor = forwardRef((props, ref) => {
17
26
  const Component = useContext(BlogAuthorContext);
18
- return jsx(Component, { ...props, ref: ref });
27
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
19
28
  });
20
29
  BlogAuthor.displayName = "BlogAuthor";
21
30
 
@@ -2,6 +2,11 @@ import "./blog-head.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import { PostHead } from '@kickstartds/blog/lib/post-head';
5
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
+
7
+ const defaults = {
8
+ "tags": []
9
+ };
5
10
 
6
11
  const BlogHeadContextDefault = forwardRef(({ date, tags = [], headline, image, alt, ...rest }, ref) => {
7
12
  return (jsx(PostHead, { ...rest, className: "dsa-blog-head", date: date, headline: { text: headline, level: "h1", align: "left" }, image: { src: image, alt: alt || headline }, categories: tags.map((tag) => {
@@ -11,7 +16,7 @@ const BlogHeadContextDefault = forwardRef(({ date, tags = [], headline, image, a
11
16
  const BlogHeadContext = createContext(BlogHeadContextDefault);
12
17
  const BlogHead = forwardRef((props, ref) => {
13
18
  const Component = useContext(BlogHeadContext);
14
- return jsx(Component, { ...props, ref: ref });
19
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
20
  });
16
21
  BlogHead.displayName = "BlogHead";
17
22
 
@@ -9,6 +9,7 @@ import '@kickstartds/core/lib/react';
9
9
  import '@kickstartds/base/lib/section';
10
10
  import '../section/js/Section.client.js';
11
11
  import '@kickstartds/core/lib/component';
12
+ import '../../helpers-84d80d46.js';
12
13
  import '@kickstartds/blog/lib/post-teaser';
13
14
  import '@kickstartds/core/lib/container';
14
15
  import '@kickstartds/content/lib/storytelling';
@@ -8,6 +8,7 @@ import { Cta } from '../cta/index.js';
8
8
  import 'classnames';
9
9
  import 'react';
10
10
  import '@kickstartds/blog/lib/post-head';
11
+ import '../../helpers-84d80d46.js';
11
12
  import '@kickstartds/core/lib/react';
12
13
  import '@kickstartds/base/lib/section';
13
14
  import '../section/js/Section.client.js';
@@ -4,6 +4,15 @@ import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
5
  import { PostTeaserContextDefault } from '@kickstartds/blog/lib/post-teaser';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
+
9
+ const defaults = {
10
+ "tags": [],
11
+ "link": {
12
+ "text": "Read article"
13
+ },
14
+ "author": {}
15
+ };
7
16
 
8
17
  const BlogTeaserContextDefault = forwardRef(({ date, tags = [], headline, teaserText, image, alt, link, readingTime, author, className, ...rest }, ref) => {
9
18
  const teaserMetaItems = [];
@@ -40,7 +49,7 @@ const BlogTeaserContextDefault = forwardRef(({ date, tags = [], headline, teaser
40
49
  const BlogTeaserContext = createContext(BlogTeaserContextDefault);
41
50
  const BlogTeaser = forwardRef((props, ref) => {
42
51
  const Component = useContext(BlogTeaserContext);
43
- return jsx(Component, { ...props, ref: ref });
52
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
44
53
  });
45
54
  BlogTeaser.displayName = "BlogTeaser";
46
55
 
@@ -8,12 +8,21 @@ import { Link } from '@kickstartds/base/lib/link';
8
8
  import { Icon } from '@kickstartds/base/lib/icon';
9
9
  import { RichText } from '@kickstartds/base/lib/rich-text';
10
10
  import { Container } from '@kickstartds/core/lib/container';
11
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
12
+
13
+ const defaults = {
14
+ "image": {
15
+ "fullWidth": false,
16
+ "aspectRatio": "square"
17
+ },
18
+ "links": []
19
+ };
11
20
 
12
21
  const ContactContextDefault = forwardRef(({ title, subtitle, image, links, copy, className, ...props }, ref) => (jsx(Container, { name: "contact", children: jsxs("address", { className: classnames("dsa-contact", image?.aspectRatio && `dsa-contact--image-${image?.aspectRatio}`, image?.fullWidth && `dsa-contact--image-full-width`, className), ref: ref, ...props, children: [image && image.src ? (jsx("div", { className: "dsa-contact__image-wrap", children: jsx(Picture, { src: image?.src, alt: image?.alt, className: "dsa-contact__image" }) })) : (""), jsxs("div", { className: "dsa-contact__body", children: [title && (jsxs("div", { className: "dsa-contact__header", children: [jsx("span", { className: "dsa-contact__title", children: title }), jsx("span", { className: "dsa-contact__subtitle", children: subtitle })] })), copy && jsx(RichText, { text: copy, className: "dsa-contact__copy" }), links && links.length ? (jsx("ul", { className: "dsa-contact__links", children: links.map(({ icon, href, label, newTab }, i) => (jsx("li", { children: jsxs(Link, { className: "dsa-contact__link", href: href, ...(newTab ? { target: "_blank", rel: "noopener" } : {}), children: [jsx(Icon, { icon: icon }), label] }) }, i))) })) : ("")] })] }) })));
13
22
  const ContactContext = createContext(ContactContextDefault);
14
23
  const Contact = forwardRef((props, ref) => {
15
24
  const Component = useContext(ContactContext);
16
- return jsx(Component, { ...props, ref: ref });
25
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
17
26
  });
18
27
  Contact.displayName = "Contact";
19
28
  const ContactProvider = (props) => (jsx(ContactContext$1.Provider, { ...props, value: Contact }));
@@ -5,8 +5,25 @@ import { Storytelling } from '@kickstartds/content/lib/storytelling';
5
5
  import { ButtonContext } from '@kickstartds/base/lib/button';
6
6
  import classnames from 'classnames';
7
7
  import { useButtonGroup } from '../button-group/index.js';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
9
  import '@kickstartds/base/lib/button-group';
9
10
 
11
+ const defaults = {
12
+ "highlightText": false,
13
+ "colorNeutral": false,
14
+ "fullWidth": false,
15
+ "buttons": [],
16
+ "image": {
17
+ "padding": true
18
+ },
19
+ "order": {
20
+ "mobileImageLast": false,
21
+ "desktopImageLast": true
22
+ },
23
+ "textAlign": "left",
24
+ "contentAlign": "center"
25
+ };
26
+
10
27
  const CtaContextDefault = forwardRef(({ headline, highlightText = false, sub, image, text, textAlign, backgroundImage, backgroundColor, colorNeutral, contentAlign, order, fullWidth = false, buttons = [], ...rest }, ref) => {
11
28
  const ButtonGroup = useButtonGroup();
12
29
  return (jsx(ButtonContext.Provider
@@ -41,7 +58,7 @@ const CtaContextDefault = forwardRef(({ headline, highlightText = false, sub, im
41
58
  const CtaContext = createContext(CtaContextDefault);
42
59
  const Cta = forwardRef((props, ref) => {
43
60
  const Component = useContext(CtaContext);
44
- return jsx(Component, { ...props, ref: ref });
61
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
45
62
  });
46
63
  Cta.displayName = "Cta";
47
64
 
@@ -3,12 +3,17 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { DividerContextDefault as DividerContextDefault$1, DividerContext as DividerContext$1 } from '@kickstartds/base/lib/divider';
6
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
+
8
+ const defaults = {
9
+ "variant": "default"
10
+ };
6
11
 
7
12
  const DividerContextDefault = forwardRef(({ variant, className, ...props }, ref) => (jsx(DividerContextDefault$1, { ...props, className: classnames("dsa-divider", className), variant: variant, ref: ref })));
8
13
  const DividerContext = createContext(DividerContextDefault);
9
14
  const Divider = forwardRef((props, ref) => {
10
15
  const Component = useContext(DividerContext);
11
- return jsx(Component, { ...props, ref: ref });
16
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
12
17
  });
13
18
  Divider.displayName = "Divider";
14
19
  const DividerProvider = (props) => (jsx(DividerContext$1.Provider, { ...props, value: DividerContextDefault }));
@@ -2,12 +2,17 @@ import "./faq.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import { CollapsibleBox } from '@kickstartds/base/lib/collapsible-box';
5
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
+
7
+ const defaults = {
8
+ "questions": []
9
+ };
5
10
 
6
11
  const FaqContextDefault = forwardRef(({ questions, ...rest }, ref) => (jsx("div", { ...rest, ref: ref, className: `dsa-faq`, children: questions.map((question, index) => (jsx(CollapsibleBox, { summary: question.question, text: question.answer }, index))) })));
7
12
  const FaqContext = createContext(FaqContextDefault);
8
13
  const Faq = forwardRef((props, ref) => {
9
14
  const Component = useContext(FaqContext);
10
- return jsx(Component, { ...props, ref: ref });
15
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
11
16
  });
12
17
  Faq.displayName = "Faq";
13
18
 
@@ -5,8 +5,19 @@ import { Icon } from '@kickstartds/base/lib/icon';
5
5
  import { Button } from '../button/index.js';
6
6
  import { Link } from '@kickstartds/base/lib/link';
7
7
  import { RichText } from '@kickstartds/base/lib/rich-text';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
9
  import '@kickstartds/base/lib/button';
9
10
 
11
+ const defaults = {
12
+ "style": "stack",
13
+ "cta": {
14
+ "target": "#",
15
+ "label": "See more",
16
+ "toggle": true,
17
+ "style": "link"
18
+ }
19
+ };
20
+
10
21
  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(`dsa-feature dsa-feature--${style === `stack`
11
22
  ? `stack dsa-feature--large`
12
23
  : style === `besideSmall`
@@ -21,7 +32,7 @@ const FeatureContextDefault = forwardRef(({ style = "stack", title, text, icon,
21
32
  const FeatureContext = createContext(FeatureContextDefault);
22
33
  const Feature = forwardRef((props, ref) => {
23
34
  const Component = useContext(FeatureContext);
24
- return jsx(Component, { ...props, ref: ref });
35
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
25
36
  });
26
37
  Feature.displayName = "Feature";
27
38
 
@@ -3,12 +3,23 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createElement, createContext, useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { Feature } from '../feature/index.js';
6
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
7
  import '@kickstartds/base/lib/icon';
7
8
  import '../button/index.js';
8
9
  import '@kickstartds/base/lib/button';
9
10
  import '@kickstartds/base/lib/link';
10
11
  import '@kickstartds/base/lib/rich-text';
11
12
 
13
+ const defaults = {
14
+ "layout": "largeTiles",
15
+ "style": "stack",
16
+ "ctas": {
17
+ "toggle": true,
18
+ "style": "link"
19
+ },
20
+ "feature": []
21
+ };
22
+
12
23
  const FeaturesContextDefault = forwardRef(({ layout = "largeTiles", ctas = {
13
24
  style: "link",
14
25
  toggle: true,
@@ -28,7 +39,7 @@ const FeaturesContextDefault = forwardRef(({ layout = "largeTiles", ctas = {
28
39
  const FeaturesContext = createContext(FeaturesContextDefault);
29
40
  const Features = forwardRef((props, ref) => {
30
41
  const Component = useContext(FeaturesContext);
31
- return jsx(Component, { ...props, ref: ref });
42
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
32
43
  });
33
44
  Features.displayName = "Features";
34
45
 
@@ -4,13 +4,23 @@ import { jsx, jsxs } from 'react/jsx-runtime';
4
4
  import classnames from 'classnames';
5
5
  import { Link } from '@kickstartds/base/lib/link';
6
6
  import { Logo } from '../logo/index.js';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
8
  import '@kickstartds/base/lib/picture';
8
9
 
10
+ const defaults = {
11
+ "logo": {
12
+ "homepageHref": "/"
13
+ },
14
+ "byline": "© 2024 systemics Inc. All rights reserved.",
15
+ "inverted": false,
16
+ "navItems": []
17
+ };
18
+
9
19
  const FooterContextDefault = forwardRef(({ byline, navItems, inverted, logo }, ref) => navItems && navItems.length > 0 ? (jsx("div", { className: classnames("dsa-footer"), "ks-inverted": inverted.toString(), ref: ref, children: jsxs("div", { className: "dsa-footer__content", children: [jsx(Logo, { ...logo, inverted: inverted }), byline && jsx("span", { className: "dsa-footer__byline", children: byline }), navItems.length > 0 ? (jsx("div", { className: "dsa-footer__links", children: navItems.map(({ label, active, ...linkProps }) => (createElement(Link, { ...linkProps, className: "dsa-footer__link", key: linkProps.href + label }, label))) })) : null] }) })) : null);
10
20
  const FooterContext = createContext(FooterContextDefault);
11
21
  const Footer = forwardRef((props, ref) => {
12
22
  const Component = useContext(FooterContext);
13
- return jsx(Component, { ...props, ref: ref });
23
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
14
24
  });
15
25
  Footer.displayName = "Footer";
16
26
 
@@ -3,6 +3,13 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useMemo, createContext, useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { TextMedia } from '@kickstartds/base/lib/text-media';
6
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
+
8
+ const defaults = {
9
+ "images": [],
10
+ "aspectRatio": "unset",
11
+ "lightbox": false
12
+ };
6
13
 
7
14
  const GalleryContextDefault = forwardRef(({ lightbox = false, layout = "tiles", aspectRatio = "square", images = [], ...rest }, ref) => {
8
15
  const galleryId = useMemo(() => `gallery-${Date.now()}`, []);
@@ -34,7 +41,7 @@ const GalleryContextDefault = forwardRef(({ lightbox = false, layout = "tiles",
34
41
  const GalleryContext = createContext(GalleryContextDefault);
35
42
  const Gallery = forwardRef((props, ref) => {
36
43
  const Component = useContext(GalleryContext);
37
- return jsx(Component, { ...props, ref: ref });
44
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
38
45
  });
39
46
  Gallery.displayName = "Gallery";
40
47
 
@@ -4,6 +4,7 @@ import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
5
  import { NavMain } from '../nav-main/index.js';
6
6
  import { Logo } from '../logo/index.js';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
8
  import '../nav-main/js/NavToggle.client.js';
8
9
  import '@kickstartds/core/lib/component';
9
10
  import '../nav-main/js/navMainEvents.client.js';
@@ -17,6 +18,17 @@ import '../nav-dropdown/index.js';
17
18
  import '../nav-flyout/index.js';
18
19
  import '@kickstartds/base/lib/picture';
19
20
 
21
+ const defaults = {
22
+ "logo": {
23
+ "homepageHref": "/"
24
+ },
25
+ "flyoutInverted": false,
26
+ "dropdownInverted": false,
27
+ "floating": false,
28
+ "inverted": false,
29
+ "navItems": []
30
+ };
31
+
20
32
  const HeaderContextDefault = forwardRef(({ logo, floating, inverted = false, flyoutInverted = false, dropdownInverted = false, navItems = [], }, ref) => (jsx("header", { className: classnames("dsa-header", floating ? `dsa-header--floating` : ""), "ks-inverted": inverted.toString(), ref: ref, children: jsxs("div", { className: "dsa-header__content", children: [jsx(Logo, { ...logo, className: "dsa-header__logo", inverted: inverted }), jsx(NavMain, { flyoutInverted: flyoutInverted, dropdownInverted: dropdownInverted, items: navItems, logo: {
21
33
  ...logo,
22
34
  inverted: flyoutInverted,
@@ -24,7 +36,7 @@ const HeaderContextDefault = forwardRef(({ logo, floating, inverted = false, fly
24
36
  const HeaderContext = createContext(HeaderContextDefault);
25
37
  const Header = forwardRef((props, ref) => {
26
38
  const Component = useContext(HeaderContext);
27
- return jsx(Component, { ...props, ref: ref });
39
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
28
40
  });
29
41
  Header.displayName = "Header";
30
42
 
@@ -6,8 +6,22 @@ import classnames from 'classnames';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
7
  import { ButtonContext } from '@kickstartds/base/lib/button';
8
8
  import { useButtonGroup } from '../button-group/index.js';
9
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
9
10
  import '@kickstartds/base/lib/button-group';
10
11
 
12
+ const defaults = {
13
+ "highlightText": false,
14
+ "colorNeutral": false,
15
+ "height": "default",
16
+ "textbox": true,
17
+ "buttons": [],
18
+ "overlay": false,
19
+ "image": {
20
+ "indent": "none"
21
+ },
22
+ "textPosition": "below"
23
+ };
24
+
11
25
  const HeroContextDefault = forwardRef(({ headline, sub, height, text, highlightText, textPosition = "center", colorNeutral, image, overlay, textbox, className, buttons = [], ...rest }, ref) => {
12
26
  const ButtonGroup = useButtonGroup();
13
27
  return (jsx(ButtonContext.Provider
@@ -57,7 +71,7 @@ const HeroContextDefault = forwardRef(({ headline, sub, height, text, highlightT
57
71
  const HeroContext = createContext(HeroContextDefault);
58
72
  const Hero = forwardRef((props, ref) => {
59
73
  const Component = useContext(HeroContext);
60
- return jsx(Component, { ...props, ref: ref });
74
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
61
75
  });
62
76
  Hero.displayName = "Hero";
63
77
 
@@ -5,8 +5,15 @@ import classnames from 'classnames';
5
5
  import { Button } from '@kickstartds/base/lib/button';
6
6
  import { RichText } from '@kickstartds/base/lib/rich-text';
7
7
  import './Html.client.js';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
9
  import '@kickstartds/core/lib/component';
9
10
 
11
+ const defaults = {
12
+ "consent": false,
13
+ "consentAspectRatio": "16:9",
14
+ "inverted": false
15
+ };
16
+
10
17
  const HtmlContextDefault = forwardRef(({ html, consent, consentText, consentBackgroundImage, consentButtonLabel, consentAspectRatio = "16:9", inverted, className, component = "dsa.html", ...props }, ref) => {
11
18
  return (jsxs("div", { ref: ref, className: classnames("dsa-html", className), "ks-component": component, "ks-inverted": inverted ? "true" : undefined, ...props, children: [jsx("template", { dangerouslySetInnerHTML: { __html: html } }), consent && (jsxs("div", { style: {
12
19
  backgroundImage: consentBackgroundImage
@@ -22,7 +29,7 @@ const HtmlContextDefault = forwardRef(({ html, consent, consentText, consentBack
22
29
  const HtmlContext = createContext(HtmlContextDefault);
23
30
  const Html = forwardRef((props, ref) => {
24
31
  const Component = useContext(HtmlContext);
25
- return jsx(Component, { ...props, ref: ref });
32
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
26
33
  });
27
34
  Html.displayName = "Html";
28
35
 
@@ -5,8 +5,21 @@ import { Storytelling } from '@kickstartds/content/lib/storytelling';
5
5
  import { ButtonContext } from '@kickstartds/base/lib/button';
6
6
  import classnames from 'classnames';
7
7
  import { useButtonGroup } from '../button-group/index.js';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
9
  import '@kickstartds/base/lib/button-group';
9
10
 
11
+ const defaults = {
12
+ "largeHeadline": false,
13
+ "layout": "imageLeft",
14
+ "padding": false,
15
+ "buttons": [],
16
+ "image": {
17
+ "aspectRatio": "unset",
18
+ "vAlign": "top"
19
+ },
20
+ "textAlign": "left"
21
+ };
22
+
10
23
  const ImageStoryContextDefault = forwardRef(({ headline, largeHeadline = false, sub, image, padding = false, textAlign = "left", layout = "textLeft", buttons = [], text, ...rest }, ref) => {
11
24
  const ButtonGroup = useButtonGroup();
12
25
  return (jsx(ButtonContext.Provider
@@ -46,7 +59,7 @@ const ImageStoryContextDefault = forwardRef(({ headline, largeHeadline = false,
46
59
  const ImageStoryContext = createContext(ImageStoryContextDefault);
47
60
  const ImageStory = forwardRef((props, ref) => {
48
61
  const Component = useContext(ImageStoryContext);
49
- return jsx(Component, { ...props, ref: ref });
62
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
50
63
  });
51
64
  ImageStory.displayName = "ImageStory";
52
65
 
@@ -4,6 +4,12 @@ import { forwardRef, createContext, useContext } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { TextMediaContextDefault, TextMediaContext } from '@kickstartds/base/lib/text-media';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
+
9
+ const defaults = {
10
+ "highlightText": false,
11
+ "image": {}
12
+ };
7
13
 
8
14
  const ImageTextContextDefault = forwardRef(({ text, image, layout, highlightText, ...rest }, ref) => (jsx(Container, { name: "text-media", ref: ref, children: jsx(TextMediaContextDefault, { ...rest, className: classnames(highlightText ? "dsa-image-text--highlight" : "", "dsa-image-text"), text: text, media: [
9
15
  {
@@ -19,7 +25,7 @@ const ImageTextContextDefault = forwardRef(({ text, image, layout, highlightText
19
25
  const ImageTextContext = createContext(ImageTextContextDefault);
20
26
  const ImageText = forwardRef((props, ref) => {
21
27
  const Component = useContext(ImageTextContext);
22
- return jsx(Component, { ...props, ref: ref });
28
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
23
29
  });
24
30
  ImageText.displayName = "ImageText";
25
31
  const ImageTextProvider = (props) => (jsx(TextMediaContext.Provider, { ...props, value: ImageTextContextDefault }));
@@ -4,6 +4,11 @@ import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
5
  import { Picture } from '@kickstartds/base/lib/picture';
6
6
  import { Link } from '@kickstartds/base/lib/link';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
+
9
+ const defaults = {
10
+ "homepageHref": "/"
11
+ };
7
12
 
8
13
  const LogoContextDefault = forwardRef(({ src, srcInverted, alt, inverted = false, width, height, homepageHref, className, }, ref) => {
9
14
  return (jsx(Link, { className: classnames("dsa-logo", className), href: homepageHref, children: jsx(Picture, { ref: ref, className: "dsa-logo__img", src: inverted && srcInverted ? srcInverted : src, alt: alt, width: width, height: height }) }));
@@ -11,7 +16,7 @@ const LogoContextDefault = forwardRef(({ src, srcInverted, alt, inverted = false
11
16
  const LogoContext = createContext(LogoContextDefault);
12
17
  const Logo = forwardRef((props, ref) => {
13
18
  const Component = useContext(LogoContext);
14
- return jsx(Component, { ...props, ref: ref });
19
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
20
  });
16
21
  Logo.displayName = "Logo";
17
22
 
@@ -6,12 +6,23 @@ import { LogoTiles } from '@kickstartds/content/lib/logo-tiles';
6
6
  import { Button } from '@kickstartds/base/lib/button';
7
7
  import { Link } from '@kickstartds/base/lib/link';
8
8
  import { Container } from '@kickstartds/core/lib/container';
9
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
10
+
11
+ const defaults = {
12
+ "logo": [],
13
+ "align": "center",
14
+ "cta": {
15
+ "toggle": false,
16
+ "link": "#",
17
+ "style": "text"
18
+ }
19
+ };
9
20
 
10
21
  const LogosContextDefault = forwardRef(({ logo: logos = [], tagline, align, cta, logosPerRow = "6", ...rest }, ref) => (jsx("div", { ...rest, ref: ref, children: jsx(Container, { name: "logos", children: jsxs("div", { className: classnames(`dsa-logos dsa-logos--align-${align}`), children: [tagline && jsx("div", { className: "dsa-logos__tagline", children: tagline }), jsx(LogoTiles, { className: classnames(`dsa-logo-tiles dsa-logo-tiles--cols-${logosPerRow}`), logos: logos }), cta?.toggle ? (jsxs("div", { className: "dsa-logos__cta", children: [jsxs("div", { className: "dsa-logos__cta__text", children: [cta?.text, cta?.style === "text" ? (jsxs(Fragment, { children: [" ", jsx(Link, { className: "dsa-logos__cta__link", href: cta.link, children: cta.label })] })) : ("")] }), cta?.style === "button" ? (jsx(Button, { href: cta.link, label: cta.label })) : ("")] })) : ("")] }) }) })));
11
22
  const LogosContext = createContext(LogosContextDefault);
12
23
  const Logos = forwardRef((props, ref) => {
13
24
  const Component = useContext(LogosContext);
14
- return jsx(Component, { ...props, ref: ref });
25
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
15
26
  });
16
27
  Logos.displayName = "Logos";
17
28
 
@@ -2,6 +2,13 @@ import "./mosaic.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createContext, useContext } from 'react';
4
4
  import { Storytelling } from '@kickstartds/content/lib/storytelling';
5
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
+
7
+ const defaults = {
8
+ "layout": "alternate",
9
+ "largeHeadlines": false,
10
+ "tile": []
11
+ };
5
12
 
6
13
  const MosaicContextDefault = forwardRef(({ layout, largeHeadlines, tile, ...rest }, ref) => (jsx("div", { ...rest, ref: ref, className: "dsa-mosaic", children: tile.map((tile, index) => (jsx(Storytelling, { full: true, backgroundColor: tile.backgroundColor, backgroundImage: tile.backgroundImage, box: {
7
14
  headline: {
@@ -33,7 +40,7 @@ const MosaicContextDefault = forwardRef(({ layout, largeHeadlines, tile, ...rest
33
40
  const MosaicContext = createContext(MosaicContextDefault);
34
41
  const Mosaic = forwardRef((props, ref) => {
35
42
  const Component = useContext(MosaicContext);
36
- return jsx(Component, { ...props, ref: ref });
43
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
37
44
  });
38
45
  Mosaic.displayName = "Mosaic";
39
46
 
@@ -4,8 +4,14 @@ import classnames from 'classnames';
4
4
  import { Link } from '@kickstartds/base/lib/link';
5
5
  import { Logo } from '../logo/index.js';
6
6
  import { forwardRef, createContext, useContext } from 'react';
7
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
8
  import '@kickstartds/base/lib/picture';
8
9
 
10
+ const defaults = {
11
+ "items": [],
12
+ "inverted": false
13
+ };
14
+
9
15
  const NavFlyoutContextDefault = forwardRef(({ items, inverted, logo }, ref) => items && items.length > 0 ? (jsxs("nav", { className: "dsa-nav-flyout", "ks-inverted": inverted.toString(), id: "dsa-nav-flyout", "aria-label": "Hauptnavigation", ref: ref, children: [jsx(Logo, { ...logo, className: "dsa-nav-flyout__logo" }), jsx("ul", { className: "dsa-nav-flyout__list", children: items.map(({ label, href, active, items: subItems }) => {
10
16
  return (jsxs("li", { className: classnames("dsa-nav-flyout__item", active && "dsa-nav-flyout__item--active"), children: [subItems?.length ? (jsx("span", { tabIndex: 0, className: "dsa-nav-flyout__label", children: label })) : (jsx(Link, { href: href, className: `dsa-nav-flyout__label dsa-nav-flyout__link`, children: label })), subItems?.length ? (jsx("ul", { className: "dsa-nav-flyout__sublist", children: subItems.map(({ label, href, active }) => {
11
17
  return (jsx("li", { className: classnames("dsa-nav-flyout__item", active && "dsa-nav-flyout__item--active"), children: jsx(Link, { href: href, className: `dsa-nav-flyout__label dsa-nav-flyout__link`, children: label }) }, href));
@@ -14,7 +20,7 @@ const NavFlyoutContextDefault = forwardRef(({ items, inverted, logo }, ref) => i
14
20
  const NavFlyoutContext = createContext(NavFlyoutContextDefault);
15
21
  const NavFlyout = forwardRef((props, ref) => {
16
22
  const Component = useContext(NavFlyoutContext);
17
- return jsx(Component, { ...props, ref: ref });
23
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
18
24
  });
19
25
  NavFlyout.displayName = "NavFlyout";
20
26
 
@@ -6,6 +6,7 @@ import './js/navMainEvents.client.js';
6
6
  import { NavToggle } from '../nav-toggle/index.js';
7
7
  import { NavTopbar } from '../nav-topbar/index.js';
8
8
  import { NavFlyout } from '../nav-flyout/index.js';
9
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
9
10
  import '@kickstartds/core/lib/component';
10
11
  import './js/body.client.js';
11
12
  import '@kickstartds/core/lib/core';
@@ -16,11 +17,20 @@ import '../nav-dropdown/index.js';
16
17
  import '../logo/index.js';
17
18
  import '@kickstartds/base/lib/picture';
18
19
 
20
+ const defaults = {
21
+ "flyoutInverted": false,
22
+ "dropdownInverted": false,
23
+ "items": [],
24
+ "cta": {
25
+ "toggle": false
26
+ }
27
+ };
28
+
19
29
  const NavMainContextDefault = forwardRef(({ logo, items, flyoutInverted, dropdownInverted }, ref) => items && items.length > 0 ? (jsxs("div", { ref: ref, className: "dsa-nav-main", children: [jsx(NavToggle, {}), jsx(NavTopbar, { items: items, inverted: dropdownInverted }), jsx(NavFlyout, { items: items, inverted: flyoutInverted, logo: logo })] })) : null);
20
30
  const NavMainContext = createContext(NavMainContextDefault);
21
31
  const NavMain = forwardRef((props, ref) => {
22
32
  const Component = useContext(NavMainContext);
23
- return jsx(Component, { ...props, ref: ref });
33
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
24
34
  });
25
35
  NavMain.displayName = "NavMain";
26
36
 
@@ -5,6 +5,12 @@ import { Link } from '@kickstartds/base/lib/link';
5
5
  import { Icon } from '@kickstartds/base/lib/icon';
6
6
  import { NavDropdown } from '../nav-dropdown/index.js';
7
7
  import { forwardRef, createContext, useContext } from 'react';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
9
+
10
+ const defaults = {
11
+ "items": [],
12
+ "inverted": false
13
+ };
8
14
 
9
15
  const NavTopbarContextDefault = forwardRef(({ items, inverted }, ref) => items && items.length > 0 ? (jsx("nav", { className: "dsa-nav-topbar", id: "dsa-nav-main", "aria-label": "Hauptnavigation", ref: ref, children: jsx("ul", { className: "dsa-nav-topbar__list", children: items.map(({ label, href, active, items: subItems }) => {
10
16
  return (jsxs("li", { className: classnames("dsa-nav-topbar__item", active && "dsa-nav-topbar__item--active", subItems?.length && "dsa-nav-topbar__item--dropdown"), children: [subItems?.length ? (jsxs("span", { tabIndex: 0, className: "dsa-nav-topbar__label", children: [label, subItems?.length ? (jsx(Icon, { className: "dsa-nav-topbar__label__icon", icon: "chevron-down" })) : ("")] })) : (jsx(Link, { href: href, className: `dsa-nav-topbar__label dsa-nav-topbar__link`, children: label })), subItems?.length ? (jsx(NavDropdown, { items: subItems, inverted: inverted })) : null] }, href));
@@ -12,7 +18,7 @@ const NavTopbarContextDefault = forwardRef(({ items, inverted }, ref) => items &
12
18
  const NavTopbarContext = createContext(NavTopbarContextDefault);
13
19
  const NavTopbar = forwardRef((props, ref) => {
14
20
  const Component = useContext(NavTopbarContext);
15
- return jsx(Component, { ...props, ref: ref });
21
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
16
22
  });
17
23
  NavTopbar.displayName = "NavTopbar";
18
24
 
@@ -12,6 +12,7 @@ import '@kickstartds/core/lib/react';
12
12
  import '@kickstartds/base/lib/section';
13
13
  import '../section/js/Section.client.js';
14
14
  import '@kickstartds/core/lib/component';
15
+ import '../../helpers-84d80d46.js';
15
16
  import '../teaser-card/index.js';
16
17
  import '@kickstartds/base/lib/teaser-box';
17
18
  import '@kickstartds/core/lib/container';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Fri, 04 Jul 2025 12:48:37 GMT
3
+ * Generated on Sat, 05 Jul 2025 15:02:43 GMT
4
4
  */
5
5
  :root, [ks-theme] {
6
6
  --ks-background-color-accent-base: var(--ks-color-primary-to-bg-8-base);
@@ -13,6 +13,7 @@ import '@kickstartds/core/lib/react';
13
13
  import '@kickstartds/base/lib/section';
14
14
  import '../section/js/Section.client.js';
15
15
  import '@kickstartds/core/lib/component';
16
+ import '../../helpers-84d80d46.js';
16
17
  import '@kickstartds/base/lib/teaser-box';
17
18
  import '@kickstartds/core/lib/container';
18
19
  import 'markdown-to-jsx';
@@ -5,8 +5,32 @@ import classnames from 'classnames';
5
5
  import { useKsComponent } from '@kickstartds/core/lib/react';
6
6
  import { SectionContextDefault as SectionContextDefault$1, SectionContext as SectionContext$1 } from '@kickstartds/base/lib/section';
7
7
  import { identifier } from './js/Section.client.js';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
8
9
  import '@kickstartds/core/lib/component';
9
10
 
11
+ const defaults = {
12
+ "width": "default",
13
+ "backgroundColor": "default",
14
+ "spotlight": false,
15
+ "spaceBefore": "default",
16
+ "spaceAfter": "default",
17
+ "inverted": false,
18
+ "headerSpacing": false,
19
+ "headline": {
20
+ "large": false,
21
+ "width": "unset"
22
+ },
23
+ "content": {
24
+ "width": "unset",
25
+ "align": "center",
26
+ "gutter": "default",
27
+ "mode": "list",
28
+ "tileWidth": "default"
29
+ },
30
+ "components": [],
31
+ "buttons": []
32
+ };
33
+
10
34
  const SectionContextDefault = forwardRef(({ headline, content, headerSpacing, width = "default", style = "default", spotlight = false, backgroundColor = "default", backgroundImage, spaceBefore = "default", spaceAfter = "default", className, inverted, buttons = [], ...props }, ref) => {
11
35
  const { large: headlineLarge = false, ...headlineRest } = {
12
36
  align: "left",
@@ -46,7 +70,7 @@ const SectionContextDefault = forwardRef(({ headline, content, headerSpacing, wi
46
70
  const SectionContext = createContext(SectionContextDefault);
47
71
  const Section = forwardRef((props, ref) => {
48
72
  const Component = useContext(SectionContext);
49
- return jsx(Component, { ...props, ref: ref });
73
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
50
74
  });
51
75
  Section.displayName = "Section";
52
76
  const SectionProvider = (props) => (jsx(SectionContext$1.Provider, { ...props, value: Section }));
@@ -1,6 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, createContext, useContext } from 'react';
3
3
  import { CountUp } from '@kickstartds/content/lib/count-up';
4
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
5
+
6
+ const defaults = {};
4
7
 
5
8
  const StatContextDefault = forwardRef(({ number, title, description, icon, ...rest }, ref) => {
6
9
  const parts = number ? number.toString().split(/(\d+)/).filter(Boolean) : [];
@@ -17,7 +20,7 @@ const StatContextDefault = forwardRef(({ number, title, description, icon, ...re
17
20
  const StatContext = createContext(StatContextDefault);
18
21
  const Stat = forwardRef((props, ref) => {
19
22
  const Component = useContext(StatContext);
20
- return jsx(Component, { ...props, ref: ref });
23
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
21
24
  });
22
25
  Stat.displayName = "Stat";
23
26
 
@@ -2,15 +2,20 @@ import "./stats.css";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, createElement, createContext, useContext } from 'react';
4
4
  import { Stat } from '../stat/index.js';
5
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
5
6
  import '@kickstartds/content/lib/count-up';
6
7
 
8
+ const defaults = {
9
+ "stat": []
10
+ };
11
+
7
12
  const StatsContextDefault = forwardRef(({ stat: stats = [], ...rest }, ref) => {
8
13
  return (jsx("div", { ...rest, ref: ref, className: "dsa-stats", children: stats.map((item, index) => (createElement(Stat, { ...item, key: index }))) }));
9
14
  });
10
15
  const StatsContext = createContext(StatsContextDefault);
11
16
  const Stats = forwardRef((props, ref) => {
12
17
  const Component = useContext(StatsContext);
13
- return jsx(Component, { ...props, ref: ref });
18
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
14
19
  });
15
20
  Stats.displayName = "Stats";
16
21
 
@@ -5,6 +5,16 @@ import classnames from 'classnames';
5
5
  import { TeaserBoxContextDefault, TeaserBoxContext } from '@kickstartds/base/lib/teaser-box';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
7
  import { compiler } from 'markdown-to-jsx';
8
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
9
+
10
+ const defaults = {
11
+ "layout": "stack",
12
+ "button": {
13
+ "chevron": false,
14
+ "hidden": false
15
+ },
16
+ "imageRatio": "wide"
17
+ };
8
18
 
9
19
  const TeaserCardContextDefault = forwardRef(({ headline, text, button, target, image, imageRatio = "wide", label, layout = "stack", ...rest }, ref) => (jsx(Container, { name: "teaser-card", children: jsx(TeaserBoxContextDefault, { ...rest, className: classnames(`dsa-teaser-card`, label && `dsa-teaser-card--label`, `dsa-teaser-card--${layout}`, `dsa-teaser-card--${imageRatio}`), topic: headline, text: text,
10
20
  // @ts-expect-error
@@ -18,7 +28,7 @@ const TeaserCardContextDefault = forwardRef(({ headline, text, button, target, i
18
28
  const TeaserCardContext = createContext(TeaserCardContextDefault);
19
29
  const TeaserCard = forwardRef((props, ref) => {
20
30
  const Component = useContext(TeaserCardContext);
21
- return jsx(Component, { ...props, ref: ref });
31
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
22
32
  });
23
33
  TeaserCard.displayName = "TeaserCard";
24
34
  const TeaserBoxProvider = (props) => (jsx(TeaserBoxContext.Provider, { ...props, value: TeaserCard }));
@@ -2,6 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef, createContext, useContext } from 'react';
3
3
  import { Quote } from '@kickstartds/content/lib/quote';
4
4
  import classnames from 'classnames';
5
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
+
7
+ const defaults = {
8
+ "quoteSigns": "normal",
9
+ "image": {}
10
+ };
5
11
 
6
12
  const TestimonialContextDefault = forwardRef(({ image, quote, name, title, layout, index, rating, quoteSigns, ...rest }, ref) => (jsx(Quote, { ...rest, ref: ref, className: classnames(layout === "alternating" && index % 2 === 1 ? "c-quote--reverse" : "", quoteSigns === "normal" || quoteSigns === "none"
7
13
  ? "c-quote--small-signs"
@@ -9,7 +15,7 @@ const TestimonialContextDefault = forwardRef(({ image, quote, name, title, layou
9
15
  const TestimonialContext = createContext(TestimonialContextDefault);
10
16
  const Testimonial = forwardRef((props, ref) => {
11
17
  const Component = useContext(TestimonialContext);
12
- return jsx(Component, { ...props, ref: ref });
18
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
13
19
  });
14
20
  Testimonial.displayName = "Testimonial";
15
21
 
@@ -3,10 +3,17 @@ import { forwardRef, createElement, createContext, useContext } from 'react';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
  import { Slider } from '../slider/index.js';
5
5
  import { Testimonial } from '../testimonial/index.js';
6
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
6
7
  import 'classnames';
7
8
  import '@kickstartds/content/lib/slider';
8
9
  import '@kickstartds/content/lib/quote';
9
10
 
11
+ const defaults = {
12
+ "layout": "slider",
13
+ "quoteSigns": "normal",
14
+ "testimonial": []
15
+ };
16
+
10
17
  const ConditionalSlider = forwardRef(({ layout, children, arrows, nav, ...props }, ref) => {
11
18
  if (layout === "slider") {
12
19
  return (jsx(Slider, { className: "dsa-testimonials dsa-testimonials--slider", arrows: arrows, nav: nav, ...props, ref: ref, children: children }));
@@ -21,7 +28,7 @@ const TestimonialsContextDefault = forwardRef(({ testimonial: testimonials = [],
21
28
  const TestimonialsContext = createContext(TestimonialsContextDefault);
22
29
  const Testimonials = forwardRef((props, ref) => {
23
30
  const Component = useContext(TestimonialsContext);
24
- return jsx(Component, { ...props, ref: ref });
31
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
25
32
  });
26
33
  Testimonials.displayName = "Testimonials";
27
34
 
@@ -3,6 +3,13 @@ import { jsx } from 'react/jsx-runtime';
3
3
  import classnames from 'classnames';
4
4
  import { forwardRef, createContext, useContext } from 'react';
5
5
  import { RichText } from '@kickstartds/base/lib/rich-text';
6
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
7
+
8
+ const defaults = {
9
+ "layout": "singleColumn",
10
+ "align": "left",
11
+ "highlightText": false
12
+ };
6
13
 
7
14
  const TextContextDefault = forwardRef(({ text, layout = "singleColumn", align = "left", highlightText = false, ...rest }, ref) => {
8
15
  const layoutClass = `${layout === "multiColumn" ? "dsa-text--columns" : ""}`;
@@ -13,7 +20,7 @@ const TextContextDefault = forwardRef(({ text, layout = "singleColumn", align =
13
20
  const TextContext = createContext(TextContextDefault);
14
21
  const Text = forwardRef((props, ref) => {
15
22
  const Component = useContext(TextContext);
16
- return jsx(Component, { ...props, ref: ref });
23
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
17
24
  });
18
25
  Text.displayName = "Text";
19
26
 
@@ -6,8 +6,18 @@ import classnames from 'classnames';
6
6
  import { Container } from '@kickstartds/core/lib/container';
7
7
  import { ButtonContext } from '@kickstartds/base/lib/button';
8
8
  import { useButtonGroup } from '../button-group/index.js';
9
+ import { d as deepMergeDefaults } from '../../helpers-84d80d46.js';
9
10
  import '@kickstartds/base/lib/button-group';
10
11
 
12
+ const defaults = {
13
+ "highlightText": false,
14
+ "colorNeutral": false,
15
+ "buttons": [],
16
+ "overlay": false,
17
+ "video": {},
18
+ "textPosition": "center"
19
+ };
20
+
11
21
  const VideoCurtainContextDefault = forwardRef(({ headline, sub, text, highlightText, colorNeutral, textPosition, overlay, video, className, buttons = [], ...rest }, ref) => {
12
22
  const ButtonGroup = useButtonGroup();
13
23
  return (jsx(ButtonContext.Provider
@@ -46,7 +56,7 @@ const VideoCurtainContextDefault = forwardRef(({ headline, sub, text, highlightT
46
56
  const VideoCurtainContext = createContext(VideoCurtainContextDefault);
47
57
  const VideoCurtain = forwardRef((props, ref) => {
48
58
  const Component = useContext(VideoCurtainContext);
49
- return jsx(Component, { ...props, ref: ref });
59
+ return jsx(Component, { ...deepMergeDefaults(defaults, props), ref: ref });
50
60
  });
51
61
  VideoCurtain.displayName = "VideoCurtain";
52
62
 
@@ -0,0 +1,5 @@
1
+ type DeepPartial<T> = T extends object ? {
2
+ [P in keyof T]?: DeepPartial<T[P]>;
3
+ } : T;
4
+ declare function deepMergeDefaults<T extends Record<string, any>>(defaults: DeepPartial<T>, props: T, replaceExamples?: boolean): T;
5
+ export { DeepPartial, deepMergeDefaults };
@@ -0,0 +1,33 @@
1
+ function deepMergeDefaults(defaults, props, replaceExamples = false) {
2
+ const keys = Array.from(new Set([...Object.keys(defaults), ...Object.keys(props)]));
3
+ return keys.reduce((acc, key) => {
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ const val1 = defaults[key];
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ const val2 = props[key];
8
+ if (Array.isArray(val1) && Array.isArray(val2)) {
9
+ acc[key] =
10
+ key === "examples" && replaceExamples
11
+ ? val2
12
+ : (acc[key] = [...val1, ...val2].filter((value, index, self) => {
13
+ return self.findIndex((v) => v === value) === index;
14
+ }));
15
+ }
16
+ else if (typeof val1 === "object" &&
17
+ val1 !== null &&
18
+ typeof val2 === "object" &&
19
+ val2 !== null) {
20
+ acc[key] = deepMergeDefaults(val1, val2, replaceExamples);
21
+ }
22
+ else if (key in props) {
23
+ acc[key] = structuredClone(val2);
24
+ }
25
+ else {
26
+ acc[key] = structuredClone(val1);
27
+ }
28
+ return acc;
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ }, {});
31
+ }
32
+
33
+ export { deepMergeDefaults as d };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Fri, 04 Jul 2025 12:48:40 GMT
3
+ * Generated on Sat, 05 Jul 2025 15:02:46 GMT
4
4
  */
5
5
  :root [ks-theme=business] {
6
6
  --ks-background-color-accent-base: var(--ks-color-primary-to-bg-8-base);
@@ -2727,7 +2727,7 @@
2727
2727
  }
2728
2728
  /**
2729
2729
  * Do not edit directly
2730
- * Generated on Fri, 04 Jul 2025 12:48:44 GMT
2730
+ * Generated on Sat, 05 Jul 2025 15:02:50 GMT
2731
2731
  */
2732
2732
  :root [ks-theme=google] {
2733
2733
  --ks-background-color-accent-base: var(--ks-color-primary-to-bg-8-base);
@@ -5458,7 +5458,7 @@
5458
5458
  }
5459
5459
  /**
5460
5460
  * Do not edit directly
5461
- * Generated on Fri, 04 Jul 2025 12:48:42 GMT
5461
+ * Generated on Sat, 05 Jul 2025 15:02:48 GMT
5462
5462
  */
5463
5463
  :root [ks-theme=ngo] {
5464
5464
  --ks-background-color-accent-base: var(--ks-color-primary-to-bg-8-base);
@@ -8459,7 +8459,7 @@
8459
8459
  }
8460
8460
  /**
8461
8461
  * Do not edit directly
8462
- * Generated on Fri, 04 Jul 2025 12:48:46 GMT
8462
+ * Generated on Sat, 05 Jul 2025 15:02:52 GMT
8463
8463
  */
8464
8464
  :root [ks-theme=telekom] {
8465
8465
  --ks-background-color-accent-base: var(--ks-color-primary-to-bg-8-base);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Fri, 04 Jul 2025 12:48:37 GMT
3
+ * Generated on Sat, 05 Jul 2025 15:02:43 GMT
4
4
  */
5
5
 
6
6
  :root, [ks-theme] {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Fri, 04 Jul 2025 12:48:38 GMT
3
+ * Generated on Sat, 05 Jul 2025 15:02:44 GMT
4
4
  */
5
5
 
6
6
  export const KsBackgroundColorAccentBase = "#230a2b";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kickstartds/ds-agency-premium",
3
- "version": "1.7.0--canary.46.1791.0",
3
+ "version": "1.7.0--canary.46.1801.0",
4
4
  "description": "",
5
5
  "homepage": "https://github.com/kickstartDS/ds-agency-premium#readme",
6
6
  "bugs": {
@@ -85,8 +85,8 @@
85
85
  "@kickstartds/content": "^4.1.1",
86
86
  "@kickstartds/core": "^4.1.0",
87
87
  "@kickstartds/form": "^4.1.0",
88
- "@kickstartds/jsonschema-utils": "^3.5.0",
89
- "@kickstartds/jsonschema2types": "^1.2.1",
88
+ "@kickstartds/jsonschema-utils": "^3.6.1",
89
+ "@kickstartds/jsonschema2types": "^1.2.3",
90
90
  "@kickstartds/storybook-addon-component-tokens": "^3.0.0",
91
91
  "@kickstartds/storybook-addon-html": "^1.0.0",
92
92
  "@kickstartds/storybook-addon-jsonschema": "^4.0.0",