@hlf-fe/pulmo-ui 1.5.2 → 1.5.4

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/buttons/button/button.js +0 -1
  2. package/dist/components/icons/toggable-chevron/toggable-chevron.d.ts +6 -2
  3. package/dist/components/icons/toggable-chevron/toggable-chevron.js +2 -2
  4. package/dist/components/layout/accordion/accordion.d.ts +2 -1
  5. package/dist/components/layout/accordion/accordion.js +19 -3
  6. package/dist/components/layout/accordion/accordion.stories.d.ts +1 -0
  7. package/dist/components/layout/accordion/accordion.stories.js +3 -0
  8. package/dist/components/layout/image/image.d.ts +1 -1
  9. package/dist/components/layout/image/image.js +3 -3
  10. package/dist/components/layout/image/image.stories.js +1 -1
  11. package/dist/components/modules/logo-list/logo-list.d.ts +5 -0
  12. package/dist/components/modules/logo-list/logo-list.js +34 -0
  13. package/dist/components/modules/logo-list/logo-list.stories.d.ts +6 -0
  14. package/dist/components/modules/logo-list/logo-list.stories.js +18 -0
  15. package/dist/components/modules/navigation/navigation-desktop/nav-cell/nav-cell.d.ts +6 -0
  16. package/dist/components/modules/navigation/navigation-desktop/nav-cell/nav-cell.js +69 -0
  17. package/dist/components/modules/navigation/navigation-desktop/nav-section/nav-section.d.ts +8 -0
  18. package/dist/components/modules/navigation/navigation-desktop/nav-section/nav-section.js +80 -0
  19. package/dist/components/modules/navigation/navigation-desktop/navigation-desktop.d.ts +3 -0
  20. package/dist/components/modules/navigation/navigation-desktop/navigation-desktop.js +139 -0
  21. package/dist/components/modules/navigation/navigation-desktop/navigation-desktop.stories.d.ts +6 -0
  22. package/dist/components/modules/navigation/navigation-desktop/navigation-desktop.stories.js +12 -0
  23. package/dist/components/modules/navigation/navigation-mobile/nav-panel.d.ts +11 -0
  24. package/dist/components/modules/navigation/navigation-mobile/nav-panel.js +158 -0
  25. package/dist/components/modules/navigation/navigation-mobile/navigation-mobile.d.ts +3 -0
  26. package/dist/components/modules/navigation/navigation-mobile/navigation-mobile.js +95 -0
  27. package/dist/components/modules/navigation/navigation-mobile/navigation-mobile.stories.d.ts +6 -0
  28. package/dist/components/modules/navigation/navigation-mobile/navigation-mobile.stories.js +12 -0
  29. package/dist/components/modules/navigation/shared/nav-item/nav-item.d.ts +18 -0
  30. package/dist/components/modules/navigation/shared/nav-item/nav-item.js +106 -0
  31. package/dist/components/modules/navigation/shared/types/types.d.ts +43 -0
  32. package/dist/components/modules/navigation/shared/types/types.js +1 -0
  33. package/dist/components/typography/headings/headings.js +4 -0
  34. package/dist/components/typography/headings/headings.stories.js +2 -2
  35. package/dist/index.d.ts +5 -5
  36. package/dist/index.js +6 -4
  37. package/dist/mocks/image-mocks.d.ts +7 -0
  38. package/dist/mocks/image-mocks.js +7 -0
  39. package/dist/mocks/navigation-mock.d.ts +5 -0
  40. package/dist/mocks/navigation-mock.js +153 -0
  41. package/dist/models/sanity-types.d.ts +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,158 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { Link } from "gatsby";
4
+ import { ToggableChevron } from "../../../../components/icons/toggable-chevron/toggable-chevron";
5
+ import { CardBanner } from "../../../../components/surfaces/cards/card-banner/card-banner";
6
+ import { NavigationItem } from "../shared/nav-item/nav-item";
7
+ import styled, { css } from "styled-components";
8
+ import { rem } from '../../../../styles/units';
9
+ const NavigationPanel = ({ mainMenuItems, topMenuItems, scrollToTop, closeMenu, goBackText }) => {
10
+ const [currentSection, setCurrentSection] = useState();
11
+ const [currentItem, setCurrentItem] = useState();
12
+ const [isShowingSection, setIsShowingSection] = useState(false);
13
+ const [isAnimating, setIsAnimating] = useState(false);
14
+ const toggleSection = (section) => {
15
+ if (isAnimating)
16
+ return;
17
+ if (section) {
18
+ setCurrentSection(section);
19
+ }
20
+ setIsShowingSection(!!section);
21
+ setIsAnimating(true);
22
+ scrollToTop();
23
+ };
24
+ const toggleItem = (item) => {
25
+ setCurrentItem(currentItem?.key !== item?.key ? item : undefined);
26
+ };
27
+ const renderColumn = (title, items) => (items && (_jsxs(_Fragment, { children: [_jsx(Header, { children: title }), _jsx(StyledList, { children: items.map((item) => (_jsx(NavigationItem, { model: item, expanded: currentItem?.key === item.key, parent: currentSection?.title, onToggle: toggleItem, onLinkClick: closeMenu }, item.key))) })] })));
28
+ return (_jsxs(Wrapper, { "data-test": "nav-panel-wrapper", toggled: isShowingSection, onTransitionEnd: () => setIsAnimating(false), children: [_jsx(Panel, { visible: true, children: _jsxs(PanelLayout, { children: [_jsx(StyledList, { "data-test": "nav-list", children: mainMenuItems?.map((section) => (_jsx("li", { children: _jsxs(NavCell, { "data-test": "nav-cell", onClick: () => toggleSection(section), children: [_jsx("p", { children: section.title }), _jsx(Chevron, {})] }) }, section.key))) }), !!topMenuItems?.length && (_jsx(LinkContainer, { "data-test": "nav-sub-menu", children: topMenuItems.map(({ webUrlName, internalLink, externalUrl }) => (_jsx(StyledLink, { to: externalUrl || internalLink?.slug?.current || "/", children: webUrlName }, webUrlName))) }))] }) }), _jsxs(Panel, { "data-test": "nav-panel-section", visible: isShowingSection || isAnimating, children: [_jsxs(PanelLayout, { children: [_jsxs(BackCell, { "data-test": "nav-panel-back", onClick: () => toggleSection(undefined), children: [_jsx(BackChevron, { disableCircle: false }), goBackText] }), renderColumn(currentSection?.column1Title, currentSection?.column1Items), renderColumn(currentSection?.column2Title, currentSection?.column2Items)] }), _jsx(InfoWrapper, { color: currentSection?.backgroundColor?.hex, children: currentSection?.linkBanners && currentSection?.linkBanners?.map((banner, i) => (_jsx(CardBanner, { ...banner, externalUrl: banner?.link?.externalUrl, internalLink: banner?.link?.internalLink?.slug?.current, onClick: closeMenu }, `${banner.title.trim()}-${i}`))) })] })] }));
29
+ };
30
+ const Wrapper = styled.div `
31
+ width: 100%;
32
+ display: flex;
33
+ transform: translateX(0%);
34
+ transition: transform ease-in-out 0.6s;
35
+
36
+ ${({ toggled }) => toggled && css `
37
+ transform: translateX(-100%);
38
+ `}
39
+ `;
40
+ const Panel = styled.div `
41
+ width: 100vw;
42
+ display: flex;
43
+ flex-direction: column;
44
+ flex-shrink: 0;
45
+ display: none;
46
+
47
+ ${({ visible }) => visible && css `
48
+ display: block;
49
+ `}
50
+ `;
51
+ const PanelLayout = styled.div `
52
+ padding: ${rem(24)};
53
+ padding-bottom: ${rem(40)};
54
+ `;
55
+ const StyledList = styled.ul `
56
+ margin: 0;
57
+ padding: 0;
58
+ list-style: none;
59
+
60
+ li {
61
+ margin-bottom: ${rem(16)};
62
+
63
+ &:last-child {
64
+ margin-bottom: 0;
65
+ }
66
+ }
67
+ `;
68
+ const NavCell = styled.button `
69
+ padding: 0;
70
+ border: 0;
71
+ background: none;
72
+ cursor: pointer;
73
+ display: grid;
74
+ grid-template-columns: 1fr 22px;
75
+ align-items: center;
76
+ width: 100%;
77
+ font-size: ${rem(20)};
78
+
79
+ p {
80
+ font-size: inherit;
81
+ overflow: hidden;
82
+ text-overflow: ellipsis;
83
+ white-space: nowrap;
84
+ margin: 0;
85
+ text-align: left;
86
+ }
87
+
88
+ ${({ theme }) => css `
89
+ color: ${theme.blackLight};
90
+ font-family: ${theme.valueBold};
91
+ `};
92
+ `;
93
+ const Chevron = styled(ToggableChevron).attrs({
94
+ rotation: -90,
95
+ }) `
96
+ margin-left: auto;
97
+ `;
98
+ const BackCell = styled(NavCell) `
99
+ display: flex;
100
+ font-size: ${rem(16)};
101
+ width: fit-content;
102
+ `;
103
+ const BackChevron = styled(ToggableChevron).attrs({
104
+ rotation: -270,
105
+ }) `
106
+ margin-right: ${rem(4)};
107
+ `;
108
+ const LinkContainer = styled.div `
109
+ display: flex;
110
+ flex-direction: column;
111
+ padding-top: ${rem(32)};
112
+ `;
113
+ const StyledLink = styled(Link) `
114
+ font-size: ${rem(16)};
115
+ font-weight: 500;
116
+ margin: 0;
117
+
118
+ ${({ theme }) => css `
119
+ color: ${theme.blackLight};
120
+ font-family: ${theme.valueMedium};
121
+ `};
122
+
123
+ &:not(:last-child) {
124
+ margin-bottom: ${rem(24)};
125
+ };
126
+ `;
127
+ const Header = styled.h2 `
128
+ font-size: ${rem(20)};
129
+ margin: 0;
130
+ overflow: hidden;
131
+ white-space: nowrap;
132
+ text-overflow: ellipsis;
133
+ border-bottom: 1px solid ${({ theme }) => theme.grayPale};
134
+ padding-bottom: ${rem(8)};
135
+ margin-top: ${rem(30)};
136
+
137
+ ${({ theme }) => css `
138
+ color: ${theme.blackLight};
139
+ font-family: ${theme.valueBold};
140
+ `};
141
+ `;
142
+ const InfoWrapper = styled.div `
143
+ display: flex;
144
+ flex-direction: column;
145
+ justify-content: center;
146
+ padding: ${rem(32)} ${rem(15)};
147
+
148
+ ${({ color }) => color && css `
149
+ background-color: ${color};
150
+ `};
151
+
152
+ > * {
153
+ &:first-child {
154
+ margin-bottom: ${rem(16)};
155
+ }
156
+ }
157
+ `;
158
+ export default NavigationPanel;
@@ -0,0 +1,3 @@
1
+ import { NavigationModel } from "../shared/types/types";
2
+ export type NavigationMobileProps = NavigationModel;
3
+ export declare const NavigationMobile: ({ logotype, mainMenuItems, topMenuItems, ctaButton, localeText, }: NavigationMobileProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,95 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { Link } from "gatsby";
4
+ import NavigationPanel from "./nav-panel";
5
+ import { Image } from "../../../../components/layout/image/image";
6
+ import { Button } from "../../../../components/buttons/button/button";
7
+ import { HamburgerIcon } from "../../../../components/icons/hamburger-icon/hamburger-icon";
8
+ import { MenuCloseIcon } from "../../../../components/icons/menu-close-icon/menu-close-icon";
9
+ import styled, { css } from "styled-components";
10
+ import { rem } from "../../../../styles/units";
11
+ export const NavigationMobile = ({ logotype, mainMenuItems, topMenuItems, ctaButton, localeText = {
12
+ ariaLabelHome: "",
13
+ goBack: "",
14
+ }, }) => {
15
+ const { ariaLabelHome, goBack } = localeText;
16
+ const [isOpen, setIsOpen] = useState(false);
17
+ const stickyRef = useRef(null);
18
+ const emptyMenuItems = !mainMenuItems?.length && !topMenuItems?.length;
19
+ useEffect(() => {
20
+ document.body.style.overflow = isOpen ? "hidden" : "";
21
+ }, [isOpen]);
22
+ // On Unmount, cleanup
23
+ useEffect(() => {
24
+ return () => {
25
+ document.body.style.overflow = "";
26
+ };
27
+ }, []);
28
+ const scrollToTop = () => {
29
+ stickyRef.current?.scroll({ top: 0, behavior: "smooth" });
30
+ };
31
+ return (_jsx(Wrapper, { children: _jsxs(StickyContainer, { "$expanded": isOpen, ref: stickyRef, children: [_jsxs(TopBar, { children: [logotype && (_jsx(StyledLogoLink, { "data-test": "nav-logo", to: "/", "aria-label": ariaLabelHome, children: _jsx(Image, { image: logotype?.asset, width: "112", height: "28" }) })), ctaButton && (_jsx(StyledButton, { btnSize: "s", dataTest: "nav-cta", to: ctaButton.externalUrl, href: ctaButton.internalLink?.slug?.current, target: "_blank", children: ctaButton.webUrlName })), !emptyMenuItems && (_jsx(MenuToggle, { "data-test": !isOpen ? "nav-menu-closed" : "nav-menu-open", "aria-label": "Meny", onClick: () => setIsOpen(!isOpen), children: _jsx(IconWrapper, { children: !isOpen ? _jsx(HamburgerIcon, {}) : _jsx(MenuCloseIcon, {}) }) }))] }), isOpen && (_jsx(MenuContent, { children: _jsx(NavigationPanel, { mainMenuItems: mainMenuItems, topMenuItems: topMenuItems, scrollToTop: scrollToTop, closeMenu: () => setIsOpen(false), goBackText: goBack }) }))] }) }));
32
+ };
33
+ const Wrapper = styled.nav `
34
+ position: relative;
35
+ height: ${({ theme }) => rem(theme?.mobileNavHeight)};
36
+ width: 100%;
37
+ display: flex;
38
+ flex-direction: column;
39
+ z-index: 10;
40
+
41
+ a {
42
+ text-decoration: none;
43
+ }
44
+ `;
45
+ const StickyContainer = styled.div `
46
+ position: fixed;
47
+ width: 100%;
48
+ background: white;
49
+ overflow: hidden;
50
+ overflow-y: scroll;
51
+
52
+ ${({ $expanded }) => $expanded &&
53
+ css `
54
+ height: 100%;
55
+ `};
56
+ `;
57
+ const TopBar = styled.div `
58
+ height: ${({ theme }) => rem(theme?.mobileNavHeight)};
59
+ display: flex;
60
+ align-items: center;
61
+ padding: 0;
62
+ padding-left: ${rem(16)};
63
+ `;
64
+ const StyledLogoLink = styled(Link) `
65
+ display: flex;
66
+ align-self: center;
67
+ max-width: ${rem(140)};
68
+ `;
69
+ const StyledButton = styled(Button) `
70
+ display: flex;
71
+ align-items: center;
72
+ margin-left: auto;
73
+ height: ${rem(32)};
74
+ padding: 0 ${rem(8)};
75
+ `;
76
+ const MenuToggle = styled.button `
77
+ display: flex;
78
+ align-items: center;
79
+ height: 100%;
80
+ margin: 0;
81
+ padding: 0 ${rem(16)};
82
+ border: none;
83
+ background: none;
84
+ cursor: pointer;
85
+ `;
86
+ const IconWrapper = styled.div `
87
+ display: flex;
88
+ width: ${rem(30)};
89
+ justify-content: center;
90
+ `;
91
+ const MenuContent = styled.div `
92
+ width: 100%;
93
+ border-top: 1px solid #ddd;
94
+ -webkit-tap-highlight-color: transparent;
95
+ `;
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { NavigationMobile } from "./navigation-mobile";
3
+ declare const meta: Meta<typeof NavigationMobile>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof NavigationMobile>;
6
+ export declare const Default: Story;
@@ -0,0 +1,12 @@
1
+ import { NavigationMobile } from "./navigation-mobile";
2
+ import { mockNavigation } from '../../../../mocks/navigation-mock';
3
+ const meta = {
4
+ title: "Modules/Main Navigation (Mobile)",
5
+ component: NavigationMobile,
6
+ };
7
+ export default meta;
8
+ export const Default = {
9
+ args: {
10
+ ...mockNavigation
11
+ }
12
+ };
@@ -0,0 +1,18 @@
1
+ import { WebPageUrl } from '../../../../../models/web-page-url';
2
+ export type NavigationItemProps = {
3
+ model: NavigationItemModel;
4
+ expanded?: boolean;
5
+ parent?: string;
6
+ onToggle: (model: NavigationItemModel) => void;
7
+ onLinkClick?: () => void;
8
+ };
9
+ export type NavigationItemModel = {
10
+ key: string;
11
+ title: string;
12
+ highlight?: boolean;
13
+ slug?: {
14
+ current: string;
15
+ };
16
+ items?: WebPageUrl[];
17
+ };
18
+ export declare const NavigationItem: ({ model, expanded, onToggle, onLinkClick }: NavigationItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,106 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Link } from "gatsby";
3
+ import styled, { css } from "styled-components";
4
+ import { media } from "../../../../../styles/mixins";
5
+ import { rem } from "../../../../../styles/units";
6
+ import { ToggableChevron } from "../../../../../components/icons/toggable-chevron/toggable-chevron";
7
+ import { HeartIcon } from "../../../../../components/icons/heart-icon/heart-icon";
8
+ export const NavigationItem = ({ model, expanded, onToggle, onLinkClick }) => {
9
+ const { highlight, title, items, slug } = model;
10
+ return (_jsxs(Wrapper, { "data-test": "nav-item", children: [slug ? (_jsxs(HeaderLink, { to: slug.current, onClick: () => {
11
+ onLinkClick?.();
12
+ }, children: [_jsx(Title, { active: highlight, children: title }), highlight && (_jsx(IconWrapper, { children: _jsx(HeartIcon, {}) }))] })) : (_jsxs(HeaderButton, { onClick: () => {
13
+ onToggle(model);
14
+ }, children: [_jsx(Title, { children: title }), _jsx(StyledToggle, { toggled: expanded, disableCircle: false })] })), (!slug && items) && (_jsx(Expandable, { "data-test": "nav-item-list", active: expanded, children: items.map(({ webUrlName, internalLink }) => (_jsx(StyledListItem, { children: _jsx(StyledLink, { tabIndex: !expanded ? -1 : 0, to: internalLink?.slug?.current ?? "", onClick: () => {
15
+ onLinkClick?.();
16
+ }, children: webUrlName }) }, webUrlName))) }))] }));
17
+ };
18
+ const Wrapper = styled.li `
19
+ display: flex;
20
+ flex-direction: column;
21
+ margin-top: ${rem(16)};
22
+ `;
23
+ const HeaderButton = styled.button `
24
+ display: flex;
25
+ flex-direction: row;
26
+ align-items: center;
27
+ cursor: pointer;
28
+ padding: 0;
29
+ border: 0;
30
+ background: none;
31
+ `;
32
+ const HeaderLink = styled(Link) `
33
+ display: flex;
34
+ flex-direction: row;
35
+ align-items: center;
36
+ cursor: pointer;
37
+ text-decoration: none;
38
+
39
+ svg {
40
+ flex-shrink: 0;
41
+ }
42
+ `;
43
+ const Title = styled.p `
44
+ font-size: ${rem(16)};
45
+ margin: 0;
46
+ margin-right: ${rem(8)};
47
+ text-align: left;
48
+
49
+ ${({ theme }) => css `
50
+ color: ${theme.blackLight};
51
+ font-family: ${theme.valueBold};
52
+ `};
53
+
54
+ ${({ active }) => active && css `
55
+ color: ${({ theme }) => theme.red};
56
+ `};
57
+
58
+ ${media.L `
59
+ font-size: ${rem(18)};
60
+ margin-right: ${rem(6)};
61
+ `}
62
+ `;
63
+ const IconWrapper = styled.div `
64
+ display: flex;
65
+
66
+ ${media.L `
67
+ margin-right: ${rem(20)};
68
+ `}
69
+ `;
70
+ const StyledToggle = styled(ToggableChevron) `
71
+ margin-left: auto;
72
+
73
+ ${media.L `
74
+ margin-right: ${rem(20)};
75
+ `}
76
+ `;
77
+ const Expandable = styled.ul `
78
+ position: relative;
79
+ display: flex;
80
+ flex-direction: column;
81
+ overflow: hidden;
82
+ margin: 0;
83
+ padding: 0;
84
+ display: none;
85
+
86
+ ${({ active }) => active && css `
87
+ display: block;
88
+ `};
89
+ `;
90
+ const StyledListItem = styled.li `
91
+ margin-top: ${rem(16)};
92
+ margin-left: ${rem(8)};
93
+ `;
94
+ const StyledLink = styled(Link) `
95
+ font-size: ${rem(16)};
96
+ text-decoration: none;
97
+
98
+ ${({ theme }) => css `
99
+ color: ${theme.blackLight};
100
+ font-family: ${theme.valueRegular};
101
+
102
+ ${media.L `
103
+ font-family: ${theme.valueMedium};
104
+ `}
105
+ `};
106
+ `;
@@ -0,0 +1,43 @@
1
+ import { WebPageUrl } from '../../../../../models/web-page-url';
2
+ import { SanityImage } from '../../../../../models/sanity-types';
3
+ import { RefObject } from "react";
4
+ export type NavigationItemModel = {
5
+ key: string;
6
+ title: string;
7
+ highlight?: boolean;
8
+ slug?: {
9
+ current: string;
10
+ };
11
+ items?: any;
12
+ };
13
+ export type NavigationSectionModel = {
14
+ key: string;
15
+ title: string;
16
+ column1Title?: string;
17
+ column1Items?: NavigationItemModel[];
18
+ column2Title?: string;
19
+ column2Items?: NavigationItemModel[];
20
+ backgroundColor?: {
21
+ hex: string;
22
+ };
23
+ linkBanners: LinkBanner[];
24
+ };
25
+ export type LinkBanner = {
26
+ title: string;
27
+ text: string;
28
+ image?: SanityImage;
29
+ link?: WebPageUrl;
30
+ };
31
+ export type NavigationModel = {
32
+ topMenuItems?: WebPageUrl[];
33
+ mainMenuItems?: NavigationSectionModel[];
34
+ logotype?: SanityImage;
35
+ ctaButton?: WebPageUrl;
36
+ __typename: string;
37
+ localeText?: {
38
+ ariaLabelHome?: string;
39
+ goBack?: string;
40
+ };
41
+ isMenuVisible?: boolean;
42
+ menuRef?: RefObject<HTMLElement>;
43
+ };
@@ -6,6 +6,7 @@ export const H1 = styled.h1 `
6
6
  color: ${({ theme }) => theme.blackLight};
7
7
  font-size: ${rem(40)};
8
8
  line-height: 1.15;
9
+ margin-bottom: 0;
9
10
 
10
11
  ${media.L `
11
12
  font-size: ${rem(64)};
@@ -17,6 +18,7 @@ export const H2 = styled.h2 `
17
18
  color: ${({ theme }) => theme.blackLight};
18
19
  font-size: ${rem(28)};
19
20
  line-height: 1.14;
21
+ margin-bottom: 0;
20
22
 
21
23
  ${media.L `
22
24
  font-size: ${rem(32)};
@@ -28,6 +30,7 @@ export const H3 = styled.h3 `
28
30
  color: ${({ theme }) => theme.blackLight};
29
31
  font-size: ${rem(22)};
30
32
  line-height: 1.45;
33
+ margin-bottom: 0;
31
34
 
32
35
  ${media.L `
33
36
  font-size: ${rem(28)};
@@ -39,6 +42,7 @@ export const H4 = styled.h4 `
39
42
  color: ${({ theme }) => theme.blackLight};
40
43
  font-size: ${rem(22)};
41
44
  line-height: 1.45;
45
+ margin-bottom: 0;
42
46
 
43
47
  ${media.L `
44
48
  font-size: ${rem(28)};
@@ -18,9 +18,9 @@ export const Heading2 = {
18
18
  };
19
19
  export const Heading3 = {
20
20
  name: "H3",
21
- render: () => (_jsx(_Fragment, { children: _jsx(H3, { children: "This is an H2" }) })),
21
+ render: () => (_jsx(_Fragment, { children: _jsx(H3, { children: "This is an H3" }) })),
22
22
  };
23
23
  export const Heading4 = {
24
24
  name: "H4",
25
- render: () => (_jsx(_Fragment, { children: _jsx(H4, { children: "This is an H2" }) })),
25
+ render: () => (_jsx(_Fragment, { children: _jsx(H4, { children: "This is an H4" }) })),
26
26
  };
package/dist/index.d.ts CHANGED
@@ -13,14 +13,13 @@ import { type EntryListProps, type EntryListItemProps, type EntryListHeadingProp
13
13
  import { type DropdownProps } from "./components/inputs/dropdown/dropdown";
14
14
  import { type PaginationProps } from "./components/navigation/pagination/pagination";
15
15
  import { type AccordionItemProps } from "./components/layout/accordion/accordion";
16
- import { type NavigationCellProps } from "./components/navigation/nav-cell/nav-cell";
17
- import { type NavigationItemProps } from "./components/navigation/nav-item/nav-item";
18
16
  import { type CardBannerProps } from "./components/surfaces/cards/card-banner/card-banner";
19
17
  import { type PaperProps } from "./components/surfaces/paper/paper";
20
18
  import { type LinkProps } from "./components/typography/link/link";
21
19
  import { PortableTextComponentDefault } from "./components/typography/portable-text/portable-text-component-default";
22
20
  import { type FooterProps } from "./components/modules/footer/footer";
23
- export type { ButtonProps, LoadingButtonProps, TextButtonProps, EmailSignupFormProps, ImageProps, ContainerProps, AlertProps, EntryListHeadingProps, EntryListTextProps, PaginationProps, NavigationCellProps, NavigationItemProps, CardBannerProps, PaperProps, };
21
+ import { type LogoListProps } from "./components/modules/logo-list/logo-list";
22
+ export type { ButtonProps, LoadingButtonProps, TextButtonProps, EmailSignupFormProps, ImageProps, ContainerProps, AlertProps, EntryListHeadingProps, EntryListTextProps, PaginationProps, CardBannerProps, PaperProps, };
24
23
  export { CloseIcon } from "./components/icons/close-icon/close-icon";
25
24
  export { ExclamationMarkIcon } from "./components/icons/exclamation-mark-icon/exclamation-mark-icon";
26
25
  export { WarningIcon } from "./components/icons/warning-icon/warning-icon";
@@ -57,8 +56,6 @@ export declare const Accordion: import("react").FC<import("styled-components/dis
57
56
  disabled?: boolean;
58
57
  }>>;
59
58
  export declare const AccordionItem: import("react").FC<AccordionItemProps>;
60
- export declare const NavigationCell: import("react").FC<NavigationCellProps>;
61
- export declare const NavigationItem: import("react").FC<NavigationItemProps>;
62
59
  export declare const CardBanner: import("react").FC<CardBannerProps>;
63
60
  export declare const Paper: import("react").FC<PaperProps>;
64
61
  export declare const Link: import("react").FC<LinkProps>;
@@ -73,4 +70,7 @@ export declare const ItalicText: import("react").FC<import("styled-components").
73
70
  export declare const OrderedList: import("react").FC<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, never>>;
74
71
  export declare const UnorderedList: import("react").FC<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, never>>;
75
72
  export declare const Footer: import("react").FC<FooterProps>;
73
+ export declare const LogoList: import("react").FC<LogoListProps>;
74
+ export declare const NavigationDesktop: import("react").FC<import("./components/modules/navigation/shared/types/types").NavigationModel>;
75
+ export declare const NavigationMobile: import("react").FC<import("./components/modules/navigation/shared/types/types").NavigationModel>;
76
76
  export { PortableTextComponentDefault };
package/dist/index.js CHANGED
@@ -16,8 +16,6 @@ import { EntryList as EntryListComponent, EntryListItem as EntryListItemComponen
16
16
  import { Dropdown as DropdownComponent, } from "./components/inputs/dropdown/dropdown";
17
17
  import { Pagination as PaginationComponent, } from "./components/navigation/pagination/pagination";
18
18
  import { Accordion as AccordionComponent, AccordionItem as AccordionItemComponent, } from "./components/layout/accordion/accordion";
19
- import { NavigationCell as NavigationCellComponent, } from "./components/navigation/nav-cell/nav-cell";
20
- import { NavigationItem as NavigationItemComponent, } from "./components/navigation/nav-item/nav-item";
21
19
  import { CardBanner as CardBannerComponent, } from "./components/surfaces/cards/card-banner/card-banner";
22
20
  import { Paper as PaperComponent, } from "./components/surfaces/paper/paper";
23
21
  import { Link as LinkComponent, } from "./components/typography/link/link";
@@ -26,6 +24,9 @@ import { NormalText as NormalTextComponent, LeadParagraph as LeadParagraphCompon
26
24
  import { OrderedList as OrderedListComponent, UnorderedList as UnorderedListComponent, } from "./components/typography/list/list";
27
25
  import { PortableTextComponentDefault } from "./components/typography/portable-text/portable-text-component-default";
28
26
  import { Footer as FooterComponent, } from "./components/modules/footer/footer";
27
+ import { LogoList as LogoListComponent, } from "./components/modules/logo-list/logo-list";
28
+ import { NavigationDesktop as NavigationDesktopComponent, } from "./components/modules/navigation/navigation-desktop/navigation-desktop";
29
+ import { NavigationMobile as NavigationMobileComponent, } from "./components/modules/navigation/navigation-mobile/navigation-mobile";
29
30
  // Icons
30
31
  export { CloseIcon } from "./components/icons/close-icon/close-icon";
31
32
  export { ExclamationMarkIcon } from "./components/icons/exclamation-mark-icon/exclamation-mark-icon";
@@ -55,8 +56,6 @@ export const Dropdown = withDefaultTheme(DropdownComponent);
55
56
  export const Pagination = withDefaultTheme(PaginationComponent);
56
57
  export const Accordion = withDefaultTheme(AccordionComponent);
57
58
  export const AccordionItem = withDefaultTheme(AccordionItemComponent);
58
- export const NavigationCell = withDefaultTheme(NavigationCellComponent);
59
- export const NavigationItem = withDefaultTheme(NavigationItemComponent);
60
59
  export const CardBanner = withDefaultTheme(CardBannerComponent);
61
60
  export const Paper = withDefaultTheme(PaperComponent);
62
61
  export const Link = withDefaultTheme(LinkComponent);
@@ -71,4 +70,7 @@ export const ItalicText = withDefaultTheme(ItalicTextComponent);
71
70
  export const OrderedList = withDefaultTheme(OrderedListComponent);
72
71
  export const UnorderedList = withDefaultTheme(UnorderedListComponent);
73
72
  export const Footer = withDefaultTheme(FooterComponent);
73
+ export const LogoList = withDefaultTheme(LogoListComponent);
74
+ export const NavigationDesktop = withDefaultTheme(NavigationDesktopComponent);
75
+ export const NavigationMobile = withDefaultTheme(NavigationMobileComponent);
74
76
  export { PortableTextComponentDefault };
@@ -28,3 +28,10 @@ export declare const svgMock: {
28
28
  extension: string;
29
29
  };
30
30
  };
31
+ export declare const logoMock: {
32
+ asset: {
33
+ description: string;
34
+ url: string;
35
+ extension: string;
36
+ };
37
+ };
@@ -30,3 +30,10 @@ export const svgMock = {
30
30
  extension: 'svg'
31
31
  }
32
32
  };
33
+ export const logoMock = {
34
+ asset: {
35
+ description: 'lorem ipsum',
36
+ url: 'https://placehold.co/142x35?text=Logotype',
37
+ extension: 'svg'
38
+ }
39
+ };
@@ -0,0 +1,5 @@
1
+ import { NavigationItemModel, NavigationModel, NavigationSectionModel } from '../components/modules/navigation/shared/types/types';
2
+ export declare const mockNavItemsA: NavigationItemModel[];
3
+ export declare const mockNavItemsB: NavigationItemModel[];
4
+ export declare const mockNavSections: NavigationSectionModel[];
5
+ export declare const mockNavigation: NavigationModel;