@amboss/design-system 1.5.19 → 1.5.20
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/build/build-tokens/_breakpoints.json.js +23 -0
- package/build/build-tokens/_breakpoints.json.js.map +1 -0
- package/build/build-tokens/_icon_sizes_map.json.js +8 -0
- package/build/build-tokens/_icon_sizes_map.json.js.map +1 -0
- package/build/build-tokens/assets/icons.json.js +199 -0
- package/build/build-tokens/assets/icons.json.js.map +1 -0
- package/build/build-tokens/assets/icons16.json.js +214 -0
- package/build/build-tokens/assets/icons16.json.js.map +1 -0
- package/build/build-tokens/assets/logo.json +1 -1
- package/build/build-tokens/assets/logo.json.js +6 -0
- package/build/build-tokens/assets/logo.json.js.map +1 -0
- package/build/build-tokens/visualConfig.js +1417 -0
- package/build/build-tokens/visualConfig.js.map +1 -0
- package/build/node_modules/tslib/tslib.es6.js +29 -0
- package/build/node_modules/tslib/tslib.es6.js.map +1 -0
- package/build/src/components/Badge/Badge.js +36 -0
- package/build/src/components/Badge/Badge.js.map +1 -0
- package/build/src/components/Box/Box.js +30 -0
- package/build/src/components/Box/Box.js.map +1 -0
- package/build/src/components/Button/Button.js +116 -0
- package/build/src/components/Button/Button.js.map +1 -0
- package/build/src/components/Card/Card.js +30 -0
- package/build/src/components/Card/Card.js.map +1 -0
- package/build/src/components/Card/CardBox.js +9 -0
- package/build/src/components/Card/CardBox.js.map +1 -0
- package/build/src/components/Card/CardHeader/CardHeader.js +30 -0
- package/build/src/components/Card/CardHeader/CardHeader.js.map +1 -0
- package/build/src/components/Collapsible/Collapsible.js +44 -0
- package/build/src/components/Collapsible/Collapsible.js.map +1 -0
- package/build/src/components/Column/Columns.js +78 -0
- package/build/src/components/Column/Columns.js.map +1 -0
- package/build/src/components/Container/Container.js +30 -0
- package/build/src/components/Container/Container.js.map +1 -0
- package/build/src/components/Divider/Divider.js +33 -0
- package/build/src/components/Divider/Divider.js.map +1 -0
- package/build/src/components/DropdownMenu/DropdownMenu.js +128 -0
- package/build/src/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/build/src/components/DropdownMenu/MenuItem.js +37 -0
- package/build/src/components/DropdownMenu/MenuItem.js.map +1 -0
- package/build/src/components/Form/Checkbox/Checkbox.js +86 -0
- package/build/src/components/Form/Checkbox/Checkbox.js.map +1 -0
- package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js +10 -0
- package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -0
- package/build/src/components/Form/FormField/FormField.js +26 -0
- package/build/src/components/Form/FormField/FormField.js.map +1 -0
- package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js +22 -0
- package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -0
- package/build/src/components/Form/FormLabelText/FormLabelText.js +22 -0
- package/build/src/components/Form/FormLabelText/FormLabelText.js.map +1 -0
- package/build/src/components/Form/Input/Input.js +81 -0
- package/build/src/components/Form/Input/Input.js.map +1 -0
- package/build/src/components/Form/PasswordInput/PasswordInput.js +126 -0
- package/build/src/components/Form/PasswordInput/PasswordInput.js.map +1 -0
- package/build/src/components/Form/Radio/Radio.js +82 -0
- package/build/src/components/Form/Radio/Radio.js.map +1 -0
- package/build/src/components/Form/RadioButton/RadioButton.js +87 -0
- package/build/src/components/Form/RadioButton/RadioButton.js.map +1 -0
- package/build/src/components/Form/Select/Select.js +162 -0
- package/build/src/components/Form/Select/Select.js.map +1 -0
- package/build/src/components/Form/Textarea/Textarea.js +39 -0
- package/build/src/components/Form/Textarea/Textarea.js.map +1 -0
- package/build/src/components/Form/Toggle/Toggle.js +86 -0
- package/build/src/components/Form/Toggle/Toggle.js.map +1 -0
- package/build/src/components/Form/ToggleButton/ToggleButton.js +80 -0
- package/build/src/components/Form/ToggleButton/ToggleButton.js.map +1 -0
- package/build/src/components/Icon/Icon.js +40 -0
- package/build/src/components/Icon/Icon.js.map +1 -0
- package/build/src/components/Inline/Inline.js +54 -0
- package/build/src/components/Inline/Inline.js.map +1 -0
- package/build/src/components/Link/Link.js +47 -0
- package/build/src/components/Link/Link.js.map +1 -0
- package/build/src/components/Logo/Logo.js +15 -0
- package/build/src/components/Logo/Logo.js.map +1 -0
- package/build/src/components/MediaItem/MediaItem.js +41 -0
- package/build/src/components/MediaItem/MediaItem.js.map +1 -0
- package/build/src/components/MediaViewerBar/MediaViewerBar.js +36 -0
- package/build/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -0
- package/build/src/components/Notification/Notification.js +46 -0
- package/build/src/components/Notification/Notification.js.map +1 -0
- package/build/src/components/PictogramButton/PictogramButton.js +56 -0
- package/build/src/components/PictogramButton/PictogramButton.js.map +1 -0
- package/build/src/components/ProgressBar/ProgressBar.js +15 -0
- package/build/src/components/ProgressBar/ProgressBar.js.map +1 -0
- package/build/src/components/RoundButton/RoundButton.js +53 -0
- package/build/src/components/RoundButton/RoundButton.js.map +1 -0
- package/build/src/components/SearchResult/SearchResult.js +81 -0
- package/build/src/components/SearchResult/SearchResult.js.map +1 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js +57 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +35 -0
- package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -0
- package/build/src/components/Stack/Stack.js +34 -0
- package/build/src/components/Stack/Stack.js.map +1 -0
- package/build/src/components/SubThemeProvider/SubThemeProvider.js +35 -0
- package/build/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -0
- package/build/src/components/Tabs/Tabs.js +53 -0
- package/build/src/components/Tabs/Tabs.js.map +1 -0
- package/build/src/components/Typography/Header/Header.js +17 -0
- package/build/src/components/Typography/Header/Header.js.map +1 -0
- package/build/src/components/Typography/StyledText/StyledText.js +74 -0
- package/build/src/components/Typography/StyledText/StyledText.js.map +1 -0
- package/build/src/components/Typography/Text/Text.js +26 -0
- package/build/src/components/Typography/Text/Text.js.map +1 -0
- package/build/src/components/Typography/TextClamped/TextClamped.js +25 -0
- package/build/src/components/Typography/TextClamped/TextClamped.js.map +1 -0
- package/build/src/components/VirtualScrollList/VirtualScrollList.js +62 -0
- package/build/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -0
- package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js +96 -0
- package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -0
- package/build/src/index.js +47 -0
- package/build/src/index.js.map +1 -0
- package/build/src/shared/informDeprecation.js +11 -0
- package/build/src/shared/informDeprecation.js.map +1 -0
- package/build/src/shared/mediaQueries.js +39 -0
- package/build/src/shared/mediaQueries.js.map +1 -0
- package/build/src/shared/useAutoPosition.js +52 -0
- package/build/src/shared/useAutoPosition.js.map +1 -0
- package/build/src/shared/useDocument.js +6 -0
- package/build/src/shared/useDocument.js.map +1 -0
- package/build/src/shared/useHover.js +27 -0
- package/build/src/shared/useHover.js.map +1 -0
- package/build/src/shared/useKeyboard.js +45 -0
- package/build/src/shared/useKeyboard.js.map +1 -0
- package/build/src/shared/useOutsideClick.js +31 -0
- package/build/src/shared/useOutsideClick.js.map +1 -0
- package/build/src/shared/useWindow.js +6 -0
- package/build/src/shared/useWindow.js.map +1 -0
- package/package.json +20 -6
- package/build/build-tokens/_subThemeType.d.ts +0 -1
- package/build/index.js +0 -3
- package/build/index.js.LICENSE.txt +0 -8
- package/build/index.js.map +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import { Columns, Column } from '../Column/Columns.js';
|
|
4
|
+
import { Icon } from '../Icon/Icon.js';
|
|
5
|
+
import { Inline } from '../Inline/Inline.js';
|
|
6
|
+
import { Stack } from '../Stack/Stack.js';
|
|
7
|
+
import { StyledText } from '../Typography/StyledText/StyledText.js';
|
|
8
|
+
import { Badge } from '../Badge/Badge.js';
|
|
9
|
+
import { TextClamped } from '../Typography/TextClamped/TextClamped.js';
|
|
10
|
+
|
|
11
|
+
const StyledResultContainer = styled.div(() => ({
|
|
12
|
+
position: "relative",
|
|
13
|
+
textDecoration: "none",
|
|
14
|
+
}));
|
|
15
|
+
const StyledLinkTitle = styled.div(({ theme }) => ({
|
|
16
|
+
color: theme.values.color.text.primary,
|
|
17
|
+
}));
|
|
18
|
+
const StyledLinkContainerOnHover = styled.div(() => ({
|
|
19
|
+
"> a": {
|
|
20
|
+
textDecoration: "none",
|
|
21
|
+
},
|
|
22
|
+
"&:hover": {
|
|
23
|
+
[`${StyledLinkTitle}`]: {
|
|
24
|
+
textDecoration: "underline",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}));
|
|
28
|
+
const SecondaryTargets = ({ data, renderItem, compact, }) => compact ? (React.createElement(Inline, { space: "l", vSpace: "xs" }, data && data.length && data.map((target) => renderItem(target)))) : (React.createElement(Columns, { gap: "m" }, data.map((target) => (React.createElement(Column, { "data-e2e-test-id": target["data-e2e-test-id"], size: [12, 6, 6], key: target.title }, renderItem(target))))));
|
|
29
|
+
const defaultProps = {
|
|
30
|
+
icon: null,
|
|
31
|
+
details: [],
|
|
32
|
+
body: null,
|
|
33
|
+
secondaryTargets: [],
|
|
34
|
+
isExternal: false,
|
|
35
|
+
labels: [],
|
|
36
|
+
"data-e2e-test-id": undefined,
|
|
37
|
+
};
|
|
38
|
+
function SearchResult({ title, subtitle, icon, details, body, secondaryTargets, link, labels, "data-e2e-test-id": dataE2eTestId, }) {
|
|
39
|
+
const containerRef = useRef(null);
|
|
40
|
+
const hasShallowSecondaryTargets = secondaryTargets &&
|
|
41
|
+
secondaryTargets.reduce((prev, curr) => (curr.body ? false : prev), true);
|
|
42
|
+
const MainLink = link;
|
|
43
|
+
return (React.createElement(StyledResultContainer, { ref: containerRef },
|
|
44
|
+
React.createElement(Columns, { gap: "m" },
|
|
45
|
+
icon && (React.createElement(Column, { size: "narrow" },
|
|
46
|
+
React.createElement(Icon, { name: icon, variant: "tertiary" }))),
|
|
47
|
+
React.createElement(Column, { size: "fill" },
|
|
48
|
+
React.createElement(Stack, { space: "s" },
|
|
49
|
+
React.createElement(StyledLinkContainerOnHover, { "data-e2e-test-id": dataE2eTestId },
|
|
50
|
+
React.createElement(MainLink, null,
|
|
51
|
+
React.createElement(Stack, { space: "xxs" },
|
|
52
|
+
React.createElement(Columns, { gap: "xxs" },
|
|
53
|
+
React.createElement(Column, { size: [12, 12, "fill"] },
|
|
54
|
+
React.createElement(StyledLinkTitle, null,
|
|
55
|
+
React.createElement(Stack, { space: "zero" },
|
|
56
|
+
React.createElement(TextClamped, { variant: "primary", weight: "bold", lines: 3, hyphens: "auto" },
|
|
57
|
+
React.createElement(StyledText, null, title)),
|
|
58
|
+
subtitle && (React.createElement(TextClamped, { variant: "primary", lines: 3, size: "s" },
|
|
59
|
+
React.createElement(StyledText, null, subtitle)))))),
|
|
60
|
+
React.createElement(Column, { size: "narrow" }, labels && !!labels.length && (React.createElement(Inline, { space: "xs" }, labels.map((label, i) => (
|
|
61
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
62
|
+
React.createElement(Badge, { text: label, key: `${i}${label}` }))))))),
|
|
63
|
+
details && !!details.length && (React.createElement(Stack, { space: "zero" }, details.slice(0, 3).map((detail) => (React.createElement(TextClamped, { variant: "secondary", size: "s", key: detail, lines: 3 },
|
|
64
|
+
React.createElement(StyledText, null, detail)))))),
|
|
65
|
+
body && (React.createElement(TextClamped, { size: "s", lines: 2 },
|
|
66
|
+
React.createElement(StyledText, null, body)))))),
|
|
67
|
+
secondaryTargets && !!secondaryTargets.length && (React.createElement(SecondaryTargets, { data: secondaryTargets, compact: hasShallowSecondaryTargets, renderItem: ({ title: secTitle, link: secLink, body: secBody, "data-e2e-test-id": secDataE2eTestId, }) => {
|
|
68
|
+
const SecLink = secLink;
|
|
69
|
+
return (React.createElement(StyledLinkContainerOnHover, { key: title, "data-e2e-test-id": secDataE2eTestId },
|
|
70
|
+
React.createElement(SecLink, null,
|
|
71
|
+
React.createElement(StyledLinkTitle, null,
|
|
72
|
+
React.createElement(TextClamped, { size: "s", variant: "primary", weight: "bold", lines: 3 },
|
|
73
|
+
React.createElement(StyledText, null, secTitle))),
|
|
74
|
+
secBody && (React.createElement(TextClamped, { size: "s", variant: "secondary", lines: 2 },
|
|
75
|
+
React.createElement(StyledText, null, secBody))))));
|
|
76
|
+
} })))))));
|
|
77
|
+
}
|
|
78
|
+
SearchResult.defaultProps = defaultProps;
|
|
79
|
+
|
|
80
|
+
export { SearchResult };
|
|
81
|
+
//# sourceMappingURL=SearchResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchResult.js","sources":["../../../../../src/components/SearchResult/SearchResult.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import { sanitizeInputValues, getPercentagesForVariants } from './SegmentedProgressBarUtil.js';
|
|
4
|
+
|
|
5
|
+
const defaultProps = {
|
|
6
|
+
"data-e2e-test-id": undefined,
|
|
7
|
+
weight: "fat",
|
|
8
|
+
squareCorners: false,
|
|
9
|
+
privateProps: {
|
|
10
|
+
monochrome: false,
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
const getBackgroundColor = (theme, style, monochrome) => {
|
|
14
|
+
switch (style) {
|
|
15
|
+
case "success":
|
|
16
|
+
return monochrome
|
|
17
|
+
? theme.values.color.segementedProgressBar.monochrome
|
|
18
|
+
: theme.values.color.segementedProgressBar.success;
|
|
19
|
+
case "warning":
|
|
20
|
+
return monochrome
|
|
21
|
+
? theme.values.color.segementedProgressBar.monochrome
|
|
22
|
+
: theme.values.color.segementedProgressBar.warning;
|
|
23
|
+
case "alert":
|
|
24
|
+
return monochrome
|
|
25
|
+
? theme.values.color.segementedProgressBar.monochrome
|
|
26
|
+
: theme.values.color.segementedProgressBar.alert;
|
|
27
|
+
case "inProgress":
|
|
28
|
+
default:
|
|
29
|
+
return theme.values.color.segementedProgressBar.inProgress;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const StyledSegmentedProgressBar = styled.div(({ theme, squareCorners, weight }) => ({
|
|
33
|
+
width: "100%",
|
|
34
|
+
display: "flex",
|
|
35
|
+
flexDirection: "row",
|
|
36
|
+
borderRadius: squareCorners
|
|
37
|
+
? 0
|
|
38
|
+
: theme.variables.size.borderRadius.progressBar,
|
|
39
|
+
overflow: "hidden",
|
|
40
|
+
height: weight === "thin"
|
|
41
|
+
? theme.variables.size.spacing.xxs
|
|
42
|
+
: theme.variables.size.spacing.xs,
|
|
43
|
+
}));
|
|
44
|
+
const StyledSegment = styled.div(({ theme, styleVariant, percentage, monochrome }) => ({
|
|
45
|
+
height: "100%",
|
|
46
|
+
backgroundColor: getBackgroundColor(theme, styleVariant, monochrome),
|
|
47
|
+
width: `${percentage}%`,
|
|
48
|
+
}));
|
|
49
|
+
function SegmentedProgressBar({ maxValue, values, weight, squareCorners, privateProps: { monochrome }, "data-e2e-test-id": dataE2eTestId, }) {
|
|
50
|
+
const { sanitizedMaxValue, sanitizedValues } = sanitizeInputValues(maxValue, values);
|
|
51
|
+
const percentages = getPercentagesForVariants(sanitizedMaxValue, sanitizedValues);
|
|
52
|
+
return (React.createElement(StyledSegmentedProgressBar, { "data-e2e-test-id": dataE2eTestId, squareCorners: squareCorners, weight: weight }, percentages.map(({ percentage, style }) => (React.createElement(StyledSegment, { key: style, "data-e2e-test-id": style, styleVariant: style, monochrome: monochrome, percentage: percentage })))));
|
|
53
|
+
}
|
|
54
|
+
SegmentedProgressBar.defaultProps = defaultProps;
|
|
55
|
+
|
|
56
|
+
export { SegmentedProgressBar };
|
|
57
|
+
//# sourceMappingURL=SegmentedProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedProgressBar.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBar.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const variants = ["success", "warning", "alert"];
|
|
2
|
+
const getTotalFilledValue = (values) => variants.reduce((currentValue, variant) => values[variant] && values[variant] > 0
|
|
3
|
+
? currentValue + values[variant]
|
|
4
|
+
: currentValue, 0);
|
|
5
|
+
const getPercentagesForVariants = (maxValue, values) => {
|
|
6
|
+
const result = variants.map((variant) => {
|
|
7
|
+
const percentage = (100 * values[variant]) / maxValue;
|
|
8
|
+
return percentage > 0
|
|
9
|
+
? { percentage, style: variant }
|
|
10
|
+
: null;
|
|
11
|
+
});
|
|
12
|
+
const usedPercentage = result.reduce((currentValue, item) => currentValue + (item ? item.percentage : 0), 0);
|
|
13
|
+
// add a last segment for the remaing percentage
|
|
14
|
+
if (usedPercentage < 100) {
|
|
15
|
+
result.push({
|
|
16
|
+
percentage: 100 - usedPercentage,
|
|
17
|
+
style: "inProgress",
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
// we need to filter out the null values.
|
|
21
|
+
return result.filter(Boolean);
|
|
22
|
+
};
|
|
23
|
+
const sanitizeInputValues = (maxValue, values) => {
|
|
24
|
+
const totalFilledValue = getTotalFilledValue(values);
|
|
25
|
+
const sanitizedMaxValue = maxValue > totalFilledValue ? maxValue : totalFilledValue;
|
|
26
|
+
const sanitizedValues = {};
|
|
27
|
+
variants.forEach((variant) => {
|
|
28
|
+
sanitizedValues[variant] =
|
|
29
|
+
values[variant] && values[variant] > 0 ? values[variant] : 0;
|
|
30
|
+
});
|
|
31
|
+
return { sanitizedMaxValue, sanitizedValues };
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { getPercentagesForVariants, sanitizeInputValues };
|
|
35
|
+
//# sourceMappingURL=SegmentedProgressBarUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SegmentedProgressBarUtil.js","sources":["../../../../../src/components/SegmentedProgressBar/SegmentedProgressBarUtil.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA,MAAM,QAAQ,GAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAElE,MAAM,mBAAmB,GAAG,CAAC,MAA6C,KACxE,QAAQ,CAAC,MAAM,CACb,CAAC,YAAY,EAAE,OAAO,KACpB,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACpC,MAAE,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;AAChC,MAAE,YAAY,EAClB,CAAC,CACF,CAAC;AAEJ,MAAM,yBAAyB,GAAG,CAChC,QAAgB,EAChB,MAA6C,KACI;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AACtC,QAAA,MAAM,UAAU,GAAW,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC;QAE9D,OAAO,UAAU,GAAG,CAAC;AACnB,cAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAuB,EAAE;cAC9C,IAAI,CAAC;AACX,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,CAAC,YAAY,EAAE,IAAI,KAAK,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EACnE,CAAC,CACF,CAAC;;IAGF,IAAI,cAAc,GAAG,GAAG,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,GAAG,GAAG,cAAc;AAChC,YAAA,KAAK,EAAE,YAA4B;AACpC,SAAA,CAAC,CAAC;AACJ,KAAA;;AAGD,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,EAAE;AAEF,MAAM,mBAAmB,GAAG,CAC1B,QAAgB,EAChB,MAA6C,KAI3C;AACF,IAAA,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACrD,IAAA,MAAM,iBAAiB,GACrB,QAAQ,GAAG,gBAAgB,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAE5D,MAAM,eAAe,GAA0C,EAAE,CAAC;AAClE,IAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;QAC3B,eAAe,CAAC,OAAO,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjE,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAChD;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import flattenChildren from 'react-keyed-flatten-children';
|
|
4
|
+
import { mq } from '../../shared/mediaQueries.js';
|
|
5
|
+
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
space: "xs",
|
|
8
|
+
"data-e2e-test-id": undefined,
|
|
9
|
+
};
|
|
10
|
+
const StackContainer = styled.div(({ alignItems }) => (Object.assign(Object.assign({}, mq({
|
|
11
|
+
alignItems: [
|
|
12
|
+
alignItems,
|
|
13
|
+
{
|
|
14
|
+
left: "flex-start",
|
|
15
|
+
right: "flex-end",
|
|
16
|
+
center: "center",
|
|
17
|
+
spaceBetween: "space-between",
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
})), { display: "flex", flexDirection: "column" })));
|
|
21
|
+
const StackItem = styled.div(({ theme, space }) => (Object.assign(Object.assign({}, mq({
|
|
22
|
+
marginTop: [space, theme.variables.size.spacing],
|
|
23
|
+
})), { "&:first-of-type": {
|
|
24
|
+
marginTop: 0,
|
|
25
|
+
}, "&:empty": {
|
|
26
|
+
marginTop: 0,
|
|
27
|
+
} })));
|
|
28
|
+
function Stack({ children, space, alignItems, "data-e2e-test-id": dataE2eTestId, }) {
|
|
29
|
+
return (React.createElement(StackContainer, { "data-e2e-test-id": dataE2eTestId, alignItems: alignItems }, React.Children.map(flattenChildren(children), (child) => child && React.createElement(StackItem, { space: space }, child))));
|
|
30
|
+
}
|
|
31
|
+
Stack.defaultProps = defaultProps;
|
|
32
|
+
|
|
33
|
+
export { Stack };
|
|
34
|
+
//# sourceMappingURL=Stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stack.js","sources":["../../../../../src/components/Stack/Stack.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AA2BA,MAAM,YAAY,GAAwB;AACxC,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,kBAAkB,EAAE,SAAS;CAC9B,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAa,CAAC,EAAE,UAAU,EAAE,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC7D,EAAE,CAAC;AACJ,IAAA,UAAU,EAAE;QACV,UAAU;AACV,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,YAAY,EAAE,eAAe;AAC9B,SAAA;AACF,KAAA;CACF,CAAC,CAAA,EAAA,EACF,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,QAAQ,EACvB,CAAA,CAAA,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAiB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC9D,EAAE,CAAC;IACJ,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;CACjD,CAAC,CAAA,EAAA,EACF,iBAAiB,EAAE;AACjB,QAAA,SAAS,EAAE,CAAC;AACb,KAAA,EACD,SAAS,EAAE;AACT,QAAA,SAAS,EAAE,CAAC;AACb,KAAA,EAAA,CAAA,CACD,CAAC,CAAC;AAEY,SAAA,KAAK,CAAC,EACpB,QAAQ,EACR,KAAK,EACL,UAAU,EACV,kBAAkB,EAAE,aAAa,GACtB,EAAA;AACX,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,cAAc,wBAAmB,aAAa,EAAE,UAAU,EAAE,UAAU,EACpE,EAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjB,eAAe,CAAC,QAAQ,CAAC,EACzB,CAAC,KAAK,KAAK,KAAK,IAAI,oBAAC,SAAS,EAAA,EAAC,KAAK,EAAE,KAAK,EAAG,EAAA,KAAK,CAAa,CACjE,CACc,EACjB;AACJ,CAAC;AAED,KAAK,CAAC,YAAY,GAAG,YAAY;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ThemeProvider } from '@emotion/react';
|
|
3
|
+
|
|
4
|
+
/* eslint-disable no-restricted-syntax */
|
|
5
|
+
function isObject(item) {
|
|
6
|
+
return item && typeof item === "object" && !Array.isArray(item);
|
|
7
|
+
}
|
|
8
|
+
function mergeDeep(target, ...sources) {
|
|
9
|
+
if (!sources.length)
|
|
10
|
+
return target;
|
|
11
|
+
const source = sources.shift();
|
|
12
|
+
if (isObject(target) && isObject(source)) {
|
|
13
|
+
for (const key in source) {
|
|
14
|
+
if (isObject(source[key])) {
|
|
15
|
+
if (!target[key])
|
|
16
|
+
Object.assign(target, { [key]: {} });
|
|
17
|
+
mergeDeep(target[key], source[key]);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
Object.assign(target, { [key]: source[key] });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return mergeDeep(target, ...sources);
|
|
25
|
+
}
|
|
26
|
+
const subThemeCreator = (parentTheme, name) => mergeDeep({}, parentTheme, {
|
|
27
|
+
values: Object.assign({}, parentTheme.values.subThemes[name]),
|
|
28
|
+
});
|
|
29
|
+
function SubThemeProvider({ name, children, "data-e2e-test-id": dataE2eTestId, }) {
|
|
30
|
+
return (React.createElement(ThemeProvider, { theme: (parentTheme) => subThemeCreator(parentTheme, name) },
|
|
31
|
+
React.createElement("div", { "data-e2e-test-id": dataE2eTestId }, children)));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { SubThemeProvider };
|
|
35
|
+
//# sourceMappingURL=SubThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubThemeProvider.js","sources":["../../../../../src/components/SubThemeProvider/SubThemeProvider.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AAeA,SAAS,QAAQ,CAAC,IAAa,EAAA;AAC7B,IAAA,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAChB,MAAsB,EACtB,GAAG,OAAyB,EAAA;IAE5B,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,QAAA,OAAO,MAAM,CAAC;AACnC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAE/B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AACxC,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACxB,YAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAAE,oBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;gBACvD,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,aAAA;AAAM,iBAAA;AACL,gBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/C,aAAA;AACF,SAAA;AACF,KAAA;AAED,IAAA,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,WAAkB,EAAE,IAAmB,KAC9D,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE;IACzB,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACD,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CACtC;AACF,CAAA,CAAU,CAAC;AAER,SAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAAE,aAAa,GACX,EAAA;AACtB,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,aAAa,EACZ,EAAA,KAAK,EAAE,CAAC,WAAkB,KACxB,eAAe,CAAC,WAAW,EAAE,IAAqB,CAAC,EAAA;AAGrD,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,kBAAA,EAAuB,aAAa,EAAG,EAAA,QAAQ,CAAO,CACxC,EAChB;AACJ;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { __rest } from '../../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { Inline } from '../Inline/Inline.js';
|
|
5
|
+
import { Stack } from '../Stack/Stack.js';
|
|
6
|
+
import { Icon } from '../Icon/Icon.js';
|
|
7
|
+
|
|
8
|
+
/* eslint-disable react/jsx-props-no-spreading */
|
|
9
|
+
const BORDER_WIDTH = 1;
|
|
10
|
+
const BORDER_WIDTH_ACTIVE_TOP = 4;
|
|
11
|
+
const StyledContainer = styled.div(({ theme }) => ({
|
|
12
|
+
width: "100%",
|
|
13
|
+
backgroundColor: theme.values.color.background.tabs.header,
|
|
14
|
+
borderBottom: `${BORDER_WIDTH}px solid`,
|
|
15
|
+
borderColor: theme.values.color.border.primary,
|
|
16
|
+
}));
|
|
17
|
+
const StyledTabHeader = styled.div(({ theme, active, isFirst }) => (Object.assign({ position: "relative", margin: 0, backgroundColor: theme.values.color.background.tabs.header, padding: theme.variables.size.spacing.m, color: theme.values.color.text.secondary, fontFamily: theme.variables.fontFamily.lato, fontWeight: theme.variables.weight.bold, fontSize: theme.variables.size.font.text.s, lineHeight: theme.variables.size.lineHeight.text.s, border: 0, boxSizing: "border-box", transition: "background-color 0.15s", display: "block", textDecoration: "none" }, (active
|
|
18
|
+
? Object.assign(Object.assign({ border: `${BORDER_WIDTH}px solid`, borderTop: 0, paddingLeft: parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH, paddingRight: parseInt(theme.variables.size.spacing.m, 10) - BORDER_WIDTH, marginBottom: -BORDER_WIDTH, borderColor: theme.values.color.border.primary, borderBottomColor: theme.values.color.background.tabs.buttonActive, backgroundColor: theme.values.color.background.tabs.buttonActive }, (isFirst && {
|
|
19
|
+
borderLeft: 0,
|
|
20
|
+
paddingLeft: theme.variables.size.spacing.m,
|
|
21
|
+
})), { "&:after": {
|
|
22
|
+
content: '""',
|
|
23
|
+
position: "absolute",
|
|
24
|
+
width: "100%",
|
|
25
|
+
height: BORDER_WIDTH_ACTIVE_TOP,
|
|
26
|
+
backgroundColor: theme.values.color.border.tabs.buttonActive,
|
|
27
|
+
borderLeft: `${BORDER_WIDTH}px solid`,
|
|
28
|
+
borderRight: `${BORDER_WIDTH}px solid`,
|
|
29
|
+
borderColor: theme.values.color.border.tabs.buttonActive,
|
|
30
|
+
left: -BORDER_WIDTH,
|
|
31
|
+
top: 0,
|
|
32
|
+
} }) : {
|
|
33
|
+
cursor: "pointer",
|
|
34
|
+
"&:hover": {
|
|
35
|
+
backgroundColor: theme.values.color.background.tabs.buttonHover,
|
|
36
|
+
},
|
|
37
|
+
}))));
|
|
38
|
+
function Tabs({ tabs, activeTab = 0, children, onTabSelect, "data-e2e-test-id": dataE2eTestId, }) {
|
|
39
|
+
return (React.createElement(Stack, { "data-e2e-test-id": dataE2eTestId },
|
|
40
|
+
React.createElement(StyledContainer, null,
|
|
41
|
+
React.createElement(Inline, { space: "zero" }, tabs.map((_a, i) => {
|
|
42
|
+
var { header, as = "button", iconLeft, iconRight } = _a, rest = __rest(_a, ["header", "as", "iconLeft", "iconRight"]);
|
|
43
|
+
return (React.createElement(StyledTabHeader, Object.assign({ as: as, key: header, isFirst: i === 0, active: activeTab === i, onClick: () => onTabSelect && onTabSelect(i) }, rest),
|
|
44
|
+
React.createElement(Inline, { vAlignItems: "center", space: "xxs" },
|
|
45
|
+
iconLeft && React.createElement(Icon, { size: "s", name: iconLeft }),
|
|
46
|
+
header,
|
|
47
|
+
iconRight && React.createElement(Icon, { size: "s", name: iconRight }))));
|
|
48
|
+
}))),
|
|
49
|
+
children));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { Tabs };
|
|
53
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
|
|
3
|
+
const getCommonStyles = (theme) => ({
|
|
4
|
+
color: theme.values.color.header.primary,
|
|
5
|
+
fontFamily: theme.variables.fontFamily.lato,
|
|
6
|
+
fontWeight: theme.variables.weight.black,
|
|
7
|
+
margin: 0,
|
|
8
|
+
});
|
|
9
|
+
const H1 = styled.h1(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.xl, lineHeight: theme.variables.size.lineHeight.header.xl })));
|
|
10
|
+
const H2 = styled.h2(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.l, lineHeight: theme.variables.size.lineHeight.header.l })));
|
|
11
|
+
const H3 = styled.h3(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.m, lineHeight: theme.variables.size.lineHeight.header.m })));
|
|
12
|
+
const H4 = styled.h4(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.s, lineHeight: theme.variables.size.lineHeight.header.s })));
|
|
13
|
+
const H5 = styled.h5(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.xs, lineHeight: theme.variables.size.lineHeight.header.xs })));
|
|
14
|
+
const H6 = styled.h6(({ theme }) => (Object.assign(Object.assign({}, getCommonStyles(theme)), { fontSize: theme.variables.size.font.header.xxs, lineHeight: theme.variables.size.lineHeight.header.xxs, letterSpacing: "0.5px", textTransform: "uppercase", color: theme.values.color.header.secondary })));
|
|
15
|
+
|
|
16
|
+
export { H1, H2, H3, H4, H5, H6 };
|
|
17
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../../src/components/Typography/Header/Header.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import { Text } from '../Text/Text.js';
|
|
4
|
+
|
|
5
|
+
const Italic = styled.i({ fontStyle: "italic" });
|
|
6
|
+
const Bold = styled.b({ fontWeight: "bolder" });
|
|
7
|
+
const Components = {
|
|
8
|
+
b: ({ key, children }) => React.createElement(Bold, { key: key }, children),
|
|
9
|
+
i: ({ key, children }) => React.createElement(Italic, { key: key }, children),
|
|
10
|
+
p: ({ key, children }) => (React.createElement(Text, { key: key, as: "p", variant: "secondary" }, children)),
|
|
11
|
+
small: ({ key, children }) => (React.createElement(Text, { key: key, as: "span", variant: "tertiary" }, children)),
|
|
12
|
+
sup: ({ key, children }) => React.createElement("sup", { key: key }, children),
|
|
13
|
+
sub: ({ key, children }) => React.createElement("sub", { key: key }, children),
|
|
14
|
+
};
|
|
15
|
+
const getNodes = (string) => {
|
|
16
|
+
const elementNames = Object.keys(Components).join("|");
|
|
17
|
+
const elementRegex = new RegExp(`<(${elementNames})>.*</\\1>`);
|
|
18
|
+
const elementMatch = elementRegex.exec(string);
|
|
19
|
+
if (!elementMatch) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const elementName = elementMatch[1];
|
|
23
|
+
const openingTagStartIndex = elementMatch.index;
|
|
24
|
+
const openingTagEndIndex = elementMatch.index + elementName.length + 2;
|
|
25
|
+
let numberOpenTags = 1;
|
|
26
|
+
const elementTagsRegex = new RegExp(`(<${elementName}>)|(</${elementName}>)`, "g");
|
|
27
|
+
let currentTagMatch = elementTagsRegex.exec(string);
|
|
28
|
+
let closingTagStartIndex;
|
|
29
|
+
let closingTagEndIndex;
|
|
30
|
+
do {
|
|
31
|
+
if (currentTagMatch.index > openingTagStartIndex) {
|
|
32
|
+
if (currentTagMatch[1]) {
|
|
33
|
+
numberOpenTags += 1;
|
|
34
|
+
}
|
|
35
|
+
else if (currentTagMatch[2]) {
|
|
36
|
+
numberOpenTags -= 1;
|
|
37
|
+
closingTagStartIndex = currentTagMatch.index;
|
|
38
|
+
closingTagEndIndex = closingTagStartIndex + currentTagMatch[2].length;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
currentTagMatch = elementTagsRegex.exec(string);
|
|
42
|
+
if (!currentTagMatch)
|
|
43
|
+
break;
|
|
44
|
+
} while (numberOpenTags > 0);
|
|
45
|
+
return {
|
|
46
|
+
elementName,
|
|
47
|
+
prev: string.slice(0, openingTagStartIndex),
|
|
48
|
+
node: string.slice(openingTagEndIndex, closingTagStartIndex),
|
|
49
|
+
next: string.slice(closingTagEndIndex),
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const makeStyledJSX = (string) => {
|
|
53
|
+
if (!string || string.length < 1) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const nodes = getNodes(string);
|
|
57
|
+
if (!nodes) {
|
|
58
|
+
return string;
|
|
59
|
+
}
|
|
60
|
+
const { elementName, prev, node, next } = nodes;
|
|
61
|
+
return [
|
|
62
|
+
prev,
|
|
63
|
+
Components[elementName]({ key: node, children: makeStyledJSX(node) }),
|
|
64
|
+
makeStyledJSX(next),
|
|
65
|
+
].filter((i) => i !== null && i !== "" && !(Array.isArray(i) && !i.length));
|
|
66
|
+
};
|
|
67
|
+
function StyledText({ children, "data-e2e-test-id": dataE2eTestId, }) {
|
|
68
|
+
if (typeof children !== "string")
|
|
69
|
+
return children;
|
|
70
|
+
return (React.createElement("span", { "data-e2e-test-id": dataE2eTestId }, makeStyledJSX(children)));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { StyledText, makeStyledJSX };
|
|
74
|
+
//# sourceMappingURL=StyledText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StyledText.js","sources":["../../../../../../src/components/Typography/StyledText/StyledText.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import isPropValid from '@emotion/is-prop-valid';
|
|
3
|
+
import { mq } from '../../../shared/mediaQueries.js';
|
|
4
|
+
|
|
5
|
+
const defaultProps = {
|
|
6
|
+
size: "m",
|
|
7
|
+
weight: "normal",
|
|
8
|
+
transform: "none",
|
|
9
|
+
as: "p",
|
|
10
|
+
variant: "secondary",
|
|
11
|
+
align: "left",
|
|
12
|
+
hyphens: "none",
|
|
13
|
+
"data-e2e-test-id": undefined,
|
|
14
|
+
};
|
|
15
|
+
const Text = styled("p", {
|
|
16
|
+
shouldForwardProp: (prop) => isPropValid(prop) && prop !== "transform",
|
|
17
|
+
})(({ theme, align, weight, size, transform, hyphens, variant }) => (Object.assign({ fontFamily: theme.variables.fontFamily.lato, margin: 0, textTransform: transform, textAlign: align,
|
|
18
|
+
// font-weight prop is a string becuase emotion doesn't support
|
|
19
|
+
// string values for "fontWeight" prop
|
|
20
|
+
"font-weight": String(theme.variables.weight[weight]), color: theme.values.color.text[variant], fontSize: theme.variables.size.font.text[size], lineHeight: theme.variables.size.lineHeight.text[size] }, mq({
|
|
21
|
+
hyphens: [hyphens, { none: "none", auto: "auto", manual: "manual" }],
|
|
22
|
+
}))));
|
|
23
|
+
Text.defaultProps = defaultProps;
|
|
24
|
+
|
|
25
|
+
export { Text };
|
|
26
|
+
//# sourceMappingURL=Text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Text.js","sources":["../../../../../../src/components/Typography/Text/Text.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;AAyBA,MAAM,YAAY,GAAuB;AACvC,IAAA,IAAI,EAAE,GAAG;AACT,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,kBAAkB,EAAE,SAAS;CAC9B,CAAC;AAEW,MAAA,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE;AAC9B,IAAA,iBAAiB,EAAE,CAAC,IAAY,KAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,WAAW;AAC5C,CAAA,CAAC,CACA,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAC1D,MAAA,CAAA,MAAA,CAAA,EAAA,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAC3C,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,SAAS,EACxB,SAAS,EAAE,KAAK;;;IAGhB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACrD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACnD,EAAA,EAAE,CAAC;AACJ,IAAA,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;CACrE,CAAC,CAAA,CACF,EACF;AAEF,IAAI,CAAC,YAAY,GAAG,YAAY;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import { Text } from '../Text/Text.js';
|
|
5
|
+
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
lines: 1,
|
|
8
|
+
size: "m",
|
|
9
|
+
};
|
|
10
|
+
const Container = styled.span(({ lines, theme, size }) => ({
|
|
11
|
+
display: "-webkit-box",
|
|
12
|
+
"-webkit-box-orient": "vertical",
|
|
13
|
+
overflow: "hidden",
|
|
14
|
+
WebkitLineClamp: lines,
|
|
15
|
+
maxHeight: lines * parseInt(theme.variables.size.lineHeight.text[size], 10),
|
|
16
|
+
}));
|
|
17
|
+
function TextClamped(props) {
|
|
18
|
+
const { lines, children, "data-e2e-test-id": dataE2eTestId } = props, textProps = __rest(props, ["lines", "children", "data-e2e-test-id"]);
|
|
19
|
+
return (React.createElement(Text, Object.assign({ "data-e2e-test-id": dataE2eTestId }, textProps),
|
|
20
|
+
React.createElement(Container, { lines: lines, size: textProps.size }, children)));
|
|
21
|
+
}
|
|
22
|
+
TextClamped.defaultProps = defaultProps;
|
|
23
|
+
|
|
24
|
+
export { TextClamped };
|
|
25
|
+
//# sourceMappingURL=TextClamped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextClamped.js","sources":["../../../../../../src/components/Typography/TextClamped/TextClamped.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAUA,MAAM,YAAY,GAA8B;AAC9C,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAmB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;AAC3E,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,oBAAoB,EAAE,UAAU;AAChC,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5E,CAAA,CAAC,CAAC,CAAC;AAEE,SAAU,WAAW,CAAC,KAAuB,EAAA;AACjD,IAAA,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,kBAAkB,EAAE,aAAa,EAE/B,GAAA,KAAK,EADJ,SAAS,GAAA,MAAA,CACV,KAAK,EALH,CAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,CAKL,CAAQ,CAAC;AAEV,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,IAAI,EAAmB,MAAA,CAAA,MAAA,CAAA,EAAA,kBAAA,EAAA,aAAa,IAAM,SAAS,CAAA;AAClD,QAAA,KAAA,CAAA,aAAA,CAAC,SAAS,EAAC,EAAA,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAC1C,EAAA,QAAQ,CACC,CACP,EACP;AACJ,CAAC;AAED,WAAW,CAAC,YAAY,GAAG,YAAY;;;;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import React, { useRef, useReducer, useLayoutEffect, useEffect } from 'react';
|
|
3
|
+
import { VirtualScrollReducer } from './VirtualScrollListReducer.js';
|
|
4
|
+
|
|
5
|
+
const StyledContainer = styled.div(({ maxHeight }) => ({
|
|
6
|
+
overflow: "auto",
|
|
7
|
+
width: "100%",
|
|
8
|
+
height: "100%",
|
|
9
|
+
maxHeight,
|
|
10
|
+
}));
|
|
11
|
+
const StyledScrollableContent = styled.div(({ maxContentHeight }) => ({
|
|
12
|
+
overflow: "hidden",
|
|
13
|
+
boxSizing: "border-box",
|
|
14
|
+
height: maxContentHeight,
|
|
15
|
+
}));
|
|
16
|
+
const overscan = 10;
|
|
17
|
+
function VirtualScrollList({ maxHeight, itemHeight, itemAmount, emptyState = () => null, itemInView, itemTemplate, "data-e2e-test-id": dataE2eTestId, }) {
|
|
18
|
+
const scrollableContainerRef = useRef(null);
|
|
19
|
+
const viewportRef = useRef(null);
|
|
20
|
+
const [{ scrolledItemCount, amountOfItemsInView, scrolledInPx, maxContentHeight = maxHeight, recommendedScrollPosition, }, dispatch,] = useReducer(VirtualScrollReducer, {});
|
|
21
|
+
useLayoutEffect(() => {
|
|
22
|
+
dispatch({ type: "reset", itemHeight, maxHeight, overscan });
|
|
23
|
+
scrollableContainerRef.current.scrollTop = 0;
|
|
24
|
+
}, [itemHeight, itemAmount, maxHeight]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
dispatch({
|
|
27
|
+
type: "recommendScrollPosition",
|
|
28
|
+
scrollTop: scrollableContainerRef.current.scrollTop,
|
|
29
|
+
itemToBeInView: itemInView,
|
|
30
|
+
});
|
|
31
|
+
}, [itemInView]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (recommendedScrollPosition === null)
|
|
34
|
+
return;
|
|
35
|
+
scrollableContainerRef.current.scrollTop = recommendedScrollPosition;
|
|
36
|
+
}, [recommendedScrollPosition]);
|
|
37
|
+
useLayoutEffect(() => {
|
|
38
|
+
if (!viewportRef.current)
|
|
39
|
+
return;
|
|
40
|
+
dispatch({
|
|
41
|
+
type: "updateViewport",
|
|
42
|
+
viewportNode: viewportRef.current,
|
|
43
|
+
itemAmount,
|
|
44
|
+
});
|
|
45
|
+
}, [itemAmount, scrolledItemCount]);
|
|
46
|
+
const itemCountToBeRendered = Math.min(Math.max(0, itemAmount - scrolledItemCount), amountOfItemsInView);
|
|
47
|
+
return (React.createElement(StyledContainer, { ref: scrollableContainerRef, maxHeight: maxHeight, style: { maxHeight }, "data-e2e-test-id": dataE2eTestId, onScroll: (e) => {
|
|
48
|
+
dispatch({
|
|
49
|
+
type: "scroll",
|
|
50
|
+
scrollTop: e.currentTarget.scrollTop,
|
|
51
|
+
});
|
|
52
|
+
} }, itemAmount === 0 ? (emptyState()) : (React.createElement(StyledScrollableContent, { maxContentHeight: maxContentHeight },
|
|
53
|
+
React.createElement("div", { ref: viewportRef, style: {
|
|
54
|
+
transform: `translateY(${scrolledInPx}px`,
|
|
55
|
+
} }, !!itemCountToBeRendered &&
|
|
56
|
+
new Array(itemCountToBeRendered)
|
|
57
|
+
.fill(0)
|
|
58
|
+
.map((_, index) => itemTemplate(scrolledItemCount + index)))))));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export { VirtualScrollList };
|
|
62
|
+
//# sourceMappingURL=VirtualScrollList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualScrollList.js","sources":["../../../../../src/components/VirtualScrollList/VirtualScrollList.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
|