@laerdal/life-react-components 6.0.0-dev.27.full → 6.0.0-dev.30

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 (50) hide show
  1. package/README.md +42 -0
  2. package/dist/Button/Button.cjs +469 -0
  3. package/dist/Button/Button.cjs.map +1 -0
  4. package/dist/Button/Button.d.ts +70 -0
  5. package/dist/Button/Button.js +461 -0
  6. package/dist/Button/Button.js.map +1 -0
  7. package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
  8. package/dist/Card/VerticalCard/Card.cjs +187 -0
  9. package/dist/Card/VerticalCard/Card.cjs.map +1 -0
  10. package/dist/Card/VerticalCard/Card.d.ts +25 -0
  11. package/dist/Card/VerticalCard/Card.js +178 -0
  12. package/dist/Card/VerticalCard/Card.js.map +1 -0
  13. package/dist/Card/VerticalCard/CardBottomSection.cjs +261 -0
  14. package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -0
  15. package/dist/Card/VerticalCard/CardBottomSection.d.ts +53 -0
  16. package/dist/Card/VerticalCard/CardBottomSection.js +252 -0
  17. package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -0
  18. package/dist/Card/VerticalCard/CardMiddleSection.cjs +145 -0
  19. package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -0
  20. package/dist/Card/VerticalCard/CardMiddleSection.d.ts +42 -0
  21. package/dist/Card/VerticalCard/CardMiddleSection.js +136 -0
  22. package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -0
  23. package/dist/Card/VerticalCard/CardTopSection.cjs +165 -0
  24. package/dist/Card/VerticalCard/CardTopSection.cjs.map +1 -0
  25. package/dist/Card/VerticalCard/CardTopSection.d.ts +45 -0
  26. package/dist/Card/VerticalCard/CardTopSection.js +156 -0
  27. package/dist/Card/VerticalCard/CardTopSection.js.map +1 -0
  28. package/dist/Card/__tests__/Card.test.tsx +146 -0
  29. package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs +0 -1
  30. package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -1
  31. package/dist/Footer/Components/FooterNewsletterAndSocialSection.js +0 -1
  32. package/dist/Footer/Components/FooterNewsletterAndSocialSection.js.map +1 -1
  33. package/dist/Footer/Components/FooterTop.cjs.map +1 -1
  34. package/dist/Footer/Components/FooterTop.js.map +1 -1
  35. package/dist/InputFields/RichTextField.cjs +3 -2
  36. package/dist/InputFields/RichTextField.cjs.map +1 -1
  37. package/dist/InputFields/RichTextField.d.ts +4 -5
  38. package/dist/InputFields/RichTextField.js +2 -1
  39. package/dist/InputFields/RichTextField.js.map +1 -1
  40. package/dist/InputFields/TextField.cjs +2 -5
  41. package/dist/InputFields/TextField.cjs.map +1 -1
  42. package/dist/InputFields/TextField.d.ts +0 -8
  43. package/dist/InputFields/TextField.js +2 -5
  44. package/dist/InputFields/TextField.js.map +1 -1
  45. package/dist/InputFields/styling.cjs +1 -4
  46. package/dist/InputFields/styling.cjs.map +1 -1
  47. package/dist/InputFields/styling.d.ts +0 -1
  48. package/dist/InputFields/styling.js +1 -4
  49. package/dist/InputFields/styling.js.map +1 -1
  50. package/package.json +148 -152
package/README.md CHANGED
@@ -7,11 +7,53 @@
7
7
  - Add the package to your project:
8
8
  - `cd /path/to/your-app`
9
9
  - `yarn add @laerdal/life-react-components` or `npm add @laerdal/life-react-components`
10
+
11
+ - Required providers:
12
+ - There are several providers required for Life React JS components to work as expected.
13
+ You need to wrap your APP with all of them:
14
+
15
+ - ThemeProvider
16
+ This is default ThemeProvider from styled-components package. It should define the theme.
17
+ 'Theme' object should be provided, even it if is just blank object.
18
+ Theme object can contain name of the theme. Acceptable values: dark, light, rqi_dark, rqi_light.
19
+ Also ThemeProvider can be used to override colors of the theme.
20
+
21
+ - ToastProvider
22
+ Provider with Toast related context. Wrap your whole app with this
23
+ if you want to have ability to show/hide Toasts using Life React JS
24
+
25
+ - NavigationProvider
26
+ NavigationProvider - provides library components with navigation, routing and active-route functionality.
27
+ It has 3 functions:
28
+
29
+ navigate?: (path: string, isExternal: boolean) => void;
30
+ Navigate to a different path. If navigation is happening to the external source, please set 'isExternal' to true.
31
+
32
+ currentPath?: string | undefined;
33
+ Current path in the navigation context.
34
+
35
+ isActiveRoute?: (url: string, exact: boolean) => boolean;
36
+ Check if a route is active, if 'exact' flag is set then we should check for exact match, and not just part of the route
37
+
38
+ If you are still using React Router and don't want to remove it from list of your dependencies, you can find implementation of CustomNavigationProvider
39
+ at https://github.com/Laerdal-Medical/dcs-life-react-js/blob/dev/libraries/react-components/.storybook/custom-navigation-provider.tsx <- this implementation is used at
40
+ Storybook.
41
+
42
+ - LifeGlobalStyles
43
+ React component that should be placed in the App.tsx of your project.
44
+ This component will include coloring for chosen theme and add global styles like fonts and others.
45
+
46
+
47
+
48
+
49
+ After adding all providers defined about you can include components or icons and use them.
50
+
10
51
  - Import components in your code:
11
52
  - `import { TextButton } from '@laerdal/life-react-components'`
12
53
  - or icons:
13
54
  - `import { ChevronLeft, ChevronRight } from '@laerdal/life-react-components'`
14
55
 
56
+
15
57
  ## How to use a local version of @laerdal/life-react-components
16
58
 
17
59
  - Pull the latest version of @laerdal/life-react-components from Bitbucket.
@@ -0,0 +1,469 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.TextButtonTertiaryStyled = exports.TextButtonSecondaryStyled = exports.TextButtonPrimaryStyled = exports.TextButtonPositiveStyled = exports.TextButtonCriticalStyled = exports.TextButtonContentContainer = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
+ var _LoadingIndicator = require("../LoadingIndicator");
14
+ var _styles = require("../styles");
15
+ var _types = require("../types");
16
+ var _common = require("../common");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["children", "variant", "type", "size", "colorTheme", "invertFocus", "width", "testId", "disabled", "flatEdge", "icon", "iconPosition"],
19
+ _excluded2 = ["loading"];
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ const getBorderRadius = (flatEdge, radius) => {
25
+ switch (flatEdge) {
26
+ case 'left':
27
+ return `0px ${radius}px ${radius}px 0px`;
28
+ case 'right':
29
+ return `${radius}px 0px 0px ${radius}px`;
30
+ case 'none':
31
+ default:
32
+ return `${radius}px`;
33
+ }
34
+ };
35
+ const TextButtonContentContainer = exports.TextButtonContentContainer = _styledComponents.default.div`
36
+ min-width: 64px;
37
+ `;
38
+ const TextButtonBaseStyled = _styledComponents.default.button``;
39
+ const TextButtonPrimaryStyled = exports.TextButtonPrimaryStyled = (0, _styledComponents.default)(TextButtonBaseStyled)`
40
+ border: none;
41
+ background-color: transparent;
42
+ cursor: pointer;
43
+ padding: 0;
44
+ margin: 0;
45
+ position: relative;
46
+ box-sizing: border-box;
47
+ &.loading-state {
48
+ cursor: wait;
49
+ }
50
+ ${TextButtonContentContainer} {
51
+ ${props => props.$size === _types.Size.Large ? (0, _styles.ComponentLStyling)(_styles.ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_800', props.theme) : _styles.COLORS.generateToken({
52
+ componentType: 'text',
53
+ isOnFill: true,
54
+ defaultVariant: 'primary'
55
+ }, props.theme)) : props.$size === _types.Size.Small ? (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_800', props.theme) : _styles.COLORS.generateToken({
56
+ componentType: 'text',
57
+ isOnFill: true,
58
+ defaultVariant: 'primary'
59
+ }, props.theme)) : (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_800', props.theme) : _styles.COLORS.generateToken({
60
+ componentType: 'text',
61
+ isOnFill: true,
62
+ defaultVariant: 'primary'
63
+ }, props.theme))};
64
+
65
+ background-color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
66
+ componentType: 'bg-fill',
67
+ defaultVariant: 'primary'
68
+ }, props.theme)};
69
+ border-radius: ${props => getBorderRadius(props.$flatEdge, 8)};
70
+
71
+ width: ${props => props.$width};
72
+ position: relative;
73
+
74
+ min-height: ${props => props.$size === _types.Size.Large ? '56px' : props.$size === _types.Size.Small ? '32px' : '40px'};
75
+
76
+ box-sizing: border-box;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ padding: ${props => props.$size === _types.Size.Large ? '14px 16px' : props.$size === _types.Size.Small ? '6px 8px' : '8px 12px'};
81
+
82
+ span.icon:not(.loading) {
83
+ pointer-events: none;
84
+ }
85
+
86
+ span.loading {
87
+ opacity: 0;
88
+ }
89
+
90
+ .icon {
91
+ margin: ${props => props.$size === _types.Size.Medium ? props.$iconOnly ? '-2px -8px' : '' : props.$size === _types.Size.Small ? props.$iconOnly ? '-2px -6px' : '' : ''};
92
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
93
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
94
+ svg {
95
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'} !important;
96
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'} !important;
97
+ }
98
+ }
99
+
100
+ .label {
101
+ margin: 0 4px;
102
+ }
103
+
104
+ div {
105
+ position: absolute;
106
+ width: 100%;
107
+ svg {
108
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
109
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
110
+ path {
111
+ fill: ${props => props.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary', props.theme) : _styles.COLORS.generateToken({
112
+ componentType: 'icon',
113
+ isOnFill: true,
114
+ defaultVariant: 'primary'
115
+ }, props.theme)};
116
+ }
117
+ }
118
+ }
119
+ }
120
+ &:hover > ${TextButtonContentContainer},
121
+ &.hover-state > ${TextButtonContentContainer} {
122
+ background-color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_100', props.theme) : _styles.COLORS.generateToken({
123
+ componentType: 'bg-fill',
124
+ state: 'hover',
125
+ defaultVariant: 'primary'
126
+ }, props.theme)};
127
+ color: ${props => props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_600', props.theme) : _styles.COLORS.generateToken({
128
+ componentType: 'text',
129
+ isOnFill: true,
130
+ defaultVariant: 'primary'
131
+ }, props.theme)};
132
+ }
133
+ &:active > ${TextButtonContentContainer},
134
+ &.active-state > ${TextButtonContentContainer} {
135
+ background-color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_200', props.theme) : _styles.COLORS.generateToken({
136
+ componentType: 'bg-fill',
137
+ state: 'active',
138
+ defaultVariant: 'primary'
139
+ }, props.theme)};
140
+ color: ${props => props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_800', props.theme) : _styles.COLORS.generateToken({
141
+ componentType: 'text',
142
+ isOnFill: true,
143
+ defaultVariant: 'primary'
144
+ }, props.theme)};
145
+ }
146
+
147
+ &:focus,
148
+ &.focus-state {
149
+ ${props => props.$invertFocus || props.$invertFocus === undefined && props.$colorTheme === 'dark' ? _styles.invertedFocusStyles : _styles.focusStyles}
150
+ }
151
+ &:disabled,
152
+ &.disabled-state {
153
+ cursor: not-allowed;
154
+ }
155
+ &:disabled > ${TextButtonContentContainer},
156
+ &.disabled-state > ${TextButtonContentContainer} {
157
+ pointer-events: none;
158
+ background-color: ${props => props.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_700', props.theme) : _styles.COLORS.generateToken({
159
+ componentType: 'bg-fill',
160
+ state: 'disabled'
161
+ }, props.theme)};
162
+ color: ${props => props.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_800', props.theme) : _styles.COLORS.generateToken({
163
+ componentType: 'text',
164
+ isOnFill: true,
165
+ state: 'disabled'
166
+ }, props.theme)};
167
+ }
168
+ `;
169
+ const TextButtonSecondaryStyled = exports.TextButtonSecondaryStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
170
+ ${TextButtonContentContainer} {
171
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
172
+ componentType: 'text',
173
+ defaultVariant: 'primary'
174
+ }, props.theme)};
175
+ background-color: transparent;
176
+ div svg path {
177
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : _styles.COLORS.generateToken({
178
+ componentType: 'icon',
179
+ defaultVariant: 'primary'
180
+ }, props.theme)};
181
+ }
182
+ box-shadow: inset 0 0 0 2px ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
183
+ componentType: 'border',
184
+ defaultVariant: 'primary'
185
+ }, props.theme)};
186
+
187
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
188
+ }
189
+
190
+ &:hover > ${TextButtonContentContainer},
191
+ &.hover-state > ${TextButtonContentContainer} {
192
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_200', props.theme) : _styles.COLORS.generateToken({
193
+ componentType: 'text',
194
+ state: 'hover',
195
+ defaultVariant: 'primary'
196
+ }, props.theme)};
197
+ box-shadow: inset 0 0 0 2px ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_200', props.theme) : _styles.COLORS.generateToken({
198
+ componentType: 'border',
199
+ state: 'hover',
200
+ defaultVariant: 'primary'
201
+ }, props.theme)};
202
+
203
+ background-color: transparent;
204
+ div {
205
+ svg {
206
+ path {
207
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : _styles.COLORS.generateToken({
208
+ componentType: 'text',
209
+ state: 'hover',
210
+ defaultVariant: 'primary'
211
+ }, props.theme)};
212
+ }
213
+ }
214
+ }
215
+ }
216
+ &:active > ${TextButtonContentContainer},
217
+ &.active-state > ${TextButtonContentContainer} {
218
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_300', props.theme) : _styles.COLORS.generateToken({
219
+ componentType: 'text',
220
+ state: 'active',
221
+ defaultVariant: 'primary'
222
+ }, props.theme)};
223
+ box-shadow: inset 0 0 0 2px ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_300', props.theme) : _styles.COLORS.generateToken({
224
+ componentType: 'border',
225
+ state: 'active',
226
+ defaultVariant: 'primary'
227
+ }, props.theme)};
228
+
229
+ background-color: transparent;
230
+ div {
231
+ svg {
232
+ path {
233
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
234
+ componentType: 'text',
235
+ state: 'hover',
236
+ defaultVariant: 'primary'
237
+ }, props.theme)};
238
+ }
239
+ }
240
+ }
241
+ }
242
+
243
+ &:disabled > ${TextButtonContentContainer},
244
+ &.disabled-state > ${TextButtonContentContainer} {
245
+ background-color: transparent;
246
+ color: ${props => props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_700', props.theme) : _styles.COLORS.generateToken({
247
+ componentType: 'text',
248
+ state: 'disabled'
249
+ }, props.theme)};
250
+ box-shadow: inset 0 0 0 2px ${props => props?.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_700', props.theme) : _styles.COLORS.generateToken({
251
+ componentType: 'border',
252
+ state: 'disabled'
253
+ }, props.theme)};
254
+ }
255
+ `;
256
+ const TextButtonTertiaryStyled = exports.TextButtonTertiaryStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
257
+ ${TextButtonContentContainer} {
258
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
259
+ componentType: 'text',
260
+ defaultVariant: 'primary'
261
+ }, props.theme)};
262
+ background-color: transparent;
263
+
264
+ div svg path {
265
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
266
+ componentType: 'text',
267
+ defaultVariant: 'primary'
268
+ }, props.theme)};
269
+ }
270
+
271
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
272
+ }
273
+
274
+ &:hover > ${TextButtonContentContainer},
275
+ &.hover-state > ${TextButtonContentContainer} {
276
+ background-color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_20', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_700', props.theme) : _styles.COLORS.generateToken({
277
+ componentType: 'bg-surface',
278
+ state: 'hover'
279
+ }, props.theme)};
280
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
281
+ componentType: 'text',
282
+ defaultVariant: 'primary'
283
+ }, props.theme)};
284
+
285
+ div {
286
+ svg {
287
+ path {
288
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_700', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
289
+ componentType: 'text',
290
+ defaultVariant: 'primary'
291
+ }, props.theme)};
292
+ }
293
+ }
294
+ }
295
+ }
296
+ &:active > ${TextButtonContentContainer},
297
+ &.active-state > ${TextButtonContentContainer} {
298
+ background-color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_100', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('primary_600', props.theme) : _styles.COLORS.generateToken({
299
+ componentType: 'bg-surface',
300
+ state: 'active'
301
+ }, props.theme)};
302
+ color: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
303
+ componentType: 'text',
304
+ defaultVariant: 'primary'
305
+ }, props.theme)};
306
+
307
+ div {
308
+ svg {
309
+ path {
310
+ fill: ${props => props.$colorTheme === 'teal' ? _styles.COLORS.getColor('accent1_800', props.theme) : props.$colorTheme === 'dark' ? _styles.COLORS.getColor('white', props.theme) : _styles.COLORS.generateToken({
311
+ componentType: 'text',
312
+ defaultVariant: 'primary'
313
+ }, props.theme)};
314
+ }
315
+ }
316
+ }
317
+ }
318
+
319
+ &:disabled > ${TextButtonContentContainer},
320
+ &.disabled-state > ${TextButtonContentContainer} {
321
+ background-color: transparent !important;
322
+ color: ${props => _styles.COLORS.generateToken({
323
+ componentType: 'text',
324
+ isOnFill: true,
325
+ state: 'disabled'
326
+ }, props.theme)};
327
+ border-color: transparent !important;
328
+ }
329
+ `;
330
+ const TextButtonPositiveStyled = exports.TextButtonPositiveStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
331
+ ${TextButtonContentContainer} {
332
+ color: white;
333
+ background-color: ${props => _styles.COLORS.getColor('positive_500', props.theme)};
334
+ }
335
+ &:hover > ${TextButtonContentContainer},
336
+ &.hover-state > ${TextButtonContentContainer} {
337
+ background-color: ${props => _styles.COLORS.getColor('positive_700', props.theme)};
338
+ }
339
+ &:active > ${TextButtonContentContainer},
340
+ &.active-state > ${TextButtonContentContainer} {
341
+ background-color: ${props => _styles.COLORS.getColor('positive_800', props.theme)};
342
+ }
343
+
344
+ &:disabled > ${TextButtonContentContainer},
345
+ &.disabled-state > ${TextButtonContentContainer} {
346
+ background-color: ${props => _styles.COLORS.getColor('neutral_100', props.theme)};
347
+ color: ${props => _styles.COLORS.getColor('neutral_300', props.theme)};
348
+ }
349
+ `;
350
+ const TextButtonCriticalStyled = exports.TextButtonCriticalStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
351
+ ${TextButtonContentContainer} {
352
+ color: white;
353
+ background-color: ${props => _styles.COLORS.generateToken({
354
+ componentType: 'bg-fill',
355
+ defaultVariant: 'critical'
356
+ }, props.theme)};
357
+ }
358
+ &:hover > ${TextButtonContentContainer},
359
+ &.hover-state > ${TextButtonContentContainer} {
360
+ background-color: ${props => _styles.COLORS.generateToken({
361
+ componentType: 'bg-fill',
362
+ state: 'hover',
363
+ defaultVariant: 'critical'
364
+ }, props.theme)};
365
+ }
366
+ &:active > ${TextButtonContentContainer},
367
+ &.active-state > ${TextButtonContentContainer} {
368
+ background-color: ${props => _styles.COLORS.generateToken({
369
+ componentType: 'bg-fill',
370
+ state: 'active',
371
+ defaultVariant: 'critical'
372
+ }, props.theme)};
373
+ }
374
+
375
+ &:disabled > ${TextButtonContentContainer},
376
+ &.disabled-state > ${TextButtonContentContainer} {
377
+ background-color: ${props => _styles.COLORS.generateToken({
378
+ componentType: 'bg-fill',
379
+ state: 'disabled'
380
+ }, props.theme)};
381
+ color: ${props => _styles.COLORS.generateToken({
382
+ componentType: 'text',
383
+ isOnFill: true,
384
+ state: 'disabled'
385
+ }, props.theme)};
386
+ }
387
+ `;
388
+ /**
389
+ * TextButton component
390
+ */
391
+ const TextButton = /*#__PURE__*/React.forwardRef((_ref, ref) => {
392
+ let {
393
+ children = '',
394
+ variant = 'primary',
395
+ type = 'button',
396
+ size = _types.Size.Medium,
397
+ colorTheme,
398
+ invertFocus,
399
+ width = 'auto',
400
+ testId,
401
+ disabled,
402
+ flatEdge,
403
+ icon,
404
+ iconPosition = 'left'
405
+ } = _ref,
406
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
407
+ // Let's filter out properties that we don't need to render.
408
+ const {
409
+ loading
410
+ } = props,
411
+ renderProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
412
+ const theme = (0, _styledComponents.useTheme)();
413
+ const renderIcon = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
414
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
415
+ className: (children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon'),
416
+ children: icon
417
+ })
418
+ });
419
+ const renderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
420
+ children: [icon && iconPosition == 'left' && renderIcon(), children && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
421
+ className: loading ? 'label loading' : 'label',
422
+ children: children
423
+ }), icon && iconPosition == 'right' && renderIcon(), loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {})]
424
+ });
425
+ let TextButtonStyled = TextButtonPrimaryStyled;
426
+ switch (variant) {
427
+ case 'secondary':
428
+ TextButtonStyled = TextButtonSecondaryStyled;
429
+ break;
430
+ case 'tertiary':
431
+ TextButtonStyled = TextButtonTertiaryStyled;
432
+ break;
433
+ case 'positive':
434
+ TextButtonStyled = TextButtonPositiveStyled;
435
+ break;
436
+ case 'critical':
437
+ TextButtonStyled = TextButtonCriticalStyled;
438
+ break;
439
+ }
440
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextButtonStyled, _objectSpread(_objectSpread({}, renderProps), {}, {
441
+ $size: size,
442
+ $colorTheme: colorTheme,
443
+ $invertFocus: invertFocus,
444
+ ref: ref,
445
+ disabled: disabled,
446
+ $iconOnly: !children,
447
+ type: type,
448
+ $flatEdge: flatEdge,
449
+ $width: width,
450
+ "data-testid": testId,
451
+ className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
452
+ onMouseDown: _common.defaultOnMouseDownHandler,
453
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TextButtonContentContainer, {
454
+ children: renderContent()
455
+ })
456
+ }));
457
+ });
458
+ TextButton.propTypes = {
459
+ variant: _propTypes.default.oneOf(['primary', 'secondary', 'tertiary', 'positive', 'critical']),
460
+ colorTheme: _propTypes.default.oneOf(['teal', 'dark']),
461
+ invertFocus: _propTypes.default.bool,
462
+ width: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.string]),
463
+ loading: _propTypes.default.bool,
464
+ testId: _propTypes.default.string,
465
+ icon: _propTypes.default.node,
466
+ iconPosition: _propTypes.default.oneOf(['left', 'right'])
467
+ };
468
+ var _default = exports.default = TextButton;
469
+ //# sourceMappingURL=Button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.cjs","names":["React","_interopRequireWildcard","require","_styledComponents","_LoadingIndicator","_styles","_types","_common","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","getBorderRadius","flatEdge","radius","TextButtonContentContainer","exports","styled","div","TextButtonBaseStyled","button","TextButtonPrimaryStyled","props","$size","Size","Large","ComponentLStyling","ComponentTextStyle","Bold","$colorTheme","COLORS","getColor","theme","generateToken","componentType","isOnFill","defaultVariant","Small","ComponentSStyling","ComponentMStyling","$flatEdge","$width","Medium","$iconOnly","state","$invertFocus","undefined","invertedFocusStyles","focusStyles","TextButtonSecondaryStyled","TextButtonTertiaryStyled","TextButtonPositiveStyled","TextButtonCriticalStyled","TextButton","forwardRef","_ref","ref","children","variant","type","size","colorTheme","invertFocus","width","testId","disabled","icon","iconPosition","_objectWithoutProperties2","loading","renderProps","useTheme","renderIcon","jsx","Fragment","className","renderContent","jsxs","LoadingIndicator","TextButtonStyled","onMouseDown","defaultOnMouseDownHandler","propTypes","_propTypes","oneOf","bool","oneOfType","string","node","_default"],"sources":["../../src/Button/Button.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport styled, { css, useTheme } from 'styled-components';\r\nimport { LoadingIndicator } from '../LoadingIndicator';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles';\r\nimport { COLORS, focusStyles, invertedFocusStyles } from '../styles';\r\nimport { Size, Testable } from '../types';\r\nimport { defaultOnMouseDownHandler } from '../common';\r\n\r\nconst getBorderRadius = (flatEdge: string | undefined, radius: number) => {\r\n switch (flatEdge) {\r\n case 'left':\r\n return `0px ${radius}px ${radius}px 0px`;\r\n\r\n case 'right':\r\n return `${radius}px 0px 0px ${radius}px`;\r\n\r\n case 'none':\r\n default:\r\n return `${radius}px`;\r\n }\r\n};\r\n\r\nexport const TextButtonContentContainer = styled.div`\r\n min-width: 64px;\r\n`;\r\n\r\nconst TextButtonBaseStyled = styled.button<{$iconOnly: boolean; $size: Size; $colorTheme: 'teal' | 'dark' | undefined; $flatEdge: string | undefined; $width: string; $invertFocus: boolean | undefined; }>``;\r\n\r\nexport const TextButtonPrimaryStyled = styled(TextButtonBaseStyled)`\r\n border: none;\r\n background-color: transparent;\r\n cursor: pointer;\r\n padding: 0;\r\n margin: 0;\r\n position: relative;\r\n box-sizing: border-box; \r\n &.loading-state {\r\n cursor: wait;\r\n }\r\n ${TextButtonContentContainer} {\r\n ${(props) =>\r\n props.$size === Size.Large\r\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? COLORS.getColor('primary_800', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))\r\n : props.$size === Size.Small\r\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? COLORS.getColor('primary_800', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))\r\n : ComponentMStyling(ComponentTextStyle.Bold, props?.$colorTheme === 'dark' ? COLORS.getColor('primary_800', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))};\r\n\r\n background-color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : \r\n COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'primary' }, props.theme))};\r\n border-radius: ${(props) => getBorderRadius(props.$flatEdge, 8)};\r\n\r\n width: ${(props) => props.$width};\r\n position: relative;\r\n\r\n min-height: ${(props) => (props.$size === Size.Large ? '56px' : props.$size === Size.Small ? '32px' : '40px')};\r\n\r\n box-sizing: border-box;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: ${(props) => (props.$size === Size.Large ? '14px 16px' : props.$size === Size.Small ? '6px 8px' : '8px 12px')};\r\n\r\n span.icon:not(.loading) {\r\n pointer-events: none;\r\n }\r\n\r\n span.loading {\r\n opacity: 0;\r\n }\r\n\r\n .icon {\r\n margin: ${(props) => (props.$size === Size.Medium ? props.$iconOnly ? '-2px -8px' : '' : (props.$size === Size.Small ? props.$iconOnly ? '-2px -6px' : '' : '' ))};\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n svg {\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')} !important;\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')} !important;\r\n }\r\n }\r\n\r\n .label {\r\n margin: 0 4px;\r\n }\r\n\r\n div {\r\n position: absolute;\r\n width: 100%;\r\n svg {\r\n height: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n width: ${(props) => (props.$size === Size.Large ? '28px' : props.$size === Size.Small ? '20px' : '24px')};\r\n path {\r\n fill: ${(props) => (props.$colorTheme === 'dark' ? COLORS.getColor('primary', props.theme) : COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme))};\r\n }\r\n }\r\n }\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_100', props.theme) : COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'primary' }, props.theme))};\r\n color: ${(props) => (props?.$colorTheme === 'dark' ? COLORS.getColor('primary_600', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_200', props.theme) : COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'primary' }, props.theme))};\r\n color: ${(props) => (props?.$colorTheme === 'dark' ? COLORS.getColor('primary_800', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, defaultVariant: 'primary' }, props.theme))};\r\n }\r\n\r\n &:focus,\r\n &.focus-state {\r\n ${(props) => (props.$invertFocus || (props.$invertFocus === undefined && props.$colorTheme === 'dark') ? invertedFocusStyles : focusStyles)}\r\n }\r\n &:disabled,\r\n &.disabled-state {\r\n cursor: not-allowed;\r\n }\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n pointer-events: none;\r\n background-color: ${(props) => (props.$colorTheme === 'dark' ? COLORS.getColor('primary_700', props.theme) : COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme))};\r\n color: ${(props) => (props.$colorTheme === 'dark' ? COLORS.getColor('primary_800', props.theme) : COLORS.generateToken({ componentType: 'text', isOnFill: true, state: 'disabled' }, props.theme))};\r\n }\r\n`;\r\n\r\nexport const TextButtonSecondaryStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n background-color: transparent;\r\n div svg path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : COLORS.generateToken({ componentType: 'icon', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n box-shadow: inset 0 0 0 2px ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'border', defaultVariant: 'primary' }, props.theme))};\r\n \r\n padding: ${(props) => (props.$size === Size.Large ? '12px 16px' : props.$size === Size.Small ? '4px 8px' : '6px 12px')};\r\n }\r\n\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_200', props.theme) : COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme))};\r\n box-shadow: inset 0 0 0 2px ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_200', props.theme) : COLORS.generateToken({ componentType: 'border', state:'hover', defaultVariant: 'primary' }, props.theme))};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n }\r\n }\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_300', props.theme) : COLORS.generateToken({ componentType: 'text', state:'active', defaultVariant: 'primary' }, props.theme))};\r\n box-shadow: inset 0 0 0 2px ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('primary_300', props.theme) : COLORS.generateToken({ componentType: 'border', state:'active', defaultVariant: 'primary' }, props.theme))};\r\n \r\n background-color: transparent;\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props?.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', state:'hover', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: transparent;\r\n color: ${(props) => (props?.$colorTheme === 'dark' ? COLORS.getColor('primary_700', props.theme) : COLORS.generateToken({ componentType: 'text', state:'disabled' }, props.theme))};\r\n box-shadow: inset 0 0 0 2px ${(props) => (props?.$colorTheme === 'dark' ? COLORS.getColor('primary_700', props.theme) : COLORS.generateToken({ componentType: 'border', state:'disabled' }, props.theme))};\r\n }\r\n`;\r\n\r\nexport const TextButtonTertiaryStyled = styled(TextButtonPrimaryStyled)`\r\n${TextButtonContentContainer} {\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n background-color: transparent;\r\n\r\n div svg path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n\r\n padding: ${(props) => (props.$size === Size.Large ? '12px 16px' : props.$size === Size.Small ? '4px 8px' : '6px 12px')};\r\n }\r\n\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_20', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('primary_700', props.theme) : COLORS.generateToken({ componentType: 'bg-surface', state:'hover' }, props.theme))};\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_700', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n }\r\n }\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_100', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('primary_600', props.theme) : COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme))};\r\n color: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n\r\n div {\r\n svg {\r\n path {\r\n fill: ${(props) => (props.$colorTheme === 'teal' ? COLORS.getColor('accent1_800', props.theme) : props.$colorTheme === 'dark' ? COLORS.getColor('white', props.theme) : COLORS.generateToken({ componentType: 'text', defaultVariant: 'primary' }, props.theme))};\r\n }\r\n }\r\n }\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: transparent !important;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill:true, state:'disabled' }, props.theme)};\r\n border-color: transparent !important;\r\n }\r\n`;\r\n\r\nexport const TextButtonPositiveStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: white;\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('positive_700', props.theme)};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('positive_800', props.theme)};\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)};\r\n color: ${props => COLORS.getColor('neutral_300', props.theme)};\r\n }\r\n`;\r\n\r\nexport const TextButtonCriticalStyled = styled(TextButtonPrimaryStyled)`\r\n ${TextButtonContentContainer} {\r\n color: white;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n &:hover > ${TextButtonContentContainer},\r\n &.hover-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state:'hover', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n &:active > ${TextButtonContentContainer},\r\n &.active-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state:'active', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n\r\n &:disabled > ${TextButtonContentContainer},\r\n &.disabled-state > ${TextButtonContentContainer} {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)};\r\n color: ${props => COLORS.generateToken({ componentType: 'text', isOnFill: true, state: 'disabled' }, props.theme)}; \r\n }\r\n`;\r\n\r\nexport interface TextButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /** Look and feel variant of the component. Defaults to 'primary'. */\r\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\r\n /** Can be used in order to remove rounded corners on right or left edge of the button. Used by 'DualFunctionButton'. Defaults to 'undefined' */\r\n flatEdge?: 'right' | 'left' | 'none' | undefined;\r\n /** Size of the component. Small, Medium or Large. Defaults to 'medium' */\r\n size?: Size.Small | Size.Medium | Size.Large;\r\n /** Color theme altering of the component. By default there is no altering applied. */\r\n colorTheme?: 'teal' | 'dark';\r\n /** Allows using inverted colors for outlining focus rect. Shown when component focused by keyboard. */\r\n invertFocus?: boolean;\r\n /** Can be used to set custom value for width style. Value is set for 'ButtonContent' container. */\r\n width?: 'auto' | string;\r\n /** If set, then 'opacity' of children container will be set to 0, and loading indicator will be shown. */\r\n loading?: boolean;\r\n /** TestId. Will be set to the top level button component. */\r\n testId?: string;\r\n /** Icon that will be shown on the left of the children. */\r\n icon?: React.ReactNode;\r\n /** Icon position in the button. Defaults to 'left' */\r\n iconPosition?: 'left' | 'right';\r\n}\r\n\r\n/**\r\n * TextButton component\r\n */\r\nconst TextButton = React.forwardRef<HTMLButtonElement, TextButtonProps>(\r\n ({ children = '', variant = 'primary', type = 'button', size = Size.Medium, colorTheme, invertFocus, width: width = 'auto', testId, disabled, flatEdge, icon, iconPosition = 'left', ...props }, ref) => {\r\n // Let's filter out properties that we don't need to render.\r\n const { loading, ...renderProps } = props;\r\n\r\n const theme = useTheme();\r\n const renderIcon = () => (\r\n <><span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span></>\r\n )\r\n\r\n const renderContent = () => (\r\n <>\r\n {icon && iconPosition == 'left' && renderIcon()}\r\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\r\n {icon && iconPosition == 'right' && renderIcon()}\r\n {loading && <LoadingIndicator />}\r\n </>\r\n );\r\n\r\n let TextButtonStyled = TextButtonPrimaryStyled;\r\n switch (variant) {\r\n case 'secondary':\r\n TextButtonStyled = TextButtonSecondaryStyled;\r\n break;\r\n case 'tertiary':\r\n TextButtonStyled = TextButtonTertiaryStyled;\r\n break;\r\n case 'positive':\r\n TextButtonStyled = TextButtonPositiveStyled;\r\n break;\r\n case 'critical':\r\n TextButtonStyled = TextButtonCriticalStyled;\r\n break;\r\n }\r\n\r\n return (\r\n <TextButtonStyled\r\n {...renderProps}\r\n $size={size}\r\n $colorTheme={colorTheme} \r\n $invertFocus={invertFocus} \r\n ref={ref}\r\n disabled={disabled}\r\n $iconOnly={!children}\r\n type={type}\r\n $flatEdge={flatEdge}\r\n $width={width}\r\n data-testid={testId}\r\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\r\n onMouseDown={defaultOnMouseDownHandler}>\r\n <TextButtonContentContainer>{renderContent()}</TextButtonContentContainer>\r\n </TextButtonStyled>\r\n );\r\n },\r\n);\r\n\r\nexport default TextButton;\r\n"],"mappings":"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","ignoreList":[]}