@hlf-fe/pulmo-ui 1.0.1 → 1.1.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.
- package/README.md +21 -54
- package/dist/components/buttons/button/button.js +1 -1
- package/dist/components/buttons/button/button.stories.js +6 -1
- package/dist/components/buttons/loading-button/loading-button.d.ts +14 -0
- package/dist/components/buttons/loading-button/loading-button.js +26 -0
- package/dist/components/buttons/loading-button/loading-button.stories.d.ts +7 -0
- package/dist/components/buttons/loading-button/loading-button.stories.js +23 -0
- package/dist/components/buttons/text-button/text-button.d.ts +20 -0
- package/dist/components/buttons/text-button/text-button.js +61 -0
- package/dist/components/buttons/text-button/text-button.stories.d.ts +6 -0
- package/dist/components/buttons/text-button/text-button.stories.js +16 -0
- package/dist/components/decorator/decorator.d.ts +7 -0
- package/dist/components/decorator/decorator.js +13 -0
- package/dist/components/feedback/alert/alert.d.ts +17 -0
- package/dist/components/feedback/alert/alert.js +68 -0
- package/dist/components/feedback/alert/alert.stories.d.ts +6 -0
- package/dist/components/feedback/alert/alert.stories.js +23 -0
- package/dist/components/icons/chevron-left-icon/chevron-left-icon.d.ts +7 -0
- package/dist/components/icons/chevron-left-icon/chevron-left-icon.js +3 -0
- package/dist/components/icons/chevron-left-icon/chevron-left-icon.stories.d.ts +6 -0
- package/dist/components/icons/chevron-left-icon/chevron-left-icon.stories.js +14 -0
- package/dist/components/icons/chevron-right-icon/chevron-right-icon.d.ts +7 -0
- package/dist/components/icons/chevron-right-icon/chevron-right-icon.js +3 -0
- package/dist/components/icons/chevron-right-icon/chevron-right-icon.stories.d.ts +6 -0
- package/dist/components/icons/chevron-right-icon/chevron-right-icon.stories.js +14 -0
- package/dist/components/icons/close-icon/close-icon.d.ts +12 -0
- package/dist/components/icons/close-icon/close-icon.js +9 -0
- package/dist/components/icons/close-icon/close-icon.stories.d.ts +6 -0
- package/dist/components/icons/close-icon/close-icon.stories.js +16 -0
- package/dist/components/icons/exclamation-mark-icon/exclamation-mark-icon.d.ts +3 -0
- package/dist/components/icons/exclamation-mark-icon/exclamation-mark-icon.js +3 -0
- package/dist/components/icons/exclamation-mark-icon/exclamation-mark-icon.stories.d.ts +6 -0
- package/dist/components/icons/exclamation-mark-icon/exclamation-mark-icon.stories.js +16 -0
- package/dist/components/icons/loading-spinner/loading-spinner.d.ts +20 -0
- package/dist/components/icons/loading-spinner/loading-spinner.js +32 -0
- package/dist/components/icons/loading-spinner/loading-spinner.stories.d.ts +6 -0
- package/dist/components/icons/loading-spinner/loading-spinner.stories.js +18 -0
- package/dist/components/icons/search-icon/search-icon.d.ts +5 -0
- package/dist/components/icons/search-icon/search-icon.js +3 -0
- package/dist/components/icons/search-icon/search-icon.stories.d.ts +6 -0
- package/dist/components/icons/search-icon/search-icon.stories.js +18 -0
- package/dist/components/icons/toggable-chevron/toggable-chevron.d.ts +12 -0
- package/dist/components/icons/toggable-chevron/toggable-chevron.js +20 -0
- package/dist/components/icons/toggable-chevron/toggable-chevron.stories.d.ts +7 -0
- package/dist/components/icons/toggable-chevron/toggable-chevron.stories.js +21 -0
- package/dist/components/icons/toggable-plus-minus-icon/toggable-plus-minus-icon.d.ts +6 -0
- package/dist/components/icons/toggable-plus-minus-icon/toggable-plus-minus-icon.js +13 -0
- package/dist/components/icons/toggable-plus-minus-icon/toggable-plus-minus-icon.stories.d.ts +7 -0
- package/dist/components/icons/toggable-plus-minus-icon/toggable-plus-minus-icon.stories.js +21 -0
- package/dist/components/icons/warning-icon/warning-icon.d.ts +3 -0
- package/dist/components/icons/warning-icon/warning-icon.js +3 -0
- package/dist/components/icons/warning-icon/warning-icon.stories.d.ts +6 -0
- package/dist/components/icons/warning-icon/warning-icon.stories.js +16 -0
- package/dist/components/inputs/dropdown/dropdown-list-item.d.ts +6 -0
- package/dist/components/inputs/dropdown/dropdown-list-item.js +33 -0
- package/dist/components/inputs/dropdown/dropdown.d.ts +13 -0
- package/dist/components/inputs/dropdown/dropdown.js +109 -0
- package/dist/components/inputs/dropdown/dropdown.stories.d.ts +7 -0
- package/dist/components/inputs/dropdown/dropdown.stories.js +84 -0
- package/dist/components/inputs/form-error/form-error.d.ts +11 -0
- package/dist/components/inputs/form-error/form-error.js +16 -0
- package/dist/components/inputs/form-error/form-error.stories.d.ts +6 -0
- package/dist/components/inputs/form-error/form-error.stories.js +22 -0
- package/dist/components/inputs/form-label/form-label.d.ts +7 -0
- package/dist/components/inputs/form-label/form-label.js +12 -0
- package/dist/components/inputs/form-label/form-label.stories.d.ts +6 -0
- package/dist/components/inputs/form-label/form-label.stories.js +16 -0
- package/dist/components/inputs/text-field/text-field.d.ts +32 -0
- package/dist/components/inputs/text-field/text-field.js +65 -0
- package/dist/components/inputs/text-field/text-field.stories.d.ts +11 -0
- package/dist/components/inputs/text-field/text-field.stories.js +51 -0
- package/dist/components/layout/accordion/accordion.d.ts +13 -0
- package/dist/components/layout/accordion/accordion.js +115 -0
- package/dist/components/layout/accordion/accordion.stories.d.ts +6 -0
- package/dist/components/layout/accordion/accordion.stories.js +14 -0
- package/dist/components/layout/container/container.d.ts +10 -0
- package/dist/components/layout/container/container.js +19 -0
- package/dist/components/layout/container/container.stories.d.ts +9 -0
- package/dist/components/layout/container/container.stories.js +47 -0
- package/dist/components/layout/image/image.d.ts +22 -0
- package/dist/components/layout/image/image.js +27 -0
- package/dist/components/layout/image/image.stories.d.ts +6 -0
- package/dist/components/layout/image/image.stories.js +33 -0
- package/dist/components/modules/email-signup-form/email-signup-form.d.ts +16 -0
- package/dist/components/modules/email-signup-form/email-signup-form.js +63 -0
- package/dist/components/modules/email-signup-form/email-signup-form.stories.d.ts +9 -0
- package/dist/components/modules/email-signup-form/email-signup-form.stories.js +51 -0
- package/dist/components/modules/entry-list/entry-list.d.ts +27 -0
- package/dist/components/modules/entry-list/entry-list.js +54 -0
- package/dist/components/modules/entry-list/entry-list.stories.d.ts +6 -0
- package/dist/components/modules/entry-list/entry-list.stories.js +14 -0
- package/dist/components/navigation/pagination/pagination.d.ts +12 -0
- package/dist/components/navigation/pagination/pagination.js +114 -0
- package/dist/components/navigation/pagination/pagination.stories.d.ts +6 -0
- package/dist/components/navigation/pagination/pagination.stories.js +21 -0
- package/dist/constants/general.d.ts +4 -0
- package/dist/constants/general.js +5 -0
- package/dist/hoc/withDefaultTheme.d.ts +1 -1
- package/dist/hoc/withDefaultTheme.js +4 -8
- package/dist/index.d.ts +40 -2
- package/dist/index.js +42 -2
- package/dist/styles/mixins.js +8 -4
- package/dist/styles/theme.d.ts +11 -9
- package/dist/styles/theme.js +12 -11
- package/package.json +78 -67
- package/dist/App.d.ts +0 -3
- package/dist/App.js +0 -10
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -6
- package/dist/stories/Button.d.ts +0 -14
- package/dist/stories/Button.js +0 -20
- package/dist/stories/Button.stories.d.ts +0 -23
- package/dist/stories/Button.stories.js +0 -44
- package/dist/stories/Header.d.ts +0 -12
- package/dist/stories/Header.js +0 -4
- package/dist/stories/Header.stories.d.ts +0 -18
- package/dist/stories/Header.stories.js +0 -26
- package/dist/stories/Page.d.ts +0 -3
- package/dist/stories/Page.js +0 -7
- package/dist/stories/Page.stories.d.ts +0 -12
- package/dist/stories/Page.stories.js +0 -24
- package/dist/styles/styles/mixins/theme-mixins.d.ts +0 -5
- package/dist/styles/styles/mixins/theme-mixins.js +0 -37
- package/dist/styles/styles/mixins/units.d.ts +0 -3
- package/dist/styles/styles/mixins/units.js +0 -3
- package/dist/styles/styles/mixins.d.ts +0 -48
- package/dist/styles/styles/mixins.js +0 -336
- package/dist/styles/styles/theme.d.ts +0 -135
- package/dist/styles/styles/theme.js +0 -77
- package/dist/styles/types.d.ts +0 -3
- package/dist/styles/types.js +0 -1
- package/dist/styles/withDefaultTheme.d.ts +0 -1
- package/dist/styles/withDefaultTheme.js +0 -12
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import styled, { css } from "styled-components";
|
|
3
|
+
import { rem } from "../../../styles/units";
|
|
4
|
+
import { media } from "../../../styles/mixins";
|
|
5
|
+
export const EntryList = ({ children }) => {
|
|
6
|
+
return _jsx(List, { children: children });
|
|
7
|
+
};
|
|
8
|
+
export const EntryListItem = ({ children }) => {
|
|
9
|
+
return _jsx(ListItem, { children: children });
|
|
10
|
+
};
|
|
11
|
+
export const EntryListText = ({ children, fontSizeMobile = 14, fontSizeDesktop = 16, breakpoint = "M", bold = false, as = "p", color, }) => {
|
|
12
|
+
return (_jsx(Text, { as: as, fontSizeMobile: fontSizeMobile, fontSizeDesktop: fontSizeDesktop, breakpoint: breakpoint, bold: bold, color: color, children: children }));
|
|
13
|
+
};
|
|
14
|
+
export const EntryListHeading = ({ children, fontSizeMobile = 18, fontSizeDesktop = 20, as = "h2", breakpoint = "M", }) => {
|
|
15
|
+
return (_jsx(Heading, { as: as, fontSizeMobile: fontSizeMobile, fontSizeDesktop: fontSizeDesktop, breakpoint: breakpoint, children: children }));
|
|
16
|
+
};
|
|
17
|
+
const List = styled.ul `
|
|
18
|
+
list-style: none;
|
|
19
|
+
padding: 0;
|
|
20
|
+
margin: 0;
|
|
21
|
+
`;
|
|
22
|
+
const ListItem = styled.li `
|
|
23
|
+
border-bottom: 1px solid #e9e9e9;
|
|
24
|
+
padding: 20px 0;
|
|
25
|
+
&:first-of-type {
|
|
26
|
+
border-top: 1px solid #e9e9e9;
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
const responsiveFont = css `
|
|
30
|
+
font-size: ${({ fontSizeMobile }) => rem(fontSizeMobile)};
|
|
31
|
+
|
|
32
|
+
${({ fontSizeDesktop, breakpoint }) => media[breakpoint] `
|
|
33
|
+
font-size: ${rem(fontSizeDesktop)};
|
|
34
|
+
`}
|
|
35
|
+
`;
|
|
36
|
+
const Heading = styled.h2 `
|
|
37
|
+
font-family: ${({ theme }) => theme.valueBold};
|
|
38
|
+
color: ${({ theme }) => theme.blackLight};
|
|
39
|
+
margin-top: 0;
|
|
40
|
+
${responsiveFont}
|
|
41
|
+
`;
|
|
42
|
+
const Text = styled.p `
|
|
43
|
+
color: ${({ theme, color }) => (color ? color : theme.blackLight)};
|
|
44
|
+
font-family: ${({ theme, bold }) => bold ? theme.valueBold : theme.valueRegular};
|
|
45
|
+
|
|
46
|
+
${responsiveFont}
|
|
47
|
+
&:last-child {
|
|
48
|
+
margin-bottom: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&:first-of-type {
|
|
52
|
+
margin-top: 0;
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { EntryList, EntryListItem, EntryListHeading, EntryListText, } from "./entry-list";
|
|
3
|
+
import { Decorator } from "../../../components/decorator/decorator";
|
|
4
|
+
const meta = {
|
|
5
|
+
title: "Modules/EntryList",
|
|
6
|
+
component: EntryList,
|
|
7
|
+
decorators: [
|
|
8
|
+
(Story) => (_jsx(Decorator, { maxWidth: "800px", children: _jsx(Story, {}) })),
|
|
9
|
+
],
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
export const Default = {
|
|
13
|
+
render: () => (_jsxs(EntryList, { children: [_jsxs(EntryListItem, { children: [_jsx(EntryListText, { fontSizeDesktop: 14, color: "#545454", children: "2025-05-11" }), _jsx(EntryListHeading, { children: "In volutpat est eu dolor efficitur" }), _jsxs(EntryListText, { children: [_jsxs(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, children: ["Nulla facilisi:", " "] }), _jsx(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, bold: true, children: "volutpat, XiO, MD, Condimentum Ultricies" })] }), _jsx(EntryListText, { children: "Aliquam erat volutpat. Nulla facilisi. Vestibulum eget ullamcorper elit. Praesent mattis arcu ante, in gravida eros pharetra sit amet." }), _jsx(EntryListText, { children: "Praesent mattis arcu ante, in gravida eros pharetra sit amet. Etiam ac enim lorem. Proin euismod vulputate faucibus." })] }), _jsxs(EntryListItem, { children: [_jsx(EntryListHeading, { children: "In volutpat est eu dolor efficitur" }), _jsxs(EntryListText, { children: [_jsxs(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, children: ["Nulla facilisi:", " "] }), _jsx(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, bold: true, children: "volutpat, XiO, MD, Condimentum Ultricies" })] }), _jsx(EntryListText, { children: "Aliquam erat volutpat. Nulla facilisi. Vestibulum eget ullamcorper elit. Praesent mattis arcu ante, in gravida eros pharetra sit amet." }), _jsx(EntryListText, { children: "Praesent mattis arcu ante, in gravida eros pharetra sit amet. Etiam ac enim lorem. Proin euismod vulputate faucibus." })] }), _jsxs(EntryListItem, { children: [_jsx(EntryListHeading, { children: "In volutpat est eu dolor efficitur" }), _jsxs(EntryListText, { children: [_jsxs(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, children: ["Nulla facilisi:", " "] }), _jsx(EntryListText, { as: "span", fontSizeMobile: 12, fontSizeDesktop: 14, bold: true, children: "volutpat, XiO, MD, Condimentum Ultricies" })] }), _jsx(EntryListText, { children: "Aliquam erat volutpat. Nulla facilisi. Vestibulum eget ullamcorper elit. Praesent mattis arcu ante, in gravida eros pharetra sit amet." }), _jsx(EntryListText, { children: "Praesent mattis arcu ante, in gravida eros pharetra sit amet. Etiam ac enim lorem. Proin euismod vulputate faucibus." })] })] })),
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type PaginationProps = {
|
|
2
|
+
numberOfPages: number;
|
|
3
|
+
currentPage: number;
|
|
4
|
+
onChange?: (page: number) => void;
|
|
5
|
+
isMobile?: boolean;
|
|
6
|
+
indexStartsAt?: number;
|
|
7
|
+
localeText: {
|
|
8
|
+
prePage: string;
|
|
9
|
+
nextPage: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const Pagination: ({ numberOfPages, currentPage, isMobile, localeText, onChange, indexStartsAt, }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styled, { css } from "styled-components";
|
|
3
|
+
import { rem } from "../../../styles/units";
|
|
4
|
+
import { ChevronLeftIcon } from "../../../components/icons/chevron-left-icon/chevron-left-icon";
|
|
5
|
+
import { ChevronRightIcon } from "../../../components/icons/chevron-right-icon/chevron-right-icon";
|
|
6
|
+
import { COLORS } from "../../../styles/theme";
|
|
7
|
+
export const Pagination = ({ numberOfPages, currentPage, isMobile = true, localeText = {
|
|
8
|
+
prePage: "",
|
|
9
|
+
nextPage: "",
|
|
10
|
+
}, onChange = () => { }, indexStartsAt = 0, }) => {
|
|
11
|
+
const pageIndex = currentPage - indexStartsAt;
|
|
12
|
+
const { prePage, nextPage } = localeText;
|
|
13
|
+
const isFirstPage = pageIndex === 0;
|
|
14
|
+
const isLastPage = pageIndex === numberOfPages - 1;
|
|
15
|
+
const goToPage = (e, pageIndex) => {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
const adjustedIndex = pageIndex + indexStartsAt;
|
|
18
|
+
onChange(adjustedIndex);
|
|
19
|
+
};
|
|
20
|
+
const getVisiblePages = (currentPage, total, isMobile) => {
|
|
21
|
+
if (total <= 7)
|
|
22
|
+
return Array.from({ length: total }, (_, i) => i);
|
|
23
|
+
if (isMobile) {
|
|
24
|
+
if (currentPage <= 1)
|
|
25
|
+
return [0, 1, 2, "...", total - 1];
|
|
26
|
+
if (currentPage >= total - 2)
|
|
27
|
+
return [0, "...", total - 3, total - 2, total - 1];
|
|
28
|
+
return [0, "...", currentPage, "...", total - 1];
|
|
29
|
+
}
|
|
30
|
+
if (currentPage <= 2)
|
|
31
|
+
return [0, 1, 2, 3, 4, "...", total - 1];
|
|
32
|
+
if (currentPage >= total - 3)
|
|
33
|
+
return [0, "...", total - 5, total - 4, total - 3, total - 2, total - 1];
|
|
34
|
+
return [
|
|
35
|
+
0,
|
|
36
|
+
"...",
|
|
37
|
+
currentPage - 1,
|
|
38
|
+
currentPage,
|
|
39
|
+
currentPage + 1,
|
|
40
|
+
"...",
|
|
41
|
+
total - 1,
|
|
42
|
+
];
|
|
43
|
+
};
|
|
44
|
+
return (numberOfPages > 0 && (_jsxs(StyledList, { children: [_jsx(StyleListItem, { children: _jsx(PaginationArrow, { isDisabled: isFirstPage, "aria-label": prePage, onClick: (e) => goToPage(e, pageIndex - 1), children: _jsx(ChevronLeftIcon, { width: 12, height: 12, color: isFirstPage ? COLORS.grayDark : COLORS.blackLight }) }) }), getVisiblePages(pageIndex, numberOfPages, isMobile).map((page, index) => (_jsx(StyleListItem, { children: page === "..." ? (_jsx(Ellipsis, { children: "\u2026" })) : (_jsx(PaginationItem, { isSelected: pageIndex === page, onClick: (e) => goToPage(e, page), children: page + 1 })) }, index))), _jsx(StyleListItem, { children: _jsx(PaginationArrow, { isDisabled: isLastPage, "aria-label": nextPage, onClick: (e) => goToPage(e, pageIndex + 1), children: _jsx(ChevronRightIcon, { width: 12, height: 12, color: isLastPage ? COLORS.grayDark : COLORS.blackLight }) }) })] })));
|
|
45
|
+
};
|
|
46
|
+
const StyledList = styled.ul `
|
|
47
|
+
margin: 0 auto;
|
|
48
|
+
margin-top: ${rem(32)};
|
|
49
|
+
display: flex;
|
|
50
|
+
padding: 0;
|
|
51
|
+
flex-wrap: wrap;
|
|
52
|
+
list-style: none;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
`;
|
|
56
|
+
const StyleListItem = styled.li `
|
|
57
|
+
padding: ${rem(4)};
|
|
58
|
+
`;
|
|
59
|
+
const PaginationItem = styled.button `
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
width: ${rem(40)};
|
|
62
|
+
height: ${rem(40)};
|
|
63
|
+
padding: 0;
|
|
64
|
+
margin: 0;
|
|
65
|
+
display: flex;
|
|
66
|
+
justify-content: center;
|
|
67
|
+
align-items: center;
|
|
68
|
+
border-radius: ${rem(5)};
|
|
69
|
+
background-color: transparent;
|
|
70
|
+
text-decoration: none;
|
|
71
|
+
|
|
72
|
+
${({ theme }) => css `
|
|
73
|
+
color: ${theme.blackLight};
|
|
74
|
+
font-family: ${theme.valueBold};
|
|
75
|
+
font-weight: 400;
|
|
76
|
+
line-height: ${rem(22)};
|
|
77
|
+
border: ${rem(1)} solid ${theme.blackLight};
|
|
78
|
+
`};
|
|
79
|
+
|
|
80
|
+
${({ theme, isSelected }) => isSelected &&
|
|
81
|
+
css `
|
|
82
|
+
background-color: ${theme.blackLight};
|
|
83
|
+
border-color: transparent;
|
|
84
|
+
color: ${theme.white};
|
|
85
|
+
`};
|
|
86
|
+
`;
|
|
87
|
+
const PaginationArrow = styled.button `
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
justify-content: center;
|
|
92
|
+
width: ${rem(40)};
|
|
93
|
+
height: ${rem(40)};
|
|
94
|
+
border: ${({ theme }) => `${rem(1)} solid ${theme.blackLight}`};
|
|
95
|
+
border-radius: ${rem(5)};
|
|
96
|
+
background-color: ${({ theme }) => theme.white};
|
|
97
|
+
|
|
98
|
+
${({ isDisabled }) => isDisabled &&
|
|
99
|
+
css `
|
|
100
|
+
pointer-events: none;
|
|
101
|
+
cursor: default;
|
|
102
|
+
border: ${({ theme }) => `${rem(1)} solid ${theme.grayDark}`};
|
|
103
|
+
`}
|
|
104
|
+
`;
|
|
105
|
+
const Ellipsis = styled.span `
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
width: ${rem(40)};
|
|
110
|
+
height: ${rem(40)};
|
|
111
|
+
border: ${({ theme }) => `${rem(1)} solid ${theme.blackLight}`};
|
|
112
|
+
border-radius: ${rem(5)};
|
|
113
|
+
color: ${({ theme }) => theme.blackLight};
|
|
114
|
+
`;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Pagination } from "./pagination";
|
|
4
|
+
import { Decorator } from "../../../components/decorator/decorator";
|
|
5
|
+
const meta = {
|
|
6
|
+
title: "Navigation/Pagination",
|
|
7
|
+
component: Pagination,
|
|
8
|
+
decorators: [
|
|
9
|
+
(Story) => (_jsx(Decorator, { children: _jsx(Story, {}) })),
|
|
10
|
+
],
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
export const Default = {
|
|
14
|
+
render: () => {
|
|
15
|
+
const [page, setPage] = useState(0);
|
|
16
|
+
return (_jsx(Pagination, { currentPage: page, numberOfPages: 27, indexStartsAt: 0, onChange: (newPage) => setPage(newPage), localeText: {
|
|
17
|
+
prePage: "Previous page",
|
|
18
|
+
nextPage: "Next page",
|
|
19
|
+
} }));
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const withDefaultTheme: <T extends object>(Component: React.ComponentType<T>) => React.FC<T>;
|
|
@@ -2,11 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useContext } from "react";
|
|
3
3
|
import { THEME_SETTINGS } from "../styles/theme";
|
|
4
4
|
import { ThemeContext, ThemeProvider } from "styled-components";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return _jsx(Component, { ...props });
|
|
10
|
-
return (_jsx(ThemeProvider, { theme: THEME_SETTINGS, children: _jsx(Component, { ...props }) }));
|
|
11
|
-
};
|
|
12
|
-
}
|
|
5
|
+
export const withDefaultTheme = (Component) => (props) => {
|
|
6
|
+
const theme = useContext(ThemeContext);
|
|
7
|
+
return theme ? (_jsx(Component, { ...props })) : (_jsx(ThemeProvider, { theme: THEME_SETTINGS, children: _jsx(Component, { ...props }) }));
|
|
8
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,41 @@
|
|
|
1
|
-
import { ButtonProps } from "./components/buttons/button/button";
|
|
2
|
-
|
|
1
|
+
import { type ButtonProps } from "./components/buttons/button/button";
|
|
2
|
+
import { type TextButtonProps } from "./components/buttons/text-button/text-button";
|
|
3
|
+
import { type LoadingButtonProps } from "./components/buttons/loading-button/loading-button";
|
|
4
|
+
import { type AlertProps } from "./components/feedback/alert/alert";
|
|
5
|
+
import { type LoadingSpinnerProps } from "./components/icons/loading-spinner/loading-spinner";
|
|
6
|
+
import { type FormErrorProps } from "./components/inputs/form-error/form-error";
|
|
7
|
+
import { type FormLabelProps } from "./components/inputs/form-label/form-label";
|
|
8
|
+
import { type TextFieldProps } from "./components/inputs/text-field/text-field";
|
|
9
|
+
import { type EmailSignupFormProps } from "./components/modules/email-signup-form/email-signup-form";
|
|
10
|
+
import { type ImageProps } from "./components/layout/image/image";
|
|
11
|
+
import { type ContainerProps } from "./components/layout/container/container";
|
|
12
|
+
import { type EntryListProps, type EntryListItemProps, type EntryListHeadingProps, type EntryListTextProps } from "./components/modules/entry-list/entry-list";
|
|
13
|
+
import { type DropdownProps } from "./components/inputs/dropdown/dropdown";
|
|
14
|
+
import { type PaginationProps } from "./components/navigation/pagination/pagination";
|
|
15
|
+
import { type AccordionItemProps } from "./components/layout/accordion/accordion";
|
|
16
|
+
export type { ButtonProps, LoadingButtonProps, TextButtonProps, EmailSignupFormProps, ImageProps, ContainerProps, AlertProps, EntryListHeadingProps, EntryListTextProps, PaginationProps, };
|
|
17
|
+
export { CloseIcon } from "./components/icons/close-icon/close-icon";
|
|
18
|
+
export { ExclamationMarkIcon } from "./components/icons/exclamation-mark-icon/exclamation-mark-icon";
|
|
19
|
+
export { WarningIcon } from "./components/icons/warning-icon/warning-icon";
|
|
20
|
+
export { SearchIcon } from "./components/icons/search-icon/search-icon";
|
|
21
|
+
export declare const LoadingSpinner: import("react").FC<LoadingSpinnerProps>;
|
|
3
22
|
export declare const Button: import("react").FC<ButtonProps>;
|
|
23
|
+
export declare const LoadingButton: import("react").FC<LoadingButtonProps>;
|
|
24
|
+
export declare const TextButton: import("react").FC<TextButtonProps>;
|
|
25
|
+
export declare const Alert: import("react").FC<AlertProps>;
|
|
26
|
+
export declare const FormError: import("react").FC<FormErrorProps>;
|
|
27
|
+
export declare const FormLabel: import("react").FC<FormLabelProps>;
|
|
28
|
+
export declare const TextField: import("react").FC<TextFieldProps>;
|
|
29
|
+
export declare const EmailSignupForm: import("react").FC<EmailSignupFormProps>;
|
|
30
|
+
export declare const Image: import("react").FC<ImageProps>;
|
|
31
|
+
export declare const Container: import("react").FC<ContainerProps>;
|
|
32
|
+
export declare const EntryList: import("react").FC<EntryListProps>;
|
|
33
|
+
export declare const EntryListItem: import("react").FC<EntryListItemProps>;
|
|
34
|
+
export declare const EntryListText: import("react").FC<EntryListTextProps>;
|
|
35
|
+
export declare const EntryListHeading: import("react").FC<EntryListHeadingProps>;
|
|
36
|
+
export declare const Dropdown: import("react").FC<DropdownProps>;
|
|
37
|
+
export declare const Pagination: import("react").FC<PaginationProps>;
|
|
38
|
+
export declare const Accordion: import("react").FC<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
}>>;
|
|
41
|
+
export declare const AccordionItem: import("react").FC<AccordionItemProps>;
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
1
|
import { withDefaultTheme } from "./hoc/withDefaultTheme";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
// Buttons
|
|
3
|
+
import { Button as ButtonComponent, } from "./components/buttons/button/button";
|
|
4
|
+
import { TextButton as TextButtonComponent, } from "./components/buttons/text-button/text-button";
|
|
5
|
+
import { LoadingButton as LoadingButtonComponent, } from "./components/buttons/loading-button/loading-button";
|
|
6
|
+
// Components
|
|
7
|
+
import { Alert as AlertComponent, } from "./components/feedback/alert/alert";
|
|
8
|
+
import { LoadingSpinner as LoadingSpinnerComponent, } from "./components/icons/loading-spinner/loading-spinner";
|
|
9
|
+
import { FormError as FormErrorComponent, } from "./components/inputs/form-error/form-error";
|
|
10
|
+
import { FormLabel as FormLabelComponent, } from "./components/inputs/form-label/form-label";
|
|
11
|
+
import { TextField as TextFieldComponent, } from "./components/inputs/text-field/text-field";
|
|
12
|
+
import { EmailSignupForm as EmailSignupFormComponent, } from "./components/modules/email-signup-form/email-signup-form";
|
|
13
|
+
import { Image as ImageComponent, } from "./components/layout/image/image";
|
|
14
|
+
import { Container as ContainerComponent, } from "./components/layout/container/container";
|
|
15
|
+
import { EntryList as EntryListComponent, EntryListItem as EntryListItemComponent, EntryListText as EntryListTextComponent, EntryListHeading as EntryListHeadingComoponent, } from "./components/modules/entry-list/entry-list";
|
|
16
|
+
import { Dropdown as DropdownComponent, } from "./components/inputs/dropdown/dropdown";
|
|
17
|
+
import { Pagination as PaginationComponent, } from "./components/navigation/pagination/pagination";
|
|
18
|
+
import { Accordion as AccordionComponent, AccordionItem as AccordionItemComponent, } from "./components/layout/accordion/accordion";
|
|
19
|
+
// Icons
|
|
20
|
+
export { CloseIcon } from "./components/icons/close-icon/close-icon";
|
|
21
|
+
export { ExclamationMarkIcon } from "./components/icons/exclamation-mark-icon/exclamation-mark-icon";
|
|
22
|
+
export { WarningIcon } from "./components/icons/warning-icon/warning-icon";
|
|
23
|
+
export { SearchIcon } from "./components/icons/search-icon/search-icon";
|
|
24
|
+
export const LoadingSpinner = withDefaultTheme(LoadingSpinnerComponent);
|
|
25
|
+
// Components
|
|
26
|
+
export const Button = withDefaultTheme(ButtonComponent);
|
|
27
|
+
export const LoadingButton = withDefaultTheme(LoadingButtonComponent);
|
|
28
|
+
export const TextButton = withDefaultTheme(TextButtonComponent);
|
|
29
|
+
export const Alert = withDefaultTheme(AlertComponent);
|
|
30
|
+
export const FormError = withDefaultTheme(FormErrorComponent);
|
|
31
|
+
export const FormLabel = withDefaultTheme(FormLabelComponent);
|
|
32
|
+
export const TextField = withDefaultTheme(TextFieldComponent);
|
|
33
|
+
export const EmailSignupForm = withDefaultTheme(EmailSignupFormComponent);
|
|
34
|
+
export const Image = withDefaultTheme(ImageComponent);
|
|
35
|
+
export const Container = withDefaultTheme(ContainerComponent);
|
|
36
|
+
export const EntryList = withDefaultTheme(EntryListComponent);
|
|
37
|
+
export const EntryListItem = withDefaultTheme(EntryListItemComponent);
|
|
38
|
+
export const EntryListText = withDefaultTheme(EntryListTextComponent);
|
|
39
|
+
export const EntryListHeading = withDefaultTheme(EntryListHeadingComoponent);
|
|
40
|
+
export const Dropdown = withDefaultTheme(DropdownComponent);
|
|
41
|
+
export const Pagination = withDefaultTheme(PaginationComponent);
|
|
42
|
+
export const Accordion = withDefaultTheme(AccordionComponent);
|
|
43
|
+
export const AccordionItem = withDefaultTheme(AccordionItemComponent);
|
package/dist/styles/mixins.js
CHANGED
|
@@ -94,8 +94,8 @@ export const siteWidthRow = () => css `
|
|
|
94
94
|
${media.M `
|
|
95
95
|
margin-bottom: ${SPACING.spacingXL};
|
|
96
96
|
margin-top: ${SPACING.spacingXL};
|
|
97
|
-
margin-left: ${rem(
|
|
98
|
-
margin-right: ${rem(
|
|
97
|
+
margin-left: ${rem(SPACING.blockSpacingM)};
|
|
98
|
+
margin-right: ${rem(SPACING.blockSpacingM)};
|
|
99
99
|
`}
|
|
100
100
|
|
|
101
101
|
${media.L `
|
|
@@ -103,6 +103,8 @@ export const siteWidthRow = () => css `
|
|
|
103
103
|
margin-right: auto;
|
|
104
104
|
margin-bottom: ${SPACING.spacingXXL};
|
|
105
105
|
margin-left: auto;
|
|
106
|
+
padding-left: ${rem(SPACING.blockSpacingM)};
|
|
107
|
+
padding-right: ${rem(SPACING.blockSpacingM)};
|
|
106
108
|
`}
|
|
107
109
|
`;
|
|
108
110
|
export const siteWidthRowXL = () => css `
|
|
@@ -120,8 +122,8 @@ export const siteWidthRowXL = () => css `
|
|
|
120
122
|
${media.M `
|
|
121
123
|
margin-bottom: ${SPACING.spacingXL};
|
|
122
124
|
margin-top: ${SPACING.spacingXL};
|
|
123
|
-
margin-left: ${rem(
|
|
124
|
-
margin-right: ${rem(
|
|
125
|
+
margin-left: ${rem(SPACING.blockSpacingM)};
|
|
126
|
+
margin-right: ${rem(SPACING.blockSpacingM)};
|
|
125
127
|
`}
|
|
126
128
|
|
|
127
129
|
${media.XL `
|
|
@@ -129,6 +131,8 @@ export const siteWidthRowXL = () => css `
|
|
|
129
131
|
margin-right: auto;
|
|
130
132
|
margin-bottom: ${SPACING.spacingXXL};
|
|
131
133
|
margin-left: auto;
|
|
134
|
+
padding-left: ${rem(SPACING.blockSpacingM)};
|
|
135
|
+
padding-right: ${rem(SPACING.blockSpacingM)};
|
|
132
136
|
`}
|
|
133
137
|
`;
|
|
134
138
|
export const fullWidthRow = () => css `
|
package/dist/styles/theme.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ export declare const BREAKPOINT_VALUES: {
|
|
|
7
7
|
XL: number;
|
|
8
8
|
XXL: number;
|
|
9
9
|
};
|
|
10
|
+
export declare const SPACING: {
|
|
11
|
+
spacingXXS: string;
|
|
12
|
+
spacingXS: string;
|
|
13
|
+
spacingS: string;
|
|
14
|
+
spacingM: string;
|
|
15
|
+
spacingL: string;
|
|
16
|
+
spacingXL: string;
|
|
17
|
+
spacingXXL: string;
|
|
18
|
+
blockSpacingM: number;
|
|
19
|
+
};
|
|
10
20
|
export declare const VARIABLES: {
|
|
11
21
|
siteWidthS: string;
|
|
12
22
|
siteWidth: string;
|
|
@@ -20,15 +30,6 @@ export declare const THEME_SPACING: {
|
|
|
20
30
|
lg: string;
|
|
21
31
|
xl: string;
|
|
22
32
|
};
|
|
23
|
-
export declare const SPACING: {
|
|
24
|
-
spacingXXS: string;
|
|
25
|
-
spacingXS: string;
|
|
26
|
-
spacingS: string;
|
|
27
|
-
spacingM: string;
|
|
28
|
-
spacingL: string;
|
|
29
|
-
spacingXL: string;
|
|
30
|
-
spacingXXL: string;
|
|
31
|
-
};
|
|
32
33
|
export declare const FONTS: {
|
|
33
34
|
valueRegular: string;
|
|
34
35
|
valueMedium: string;
|
|
@@ -81,6 +82,7 @@ export declare const THEME_SETTINGS: {
|
|
|
81
82
|
spacingL: string;
|
|
82
83
|
spacingXL: string;
|
|
83
84
|
spacingXXL: string;
|
|
85
|
+
blockSpacingM: number;
|
|
84
86
|
skyBlue: string;
|
|
85
87
|
black: string;
|
|
86
88
|
blackLight: string;
|
package/dist/styles/theme.js
CHANGED
|
@@ -8,10 +8,20 @@ export const BREAKPOINT_VALUES = {
|
|
|
8
8
|
XL: 1200,
|
|
9
9
|
XXL: 1440,
|
|
10
10
|
};
|
|
11
|
+
export const SPACING = {
|
|
12
|
+
spacingXXS: rem(6),
|
|
13
|
+
spacingXS: rem(8),
|
|
14
|
+
spacingS: rem(12),
|
|
15
|
+
spacingM: rem(16),
|
|
16
|
+
spacingL: rem(32),
|
|
17
|
+
spacingXL: rem(40),
|
|
18
|
+
spacingXXL: rem(48),
|
|
19
|
+
blockSpacingM: 24,
|
|
20
|
+
};
|
|
11
21
|
export const VARIABLES = {
|
|
12
22
|
siteWidthS: rem(BREAKPOINT_VALUES.S_ALT),
|
|
13
|
-
siteWidth: rem(BREAKPOINT_VALUES.L),
|
|
14
|
-
siteWidthXL: rem(BREAKPOINT_VALUES.XL),
|
|
23
|
+
siteWidth: rem(BREAKPOINT_VALUES.L + SPACING.blockSpacingM * 2),
|
|
24
|
+
siteWidthXL: rem(BREAKPOINT_VALUES.XL + SPACING.blockSpacingM * 2),
|
|
15
25
|
siteMaxWidth: rem(1920),
|
|
16
26
|
mobileNavHeight: 56,
|
|
17
27
|
};
|
|
@@ -21,15 +31,6 @@ export const THEME_SPACING = {
|
|
|
21
31
|
lg: rem(32),
|
|
22
32
|
xl: rem(40),
|
|
23
33
|
};
|
|
24
|
-
export const SPACING = {
|
|
25
|
-
spacingXXS: rem(6),
|
|
26
|
-
spacingXS: rem(8),
|
|
27
|
-
spacingS: rem(12),
|
|
28
|
-
spacingM: rem(16),
|
|
29
|
-
spacingL: rem(32),
|
|
30
|
-
spacingXL: rem(40),
|
|
31
|
-
spacingXXL: rem(48),
|
|
32
|
-
};
|
|
33
34
|
export const FONTS = {
|
|
34
35
|
valueRegular: '"ValueRegular", Arial, sans-serif',
|
|
35
36
|
valueMedium: '"ValueMedium", Arial, sans-serif',
|
package/package.json
CHANGED
|
@@ -1,67 +1,78 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@hlf-fe/pulmo-ui",
|
|
3
|
-
"private": false,
|
|
4
|
-
"version": "1.0
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"module": "dist/index.js",
|
|
8
|
-
"types": "dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist"
|
|
11
|
-
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"dev": "npm-run-all --parallel storybook watch",
|
|
14
|
-
"build": "tsc -
|
|
15
|
-
"watch": "tsc -
|
|
16
|
-
"lint": "eslint .",
|
|
17
|
-
"preview": "vite preview",
|
|
18
|
-
"storybook": "storybook dev -p 6006",
|
|
19
|
-
"build-storybook": "storybook build"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"react": "^18.2.0",
|
|
31
|
-
"react-dom": "^18.2.0",
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"@
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@hlf-fe/pulmo-ui",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"dev": "npm-run-all --parallel storybook watch",
|
|
14
|
+
"build": "tsc -p tsconfig.app.json && tsc-alias -p tsconfig.app.json",
|
|
15
|
+
"watch": "nodemon --watch src --ext ts,tsx --exec \"tsc -p tsconfig.app.json && tsc-alias -p tsconfig.app.json\"",
|
|
16
|
+
"lint": "eslint .",
|
|
17
|
+
"preview": "vite preview",
|
|
18
|
+
"storybook": "storybook dev -p 6006",
|
|
19
|
+
"build-storybook": "storybook build",
|
|
20
|
+
"release:npm": "npm run build && npm publish --access public"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@hookform/resolvers": "^5.0.1",
|
|
24
|
+
"gatsby": "^5.14.3",
|
|
25
|
+
"gatsby-plugin-image": "^3.14.0",
|
|
26
|
+
"i": "^0.3.7",
|
|
27
|
+
"nodemon": "^3.1.10",
|
|
28
|
+
"npm": "^11.3.0",
|
|
29
|
+
"npm-run-all": "^4.1.5",
|
|
30
|
+
"react": "^18.2.0",
|
|
31
|
+
"react-dom": "^18.2.0",
|
|
32
|
+
"react-hook-form": "^7.56.3",
|
|
33
|
+
"styled-components": "^6.1.0",
|
|
34
|
+
"vite-tsconfig-paths": "^5.1.4",
|
|
35
|
+
"yup": "^1.6.1"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"gatsby": "^5.14.3",
|
|
39
|
+
"react": "^18.2.0",
|
|
40
|
+
"react-dom": "^18.2.0",
|
|
41
|
+
"styled-components": "^6.1.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@chromatic-com/storybook": "^3.2.6",
|
|
45
|
+
"@eslint/js": "^9.25.0",
|
|
46
|
+
"@storybook/addon-essentials": "^8.6.12",
|
|
47
|
+
"@storybook/addon-onboarding": "^8.6.12",
|
|
48
|
+
"@storybook/blocks": "^8.6.12",
|
|
49
|
+
"@storybook/experimental-addon-test": "^8.6.12",
|
|
50
|
+
"@storybook/react": "^8.6.12",
|
|
51
|
+
"@storybook/react-vite": "^8.6.12",
|
|
52
|
+
"@storybook/test": "^8.6.12",
|
|
53
|
+
"@types/node": "^22.15.17",
|
|
54
|
+
"@types/react": "^18.3.21",
|
|
55
|
+
"@types/react-dom": "^18.3.7",
|
|
56
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
57
|
+
"@vitest/browser": "^3.1.3",
|
|
58
|
+
"@vitest/coverage-v8": "^3.1.3",
|
|
59
|
+
"concurrently": "^9.1.2",
|
|
60
|
+
"eslint": "^9.25.0",
|
|
61
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
62
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
63
|
+
"eslint-plugin-storybook": "^0.12.0",
|
|
64
|
+
"globals": "^16.0.0",
|
|
65
|
+
"playwright": "^1.52.0",
|
|
66
|
+
"storybook": "^8.6.12",
|
|
67
|
+
"tsc-alias": "^1.8.16",
|
|
68
|
+
"typescript": "~5.8.3",
|
|
69
|
+
"typescript-eslint": "^8.30.1",
|
|
70
|
+
"vite": "^6.3.5",
|
|
71
|
+
"vitest": "^3.1.3"
|
|
72
|
+
},
|
|
73
|
+
"eslintConfig": {
|
|
74
|
+
"extends": [
|
|
75
|
+
"plugin:storybook/recommended"
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}
|
package/dist/App.d.ts
DELETED