@laerdal/life-react-components 1.4.1-dev.22.full → 1.4.1-dev.24.full

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 (36) hide show
  1. package/dist/Banners/Banner.cjs +83 -184
  2. package/dist/Banners/Banner.cjs.map +1 -1
  3. package/dist/Banners/Banner.d.ts +1 -0
  4. package/dist/Banners/Banner.js +83 -188
  5. package/dist/Banners/Banner.js.map +1 -1
  6. package/dist/Banners/styles.cjs +43 -7
  7. package/dist/Banners/styles.cjs.map +1 -1
  8. package/dist/Banners/styles.js +43 -7
  9. package/dist/Banners/styles.js.map +1 -1
  10. package/dist/Button/Button.cjs +27 -101
  11. package/dist/Button/Button.cjs.map +1 -1
  12. package/dist/Button/Button.js +27 -101
  13. package/dist/Button/Button.js.map +1 -1
  14. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  15. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  16. package/dist/Dropdown/ChipDropdownInput.cjs +2 -6
  17. package/dist/Dropdown/ChipDropdownInput.cjs.map +1 -1
  18. package/dist/Dropdown/ChipDropdownInput.js +2 -4
  19. package/dist/Dropdown/ChipDropdownInput.js.map +1 -1
  20. package/dist/Dropdown/CommonStyling.cjs +3 -17
  21. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  22. package/dist/Dropdown/CommonStyling.d.ts +0 -5
  23. package/dist/Dropdown/CommonStyling.js +3 -10
  24. package/dist/Dropdown/CommonStyling.js.map +1 -1
  25. package/dist/Dropdown/DropdownContent.cjs +18 -52
  26. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  27. package/dist/Dropdown/DropdownContent.js +19 -54
  28. package/dist/Dropdown/DropdownContent.js.map +1 -1
  29. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  30. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  31. package/dist/MenuItem/MenuItem.cjs +104 -0
  32. package/dist/MenuItem/MenuItem.cjs.map +1 -0
  33. package/dist/MenuItem/MenuItem.d.ts +21 -0
  34. package/dist/MenuItem/MenuItem.js +64 -0
  35. package/dist/MenuItem/MenuItem.js.map +1 -0
  36. package/package.json +1 -1
@@ -209,118 +209,44 @@ var Button = function Button(_ref) {
209
209
  children: children
210
210
  }), loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {})]
211
211
  });
212
- }; // Let's render button
212
+ };
213
213
 
214
+ var ButtonStyled = Primary;
214
215
 
215
216
  switch (variant) {
216
- case 'primary':
217
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Primary, _objectSpread(_objectSpread({}, renderProps), {}, {
218
- disabled: disabled,
219
- iconOnly: !children,
220
- type: type,
221
- size: size,
222
- flatEdge: flatEdge,
223
- width: width,
224
- minWidth: minWidth,
225
- "data-testid": testId,
226
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
227
- onMouseDown: _common.defaultOnMouseDownHandler,
228
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
229
- className: "button-content",
230
- children: renderContent()
231
- })
232
- }));
233
-
234
217
  case 'secondary':
235
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Secondary, _objectSpread(_objectSpread({}, renderProps), {}, {
236
- disabled: disabled,
237
- type: type,
238
- size: size,
239
- iconOnly: !children,
240
- flatEdge: flatEdge,
241
- width: width,
242
- minWidth: minWidth,
243
- "data-testid": testId,
244
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
245
- onMouseDown: _common.defaultOnMouseDownHandler,
246
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
247
- className: "button-content",
248
- children: renderContent()
249
- })
250
- }));
218
+ ButtonStyled = Secondary;
219
+ break;
251
220
 
252
221
  case 'tertiary':
253
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Tertiary, _objectSpread(_objectSpread({}, renderProps), {}, {
254
- disabled: disabled,
255
- type: type,
256
- flatEdge: flatEdge,
257
- size: size,
258
- width: width,
259
- iconOnly: !children,
260
- minWidth: minWidth,
261
- "data-testid": testId,
262
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
263
- onMouseDown: _common.defaultOnMouseDownHandler,
264
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
265
- className: "button-content",
266
- children: renderContent()
267
- })
268
- }));
222
+ ButtonStyled = Tertiary;
223
+ break;
269
224
 
270
225
  case 'correct':
271
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Correct, _objectSpread(_objectSpread({}, renderProps), {}, {
272
- disabled: disabled,
273
- type: type,
274
- size: size,
275
- iconOnly: !children,
276
- flatEdge: flatEdge,
277
- width: width,
278
- minWidth: minWidth,
279
- "data-testid": testId,
280
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
281
- onMouseDown: _common.defaultOnMouseDownHandler,
282
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
283
- className: "button-content",
284
- children: renderContent()
285
- })
286
- }));
226
+ ButtonStyled = Correct;
227
+ break;
287
228
 
288
229
  case 'critical':
289
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Critical, _objectSpread(_objectSpread({}, renderProps), {}, {
290
- disabled: disabled,
291
- flatEdge: flatEdge,
292
- iconOnly: !children,
293
- type: type,
294
- size: size,
295
- width: width,
296
- minWidth: minWidth,
297
- "data-testid": testId,
298
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
299
- onMouseDown: _common.defaultOnMouseDownHandler,
300
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
301
- className: "button-content",
302
- children: renderContent()
303
- })
304
- }));
305
-
306
- default:
307
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Primary, _objectSpread(_objectSpread({}, renderProps), {}, {
308
- flatEdge: flatEdge,
309
- disabled: disabled,
310
- iconOnly: !children,
311
- type: type,
312
- size: size,
313
- width: width,
314
- minWidth: minWidth,
315
- "data-testid": testId,
316
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
317
- onMouseDown: _common.defaultOnMouseDownHandler,
318
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
319
- className: "button-content",
320
- children: renderContent()
321
- })
322
- }));
230
+ ButtonStyled = Critical;
231
+ break;
323
232
  }
233
+
234
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ButtonStyled, _objectSpread(_objectSpread({}, renderProps), {}, {
235
+ disabled: disabled,
236
+ iconOnly: !children,
237
+ type: type,
238
+ size: size,
239
+ flatEdge: flatEdge,
240
+ width: width,
241
+ minWidth: minWidth,
242
+ "data-testid": testId,
243
+ className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
244
+ onMouseDown: _common.defaultOnMouseDownHandler,
245
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
246
+ className: "button-content",
247
+ children: renderContent()
248
+ })
249
+ }));
324
250
  };
325
251
 
326
252
  Button.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["getBorderRadius","flatEdge","radius","Primary","styled","button","props","size","Size","Large","ComponentTextStyle","Bold","colorTheme","COLORS","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","focus_25","focus","neutral_100","neutral_300","Secondary","primary_300","primary_500","Tertiary","accent1_20","primary_20","accent1_100","accent1_500","Correct","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","className","defaultOnMouseDownHandler","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n box-shadow: none !important;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n color: ${props => props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white};\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'dark' ? 'transparent' : COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary};\n color: ${props => props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500};\n }\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary};\n color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500};\n }\n }\n`;\n\nconst Correct = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'correct' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button: React.FunctionComponent<ButtonProps> = ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n // Let's render button\n switch (variant) {\n case 'primary':\n return (\n <Primary\n {...renderProps}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Primary>\n );\n case 'secondary':\n return (\n <Secondary\n {...renderProps}\n disabled={disabled}\n type={type}\n size={size}\n iconOnly={!children}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Secondary>\n );\n case 'tertiary':\n return (\n <Tertiary\n {...renderProps}\n disabled={disabled}\n type={type}\n flatEdge={flatEdge}\n size={size}\n width={width}\n iconOnly={!children}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Tertiary>\n );\n case 'correct':\n return (\n <Correct\n {...renderProps}\n disabled={disabled}\n type={type}\n size={size}\n iconOnly={!children}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Correct>\n );\n case 'critical':\n return (\n <Critical\n {...renderProps}\n disabled={disabled}\n flatEdge={flatEdge}\n iconOnly={!children}\n type={type}\n size={size}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Critical>\n );\n default:\n return (\n <Primary\n {...renderProps}\n flatEdge={flatEdge}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Primary>\n );\n }\n};\n\nexport default Button;\n"],"file":"Button.cjs"}
1
+ {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["getBorderRadius","flatEdge","radius","Primary","styled","button","props","size","Size","Large","ComponentTextStyle","Bold","colorTheme","COLORS","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","focus_25","focus","neutral_100","neutral_300","Secondary","primary_300","primary_500","Tertiary","accent1_20","primary_20","accent1_100","accent1_500","Correct","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","defaultOnMouseDownHandler","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n box-shadow: none !important;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n color: ${props => props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white};\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'dark' ? 'transparent' : COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary};\n color: ${props => props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500};\n }\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary};\n color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500};\n }\n }\n`;\n\nconst Correct = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'correct' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button: React.FunctionComponent<ButtonProps> = ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'correct':\n ButtonStyled = Correct;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n};\n\nexport default Button;\n"],"file":"Button.cjs"}
@@ -185,118 +185,44 @@ var Button = function Button(_ref) {
185
185
  children: children
186
186
  }), loading && /*#__PURE__*/_jsx(LoadingIndicator, {})]
187
187
  });
188
- }; // Let's render button
188
+ };
189
189
 
190
+ var ButtonStyled = Primary;
190
191
 
191
192
  switch (variant) {
192
- case 'primary':
193
- return /*#__PURE__*/_jsx(Primary, _objectSpread(_objectSpread({}, renderProps), {}, {
194
- disabled: disabled,
195
- iconOnly: !children,
196
- type: type,
197
- size: size,
198
- flatEdge: flatEdge,
199
- width: width,
200
- minWidth: minWidth,
201
- "data-testid": testId,
202
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
203
- onMouseDown: defaultOnMouseDownHandler,
204
- children: /*#__PURE__*/_jsx("div", {
205
- className: "button-content",
206
- children: renderContent()
207
- })
208
- }));
209
-
210
193
  case 'secondary':
211
- return /*#__PURE__*/_jsx(Secondary, _objectSpread(_objectSpread({}, renderProps), {}, {
212
- disabled: disabled,
213
- type: type,
214
- size: size,
215
- iconOnly: !children,
216
- flatEdge: flatEdge,
217
- width: width,
218
- minWidth: minWidth,
219
- "data-testid": testId,
220
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
221
- onMouseDown: defaultOnMouseDownHandler,
222
- children: /*#__PURE__*/_jsx("div", {
223
- className: "button-content",
224
- children: renderContent()
225
- })
226
- }));
194
+ ButtonStyled = Secondary;
195
+ break;
227
196
 
228
197
  case 'tertiary':
229
- return /*#__PURE__*/_jsx(Tertiary, _objectSpread(_objectSpread({}, renderProps), {}, {
230
- disabled: disabled,
231
- type: type,
232
- flatEdge: flatEdge,
233
- size: size,
234
- width: width,
235
- iconOnly: !children,
236
- minWidth: minWidth,
237
- "data-testid": testId,
238
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
239
- onMouseDown: defaultOnMouseDownHandler,
240
- children: /*#__PURE__*/_jsx("div", {
241
- className: "button-content",
242
- children: renderContent()
243
- })
244
- }));
198
+ ButtonStyled = Tertiary;
199
+ break;
245
200
 
246
201
  case 'correct':
247
- return /*#__PURE__*/_jsx(Correct, _objectSpread(_objectSpread({}, renderProps), {}, {
248
- disabled: disabled,
249
- type: type,
250
- size: size,
251
- iconOnly: !children,
252
- flatEdge: flatEdge,
253
- width: width,
254
- minWidth: minWidth,
255
- "data-testid": testId,
256
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
257
- onMouseDown: defaultOnMouseDownHandler,
258
- children: /*#__PURE__*/_jsx("div", {
259
- className: "button-content",
260
- children: renderContent()
261
- })
262
- }));
202
+ ButtonStyled = Correct;
203
+ break;
263
204
 
264
205
  case 'critical':
265
- return /*#__PURE__*/_jsx(Critical, _objectSpread(_objectSpread({}, renderProps), {}, {
266
- disabled: disabled,
267
- flatEdge: flatEdge,
268
- iconOnly: !children,
269
- type: type,
270
- size: size,
271
- width: width,
272
- minWidth: minWidth,
273
- "data-testid": testId,
274
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
275
- onMouseDown: defaultOnMouseDownHandler,
276
- children: /*#__PURE__*/_jsx("div", {
277
- className: "button-content",
278
- children: renderContent()
279
- })
280
- }));
281
-
282
- default:
283
- return /*#__PURE__*/_jsx(Primary, _objectSpread(_objectSpread({}, renderProps), {}, {
284
- flatEdge: flatEdge,
285
- disabled: disabled,
286
- iconOnly: !children,
287
- type: type,
288
- size: size,
289
- width: width,
290
- minWidth: minWidth,
291
- "data-testid": testId,
292
- className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
293
- onMouseDown: defaultOnMouseDownHandler,
294
- children: /*#__PURE__*/_jsx("div", {
295
- className: "button-content",
296
- children: renderContent()
297
- })
298
- }));
206
+ ButtonStyled = Critical;
207
+ break;
299
208
  }
209
+
210
+ return /*#__PURE__*/_jsx(ButtonStyled, _objectSpread(_objectSpread({}, renderProps), {}, {
211
+ disabled: disabled,
212
+ iconOnly: !children,
213
+ type: type,
214
+ size: size,
215
+ flatEdge: flatEdge,
216
+ width: width,
217
+ minWidth: minWidth,
218
+ "data-testid": testId,
219
+ className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
220
+ onMouseDown: defaultOnMouseDownHandler,
221
+ children: /*#__PURE__*/_jsx("div", {
222
+ className: "button-content",
223
+ children: renderContent()
224
+ })
225
+ }));
300
226
  };
301
227
 
302
228
  Button.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","focus_25","focus","neutral_100","neutral_300","Secondary","primary_300","primary_500","Tertiary","accent1_20","primary_20","accent1_100","accent1_500","Correct","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","className","role","title"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAA4B,mBAA5B;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,iBAAT,EAA4BC,iBAA5B,EAA+CC,iBAA/C,EAAkEC,kBAAlE,QAA4F,sBAA5F;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,IAAT,QAAqB,UAArB;AACA,SAAQC,yBAAR,QAAwC,WAAxC;;;;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAAgCC,MAAhC,EAAmD;AACzE,UAAOD,QAAP;AAEI,SAAK,MAAL;AACI,2BAAcC,MAAd,gBAA0BA,MAA1B;;AAEJ,SAAK,OAAL;AACI,uBAAUA,MAAV,wBAA8BA,MAA9B;;AAEJ,SAAK,MAAL;AACA;AACI,uBAAUA,MAAV;AAVR;AAYD,CAbD;;AAeA,IAAMC,OAAO,GAAGZ,MAAM,CAACa,MAAV,ykEAOG,UAACC,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqC,MAAjD;AAAA,CAPH,EAgBP,UAACF,KAAD;AAAA,SACAA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GACId,iBAAiB,CAACG,kBAAkB,CAACY,IAApB,EAA0B,CAAAH,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACa,WAAtC,GAAoDb,MAAM,CAACc,KAArF,CADrB,GAEIN,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GACAjB,iBAAiB,CAACC,kBAAkB,CAACY,IAApB,EAA0B,CAAAH,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACa,WAAtC,GAAoDb,MAAM,CAACc,KAArF,CADjB,GAEAjB,iBAAiB,CAACE,kBAAkB,CAACY,IAApB,EAA0B,CAAAH,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACa,WAAtC,GAAoDb,MAAM,CAACc,KAArF,CALrB;AAAA,CAhBO,EAuBW,UAACN,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+C,CAAAR,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACc,KAAtC,GAA8Cd,MAAM,CAACiB,OAAhH;AAAA,CAvBX,EAwBQ,UAAAT,KAAK;AAAA,SAAIL,eAAe,CAACK,KAAK,CAACJ,QAAP,EAAiB,CAAjB,CAAnB;AAAA,CAxBb,EA2BO,UAACI,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+C,CAAAR,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACc,KAAtC,GAA8Cd,MAAM,CAACiB,OAAhH;AAAA,CA3BP,EA6BA,UAACT,KAAD;AAAA,SAAWA,KAAK,CAACU,KAAjB;AAAA,CA7BA,EAgCK,UAACV,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAhCL,EAiCI,UAAAP,KAAK;AAAA,SAAIA,KAAK,CAACW,QAAV;AAAA,CAjCT,EAyCE,UAACX,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,WAA5B,GAA0CF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,UAA5B,GAAyC,UAA/F;AAAA,CAzCF,EA+CG,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACmB,MAApB,GAA6BZ,KAAK,CAACa,QAAN,GAAiB,WAAjB,GAA+B,WAA5D,GAA2Eb,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4BP,KAAK,CAACa,QAAN,GAAiB,WAAjB,GAA+B,WAA3D,GAAyE,WAAhK;AAAA,CA/CH,EAgDE,UAACb,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAhDF,EAiDG,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAjDH,EAmDI,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAnDJ,EAoDK,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CApDL,EAgEK,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAhEL,EAiEI,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACS,KAApB,GAA4B,MAA5B,GAAqCF,KAAK,CAACC,IAAN,KAAeR,IAAI,CAACc,KAApB,GAA4B,MAA5B,GAAqC,MAAtF;AAAA,CAjEJ,EAmEK,UAACP,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACiB,OAArC,GAA+CjB,MAAM,CAACc,KAAlE;AAAA,CAnEL,EA0EW,UAACN,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmD,CAAAd,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACuB,WAAtC,GAAoDvB,MAAM,CAACwB,WAA1H;AAAA,CA1EX,EA2EO,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmD,CAAAd,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACuB,WAAtC,GAAoDvB,MAAM,CAACwB,WAA1H;AAAA,CA3EP,EA4EA,UAAChB,KAAD;AAAA,SAAY,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACyB,WAAtC,GAAoDzB,MAAM,CAACc,KAAvE;AAAA,CA5EA,EAgFW,UAACN,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAAC2B,WAAtC,GAAoD3B,MAAM,CAACa,WAA1H;AAAA,CAhFX,EAiFO,UAACL,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAAC2B,WAAtC,GAAoD3B,MAAM,CAACa,WAA1H;AAAA,CAjFP,EAmFA,UAACL,KAAD;AAAA,SAAY,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACa,WAAtC,GAAoDb,MAAM,CAACc,KAAvE;AAAA,CAnFA,EA4FoBd,MAAM,CAAC4B,QA5F3B,EA4FoD5B,MAAM,CAAC6B,KA5F3D,EA6Fa,UAAArB,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmDd,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACuB,WAArC,GAAmDvB,MAAM,CAACwB,WAAjH;AAAA,CA7FlB,EA8FS,UAAAhB,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmDd,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACuB,WAArC,GAAmDvB,MAAM,CAACwB,WAAjH;AAAA,CA9Fd,EA+FE,UAAAhB,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACyB,WAArC,GAAmDzB,MAAM,CAACc,KAA9D;AAAA,CA/FP,EAyGW,UAACN,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACwB,WAArC,GAAmDxB,MAAM,CAAC8B,WAAtE;AAAA,CAzGX,EA0GA,UAACtB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACa,WAArC,GAAmDb,MAAM,CAAC+B,WAAtE;AAAA,CA1GA,EA2GO,UAACvB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACwB,WAArC,GAAmDxB,MAAM,CAAC8B,WAAtE;AAAA,CA3GP,CAAb;AA+GA,IAAME,SAAS,GAAGtC,MAAM,CAACY,OAAD,CAAT,8uCAEF,UAACE,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+C,CAAAR,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACc,KAAtC,GAA8Cd,MAAM,CAACiB,OAAhH;AAAA,CAFE,EAGK,UAACT,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+C,CAAAR,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACc,KAAtC,GAA8Cd,MAAM,CAACiB,OAAhH;AAAA,CAHL,EAMD,UAACT,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+ChB,MAAM,CAACiB,OAAlE;AAAA,CANC,EAkBF,UAACT,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmD,CAAAd,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAAC2B,WAAtC,GAAoD3B,MAAM,CAACwB,WAA1H;AAAA,CAlBE,EAmBK,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmD,CAAAd,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAAC2B,WAAtC,GAAoD3B,MAAM,CAACwB,WAA1H;AAAA,CAnBL,EAwBG,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmDtB,MAAM,CAACwB,WAAtE;AAAA,CAxBH,EA+BF,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACiC,WAAtC,GAAoDjC,MAAM,CAACa,WAA1H;AAAA,CA/BE,EAgCK,UAACL,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACiC,WAAtC,GAAoDjC,MAAM,CAACa,WAA1H;AAAA,CAhCL,EAqCG,UAACL,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD,CAAAlB,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACc,KAAtC,GAA8Cd,MAAM,CAACa,WAApH;AAAA,CArCH,EA8CF,UAACL,KAAD;AAAA,SAAY,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACwB,WAAtC,GAAoDxB,MAAM,CAAC+B,WAAvE;AAAA,CA9CE,EA+CK,UAACvB,KAAD;AAAA,SAAY,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEI,UAAP,MAAsB,MAAtB,GAA+BZ,MAAM,CAACwB,WAAtC,GAAoDxB,MAAM,CAAC8B,WAAvE;AAAA,CA/CL,EAuDkB9B,MAAM,CAAC4B,QAvDzB,EAuDkD5B,MAAM,CAAC6B,KAvDzD,EAwDW,UAAArB,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8B,aAA9B,GAA8CZ,MAAM,CAACc,KAAzD;AAAA,CAxDhB,EAyDO,UAAAN,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+CR,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACa,WAArC,GAAmDb,MAAM,CAACiB,OAA7G;AAAA,CAzDZ,EA0DA,UAAAT,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACc,KAArC,GAA6Cd,MAAM,CAACkC,WAAxD;AAAA,CA1DL,CAAf;AA+DA,IAAMC,QAAQ,GAAGzC,MAAM,CAACY,OAAD,CAAT,spCAED,UAACE,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+ChB,MAAM,CAACkC,WAAlE;AAAA,CAFC,EAOA,UAAC1B,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+ChB,MAAM,CAACiB,OAAlE;AAAA,CAPA,EAYU,UAACT,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACoC,UAArC,GAAkDpC,MAAM,CAACqC,UAArE;AAAA,CAZV,EAaD,UAAC7B,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmDtB,MAAM,CAACwB,WAAtE;AAAA,CAbC,EAcM,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACoC,UAArC,GAAkDpC,MAAM,CAACqC,UAArE;AAAA,CAdN,EAkBI,UAAC7B,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsB,WAArC,GAAmDtB,MAAM,CAACwB,WAAtE;AAAA,CAlBJ,EAyBU,UAAChB,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsC,WAArC,GAAmDtC,MAAM,CAACuB,WAAtE;AAAA,CAzBV,EA0BD,UAACf,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD1B,MAAM,CAACa,WAAtE;AAAA,CA1BC,EA2BM,UAACL,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACsC,WAArC,GAAmDtC,MAAM,CAACuB,WAAtE;AAAA,CA3BN,EA+BI,UAACf,KAAD;AAAA,SAAYA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAAC0B,WAArC,GAAmD1B,MAAM,CAACa,WAAtE;AAAA,CA/BJ,EAwCDb,MAAM,CAAC+B,WAxCN,EAkDmB/B,MAAM,CAAC4B,QAlD1B,EAkDmD5B,MAAM,CAAC6B,KAlD1D,EAmDY7B,MAAM,CAACc,KAnDnB,EAoDQ,UAAAN,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACgB,OAArC,GAA+ChB,MAAM,CAACiB,OAA1D;AAAA,CApDb,EAqDC,UAAAT,KAAK;AAAA,SAAIA,KAAK,CAACI,UAAN,KAAqB,MAArB,GAA8BZ,MAAM,CAACuC,WAArC,GAAmDvC,MAAM,CAACkC,WAA9D;AAAA,CArDN,CAAd;AA0DA,IAAMM,OAAO,GAAG9C,MAAM,CAACY,OAAD,CAAT,4tBAGON,MAAM,CAACyC,WAHd,EAIWzC,MAAM,CAACyC,WAJlB,EAQOzC,MAAM,CAAC0C,WARd,EASW1C,MAAM,CAAC0C,WATlB,EAaO1C,MAAM,CAAC0C,WAbd,EAcW1C,MAAM,CAAC0C,WAdlB,EAkBO1C,MAAM,CAAC2C,WAlBd,EAmBW3C,MAAM,CAAC2C,WAnBlB,EAwBW3C,MAAM,CAAC8B,WAxBlB,EAyBA9B,MAAM,CAAC+B,WAzBP,EA0BO/B,MAAM,CAAC8B,WA1Bd,CAAb;AA8BA,IAAMc,QAAQ,GAAGlD,MAAM,CAACY,OAAD,CAAT,4tBAGMN,MAAM,CAAC6C,YAHb,EAIU7C,MAAM,CAAC6C,YAJjB,EAQM7C,MAAM,CAAC8C,YARb,EASU9C,MAAM,CAAC8C,YATjB,EAaM9C,MAAM,CAAC8C,YAbb,EAcU9C,MAAM,CAAC8C,YAdjB,EAkBM9C,MAAM,CAAC+C,YAlBb,EAmBU/C,MAAM,CAAC+C,YAnBjB,EAwBU/C,MAAM,CAAC8B,WAxBjB,EAyBD9B,MAAM,CAAC+B,WAzBN,EA0BM/B,MAAM,CAAC8B,WA1Bb,CAAd;;AA6CA,IAAMkB,MAA4C,GAAG,SAA/CA,MAA+C,OAY/C;AAAA,2BAXJC,QAWI;AAAA,MAXJA,QAWI,8BAXO,EAWP;AAAA,0BAVJC,OAUI;AAAA,MAVJA,OAUI,6BAVM,SAUN;AAAA,uBATJC,IASI;AAAA,MATJA,IASI,0BATG,QASH;AAAA,uBARJ1C,IAQI;AAAA,MARJA,IAQI,0BARGR,IAAI,CAACmB,MAQR;AAAA,wBAPJF,KAOI;AAAA,MAPJA,KAOI,2BAPI,MAOJ;AAAA,2BANJC,QAMI;AAAA,MANJA,QAMI,8BANO,MAMP;AAAA,MALJiC,MAKI,QALJA,MAKI;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJjD,QAGI,QAHJA,QAGI;AAAA,MAFJkD,IAEI,QAFJA,IAEI;AAAA,MADD9C,KACC;;AACJ;AACA,MAAQ+C,OAAR,GAAoC/C,KAApC,CAAQ+C,OAAR;AAAA,MAAoBC,WAApB,4BAAoChD,KAApC;;AAEA,MAAMiD,aAAa,GAAG,SAAhBA,aAAgB;AAAA,wBACpB;AAAA,iBACGH,IAAI,iBAAI;AAAM,QAAA,SAAS,EAAE,CAACL,QAAQ,GAAG,cAAH,GAAoB,EAA7B,KAAoCM,OAAO,GAAG,cAAH,GAAoB,MAA/D,CAAjB;AAAA,kBAA0FD;AAA1F,QADX,EAEGL,QAAQ,iBAAI;AAAM,QAAA,SAAS,EAAEM,OAAO,GAAG,eAAH,GAAqB,OAA7C;AAAA,kBAAuDN;AAAvD,QAFf,EAGGM,OAAO,iBAAI,KAAC,gBAAD,KAHd;AAAA,MADoB;AAAA,GAAtB,CAJI,CAYJ;;;AACA,UAAQL,OAAR;AACE,SAAK,SAAL;AACE,0BACE,KAAC,OAAD,kCACMM,WADN;AAEE,QAAA,QAAQ,EAAEH,QAFZ;AAGE,QAAA,QAAQ,EAAE,CAACJ,QAHb;AAIE,QAAA,IAAI,EAAEE,IAJR;AAKE,QAAA,IAAI,EAAE1C,IALR;AAME,QAAA,QAAQ,EAAEL,QANZ;AAOE,QAAA,KAAK,EAAEc,KAPT;AAQE,QAAA,QAAQ,EAAEC,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;;AAgBF,SAAK,WAAL;AACE,0BACE,KAAC,SAAD,kCACMD,WADN;AAEE,QAAA,QAAQ,EAAEH,QAFZ;AAGE,QAAA,IAAI,EAAEF,IAHR;AAIE,QAAA,IAAI,EAAE1C,IAJR;AAKE,QAAA,QAAQ,EAAE,CAACwC,QALb;AAME,QAAA,QAAQ,EAAE7C,QANZ;AAOE,QAAA,KAAK,EAAEc,KAPT;AAQE,QAAA,QAAQ,EAAEC,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;;AAgBF,SAAK,UAAL;AACE,0BACE,KAAC,QAAD,kCACMD,WADN;AAEE,QAAA,QAAQ,EAAEH,QAFZ;AAGE,QAAA,IAAI,EAAEF,IAHR;AAIE,QAAA,QAAQ,EAAE/C,QAJZ;AAKE,QAAA,IAAI,EAAEK,IALR;AAME,QAAA,KAAK,EAAES,KANT;AAOE,QAAA,QAAQ,EAAE,CAAC+B,QAPb;AAQE,QAAA,QAAQ,EAAE9B,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;;AAgBF,SAAK,SAAL;AACE,0BACE,KAAC,OAAD,kCACMD,WADN;AAEE,QAAA,QAAQ,EAAEH,QAFZ;AAGE,QAAA,IAAI,EAAEF,IAHR;AAIE,QAAA,IAAI,EAAE1C,IAJR;AAKE,QAAA,QAAQ,EAAE,CAACwC,QALb;AAME,QAAA,QAAQ,EAAE7C,QANZ;AAOE,QAAA,KAAK,EAAEc,KAPT;AAQE,QAAA,QAAQ,EAAEC,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;;AAgBF,SAAK,UAAL;AACE,0BACE,KAAC,QAAD,kCACMD,WADN;AAEE,QAAA,QAAQ,EAAEH,QAFZ;AAGE,QAAA,QAAQ,EAAEjD,QAHZ;AAIE,QAAA,QAAQ,EAAE,CAAC6C,QAJb;AAKE,QAAA,IAAI,EAAEE,IALR;AAME,QAAA,IAAI,EAAE1C,IANR;AAOE,QAAA,KAAK,EAAES,KAPT;AAQE,QAAA,QAAQ,EAAEC,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;;AAgBF;AACE,0BACE,KAAC,OAAD,kCACMD,WADN;AAEE,QAAA,QAAQ,EAAEpD,QAFZ;AAGE,QAAA,QAAQ,EAAEiD,QAHZ;AAIE,QAAA,QAAQ,EAAE,CAACJ,QAJb;AAKE,QAAA,IAAI,EAAEE,IALR;AAME,QAAA,IAAI,EAAE1C,IANR;AAOE,QAAA,KAAK,EAAES,KAPT;AAQE,QAAA,QAAQ,EAAEC,QARZ;AASE,uBAAaiC,MATf;AAUE,QAAA,SAAS,EAAE5C,KAAK,CAAC+C,OAAN,GAAgB,mBAAmB/C,KAAK,CAACkD,SAAzC,GAAqD,MAAMlD,KAAK,CAACkD,SAV9E;AAWE,QAAA,WAAW,EAAExD,yBAXf;AAAA,+BAYE;AAAK,UAAA,SAAS,EAAC,gBAAf;AAAA,oBAAiCuD,aAAa;AAA9C;AAZF,SADF;AAvFJ;AAwGD,CAjID;;;AAdEP,EAAAA,O,aAAU,S,EAAY,W,EAAc,U,EAAa,S,EAAY,U;AAE7DS,EAAAA,I,4BAAO,Q;AACPC,EAAAA,K;AAEAhD,EAAAA,U,aAAa,M,EAAS,M;AACtBM,EAAAA,K,4BAAQ,M;AACRqC,EAAAA,O;AACAH,EAAAA,M;AACAE,EAAAA,I;AACAnC,EAAAA,Q;AACAE,EAAAA,Q;;AAsIF,eAAe2B,MAAf","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n box-shadow: none !important;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n color: ${props => props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white};\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'dark' ? 'transparent' : COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary};\n color: ${props => props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500};\n }\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary};\n color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500};\n }\n }\n`;\n\nconst Correct = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'correct' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button: React.FunctionComponent<ButtonProps> = ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n // Let's render button\n switch (variant) {\n case 'primary':\n return (\n <Primary\n {...renderProps}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Primary>\n );\n case 'secondary':\n return (\n <Secondary\n {...renderProps}\n disabled={disabled}\n type={type}\n size={size}\n iconOnly={!children}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Secondary>\n );\n case 'tertiary':\n return (\n <Tertiary\n {...renderProps}\n disabled={disabled}\n type={type}\n flatEdge={flatEdge}\n size={size}\n width={width}\n iconOnly={!children}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Tertiary>\n );\n case 'correct':\n return (\n <Correct\n {...renderProps}\n disabled={disabled}\n type={type}\n size={size}\n iconOnly={!children}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Correct>\n );\n case 'critical':\n return (\n <Critical\n {...renderProps}\n disabled={disabled}\n flatEdge={flatEdge}\n iconOnly={!children}\n type={type}\n size={size}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Critical>\n );\n default:\n return (\n <Primary\n {...renderProps}\n flatEdge={flatEdge}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </Primary>\n );\n }\n};\n\nexport default Button;\n"],"file":"Button.js"}
1
+ {"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","focus_25","focus","neutral_100","neutral_300","Secondary","primary_300","primary_500","Tertiary","accent1_20","primary_20","accent1_100","accent1_500","Correct","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n box-shadow: none !important;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_700 : props.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700};\n color: ${props => props.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white};\n }\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:focus:not(:focus-visible),\n &:focus:not(:focus-visible) > div.button-content {\n outline: none !important;\n }\n\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n \n &:focus,\n &.focus-state {\n outline: none;\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${props => props.colorTheme === 'dark' ? 'transparent' : COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.primary};\n color: ${props => props.colorTheme === 'dark' ? COLORS.white : COLORS.primary_500};\n }\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n\n &:focus,\n &.focus-state {\n outline: none;\n\n div {\n outline: none;\n box-shadow: 0px 4px 12px ${COLORS.focus_25}, 0px 0px 8px ${COLORS.focus} !important;\n background-color: ${COLORS.white};\n border-color: ${props => props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary};\n color: ${props => props.colorTheme === 'teal' ? COLORS.accent1_500 : COLORS.primary_500};\n }\n }\n`;\n\nconst Correct = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:focus > div.button-content,\n &.focus-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'correct' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button: React.FunctionComponent<ButtonProps> = ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'correct':\n ButtonStyled = Correct;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n};\n\nexport default Button;\n"],"file":"Button.js"}