@kickstartds/ds-agency-premium 1.3.50 → 1.3.51--canary.674.14f816b.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/{BlogPostProps-440f88a5.d.ts → BlogPostProps-f9a49428.d.ts} +1 -1
  2. package/dist/{FooterProps-10c950a6.d.ts → FooterProps-22e0307b.d.ts} +6 -0
  3. package/dist/{HeaderProps-7be94a61.d.ts → HeaderProps-dd2071a8.d.ts} +16 -2
  4. package/dist/{SectionProps-83d399b4.d.ts → SectionProps-03ff6d21.d.ts} +1 -1
  5. package/dist/components/blog-overview/index.d.ts +1 -1
  6. package/dist/components/blog-post/index.d.ts +1 -1
  7. package/dist/components/footer/footer.schema.dereffed.json +37 -3
  8. package/dist/components/footer/index.d.ts +1 -1
  9. package/dist/components/header/header.css +3 -1
  10. package/dist/components/header/header.schema.dereffed.json +45 -7
  11. package/dist/components/header/header.schema.json +5 -3
  12. package/dist/components/header/index.d.ts +1 -1
  13. package/dist/components/header/index.js +10 -6
  14. package/dist/components/image-story/index.d.ts +1 -1
  15. package/dist/components/index/index.d.ts +5 -5
  16. package/dist/components/nav-dropdown/index.d.ts +23 -0
  17. package/dist/components/nav-dropdown/index.js +10 -0
  18. package/dist/components/nav-dropdown/nav-dropdown.css +45 -0
  19. package/dist/components/nav-flyout/index.d.ts +8 -0
  20. package/dist/components/nav-flyout/index.js +17 -0
  21. package/dist/components/nav-flyout/nav-flyout.css +97 -0
  22. package/dist/components/nav-main/index.d.ts +33 -7
  23. package/dist/components/nav-main/index.js +14 -14
  24. package/dist/components/nav-main/nav-main.schema.dereffed.json +71 -3
  25. package/dist/components/nav-main/nav-main.schema.json +53 -4
  26. package/dist/components/nav-toggle/index.d.ts +3 -0
  27. package/dist/components/nav-toggle/index.js +6 -0
  28. package/dist/components/nav-topbar/index.d.ts +7 -0
  29. package/dist/components/nav-topbar/index.js +12 -0
  30. package/dist/components/nav-topbar/nav-topbar.css +82 -0
  31. package/dist/components/page-wrapper/tokens.css +1 -1
  32. package/dist/components/presets.json +31 -6
  33. package/dist/components/section/index.d.ts +1 -1
  34. package/dist/components/settings/settings.schema.dereffed.json +82 -10
  35. package/dist/tokens/themes.css +4 -4
  36. package/dist/tokens/tokens.css +1 -1
  37. package/dist/tokens/tokens.js +1 -1
  38. package/package.json +1 -1
  39. package/dist/components/nav-main/nav-main.css +0 -194
  40. /package/dist/{BlogOverviewProps-f385fc47.d.ts → BlogOverviewProps-525f7f9f.d.ts} +0 -0
  41. /package/dist/{ImageStoryProps-e853e1e7.d.ts → ImageStoryProps-03ff6d21.d.ts} +0 -0
  42. /package/dist/components/{nav-main → nav}/js/NavToggle.client.d.ts +0 -0
  43. /package/dist/components/{nav-main → nav}/js/NavToggle.client.js +0 -0
  44. /package/dist/components/{nav-main → nav}/js/body.client.d.ts +0 -0
  45. /package/dist/components/{nav-main → nav}/js/body.client.js +0 -0
  46. /package/dist/components/{nav-main → nav}/js/navMainEvents.client.d.ts +0 -0
  47. /package/dist/components/{nav-main → nav}/js/navMainEvents.client.js +0 -0
  48. /package/dist/components/{nav-main → nav-toggle}/nav-toggle.css +0 -0
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { BlogHeadProps } from "./BlogHeadProps-f9a49428.js";
7
7
  import { BlogAsideProps } from "./BlogAsideProps-e1cbd5d3.js";
8
- import { SectionProps } from "./SectionProps-83d399b4.js";
8
+ import { SectionProps } from "./SectionProps-03ff6d21.js";
9
9
  import { CtaProps } from "./CtaProps-93230a76.js";
10
10
  import { SeoProps } from "./SeoProps-f2d6dcaa.js";
11
11
  /**
@@ -39,6 +39,12 @@ interface FooterProps {
39
39
  href: string;
40
40
  label: string;
41
41
  active?: boolean;
42
+ items?: {
43
+ href?: string;
44
+ id?: string;
45
+ label?: string;
46
+ active?: boolean;
47
+ }[];
42
48
  }[];
43
49
  }
44
50
  interface Logo {
@@ -27,6 +27,10 @@ type Height = number;
27
27
  * Toggle the inversion of the flyout navigation
28
28
  */
29
29
  type FlyoutInverted = boolean;
30
+ /**
31
+ * Toggle the inversion of the dropdown navigation
32
+ */
33
+ type DropdownInverted = boolean;
30
34
  /**
31
35
  * Make the header float over the first Section
32
36
  */
@@ -35,15 +39,25 @@ type Floating = boolean;
35
39
  * Invert the color scheme of the header
36
40
  */
37
41
  type Inverted = boolean;
42
+ /**
43
+ * Header layered on top by the CMS
44
+ */
38
45
  interface HeaderProps {
39
- logo: Logo;
46
+ logo?: Logo;
40
47
  flyoutInverted?: FlyoutInverted;
48
+ dropdownInverted?: DropdownInverted;
41
49
  floating?: Floating;
42
50
  inverted?: Inverted;
43
51
  navItems?: {
44
52
  href: string;
45
53
  label: string;
46
54
  active?: boolean;
55
+ items?: {
56
+ href?: string;
57
+ id?: string;
58
+ label?: string;
59
+ active?: boolean;
60
+ }[];
47
61
  }[];
48
62
  }
49
63
  interface Logo {
@@ -54,4 +68,4 @@ interface Logo {
54
68
  width?: Width;
55
69
  height?: Height;
56
70
  }
57
- export { Source, Source1, AltText, Width, Height, FlyoutInverted, Floating, Inverted, HeaderProps, Logo };
71
+ export { Source, Source1, AltText, Width, Height, FlyoutInverted, DropdownInverted, Floating, Inverted, HeaderProps, Logo };
@@ -8,7 +8,7 @@ import { FaqProps } from "./FaqProps-ad618cd5.js";
8
8
  import { FeaturesProps } from "./FeaturesProps-b05859d6.js";
9
9
  import { GalleryProps } from "./GalleryProps-76e7de44.js";
10
10
  import { HeroProps } from "./HeroProps-cf82a16d.js";
11
- import { ImageStoryProps } from "./ImageStoryProps-e853e1e7.js";
11
+ import { ImageStoryProps } from "./ImageStoryProps-03ff6d21.js";
12
12
  import { ImageTextProps } from "./ImageTextProps-9286cca4.js";
13
13
  import { LogosProps } from "./LogosProps-f9474fe2.js";
14
14
  import { MosaicProps } from "./MosaicProps-d52c7151.js";
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { BlogOverviewProps } from "../../BlogOverviewProps-f385fc47.js";
2
+ import { BlogOverviewProps } from "../../BlogOverviewProps-525f7f9f.js";
3
3
  declare const BlogOverview: {
4
4
  ({ latest, more }: BlogOverviewProps): import("react/jsx-runtime").JSX.Element;
5
5
  displayName: string;
@@ -1,4 +1,4 @@
1
- import { BlogPostProps } from "../../BlogPostProps-440f88a5.js";
1
+ import { BlogPostProps } from "../../BlogPostProps-f9a49428.js";
2
2
  import { FC, PropsWithChildren } from "react";
3
3
  declare const BlogPost: FC<PropsWithChildren<BlogPostProps>>;
4
4
  export { BlogPost };
@@ -77,6 +77,28 @@
77
77
  },
78
78
  "active": {
79
79
  "type": "boolean"
80
+ },
81
+ "items": {
82
+ "type": "array",
83
+ "items": {
84
+ "type": "object",
85
+ "properties": {
86
+ "href": {
87
+ "type": "string",
88
+ "format": "uri"
89
+ },
90
+ "id": {
91
+ "type": "string"
92
+ },
93
+ "label": {
94
+ "type": "string"
95
+ },
96
+ "active": {
97
+ "type": "boolean"
98
+ }
99
+ },
100
+ "additionalProperties": false
101
+ }
80
102
  }
81
103
  },
82
104
  "additionalProperties": false,
@@ -88,7 +110,7 @@
88
110
  "examples": [
89
111
  [
90
112
  {
91
- "label": "Nav Item",
113
+ "label": "Navigation Item",
92
114
  "href": "#"
93
115
  },
94
116
  {
@@ -97,8 +119,20 @@
97
119
  "active": true
98
120
  },
99
121
  {
100
- "label": "Another Item",
101
- "href": "#"
122
+ "label": "Item With Children",
123
+ "href": "#",
124
+ "items": [
125
+ {
126
+ "label": "Level 2 Item",
127
+ "href": "#",
128
+ "id": ""
129
+ },
130
+ {
131
+ "label": "Another One",
132
+ "href": "#",
133
+ "id": ""
134
+ }
135
+ ]
102
136
  },
103
137
  {
104
138
  "label": "One more Item",
@@ -1,4 +1,4 @@
1
1
  import { FC } from "react";
2
- import { FooterProps } from "../../FooterProps-10c950a6.js";
2
+ import { FooterProps } from "../../FooterProps-22e0307b.js";
3
3
  declare const Footer: FC<FooterProps>;
4
4
  export { Footer };
@@ -1,4 +1,6 @@
1
- :root, [ks-inverted], [ks-theme] {
1
+ :root,
2
+ [ks-theme],
3
+ [ks-inverted] {
2
4
  --dsa-header--spacing-vertical: var(--ks-spacing-stack-m);
3
5
  --dsa-header--spacing-horizontal: var(--l-section--content-padding);
4
6
  }
@@ -2,6 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "http://schema.mydesignsystem.com/header.schema.json",
4
4
  "title": "Header",
5
+ "description": "Header layered on top by the CMS",
5
6
  "type": "object",
6
7
  "properties": {
7
8
  "logo": {
@@ -57,6 +58,12 @@
57
58
  "description": "Toggle the inversion of the flyout navigation",
58
59
  "default": false
59
60
  },
61
+ "dropdownInverted": {
62
+ "type": "boolean",
63
+ "title": "Dropdown Inverted",
64
+ "description": "Toggle the inversion of the dropdown navigation",
65
+ "default": false
66
+ },
60
67
  "floating": {
61
68
  "type": "boolean",
62
69
  "title": "Floating",
@@ -83,6 +90,28 @@
83
90
  },
84
91
  "active": {
85
92
  "type": "boolean"
93
+ },
94
+ "items": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "object",
98
+ "properties": {
99
+ "href": {
100
+ "type": "string",
101
+ "format": "uri"
102
+ },
103
+ "id": {
104
+ "type": "string"
105
+ },
106
+ "label": {
107
+ "type": "string"
108
+ },
109
+ "active": {
110
+ "type": "boolean"
111
+ }
112
+ },
113
+ "additionalProperties": false
114
+ }
86
115
  }
87
116
  },
88
117
  "additionalProperties": false,
@@ -94,7 +123,7 @@
94
123
  "examples": [
95
124
  [
96
125
  {
97
- "label": "Nav Item",
126
+ "label": "Navigation Item",
98
127
  "href": "#"
99
128
  },
100
129
  {
@@ -103,8 +132,20 @@
103
132
  "active": true
104
133
  },
105
134
  {
106
- "label": "Another Item",
107
- "href": "#"
135
+ "label": "Item With Children",
136
+ "href": "#",
137
+ "items": [
138
+ {
139
+ "label": "Level 2 Item",
140
+ "href": "#",
141
+ "id": ""
142
+ },
143
+ {
144
+ "label": "Another One",
145
+ "href": "#",
146
+ "id": ""
147
+ }
148
+ ]
108
149
  },
109
150
  {
110
151
  "label": "One more Item",
@@ -121,8 +162,5 @@
121
162
  "const": "header"
122
163
  }
123
164
  },
124
- "additionalProperties": false,
125
- "required": [
126
- "logo"
127
- ]
165
+ "additionalProperties": false
128
166
  }
@@ -2,6 +2,7 @@
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
3
  "$id": "http://schema.mydesignsystem.com/header.schema.json",
4
4
  "title": "Header",
5
+ "description": "Header layered on top by the CMS",
5
6
  "type": "object",
6
7
  "properties": {
7
8
  "logo": {
@@ -31,6 +32,9 @@
31
32
  "flyoutInverted": {
32
33
  "$ref": "http://schema.mydesignsystem.com/nav-main.schema.json#/properties/flyoutInverted"
33
34
  },
35
+ "dropdownInverted": {
36
+ "$ref": "http://schema.mydesignsystem.com/nav-main.schema.json#/properties/dropdownInverted"
37
+ },
34
38
  "floating": {
35
39
  "type": "boolean",
36
40
  "title": "Floating",
@@ -46,7 +50,5 @@
46
50
  "navItems": {
47
51
  "$ref": "http://schema.mydesignsystem.com/nav-main.schema.json#/properties/items"
48
52
  }
49
- },
50
- "additionalProperties": false,
51
- "required": ["logo"]
53
+ }
52
54
  }
@@ -1,4 +1,4 @@
1
1
  import { FC } from "react";
2
- import { HeaderProps } from "../../HeaderProps-7be94a61.js";
2
+ import { HeaderProps } from "../../HeaderProps-dd2071a8.js";
3
3
  declare const Header: FC<HeaderProps>;
4
4
  export { Header };
@@ -3,16 +3,20 @@ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
3
3
  import classnames from 'classnames';
4
4
  import { NavMain } from '../nav-main/index.js';
5
5
  import { Logo } from '../logo/index.js';
6
- import 'react';
7
- import '@kickstartds/base/lib/link';
8
- import '../nav-main/js/NavToggle.client.js';
6
+ import '../nav/js/NavToggle.client.js';
9
7
  import '@kickstartds/core/lib/component';
10
- import '../nav-main/js/navMainEvents.client.js';
8
+ import '../nav/js/navMainEvents.client.js';
11
9
  import '@kickstartds/core/lib/core';
12
- import '../nav-main/js/body.client.js';
10
+ import '../nav/js/body.client.js';
11
+ import '../nav-toggle/index.js';
12
+ import '../nav-topbar/index.js';
13
+ import '@kickstartds/base/lib/link';
14
+ import '@kickstartds/base/lib/icon';
15
+ import '../nav-dropdown/index.js';
16
+ import '../nav-flyout/index.js';
13
17
  import '@kickstartds/base/lib/picture';
14
18
 
15
- const Header = ({ logo, floating, inverted = false, flyoutInverted = false, navItems = [], }) => (jsx(Fragment, { children: jsx("div", { className: classnames("dsa-header", floating ? `dsa-header--floating` : ""), "ks-inverted": inverted.toString(), children: jsxs("div", { className: "dsa-header__content", children: [jsx(Logo, { ...logo, className: "dsa-header__logo", inverted: inverted }), jsx(NavMain, { flyoutInverted: flyoutInverted, items: navItems, logo: {
19
+ const Header = ({ logo, floating, inverted = false, flyoutInverted = false, dropdownInverted = false, navItems = [], }) => (jsx(Fragment, { children: jsx("div", { className: classnames("dsa-header", floating ? `dsa-header--floating` : ""), "ks-inverted": inverted.toString(), 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: {
16
20
  ...logo,
17
21
  inverted: flyoutInverted,
18
22
  } })] }) }) }));
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { HTMLAttributes } from "react";
3
- import { ImageStoryProps } from "../../ImageStoryProps-e853e1e7.js";
3
+ import { ImageStoryProps } from "../../ImageStoryProps-03ff6d21.js";
4
4
  declare const ImageStoryContextDefault: import("react").ForwardRefExoticComponent<ImageStoryProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
5
5
  declare const ImageStoryContext: import("react").Context<import("react").ForwardRefExoticComponent<ImageStoryProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>>;
6
6
  declare const ImageStory: import("react").ForwardRefExoticComponent<ImageStoryProps & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -4,7 +4,7 @@
4
4
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
5
  * and run json-schema-to-typescript to regenerate this file.
6
6
  */
7
- import { SectionProps } from "../../SectionProps-83d399b4.js";
7
+ import { SectionProps } from "../../SectionProps-03ff6d21.js";
8
8
  import { SeoProps } from "../../SeoProps-f2d6dcaa.js";
9
9
  /* eslint-disable */
10
10
  /**
@@ -12,8 +12,8 @@ import { SeoProps } from "../../SeoProps-f2d6dcaa.js";
12
12
  * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
13
13
  * and run json-schema-to-typescript to regenerate this file.
14
14
  */
15
- import { HeaderProps } from "../../HeaderProps-7be94a61.js";
16
- import { FooterProps } from "../../FooterProps-10c950a6.js";
15
+ import { HeaderProps } from "../../HeaderProps-dd2071a8.js";
16
+ import { FooterProps } from "../../FooterProps-22e0307b.js";
17
17
  /**
18
18
  * Collection of sections (with their contents) to render on the page
19
19
  */
@@ -72,6 +72,6 @@ interface SettingsProps {
72
72
  */
73
73
  seo: SeoProps;
74
74
  }
75
- export * from "../../BlogPostProps-440f88a5.js";
76
- export * from "../../BlogOverviewProps-f385fc47.js";
75
+ export * from "../../BlogPostProps-f9a49428.js";
76
+ export * from "../../BlogOverviewProps-525f7f9f.js";
77
77
  export { Sections, ToggleFloating, ToggleInverted, ToggleInverted1, PageProps, Header, Footer, SettingsProps };
@@ -0,0 +1,23 @@
1
+ import { FC } from "react";
2
+ /* eslint-disable */
3
+ /**
4
+ * This file was automatically generated by json-schema-to-typescript.
5
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
6
+ * and run json-schema-to-typescript to regenerate this file.
7
+ */
8
+ /**
9
+ * Toggle the inversion of the dropdown navigation
10
+ */
11
+ type DropdownInverted = boolean;
12
+ interface NavDropdownProps {
13
+ inverted?: DropdownInverted;
14
+ items?: {
15
+ href?: string;
16
+ id?: string;
17
+ label?: string;
18
+ active?: boolean;
19
+ }[];
20
+ className?: string;
21
+ }
22
+ declare const NavDropdown: FC<NavDropdownProps>;
23
+ export { NavDropdown };
@@ -0,0 +1,10 @@
1
+ import "./nav-dropdown.css";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import classnames from 'classnames';
4
+ import { Link } from '@kickstartds/base/lib/link';
5
+
6
+ const NavDropdown = ({ items, inverted }) => (jsx("ul", { className: classnames(`dsa-nav-dropdown`), "ks-inverted": inverted?.toString(), children: items.map(({ label, href, id }) => {
7
+ return (jsx("li", { className: classnames("dsa-nav-dropdown__item"), children: jsx(Link, { href: href, className: `dsa-nav-dropdown__link `, children: label }) }, id));
8
+ }) }));
9
+
10
+ export { NavDropdown };
@@ -0,0 +1,45 @@
1
+ .dsa-nav-dropdown {
2
+ --dsa-nav-dropdown--padding: var(--ks-spacing-inset-stretch-xs);
3
+ --dsa-nav-dropdown--background: var(--ks-background-color-default);
4
+ --dsa-nav-dropdown--border-radius: var(--ks-border-radius-card);
5
+ --dsa-nav-dropdown--box-shadow: var(--ks-box-shadow-card);
6
+ --dsa-nav-dropdown--border: 1px solid var(--ks-border-color-card);
7
+ --dsa-nav-dropdown__link--color: var(--ks-color-fg);
8
+ --dsa-nav-dropdown__link--color_hover: var(--ks-text-color-interface-interactive-hover);
9
+ --dsa-nav-dropdown__link--color_active: var(--ks-text-color-interface-interactive-active);
10
+ --dsa-nav-dropdown__link--font: var(--ks-font-interface-m);
11
+ --dsa-nav-dropdown__link--font-weight: var(--ks-font-weight-semi-bold);
12
+ --dsa-nav-dropdown__link--font-weight_active: var(--ks-font-weight-semi-bold);
13
+ --dsa-nav-dropdown__link--padding: 0.35em 0.25em;
14
+ --dsa-nav-dropdown__link_dimmed--opacity: 0.6;
15
+ }
16
+
17
+ .dsa-nav-dropdown {
18
+ display: none;
19
+ padding: var(--dsa-nav-dropdown--padding);
20
+ position: absolute;
21
+ flex-direction: column;
22
+ align-items: flex-start;
23
+ background-color: var(--dsa-nav-dropdown--background);
24
+ border-radius: var(--dsa-nav-dropdown--border-radius);
25
+ box-shadow: var(--dsa-nav-dropdown--box-shadow);
26
+ border: var(--dsa-nav-dropdown--border);
27
+ }
28
+ .dsa-nav-dropdown:hover .dsa-nav-dropdown__link:not(:hover) {
29
+ opacity: var(--dsa-nav-dropdown__link_dimmed--opacity);
30
+ }
31
+ .dsa-nav-dropdown .dsa-nav-dropdown__link {
32
+ font: var(--dsa-nav-dropdown__link--font);
33
+ font-weight: var(--dsa-nav-dropdown__link--font-weight);
34
+ color: var(--dsa-nav-dropdown__link--color);
35
+ position: relative;
36
+ display: block;
37
+ padding: var(--dsa-nav-dropdown__link--padding);
38
+ text-align: left;
39
+ }
40
+ .dsa-nav-dropdown .dsa-nav-dropdown__link:hover {
41
+ color: var(--dsa-nav-dropdown__link--color_hover);
42
+ }
43
+ .dsa-nav-dropdown .dsa-nav-dropdown__link:active {
44
+ color: var(--dsa-nav-dropdown__link--color_active);
45
+ }
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare const NavFlyout: ({ items, inverted, logo, active }: {
3
+ items: any;
4
+ inverted: any;
5
+ logo: any;
6
+ active: any;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export { NavFlyout };
@@ -0,0 +1,17 @@
1
+ import "./nav-flyout.css";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import classnames from 'classnames';
4
+ import { Link } from '@kickstartds/base/lib/link';
5
+ import { Icon } from '@kickstartds/base/lib/icon';
6
+ import { Logo } from '../logo/index.js';
7
+ import '@kickstartds/base/lib/picture';
8
+
9
+ const NavFlyout = ({ items, inverted, logo, active }) => items && items.length > 0 ? (jsxs("nav", { className: "dsa-nav-flyout", "ks-inverted": inverted.toString(), id: "dsa-nav-flyout", "aria-label": "Hauptnavigation", children: [jsx(Logo, { ...logo, className: "dsa-nav-flyout__logo" }), jsx("ul", { className: "dsa-nav-flyout-list", children: items.map(({ label, href, id, items: subItems }) => {
10
+ const isActive = active === href ||
11
+ subItems?.some((navItem) => active === navItem.href);
12
+ return (jsxs("li", { className: classnames("dsa-nav-flyout__item", isActive && "dsa-nav-flyout__item--active"), children: [jsxs(Link, { href: href, className: `dsa-nav-flyout__link`, children: [label, subItems?.length ? (jsx(Icon, { className: "dsa-nav-flyout__link__icon", icon: "chevron-down" })) : ("")] }), subItems?.length ? (jsx("ul", { className: "dsa-nav-flyout__sublist", children: subItems.map(({ label, href, id }) => {
13
+ return (jsx("li", { className: classnames("dsa-nav-flyout__item"), children: jsx(Link, { href: href, className: `dsa-nav-flyout__link `, children: label }) }, id));
14
+ }) })) : null] }, id));
15
+ }) })] })) : null;
16
+
17
+ export { NavFlyout };
@@ -0,0 +1,97 @@
1
+ .dsa-nav-flyout {
2
+ --dsa-nav-flyout--padding: 0 var(--l-section--content-padding);
3
+ --dsa-nav-flyout--background: linear-gradient(
4
+ 125deg,
5
+ var(--ks-background-color-default),
6
+ var(--ks-color-primary-to-bg-6)
7
+ );
8
+ --dsa-nav-flyout--shadow: 20px 0px 30px var(--ks-color-fg-inverted-base);
9
+ --dsa-nav-flyout__link--color: var(--ks-color-fg);
10
+ --dsa-nav-flyout__link--color_hover: var(--ks-text-color-interface-interactive-hover);
11
+ --dsa-nav-flyout__link--color_active: var(--ks-text-color-interface-interactive-active);
12
+ --dsa-nav-flyout__link--font: var(--ks-font-interface-l);
13
+ --dsa-nav-flyout__link--font-weight: var(--ks-font-weight-semi-bold);
14
+ --dsa-nav-flyout__link--font-weight_active: var(--ks-font-weight-semi-bold);
15
+ --dsa-nav-flyout__link--padding: 0.25em 0;
16
+ --dsa-nav-flyout__link_dimmed--opacity: 0.6;
17
+ --dsa-nav-flyout__sublist--padding-left: 1em;
18
+ }
19
+
20
+ .dsa-nav-flyout {
21
+ display: none;
22
+ left: -100%;
23
+ height: 100vh;
24
+ overflow: hidden;
25
+ position: fixed;
26
+ width: 77vw;
27
+ max-width: 23rem;
28
+ transition: all var(--ks-duration-slow);
29
+ padding: var(--dsa-nav-flyout--padding);
30
+ right: 0;
31
+ bottom: 0;
32
+ top: 0;
33
+ overflow-y: auto;
34
+ background: var(--dsa-nav-flyout--background);
35
+ backface-visibility: hidden;
36
+ -webkit-overflow-scrolling: touch;
37
+ }
38
+ @media (max-width: 62rem) {
39
+ .dsa-nav-flyout {
40
+ display: block;
41
+ }
42
+ }
43
+ .dsa-nav-flyout ul {
44
+ padding: 0;
45
+ margin: 0;
46
+ }
47
+ .overlay-open .dsa-nav-flyout {
48
+ left: 0;
49
+ box-shadow: var(--dsa-nav-flyout--shadow);
50
+ }
51
+ .dsa-nav-flyout .dsa-nav-flyout__logo {
52
+ margin-top: var(--dsa-header--spacing-vertical);
53
+ margin-bottom: var(--dsa-header--spacing-vertical);
54
+ }
55
+ .dsa-nav-flyout .dsa-nav-flyout__list {
56
+ padding-top: calc(var(--dsa-header--spacing-vertical) - var(--ks-spacing-s));
57
+ }
58
+ .dsa-nav-flyout .dsa-nav-flyout__item {
59
+ flex-shrink: 0;
60
+ position: relative;
61
+ outline: 0;
62
+ }
63
+ .dsa-nav-flyout .dsa-nav-flyout__item:hover > .dsa-nav-sublist {
64
+ display: flex;
65
+ }
66
+ .dsa-nav-flyout .dsa-nav-flyout__link {
67
+ font: var(--dsa-nav-flyout__link--font);
68
+ font-weight: var(--dsa-nav-flyout__link--font-weight);
69
+ color: var(--dsa-nav-flyout__link--color);
70
+ position: relative;
71
+ display: flex;
72
+ height: 100%;
73
+ align-items: center;
74
+ padding: var(--dsa-nav-flyout__link--padding);
75
+ }
76
+ .dsa-nav-flyout .dsa-nav-flyout__link:hover {
77
+ color: var(--dsa-nav-flyout__link--color_hover);
78
+ }
79
+ .dsa-nav-flyout .dsa-nav-flyout__link:active {
80
+ color: var(--dsa-nav-flyout__link--color_active);
81
+ }
82
+ .dsa-nav-flyout .dsa-nav-flyout__sublist {
83
+ padding-left: var(--dsa-nav-flyout__sublist--padding-left);
84
+ }
85
+ .dsa-nav-flyout .dsa-nav-flyout__sublist:hover .dsa-nav-sublist__link:not(:hover) {
86
+ opacity: var(--dsa-nav-sublist__link_dimmed--opacity);
87
+ }
88
+ .dsa-nav-flyout ul {
89
+ box-sizing: border-box;
90
+ margin: 0;
91
+ padding: 0;
92
+ list-style: none;
93
+ }
94
+ .dsa-nav-flyout ul li {
95
+ display: block;
96
+ margin: 0;
97
+ }
@@ -10,23 +10,49 @@ import { LogoProps } from "../../LogoProps-01796f0a.js";
10
10
  * Toggle the inversion of the flyout navigation
11
11
  */
12
12
  type FlyoutInverted = boolean;
13
+ /**
14
+ * Toggle the inversion of the dropdown navigation
15
+ */
16
+ type DropdownInverted = boolean;
17
+ /**
18
+ * Toggle the CTA
19
+ */
20
+ type ToggleCTA = boolean;
21
+ /**
22
+ * Text content to display inside the button
23
+ */
24
+ type Label = string;
25
+ /**
26
+ * Target that should be linked, makes the button behave like a link semantically
27
+ */
28
+ type Target = string;
13
29
  interface NavMainProps {
14
30
  /**
15
31
  * Referenced component LogoProps
16
32
  */
17
33
  logo: LogoProps;
18
34
  flyoutInverted?: FlyoutInverted;
35
+ dropdownInverted?: DropdownInverted;
19
36
  items?: {
20
37
  href: string;
21
38
  label: string;
22
39
  active?: boolean;
40
+ items?: {
41
+ href?: string;
42
+ id?: string;
43
+ label?: string;
44
+ active?: boolean;
45
+ }[];
23
46
  }[];
47
+ cta?: CTA;
48
+ }
49
+ /**
50
+ * Add a CTA to the Navigation
51
+ */
52
+ interface CTA {
53
+ toggle?: ToggleCTA;
54
+ label?: Label;
55
+ target?: Target;
24
56
  }
25
- declare const NavToggleComponent: FC;
26
- declare const NavMainItem: FC<{
27
- label: string;
28
- href: string;
29
- active: boolean;
30
- }>;
31
57
  declare const NavMain: FC<NavMainProps>;
32
- export { NavToggleComponent, NavMainItem, NavMain };
58
+ export { NavMain };