@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.
Files changed (132) hide show
  1. package/build/build-tokens/_breakpoints.json.js +23 -0
  2. package/build/build-tokens/_breakpoints.json.js.map +1 -0
  3. package/build/build-tokens/_icon_sizes_map.json.js +8 -0
  4. package/build/build-tokens/_icon_sizes_map.json.js.map +1 -0
  5. package/build/build-tokens/assets/icons.json.js +199 -0
  6. package/build/build-tokens/assets/icons.json.js.map +1 -0
  7. package/build/build-tokens/assets/icons16.json.js +214 -0
  8. package/build/build-tokens/assets/icons16.json.js.map +1 -0
  9. package/build/build-tokens/assets/logo.json +1 -1
  10. package/build/build-tokens/assets/logo.json.js +6 -0
  11. package/build/build-tokens/assets/logo.json.js.map +1 -0
  12. package/build/build-tokens/visualConfig.js +1417 -0
  13. package/build/build-tokens/visualConfig.js.map +1 -0
  14. package/build/node_modules/tslib/tslib.es6.js +29 -0
  15. package/build/node_modules/tslib/tslib.es6.js.map +1 -0
  16. package/build/src/components/Badge/Badge.js +36 -0
  17. package/build/src/components/Badge/Badge.js.map +1 -0
  18. package/build/src/components/Box/Box.js +30 -0
  19. package/build/src/components/Box/Box.js.map +1 -0
  20. package/build/src/components/Button/Button.js +116 -0
  21. package/build/src/components/Button/Button.js.map +1 -0
  22. package/build/src/components/Card/Card.js +30 -0
  23. package/build/src/components/Card/Card.js.map +1 -0
  24. package/build/src/components/Card/CardBox.js +9 -0
  25. package/build/src/components/Card/CardBox.js.map +1 -0
  26. package/build/src/components/Card/CardHeader/CardHeader.js +30 -0
  27. package/build/src/components/Card/CardHeader/CardHeader.js.map +1 -0
  28. package/build/src/components/Collapsible/Collapsible.js +44 -0
  29. package/build/src/components/Collapsible/Collapsible.js.map +1 -0
  30. package/build/src/components/Column/Columns.js +78 -0
  31. package/build/src/components/Column/Columns.js.map +1 -0
  32. package/build/src/components/Container/Container.js +30 -0
  33. package/build/src/components/Container/Container.js.map +1 -0
  34. package/build/src/components/Divider/Divider.js +33 -0
  35. package/build/src/components/Divider/Divider.js.map +1 -0
  36. package/build/src/components/DropdownMenu/DropdownMenu.js +128 -0
  37. package/build/src/components/DropdownMenu/DropdownMenu.js.map +1 -0
  38. package/build/src/components/DropdownMenu/MenuItem.js +37 -0
  39. package/build/src/components/DropdownMenu/MenuItem.js.map +1 -0
  40. package/build/src/components/Form/Checkbox/Checkbox.js +86 -0
  41. package/build/src/components/Form/Checkbox/Checkbox.js.map +1 -0
  42. package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js +10 -0
  43. package/build/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -0
  44. package/build/src/components/Form/FormField/FormField.js +26 -0
  45. package/build/src/components/Form/FormField/FormField.js.map +1 -0
  46. package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js +22 -0
  47. package/build/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -0
  48. package/build/src/components/Form/FormLabelText/FormLabelText.js +22 -0
  49. package/build/src/components/Form/FormLabelText/FormLabelText.js.map +1 -0
  50. package/build/src/components/Form/Input/Input.js +81 -0
  51. package/build/src/components/Form/Input/Input.js.map +1 -0
  52. package/build/src/components/Form/PasswordInput/PasswordInput.js +126 -0
  53. package/build/src/components/Form/PasswordInput/PasswordInput.js.map +1 -0
  54. package/build/src/components/Form/Radio/Radio.js +82 -0
  55. package/build/src/components/Form/Radio/Radio.js.map +1 -0
  56. package/build/src/components/Form/RadioButton/RadioButton.js +87 -0
  57. package/build/src/components/Form/RadioButton/RadioButton.js.map +1 -0
  58. package/build/src/components/Form/Select/Select.js +162 -0
  59. package/build/src/components/Form/Select/Select.js.map +1 -0
  60. package/build/src/components/Form/Textarea/Textarea.js +39 -0
  61. package/build/src/components/Form/Textarea/Textarea.js.map +1 -0
  62. package/build/src/components/Form/Toggle/Toggle.js +86 -0
  63. package/build/src/components/Form/Toggle/Toggle.js.map +1 -0
  64. package/build/src/components/Form/ToggleButton/ToggleButton.js +80 -0
  65. package/build/src/components/Form/ToggleButton/ToggleButton.js.map +1 -0
  66. package/build/src/components/Icon/Icon.js +40 -0
  67. package/build/src/components/Icon/Icon.js.map +1 -0
  68. package/build/src/components/Inline/Inline.js +54 -0
  69. package/build/src/components/Inline/Inline.js.map +1 -0
  70. package/build/src/components/Link/Link.js +47 -0
  71. package/build/src/components/Link/Link.js.map +1 -0
  72. package/build/src/components/Logo/Logo.js +15 -0
  73. package/build/src/components/Logo/Logo.js.map +1 -0
  74. package/build/src/components/MediaItem/MediaItem.js +41 -0
  75. package/build/src/components/MediaItem/MediaItem.js.map +1 -0
  76. package/build/src/components/MediaViewerBar/MediaViewerBar.js +36 -0
  77. package/build/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -0
  78. package/build/src/components/Notification/Notification.js +46 -0
  79. package/build/src/components/Notification/Notification.js.map +1 -0
  80. package/build/src/components/PictogramButton/PictogramButton.js +56 -0
  81. package/build/src/components/PictogramButton/PictogramButton.js.map +1 -0
  82. package/build/src/components/ProgressBar/ProgressBar.js +15 -0
  83. package/build/src/components/ProgressBar/ProgressBar.js.map +1 -0
  84. package/build/src/components/RoundButton/RoundButton.js +53 -0
  85. package/build/src/components/RoundButton/RoundButton.js.map +1 -0
  86. package/build/src/components/SearchResult/SearchResult.js +81 -0
  87. package/build/src/components/SearchResult/SearchResult.js.map +1 -0
  88. package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js +57 -0
  89. package/build/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -0
  90. package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +35 -0
  91. package/build/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -0
  92. package/build/src/components/Stack/Stack.js +34 -0
  93. package/build/src/components/Stack/Stack.js.map +1 -0
  94. package/build/src/components/SubThemeProvider/SubThemeProvider.js +35 -0
  95. package/build/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -0
  96. package/build/src/components/Tabs/Tabs.js +53 -0
  97. package/build/src/components/Tabs/Tabs.js.map +1 -0
  98. package/build/src/components/Typography/Header/Header.js +17 -0
  99. package/build/src/components/Typography/Header/Header.js.map +1 -0
  100. package/build/src/components/Typography/StyledText/StyledText.js +74 -0
  101. package/build/src/components/Typography/StyledText/StyledText.js.map +1 -0
  102. package/build/src/components/Typography/Text/Text.js +26 -0
  103. package/build/src/components/Typography/Text/Text.js.map +1 -0
  104. package/build/src/components/Typography/TextClamped/TextClamped.js +25 -0
  105. package/build/src/components/Typography/TextClamped/TextClamped.js.map +1 -0
  106. package/build/src/components/VirtualScrollList/VirtualScrollList.js +62 -0
  107. package/build/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -0
  108. package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js +96 -0
  109. package/build/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -0
  110. package/build/src/index.js +47 -0
  111. package/build/src/index.js.map +1 -0
  112. package/build/src/shared/informDeprecation.js +11 -0
  113. package/build/src/shared/informDeprecation.js.map +1 -0
  114. package/build/src/shared/mediaQueries.js +39 -0
  115. package/build/src/shared/mediaQueries.js.map +1 -0
  116. package/build/src/shared/useAutoPosition.js +52 -0
  117. package/build/src/shared/useAutoPosition.js.map +1 -0
  118. package/build/src/shared/useDocument.js +6 -0
  119. package/build/src/shared/useDocument.js.map +1 -0
  120. package/build/src/shared/useHover.js +27 -0
  121. package/build/src/shared/useHover.js.map +1 -0
  122. package/build/src/shared/useKeyboard.js +45 -0
  123. package/build/src/shared/useKeyboard.js.map +1 -0
  124. package/build/src/shared/useOutsideClick.js +31 -0
  125. package/build/src/shared/useOutsideClick.js.map +1 -0
  126. package/build/src/shared/useWindow.js +6 -0
  127. package/build/src/shared/useWindow.js.map +1 -0
  128. package/package.json +20 -6
  129. package/build/build-tokens/_subThemeType.d.ts +0 -1
  130. package/build/index.js +0 -3
  131. package/build/index.js.LICENSE.txt +0 -8
  132. package/build/index.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React, { forwardRef, useState } from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { Icon } from '../../Icon/Icon.js';
5
+ import { FormField } from '../FormField/FormField.js';
6
+
7
+ /* eslint-disable react/jsx-props-no-spreading */
8
+ const handleBorderColor = (theme, hasError) => {
9
+ if (hasError)
10
+ return theme.values.color.border.input.error;
11
+ return theme.values.color.border.input.default;
12
+ };
13
+ const handleIconBorderColor = (theme, hasError) => {
14
+ if (hasError)
15
+ return theme.values.color.border.input.error;
16
+ return "transparent";
17
+ };
18
+ const handleIconLeftBorderColor = (theme, hasError) => {
19
+ if (hasError)
20
+ return theme.values.color.border.input.error;
21
+ return theme.values.color.border.input.default;
22
+ };
23
+ const StyledContainer = styled.div(() => ({
24
+ width: "100%",
25
+ display: "flex",
26
+ alignItems: "center",
27
+ flexDirection: "row",
28
+ position: "relative",
29
+ zIndex: 1,
30
+ }));
31
+ const StyledIconBtn = styled.button(({ theme, hasError }) => ({
32
+ "&[type='button']": {
33
+ appearance: "none",
34
+ MozAppearance: "none",
35
+ WebkitAppearance: "none",
36
+ },
37
+ position: "absolute",
38
+ top: 0,
39
+ right: 0,
40
+ zIndex: 2,
41
+ border: "1px solid",
42
+ borderColor: handleIconBorderColor(theme, hasError),
43
+ borderLeftColor: handleIconLeftBorderColor(theme, hasError),
44
+ padding: theme.variables.size.spacing.s,
45
+ borderRadius: theme.variables.size.borderRadius.input.s,
46
+ borderBottomLeftRadius: "0",
47
+ borderTopLeftRadius: "0",
48
+ color: theme.values.color.text.button.tertiary.base,
49
+ backgroundColor: "inherit",
50
+ cursor: "pointer",
51
+ "&:hover": {
52
+ backgroundColor: theme.values.color.background.button.tertiary.hover,
53
+ color: theme.values.color.text.button.tertiary.hover,
54
+ borderColor: theme.values.color.border.button.secondary.hover,
55
+ },
56
+ "&:active": {
57
+ backgroundColor: theme.values.color.background.button.tertiary.active,
58
+ color: theme.values.color.text.button.tertiary.active,
59
+ borderColor: theme.values.color.border.button.secondary.active,
60
+ },
61
+ "&:disabled": {
62
+ backgroundColor: theme.values.color.background.button.tertiary.disabled,
63
+ color: theme.values.color.text.button.tertiary.disabled,
64
+ borderColor: theme.values.color.border.button.secondary.disabled,
65
+ pointerEvents: "none",
66
+ },
67
+ "& svg": {
68
+ pointerEvents: "none",
69
+ },
70
+ }));
71
+ const StyledPasswordInput = styled.input(({ theme, hasError }) => ({
72
+ fontFamily: theme.variables.fontFamily.lato,
73
+ fontSize: theme.variables.size.font.text.m,
74
+ lineHeight: theme.variables.size.lineHeight.text.m,
75
+ borderRadius: theme.variables.size.borderRadius.input.s,
76
+ borderWidth: "1px",
77
+ borderStyle: "solid",
78
+ width: "100%",
79
+ padding: theme.variables.size.spacing.xs,
80
+ paddingRight: theme.variables.size.spacing.xxl,
81
+ boxSizing: "border-box",
82
+ color: theme.values.color.text.secondary,
83
+ borderColor: handleBorderColor(theme, hasError),
84
+ backgroundColor: theme.values.color.background.input.default,
85
+ "&.error": {
86
+ borderColor: theme.values.color.border.input.error,
87
+ },
88
+ "&.has-icon": {
89
+ paddingRight: theme.variables.size.spacing.xs + theme.variables.size.font.icon.m,
90
+ },
91
+ "&::placeholder": {
92
+ color: theme.values.color.text.placeholder,
93
+ opacity: 1,
94
+ },
95
+ "&:-ms-input-placeholder": {
96
+ color: theme.values.color.text.placeholder,
97
+ },
98
+ "&::-ms-input-placeholder": {
99
+ color: theme.values.color.text.placeholder,
100
+ },
101
+ }));
102
+ const PasswordInputRaw = forwardRef(({ name, value, placeholder, hasError = false, disabled, onChange, onClick, onBlur, onFocus, onIconClick, areaLabel, tabIndex, autoComplete, iconAriaLabel, }, ref) => {
103
+ const [inputType, setInputType] = useState("password");
104
+ const currentType = inputType === "password" ? "text" : "password";
105
+ const eyeIcon = inputType === "password" ? "eye-off" : "eye";
106
+ return (React.createElement(StyledContainer, null,
107
+ React.createElement(StyledPasswordInput, { type: inputType, value: value, placeholder: placeholder, name: name, disabled: disabled, onClick: onClick, onChange: onChange, onBlur: onBlur, onFocus: onFocus, "aria-label": areaLabel, ref: ref, tabIndex: tabIndex, autoComplete: autoComplete, hasError: hasError }),
108
+ React.createElement(StyledIconBtn, { onClick: (e) => {
109
+ if (disabled) {
110
+ e.preventDefault();
111
+ }
112
+ if (onIconClick) {
113
+ onIconClick(e);
114
+ }
115
+ setInputType(currentType);
116
+ }, hasError: hasError, disabled: disabled, "aria-label": iconAriaLabel, type: "button" },
117
+ React.createElement(Icon, { name: eyeIcon, size: "s", variant: "tertiary" }))));
118
+ });
119
+ function PasswordInput(_a) {
120
+ var { name, value, placeholder = "••••••••", hasError = false, onChange, onClick, onBlur, onFocus, onIconClick, type, tabIndex, areaLabel, autoComplete = "on", iconAriaLabel } = _a, rest = __rest(_a, ["name", "value", "placeholder", "hasError", "onChange", "onClick", "onBlur", "onFocus", "onIconClick", "type", "tabIndex", "areaLabel", "autoComplete", "iconAriaLabel"]);
121
+ return (React.createElement(FormField, Object.assign({}, rest),
122
+ React.createElement(PasswordInputRaw, { name: name, value: value, type: type, placeholder: placeholder, hasError: hasError, disabled: rest.disabled, onChange: onChange, onBlur: onBlur, onFocus: onFocus, onClick: onClick, onIconClick: onIconClick, tabIndex: tabIndex, areaLabel: areaLabel, autoComplete: autoComplete, iconAriaLabel: iconAriaLabel })));
123
+ }
124
+
125
+ export { PasswordInput, PasswordInputRaw };
126
+ //# sourceMappingURL=PasswordInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordInput.js","sources":["../../../../../../src/components/Form/PasswordInput/PasswordInput.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { FormField } from '../FormField/FormField.js';
5
+ import { Inline } from '../../Inline/Inline.js';
6
+ import { Text } from '../../Typography/Text/Text.js';
7
+
8
+ /* eslint-disable react/jsx-props-no-spreading */
9
+ const StyledContainer = styled.div(({ theme }) => ({
10
+ userSelect: "none",
11
+ display: "block",
12
+ position: "relative",
13
+ width: theme.variables.size.dimension.radio.m,
14
+ height: theme.variables.size.dimension.radio.m,
15
+ boxSizing: "border-box",
16
+ }));
17
+ const StyledRealInput = styled.input(() => ({
18
+ opacity: 0,
19
+ cursor: "pointer",
20
+ position: "absolute",
21
+ width: 0,
22
+ height: 0,
23
+ }));
24
+ const StyledFakeInput = styled.span(({ theme }) => ({
25
+ boxSizing: "border-box",
26
+ width: theme.variables.size.dimension.radio.m,
27
+ height: theme.variables.size.dimension.radio.m,
28
+ borderRadius: theme.variables.size.borderRadius.radio.m,
29
+ border: "2px solid",
30
+ top: 0,
31
+ left: 0,
32
+ display: "flex",
33
+ alignItems: "center",
34
+ justifyContent: "center",
35
+ position: "absolute",
36
+ cursor: "pointer",
37
+ background: theme.values.color.background.radio.default,
38
+ borderColor: theme.values.color.border.radio.default,
39
+ "& div": {
40
+ opacity: 0,
41
+ borderRadius: "50%",
42
+ width: theme.variables.size.dimension.radioPoint.m,
43
+ height: theme.variables.size.dimension.radioPoint.m,
44
+ background: theme.values.color.icon.radio.default,
45
+ },
46
+ "&:hover, input:checked + &": {
47
+ borderColor: theme.values.color.border.radio.defaultHover,
48
+ },
49
+ "input:checked + &": {
50
+ background: theme.values.color.background.radio.checked,
51
+ "&:hover": {
52
+ background: theme.values.color.background.radio.checkedHover,
53
+ },
54
+ "& div": {
55
+ opacity: 1,
56
+ },
57
+ },
58
+ "focus-visible + &": {
59
+ outlineWidth: "2px",
60
+ outlineStyle: "solid",
61
+ outlineColor: "Highlight",
62
+ },
63
+ "@media (-webkit-min-device-pixel-ratio:0)": {
64
+ "focus-visible + &": {
65
+ outlineColor: "-webkit-focus-ring-color",
66
+ outlineStyle: "auto",
67
+ },
68
+ },
69
+ }));
70
+ function Radio(_a) {
71
+ var { name, value = "", checked = undefined, label = "", disabled = false, onChange, onClick, onBlur, onFocus, "data-e2e-test-id": dataE2eTestId } = _a, rest = __rest(_a, ["name", "value", "checked", "label", "disabled", "onChange", "onClick", "onBlur", "onFocus", "data-e2e-test-id"]);
72
+ return (React.createElement(FormField, Object.assign({ "data-e2e-test-id": dataE2eTestId }, rest, { disabled: disabled }),
73
+ React.createElement(Inline, { space: "m", vAlignItems: "top", noWrap: true },
74
+ React.createElement(StyledContainer, null,
75
+ React.createElement(StyledRealInput, { type: "radio", name: name, value: value, checked: checked, disabled: disabled, onChange: onChange, onClick: onClick, onBlur: onBlur, onFocus: onFocus }),
76
+ React.createElement(StyledFakeInput, null,
77
+ React.createElement("div", null))),
78
+ typeof label === "string" ? React.createElement(Text, null, label) : label)));
79
+ }
80
+
81
+ export { Radio };
82
+ //# sourceMappingURL=Radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.js","sources":["../../../../../../src/components/Form/Radio/Radio.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { FormField } from '../FormField/FormField.js';
5
+ import { Icon } from '../../Icon/Icon.js';
6
+ import { Inline } from '../../Inline/Inline.js';
7
+
8
+ /* eslint-disable react/jsx-props-no-spreading */
9
+ const StyledContainer = styled.div(() => ({
10
+ userSelect: "none",
11
+ display: "block",
12
+ position: "relative",
13
+ width: "100%",
14
+ boxSizing: "border-box",
15
+ }));
16
+ const StyledRealInput = styled.input(() => ({
17
+ opacity: 0,
18
+ cursor: "pointer",
19
+ height: 0,
20
+ width: 0,
21
+ position: "absolute",
22
+ }));
23
+ const StyledFakeInput = styled.div(({ theme }) => ({
24
+ cursor: "pointer",
25
+ textTransform: "none",
26
+ textDecoration: "none",
27
+ borderRadius: theme.variables.size.borderRadius.button.m,
28
+ fontFamily: theme.variables.fontFamily.lato,
29
+ fontSize: theme.variables.size.font.button.m,
30
+ fontWeight: theme.variables.weight.bold,
31
+ lineHeight: theme.variables.size.lineHeight.button.m,
32
+ "input: focus-visible + &": {
33
+ outlineWidth: "2px",
34
+ outlineStyle: "solid",
35
+ outlineColor: "Highlight",
36
+ },
37
+ "@media (-webkit-min-device-pixel-ratio:0)": {
38
+ "input: focus-visible + &": {
39
+ outlineColor: "-webkit-focus-ring-color",
40
+ outlineStyle: "auto",
41
+ },
42
+ },
43
+ "input:not(:checked) + &": {
44
+ border: "1px solid",
45
+ padding: `${parseInt(theme.variables.size.spacing.s, 10) - 1}px ${parseInt(theme.variables.size.spacing.l, 10) - 1}px`,
46
+ backgroundColor: theme.values.color.background.button.secondary.base,
47
+ borderColor: theme.values.color.border.button.secondary.base,
48
+ color: theme.values.color.text.button.secondary.base,
49
+ "&:hover": {
50
+ backgroundColor: theme.values.color.background.button.secondary.hover,
51
+ borderColor: theme.values.color.border.button.secondary.hover,
52
+ color: theme.values.color.text.button.secondary.hover,
53
+ },
54
+ "&:active": {
55
+ backgroundColor: theme.values.color.background.button.secondary.active,
56
+ borderColor: theme.values.color.border.button.secondary.active,
57
+ color: theme.values.color.text.button.secondary.active,
58
+ },
59
+ },
60
+ "input:checked + & ": {
61
+ border: 0,
62
+ padding: `${theme.variables.size.spacing.s} ${theme.variables.size.spacing.l}`,
63
+ backgroundColor: theme.values.color.background.button.primary.base,
64
+ color: theme.values.color.text.button.primary.base,
65
+ "&:hover": {
66
+ backgroundColor: theme.values.color.background.button.primary.base,
67
+ color: theme.values.color.text.button.primary.base,
68
+ },
69
+ "&:active": {
70
+ backgroundColor: theme.values.color.background.button.primary.base,
71
+ color: theme.values.color.text.button.primary.base,
72
+ },
73
+ },
74
+ }));
75
+ function RadioButton(_a) {
76
+ var { name, value = "", checked = undefined, label = "", icon, disabled = false, onChange, onClick, onBlur, onFocus } = _a, rest = __rest(_a, ["name", "value", "checked", "label", "icon", "disabled", "onChange", "onClick", "onBlur", "onFocus"]);
77
+ return (React.createElement(FormField, Object.assign({}, rest, { disabled: disabled }),
78
+ React.createElement(StyledContainer, null,
79
+ React.createElement(StyledRealInput, { type: "radio", name: name, value: value, checked: checked, disabled: disabled, onChange: onChange, onClick: onClick, onBlur: onBlur, onFocus: onFocus }),
80
+ React.createElement(StyledFakeInput, null,
81
+ React.createElement(Inline, { vAlignItems: "center", alignItems: "spaceBetween", noWrap: true },
82
+ label,
83
+ icon && React.createElement(Icon, { name: icon }))))));
84
+ }
85
+
86
+ export { RadioButton };
87
+ //# sourceMappingURL=RadioButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.js","sources":["../../../../../../src/components/Form/RadioButton/RadioButton.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React, { useState, useMemo, useRef, useCallback, useEffect } from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { useKeyboard } from '../../../shared/useKeyboard.js';
5
+ import { useAutoPosition } from '../../../shared/useAutoPosition.js';
6
+ import { FormField } from '../FormField/FormField.js';
7
+ import { VirtualScrollList } from '../../VirtualScrollList/VirtualScrollList.js';
8
+ import { InputRaw, Input } from '../Input/Input.js';
9
+ import { Text } from '../../Typography/Text/Text.js';
10
+ import { Box } from '../../Box/Box.js';
11
+
12
+ /* eslint-disable react/jsx-props-no-spreading */
13
+ const StyledContainer = styled.div(() => ({
14
+ position: "relative",
15
+ }));
16
+ const StyledInputWrap = styled.div(() => ({
17
+ zIndex: 0,
18
+ position: "absolute",
19
+ pointerEvents: "none",
20
+ width: "100%",
21
+ bottom: 0,
22
+ left: 0,
23
+ }));
24
+ const StyledDropdown = styled.div(({ theme, dropdownPosition }) => (Object.assign(Object.assign({ backgroundColor: theme.values.color.background.layer_2, position: "absolute", fontSize: theme.variables.size.font.text.s, zIndex: 2, width: "100%", margin: `${theme.variables.size.spacing.xs} 0`, cursor: "pointer", borderRadius: theme.variables.size.borderRadius.dropdown.m, overflow: "hidden", boxShadow: theme.variables.shadow.card.b, boxSizing: "border-box" }, (dropdownPosition === "down" && {
25
+ top: "100%",
26
+ })), (dropdownPosition === "up" && {
27
+ bottom: "100%",
28
+ }))));
29
+ const StyledDropdownItem = styled.div(({ theme, active }) => (Object.assign(Object.assign({ padding: theme.variables.size.spacing.xs, borderRadius: theme.variables.size.borderRadius.dropdown.s }, (active && {
30
+ backgroundColor: theme.values.color.background.dropdown.active,
31
+ borderRadius: 0,
32
+ })), { "&:hover": {
33
+ backgroundColor: theme.values.color.background.dropdown.active,
34
+ borderRadius: 0,
35
+ } })));
36
+ const HiddenSelectInput = styled.select(() => ({
37
+ display: "none",
38
+ }));
39
+ const defaultFilterMethod = (option, value) => option.label.toLowerCase().indexOf(value.toLowerCase()) > -1;
40
+ function Select(_a) {
41
+ var { options = [], name, value, placeholder, emptyStateMessage, hasError, filterMethod = defaultFilterMethod, onChange = () => null, onBlur = () => null, onFocus = () => null, maxHeight = 230, autoComplete = "on" } = _a, rest = __rest(_a, ["options", "name", "value", "placeholder", "emptyStateMessage", "hasError", "filterMethod", "onChange", "onBlur", "onFocus", "maxHeight", "autoComplete"]);
42
+ const { disabled } = rest;
43
+ const [isOpen, setIsOpen] = useState(false);
44
+ const [innerValue, setInnerValue] = useState("");
45
+ const [preselectedIndex, setPreselectedIndex] = useState(-1);
46
+ const initialValueOption = useMemo(() => options.find((option) => option.value === value) || {
47
+ value: "",
48
+ label: "",
49
+ }, [options, value]);
50
+ const [fakeSelectedOption, setFakeSelectedOption] = useState(initialValueOption);
51
+ const fakeSelectRef = useRef(null);
52
+ const dropDownRef = useRef(null);
53
+ const innerInputRef = useRef(null);
54
+ const currentValueRef = useRef(value);
55
+ currentValueRef.current = value;
56
+ const forceChangeFakeSelect = useCallback((selectedOption) => {
57
+ if (fakeSelectedOption.value !== selectedOption.value) {
58
+ setFakeSelectedOption(selectedOption);
59
+ }
60
+ }, [fakeSelectedOption]);
61
+ const [verticalPosition] = useAutoPosition(fakeSelectRef, dropDownRef, isOpen);
62
+ const closeDropdown = useCallback((noSelect = false) => {
63
+ setIsOpen(false);
64
+ if (!noSelect) {
65
+ const selectedOption = options.find((option) => option.label.toLowerCase().trim() ===
66
+ innerValue.toLowerCase().trim());
67
+ if (selectedOption) {
68
+ forceChangeFakeSelect(selectedOption);
69
+ }
70
+ }
71
+ setInnerValue("");
72
+ setPreselectedIndex(-1);
73
+ onBlur();
74
+ }, [onBlur, forceChangeFakeSelect, innerValue, options]);
75
+ useEffect(() => {
76
+ if (fakeSelectRef.current &&
77
+ currentValueRef.current !== fakeSelectedOption.value) {
78
+ fakeSelectRef.current.dispatchEvent(new Event("change", { bubbles: true }));
79
+ }
80
+ }, [fakeSelectedOption, fakeSelectRef, currentValueRef]);
81
+ // force updating the hidden select if a new initial value gets passed down
82
+ // without it, there would be a mismatch of selected value and the hidden select,
83
+ // which would cause the first value to not be selectable
84
+ useEffect(() => {
85
+ forceChangeFakeSelect(initialValueOption);
86
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
+ }, [initialValueOption]);
88
+ const filteredOptions = useMemo(() => {
89
+ if (!innerValue) {
90
+ return options;
91
+ }
92
+ return options.filter((option) => filterMethod(option, innerValue));
93
+ }, [options, filterMethod, innerValue]);
94
+ const displayValue = useMemo(() => options.some((option) => option.value === value)
95
+ ? options.find((option) => option.value === value).label
96
+ : "", [value, options]);
97
+ useEffect(() => {
98
+ setPreselectedIndex(-1);
99
+ }, [filteredOptions]);
100
+ useKeyboard({
101
+ Escape: () => closeDropdown(true),
102
+ Enter: () => {
103
+ if (filteredOptions[preselectedIndex]) {
104
+ forceChangeFakeSelect(filteredOptions[preselectedIndex]);
105
+ closeDropdown(true);
106
+ return;
107
+ }
108
+ closeDropdown();
109
+ },
110
+ ArrowUp: () => {
111
+ setPreselectedIndex(Math.max(preselectedIndex - 1, 0));
112
+ },
113
+ ArrowDown: () => {
114
+ setPreselectedIndex(Math.min(preselectedIndex + 1, filteredOptions.length - 1));
115
+ },
116
+ }, innerInputRef, isOpen && !disabled);
117
+ useKeyboard({
118
+ "ArrowUp ArrowDown": () => {
119
+ setIsOpen(true);
120
+ },
121
+ }, innerInputRef, !isOpen && !disabled);
122
+ return (React.createElement(FormField, Object.assign({}, rest),
123
+ React.createElement(StyledContainer, { onBlur: () => {
124
+ closeDropdown(true);
125
+ } },
126
+ React.createElement("div", { style: { zIndex: 1 } },
127
+ React.createElement(InputRaw, { areaLabel: rest.label, name: `${name}-innerInput`, value: innerValue, privateProps: { isTransparent: !(isOpen && innerValue) }, icon: isOpen ? "chevron-up" : "chevron-down", hasError: hasError, disabled: disabled, onFocus: () => {
128
+ setIsOpen(true);
129
+ onFocus();
130
+ }, onClick: () => {
131
+ setIsOpen(true);
132
+ }, onChange: (e) => {
133
+ if (e.currentTarget.value) {
134
+ setIsOpen(true);
135
+ }
136
+ setInnerValue(e.currentTarget.value);
137
+ }, ref: innerInputRef, autoComplete: autoComplete })),
138
+ React.createElement(StyledInputWrap, null,
139
+ React.createElement(Input, { name: name, value: displayValue, onChange: () => null, icon: isOpen ? "chevron-up" : "chevron-down", placeholder: placeholder, tabIndex: -1, autoComplete: "off" })),
140
+ isOpen && (
141
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
142
+ React.createElement(StyledDropdown, { dropdownPosition: verticalPosition, ref: dropDownRef,
143
+ // this is to prevent known bug of Chrome when element
144
+ // loses focus on click on the scrollbar
145
+ onMouseDown: (e) => e.preventDefault() },
146
+ React.createElement(VirtualScrollList, { maxHeight: maxHeight, itemHeight: 36, itemAmount: filteredOptions.length, emptyState: () => (React.createElement(Box, { space: "xs" },
147
+ React.createElement(Text, null, emptyStateMessage || "🤷🏻‍♀️"))), itemInView: preselectedIndex, itemTemplate: (index) => {
148
+ const option = filteredOptions[index];
149
+ return (
150
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
151
+ React.createElement(StyledDropdownItem, { key: option.value, active: preselectedIndex === index || value === option.value, onMouseDown: () => {
152
+ forceChangeFakeSelect(option);
153
+ closeDropdown(true);
154
+ } },
155
+ React.createElement(Text, { weight: "bold", variant: "secondary", size: "s" }, option.label)));
156
+ } }))),
157
+ React.createElement(HiddenSelectInput, { onChange: onChange, value: fakeSelectedOption.value, ref: fakeSelectRef, autoComplete: "off" },
158
+ React.createElement("option", { value: fakeSelectedOption.value }, fakeSelectedOption.label)))));
159
+ }
160
+
161
+ export { Select };
162
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../../../../src/components/Form/Select/Select.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { FormField } from '../FormField/FormField.js';
5
+
6
+ const StyledTextarea = styled.textarea(({ theme, resize, hasError }) => ({
7
+ fontFamily: theme.variables.fontFamily.lato,
8
+ fontSize: theme.variables.size.font.text.m,
9
+ lineHeight: theme.variables.size.lineHeight.text.m,
10
+ minHeight: theme.variables.size.dimension.textarea.minHeight.m,
11
+ borderRadius: theme.variables.size.borderRadius.textarea.s,
12
+ border: "1px solid",
13
+ width: "100%",
14
+ padding: theme.variables.size.spacing.xs,
15
+ boxSizing: "border-box",
16
+ color: theme.values.color.text.secondary,
17
+ borderColor: hasError
18
+ ? theme.values.color.border.textarea.error
19
+ : theme.values.color.border.textarea.default,
20
+ backgroundColor: theme.values.color.background.textarea.default,
21
+ resize,
22
+ }));
23
+ const StyledContainer = styled.div(() => ({
24
+ width: "100%",
25
+ display: "flex",
26
+ alignItems: "center",
27
+ flexDirection: "row",
28
+ position: "relative",
29
+ zIndex: 1,
30
+ }));
31
+ function Textarea(_a) {
32
+ var { name, value, placeholder, hasError = false, onChange, onClick, onBlur, onFocus, tabIndex, areaLabel, autoComplete = "on", rows = 5, maxLength = 256, resize = "none" } = _a, rest = __rest(_a, ["name", "value", "placeholder", "hasError", "onChange", "onClick", "onBlur", "onFocus", "tabIndex", "areaLabel", "autoComplete", "rows", "maxLength", "resize"]);
33
+ return (React.createElement(FormField, Object.assign({}, rest),
34
+ React.createElement(StyledContainer, null,
35
+ React.createElement(StyledTextarea, { name: name, disabled: rest.disabled, placeholder: placeholder, hasError: hasError, onClick: onClick, onChange: onChange, onBlur: onBlur, onFocus: onFocus, "aria-label": areaLabel, tabIndex: tabIndex, autoComplete: autoComplete, rows: rows, maxLength: maxLength, defaultValue: value, resize: resize }))));
36
+ }
37
+
38
+ export { Textarea };
39
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","sources":["../../../../../../src/components/Form/Textarea/Textarea.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AA6BA,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CACpC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;AAChC,IAAA,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,IAAA,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9D,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1D,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACxC,IAAA,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS;AACxC,IAAA,WAAW,EAAE,QAAQ;UACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;UACxC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO;IAC9C,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;IAC/D,MAAM;AACP,CAAA,CAAC,CACH,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO;AACxC,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,UAAU,EAAE,QAAQ;AACpB,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,CAAC;AACV,CAAA,CAAC,CAAC,CAAC;AAEE,SAAU,QAAQ,CAAC,EAgBT,EAAA;AAhBS,IAAA,IAAA,EACvB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,GAAG,IAAI,EACnB,IAAI,GAAG,CAAC,EACR,SAAS,GAAG,GAAG,EACf,MAAM,GAAG,MAAM,EAAA,GAAA,EAED,EADX,IAAI,GAAA,MAAA,CAAA,EAAA,EAfgB,gKAgBxB,CADQ,CAAA;AAEP,IAAA,QACE,KAAA,CAAA,aAAA,CAAC,SAAS,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,IAAuB,CAAA;AACrC,QAAA,KAAA,CAAA,aAAA,CAAC,eAAe,EAAA,IAAA;AACd,YAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,EACb,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAAA,YAAA,EACJ,SAAS,EACrB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,KAAK,EACnB,MAAM,EAAE,MAAM,EAAA,CACd,CACc,CACR,EACZ;AACJ;;;;"}
@@ -0,0 +1,86 @@
1
+ import { __rest } from '../../../../node_modules/tslib/tslib.es6.js';
2
+ import React from 'react';
3
+ import styled from '@emotion/styled';
4
+ import { FormField } from '../FormField/FormField.js';
5
+ import { Inline } from '../../Inline/Inline.js';
6
+ import { Text } from '../../Typography/Text/Text.js';
7
+
8
+ /* eslint-disable react/jsx-props-no-spreading */
9
+ const StyledContainer = styled.div(({ theme, size, disabled }) => ({
10
+ display: "block",
11
+ position: "relative",
12
+ width: theme.variables.size.dimension.toggle.width[size],
13
+ height: theme.variables.size.dimension.togglePoint[size],
14
+ boxSizing: "border-box",
15
+ cursor: disabled ? "default" : "pointer",
16
+ }));
17
+ const StyledRealInput = styled.input(() => ({
18
+ opacity: 0,
19
+ height: 0,
20
+ width: 0,
21
+ position: "absolute",
22
+ }));
23
+ const StyledFakeInputInner = styled.div(({ theme, size }) => ({
24
+ width: theme.variables.size.dimension.togglePoint[size],
25
+ height: theme.variables.size.dimension.togglePoint[size],
26
+ margin: parseInt(theme.variables.size.dimension.togglePoint[size], 10) /
27
+ (size === "m" ? 4 : 2),
28
+ borderRadius: parseInt(theme.variables.size.dimension.togglePoint[size], 10) / 2,
29
+ transform: "translateX(0)",
30
+ transition: "transform 0.2s linear",
31
+ background: theme.values.color.background.togglePoint.default,
32
+ }));
33
+ const StyledFakeInput = styled.div(({ theme, size, isHighlighted }) => {
34
+ const pointMargin = parseInt(theme.variables.size.dimension.togglePoint[size], 10) /
35
+ (size === "m" ? 4 : 2);
36
+ const pointTranslateX = parseInt(theme.variables.size.dimension.toggle.width[size], 10) -
37
+ parseInt(theme.variables.size.dimension.togglePoint[size], 10) -
38
+ 2 * pointMargin -
39
+ 2;
40
+ return Object.assign(Object.assign({ boxSizing: "border-box", width: theme.variables.size.dimension.toggle.width[size], height: theme.variables.size.dimension.toggle.height[size], borderRadius: theme.variables.size.borderRadius.toggle[size], display: "flex", alignItems: "center", transition: "background-color 0.2s linear, border-color 0.2s linear", border: "1px solid", borderColor: isHighlighted
41
+ ? theme.values.color.border.toggle.highlighted
42
+ : theme.values.color.border.toggle.default, background: isHighlighted
43
+ ? theme.values.color.background.toggle.highlighted
44
+ : theme.values.color.background.toggle.default }, (size === "s" && {
45
+ marginTop: 2,
46
+ })), { "input:checked + &": {
47
+ border: "1px solid",
48
+ borderColor: theme.values.color.border.toggle.checked,
49
+ background: theme.values.color.background.toggle.checked,
50
+ [`${StyledFakeInputInner}`]: {
51
+ transform: `translateX(${pointTranslateX}px)`,
52
+ },
53
+ "&:hover": {
54
+ borderColor: theme.values.color.border.toggle.hover,
55
+ },
56
+ }, "input:disabled + &": {
57
+ pointerEvents: "none",
58
+ }, "input:focus-visible + &": {
59
+ outlineWidth: 2,
60
+ outlineStyle: "solid",
61
+ outlineColor: "Highlight",
62
+ }, "@media (-webkit-min-device-pixel-ratio: 0)": {
63
+ "input:focus-visible + &": {
64
+ outlineColor: "-webkit-focus-ring-color",
65
+ outlineStyle: "auto",
66
+ },
67
+ }, "&:hover": {
68
+ borderColor: theme.values.color.border.toggle.hover,
69
+ } });
70
+ });
71
+ function Toggle(_a) {
72
+ var { name, value = "", checked = undefined, label = "", disabled = false, size = "m", isHighlighted = false, alignItems = "left", onChange, onClick, onBlur, onFocus, "data-e2e-test-id": dataE2eTestId } = _a, rest = __rest(_a, ["name", "value", "checked", "label", "disabled", "size", "isHighlighted", "alignItems", "onChange", "onClick", "onBlur", "onFocus", "data-e2e-test-id"]);
73
+ const spacing = size === "s" ? "xs" : "m";
74
+ const labelVariant = size === "s" ? "tertiary" : "secondary";
75
+ const labelWeight = size === "s" ? "bold" : "normal";
76
+ return (React.createElement(FormField, Object.assign({ "data-e2e-test-id": dataE2eTestId }, rest, { disabled: disabled }),
77
+ React.createElement(Inline, { alignItems: alignItems, space: spacing, vAlignItems: "top", noWrap: true },
78
+ label && (React.createElement(Text, { size: size, variant: labelVariant, weight: labelWeight }, label)),
79
+ React.createElement(StyledContainer, { size: size, disabled: disabled },
80
+ React.createElement(StyledRealInput, { type: "checkbox", name: name, value: value, checked: checked, disabled: disabled, onChange: onChange, onClick: onClick, onBlur: onBlur, onFocus: onFocus }),
81
+ React.createElement(StyledFakeInput, { size: size, isHighlighted: isHighlighted },
82
+ React.createElement(StyledFakeInputInner, { size: size }))))));
83
+ }
84
+
85
+ export { Toggle };
86
+ //# sourceMappingURL=Toggle.js.map