@mrshmllw/smores-react 3.0.5 → 3.0.6

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 (52) hide show
  1. package/dist/Accordion/Accordion.d.ts +2 -2
  2. package/dist/Button/LegacyButton.d.ts +15 -0
  3. package/dist/Button/LegacyButton.js +50 -0
  4. package/dist/Button/LegacyButton.js.map +1 -0
  5. package/dist/ConfirmationRadioButtons/Confirmation.d.ts +17 -0
  6. package/dist/ConfirmationRadioButtons/Confirmation.js +100 -0
  7. package/dist/ConfirmationRadioButtons/Confirmation.js.map +1 -0
  8. package/dist/ConfirmationRadioButtons/Confirmation.stories.d.ts +21 -0
  9. package/dist/ConfirmationRadioButtons/Confirmation.stories.js +76 -0
  10. package/dist/ConfirmationRadioButtons/Confirmation.stories.js.map +1 -0
  11. package/dist/ConfirmationRadioButtons/Container.d.ts +2 -0
  12. package/dist/ConfirmationRadioButtons/Container.js +8 -0
  13. package/dist/ConfirmationRadioButtons/Container.js.map +1 -0
  14. package/dist/ConfirmationRadioButtons/RadioButtonStyled.d.ts +17 -0
  15. package/dist/ConfirmationRadioButtons/RadioButtonStyled.js +41 -0
  16. package/dist/ConfirmationRadioButtons/RadioButtonStyled.js.map +1 -0
  17. package/dist/ConfirmationRadioButtons/__tests__/Confirmation.d.ts +1 -0
  18. package/dist/ConfirmationRadioButtons/__tests__/Confirmation.js +8 -0
  19. package/dist/ConfirmationRadioButtons/__tests__/Confirmation.js.map +1 -0
  20. package/dist/ConfirmationRadioButtons/index.d.ts +1 -0
  21. package/dist/ConfirmationRadioButtons/index.js +2 -0
  22. package/dist/ConfirmationRadioButtons/index.js.map +1 -0
  23. package/dist/Datepicker/DatesList.js +1 -1
  24. package/dist/Datepicker/DatesList.js.map +1 -1
  25. package/dist/Message/Message.d.ts +21 -0
  26. package/dist/Message/Message.js +45 -0
  27. package/dist/Message/Message.js.map +1 -0
  28. package/dist/Message/Message.stories.d.ts +13 -0
  29. package/dist/Message/Message.stories.js +38 -0
  30. package/dist/Message/Message.stories.js.map +1 -0
  31. package/dist/Message/__tests__/Message.d.ts +1 -0
  32. package/dist/Message/__tests__/Message.js +26 -0
  33. package/dist/Message/__tests__/Message.js.map +1 -0
  34. package/dist/Message/index.d.ts +1 -0
  35. package/dist/Message/index.js +2 -0
  36. package/dist/Message/index.js.map +1 -0
  37. package/dist/RadioButton/Container.d.ts +2 -0
  38. package/dist/RadioButton/Container.js +9 -0
  39. package/dist/RadioButton/Container.js.map +1 -0
  40. package/dist/RadioButton/RadioButton.d.ts +10 -0
  41. package/dist/RadioButton/RadioButton.js +68 -0
  42. package/dist/RadioButton/RadioButton.js.map +1 -0
  43. package/dist/RadioButton/RadioButton.stories.d.ts +15 -0
  44. package/dist/RadioButton/RadioButton.stories.js +29 -0
  45. package/dist/RadioButton/RadioButton.stories.js.map +1 -0
  46. package/dist/RadioButton/__tests__/RadioButton.d.ts +1 -0
  47. package/dist/RadioButton/__tests__/RadioButton.js +13 -0
  48. package/dist/RadioButton/__tests__/RadioButton.js.map +1 -0
  49. package/dist/RadioButton/index.d.ts +1 -0
  50. package/dist/RadioButton/index.js +2 -0
  51. package/dist/RadioButton/index.js.map +1 -0
  52. package/package.json +1 -1
@@ -5,9 +5,9 @@ export type AccordionProps = {
5
5
  subTitle?: string;
6
6
  filledBackground?: boolean;
7
7
  borderTop?: boolean;
8
- borderColor?: 'oatmeal' | 'custard' | 'cream';
8
+ borderColor?: 'oatmeal' | 'custard' | 'cream' | 'coconut';
9
9
  fullBorder?: boolean;
10
- backgroundColor?: 'oatmeal' | 'custard' | 'cream';
10
+ backgroundColor?: 'oatmeal' | 'custard' | 'cream' | 'coconut';
11
11
  onToggle?: (isOpen: boolean) => void;
12
12
  children: ReactNode;
13
13
  defaultIsOpen?: boolean;
@@ -0,0 +1,15 @@
1
+ import React, { FC, ReactNode } from 'react';
2
+ import { Color } from '../theme';
3
+ type Props = {
4
+ children: ReactNode;
5
+ id?: string;
6
+ className?: string;
7
+ color?: Color;
8
+ block?: boolean;
9
+ inverted?: boolean;
10
+ disabled?: boolean;
11
+ outlined?: boolean;
12
+ handleClick: (e: React.FormEvent<HTMLButtonElement>) => void;
13
+ };
14
+ export declare const LegacyButton: FC<Props>;
15
+ export {};
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import styled, { css } from 'styled-components';
3
+ import { theme } from '../theme';
4
+ export const LegacyButton = ({ children, id, className = '', color = 'secondary', block = false, inverted = false, disabled = false, outlined = false, handleClick, }) => (React.createElement(Container, { id: id, className: className, color: color, block: block, inverted: inverted, disabled: disabled, outlined: outlined, onClick: handleClick }, children));
5
+ const Container = styled.button(({ block, color, inverted, outlined }) => css `
6
+ position: relative;
7
+ display: inline-block;
8
+ box-sizing: border-box;
9
+ border: none;
10
+ border-radius: 8px;
11
+ font-size: 16px;
12
+ padding: 18px 16px 14px;
13
+ outline: none;
14
+ cursor: pointer;
15
+ width: ${block ? '100%' : 'auto'};
16
+ background-color: ${theme.colors[color]};
17
+ color: ${theme.colors.white};
18
+ font-weight: ${theme.font.weight.medium};
19
+
20
+ &:hover:not([disabled]) {
21
+ background-color: ${theme.colors[color]};
22
+ }
23
+ &:active:not([disabled]) {
24
+ background-color: ${theme.colors[color]};
25
+ }
26
+ &:disabled {
27
+ opacity: 0.5;
28
+ cursor: not-allowed;
29
+ }
30
+
31
+ ${(inverted || outlined) &&
32
+ css `
33
+ background-color: transparent;
34
+ border: 1px solid ${outlined ? theme.colors.outline : 'transparent'};
35
+ color: ${outlined ? theme.colors.secondary : theme.colors[color]};
36
+
37
+ &:hover:not([disabled]) {
38
+ background-color: ${theme.colors.background};
39
+ }
40
+ &:active:not([disabled]) {
41
+ background-color: ${theme.colors.background};
42
+ }
43
+ `};
44
+
45
+ @media (min-width: 768px) {
46
+ padding: 16px 16px 15px;
47
+ font-size: 16px;
48
+ }
49
+ `);
50
+ //# sourceMappingURL=LegacyButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyButton.js","sourceRoot":"","sources":["../../src/Button/LegacyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAC5C,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAS,KAAK,EAAE,MAAM,UAAU,CAAA;AA+BvC,MAAM,CAAC,MAAM,YAAY,GAAc,CAAC,EACtC,QAAQ,EACR,EAAE,EACF,SAAS,GAAG,EAAE,EACd,KAAK,GAAG,WAAW,EACnB,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,oBAAC,SAAS,IACR,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,IAEnB,QAAQ,CACC,CACb,CAAA;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;;;;;aAUlC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;wBACZ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9B,KAAK,CAAC,MAAM,CAAC,KAAK;mBACZ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;;;0BAGjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;;0BAGnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;;;;;;MAOvC,CAAC,QAAQ,IAAI,QAAQ,CAAC;IACxB,GAAG,CAAA;;0BAEmB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa;eAC1D,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;;;4BAG1C,KAAK,CAAC,MAAM,CAAC,UAAU;;;4BAGvB,KAAK,CAAC,MAAM,CAAC,UAAU;;KAE9C;;;;;;GAMF,CACF,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { FC, FocusEvent, ReactElement } from 'react';
2
+ import { MarginProps } from '../utils/space';
3
+ export type ConfirmationProps = {
4
+ onChange(value?: boolean): void;
5
+ checked?: boolean;
6
+ id?: string;
7
+ error?: boolean;
8
+ errorMsg?: string;
9
+ label?: string;
10
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
11
+ sublabel?: string | ReactElement;
12
+ yesLabel?: string | ReactElement;
13
+ noLabel?: string | ReactElement;
14
+ required?: boolean;
15
+ disabled?: boolean;
16
+ } & MarginProps;
17
+ export declare const Confirmation: FC<ConfirmationProps>;
@@ -0,0 +1,100 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import styled, { css } from 'styled-components';
14
+ import { theme } from '../theme';
15
+ import { Box } from '../Box';
16
+ import { Text } from '../Text';
17
+ import { RadioButton } from './RadioButtonStyled';
18
+ import { useUniqueId } from '../utils/id';
19
+ import { useDeprecatedWarning } from '../utils/deprecated';
20
+ export const Confirmation = (props) => {
21
+ const { checked, onChange, id: idProp, error = false, errorMsg = '', label, onBlur, sublabel, yesLabel = 'Yes', noLabel = 'No', required = false, disabled = false } = props, marginProps = __rest(props, ["checked", "onChange", "id", "error", "errorMsg", "label", "onBlur", "sublabel", "yesLabel", "noLabel", "required", "disabled"]);
22
+ useDeprecatedWarning({
23
+ title: 'Confirmation',
24
+ message: 'The Confirmation component has been deprecated. Please use the new RadioGroup component instead.',
25
+ componentProps: props,
26
+ });
27
+ const id = useUniqueId(idProp);
28
+ return (React.createElement(ConfirmationWrapper, Object.assign({}, marginProps),
29
+ (label || sublabel) && (React.createElement(TextWrapper, null,
30
+ label && (React.createElement(SectionHeadingText, { tag: "h3" },
31
+ label,
32
+ required && React.createElement(Asterisk, null, "*"))),
33
+ sublabel && (React.createElement(Text, { tag: "p", typo: "base-small", color: "subtext" }, sublabel)))),
34
+ React.createElement(RadioButtonGroupWrapper, null,
35
+ React.createElement(RadioButtonGroup, null,
36
+ React.createElement(RadioButtonWrapper, { checked: checked === true, error: error, disabled: disabled },
37
+ React.createElement(RadioButton, { id: id, label: yesLabel, checked: checked === true, onChange: () => onChange(true), value: id, onBlur: onBlur, disabled: disabled })),
38
+ React.createElement(RadioButtonWrapper, { checked: checked === false, error: error, disabled: disabled },
39
+ React.createElement(RadioButton, { id: `${id}-1`, label: noLabel, checked: checked === false, onChange: () => onChange(false), value: `${id}-1`, onBlur: onBlur, disabled: disabled }))),
40
+ error && React.createElement(ErrorBox, null, errorMsg))));
41
+ };
42
+ const RadioButtonGroupWrapper = styled.div `
43
+ display: flex;
44
+ flex-direction: column;
45
+ `;
46
+ const RadioButtonGroup = styled.div `
47
+ display: flex;
48
+ flex-direction: row;
49
+ `;
50
+ const getColor = (checked, error) => {
51
+ if (error) {
52
+ return `2px solid ${theme.colors.error}`;
53
+ }
54
+ else if (checked) {
55
+ return `2px solid ${theme.colors.secondary}`;
56
+ }
57
+ else {
58
+ return 'none';
59
+ }
60
+ };
61
+ const RadioButtonWrapper = styled.div `
62
+ background-color: ${({ checked }) => !checked && `${theme.colors.background}`};
63
+ border: ${({ checked, error }) => getColor(checked, error)};
64
+ margin-right: 10px;
65
+ width: 139px;
66
+ display: flex;
67
+ align-items: center;
68
+ height: 56px;
69
+ padding-left: 12px;
70
+ border-radius: 5px;
71
+ font-weight: bold;
72
+ ${({ disabled }) => disabled &&
73
+ css `
74
+ border-color: ${theme.colors.secondary};
75
+ opacity: 0.5;
76
+ `}
77
+ `;
78
+ const ErrorBox = styled.span `
79
+ margin-top: 7px;
80
+ margin-left: 12px;
81
+ font-size: 12px;
82
+ color: ${theme.colors.error};
83
+ `;
84
+ const ConfirmationWrapper = styled(Box) `
85
+ display: flex;
86
+ flex-direction: column;
87
+ `;
88
+ const SectionHeadingText = styled(Text) `
89
+ font-weight: bold;
90
+ `;
91
+ const TextWrapper = styled.div `
92
+ display: flex;
93
+ flex-direction: column;
94
+ margin-bottom: 8px;
95
+ `;
96
+ const Asterisk = styled.span `
97
+ font-size: 14px;
98
+ color: ${theme.colors.error};
99
+ `;
100
+ //# sourceMappingURL=Confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirmation.js","sourceRoot":"","sources":["../../src/ConfirmationRadioButtons/Confirmation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { ConfirmationProps } from './Confirmation';
3
+ declare const _default: {
4
+ title: string;
5
+ component: React.FC<ConfirmationProps>;
6
+ argTypes: {
7
+ onChange: {
8
+ action: string;
9
+ };
10
+ };
11
+ };
12
+ export default _default;
13
+ export declare const Default: any;
14
+ export declare const WithError: any;
15
+ export declare const WithSublabel: any;
16
+ export declare const WorkingExample: any;
17
+ export declare const WithCustomLabel: any;
18
+ export declare const WithNoLabel: any;
19
+ export declare const Required: any;
20
+ export declare const RequiredWithLongLabel: any;
21
+ export declare const Disabled: any;
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import { noop } from '../utils/noop';
3
+ import { Confirmation } from './Confirmation';
4
+ import { Container } from './Container';
5
+ export default {
6
+ title: 'Confirmation Radio Button',
7
+ component: Confirmation,
8
+ argTypes: { onChange: { action: 'clicked' } },
9
+ };
10
+ const Template = (props) => React.createElement(Confirmation, Object.assign({}, props));
11
+ export const Default = Template.bind({});
12
+ Default.args = {
13
+ id: 'radioButton',
14
+ onChange: noop,
15
+ checked: false,
16
+ label: 'Do you like marshmallows?',
17
+ };
18
+ export const WithError = Template.bind({});
19
+ WithError.args = {
20
+ id: 'radioButton',
21
+ onChange: noop,
22
+ checked: undefined,
23
+ label: 'Do you like marshmallows?',
24
+ error: true,
25
+ errorMsg: 'This field is required.',
26
+ };
27
+ export const WithSublabel = Template.bind({});
28
+ WithSublabel.args = {
29
+ id: 'radioButton',
30
+ onChange: noop,
31
+ checked: undefined,
32
+ label: 'Do you like marshmallows?',
33
+ sublabel: 'This includes smores and hot chocolate topped with marshmallows.',
34
+ };
35
+ const ContainerTemplate = () => React.createElement(Container, null);
36
+ export const WorkingExample = ContainerTemplate.bind({});
37
+ export const WithCustomLabel = Template.bind({});
38
+ WithCustomLabel.args = {
39
+ id: 'radioButton',
40
+ onChange: noop,
41
+ checked: undefined,
42
+ label: 'Do you like marshmallows?',
43
+ yesLabel: 'Correct',
44
+ };
45
+ export const WithNoLabel = Template.bind({});
46
+ WithNoLabel.args = {
47
+ id: 'radioButton',
48
+ onChange: noop,
49
+ checked: undefined,
50
+ yesLabel: 'Yes',
51
+ };
52
+ export const Required = Template.bind({});
53
+ Required.args = {
54
+ id: 'radioButton',
55
+ label: 'Do you like ice cream?',
56
+ onChange: noop,
57
+ checked: undefined,
58
+ required: true,
59
+ };
60
+ export const RequiredWithLongLabel = Template.bind({});
61
+ RequiredWithLongLabel.args = {
62
+ id: 'radioButton',
63
+ label: 'This is a really long label to test the placement of the required asterisk. Do you like ice cream, pie, marshmallows, smores, cupcakes, cookies, and muffins?',
64
+ onChange: noop,
65
+ checked: undefined,
66
+ required: true,
67
+ };
68
+ export const Disabled = Template.bind({});
69
+ Disabled.args = {
70
+ id: 'radioButton',
71
+ label: 'Do you like marshmallows?',
72
+ onChange: noop,
73
+ checked: true,
74
+ disabled: true,
75
+ };
76
+ //# sourceMappingURL=Confirmation.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirmation.stories.js","sourceRoot":"","sources":["../../src/ConfirmationRadioButtons/Confirmation.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Container: () => JSX.Element;
@@ -0,0 +1,8 @@
1
+ import React, { useState } from 'react';
2
+ import { Confirmation } from './Confirmation';
3
+ export const Container = () => {
4
+ const [checked, setChecked] = useState(undefined);
5
+ return (React.createElement("form", null,
6
+ React.createElement(Confirmation, { id: "radioButton", onChange: (selection) => setChecked(selection), checked: checked, label: 'Do you like marshmallows?', error: checked === undefined, errorMsg: "This field is required." })));
7
+ };
8
+ //# sourceMappingURL=Container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/ConfirmationRadioButtons/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAA;IAEtE,OAAO,CACL;QACE,oBAAC,YAAY,IACX,EAAE,EAAC,aAAa,EAChB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAC9C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,2BAA2B,EAClC,KAAK,EAAE,OAAO,KAAK,SAAS,EAC5B,QAAQ,EAAC,yBAAyB,GAClC,CACG,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { FC, ChangeEvent, FocusEvent, ReactElement } from 'react';
2
+ export interface FakeInput {
3
+ checked?: boolean;
4
+ error?: boolean;
5
+ disabled?: boolean;
6
+ }
7
+ type RadioButtonProps = {
8
+ id: string;
9
+ label: string | ReactElement;
10
+ checked?: boolean;
11
+ value: string;
12
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
13
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
14
+ disabled?: boolean;
15
+ };
16
+ export declare const RadioButton: FC<RadioButtonProps>;
17
+ export {};
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { theme } from '../theme';
4
+ import { Box } from '../Box';
5
+ export const RadioButton = ({ id, label, checked, value, onChange, onBlur, disabled = false, }) => (React.createElement(Box, { flex: true, alignItems: "center" },
6
+ React.createElement(RadioInput, { id: id, type: "radio", checked: checked, value: value, onChange: onChange, onBlur: onBlur, disabled: disabled }),
7
+ React.createElement(RadioLabel, { htmlFor: id },
8
+ React.createElement(FakeInput, { checked: checked }),
9
+ React.createElement(Text, null, label))));
10
+ const FakeInput = styled.div `
11
+ width: 24px;
12
+ height: 24px;
13
+ border-radius: 50%;
14
+ background-color: ${theme.colors.white};
15
+ margin-right: 10px;
16
+ border: ${({ checked }) => checked
17
+ ? `8px solid ${theme.colors.secondary}`
18
+ : `1px solid ${theme.colors.secondary}`};
19
+ `;
20
+ const RadioInput = styled.input `
21
+ position: absolute;
22
+ opacity: 0;
23
+ height: 0;
24
+ width: 0;
25
+ `;
26
+ const RadioLabel = styled.label `
27
+ font-family: 'Gordita', sans-serif;
28
+ text-transform: none;
29
+ font-size: 16px;
30
+ line-height: 17px;
31
+ color: ${theme.colors.secondary};
32
+ margin-bottom: 0;
33
+ display: flex;
34
+ cursor: pointer;
35
+ `;
36
+ // needed because the text is top aligned in its viewbox
37
+ const Text = styled.span `
38
+ position: relative;
39
+ bottom: -5px;
40
+ `;
41
+ //# sourceMappingURL=RadioButtonStyled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButtonStyled.js","sourceRoot":"","sources":["../../src/ConfirmationRadioButtons/RadioButtonStyled.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AACxE,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAkB5B,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAChD,EAAE,EACF,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,GAAG,KAAK,GACC,EAAE,EAAE,CAAC,CACtB,oBAAC,GAAG,IAAC,IAAI,QAAC,UAAU,EAAC,QAAQ;IAC3B,oBAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,GAClB;IACF,oBAAC,UAAU,IAAC,OAAO,EAAE,EAAE;QACrB,oBAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI;QAC/B,oBAAC,IAAI,QAAE,KAAK,CAAQ,CACT,CACT,CACP,CAAA;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAW;;;;sBAIjB,KAAK,CAAC,MAAM,CAAC,KAAK;;YAE5B,CAAC,EAAE,OAAO,EAAa,EAAE,EAAE,CACnC,OAAO;IACL,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IACvC,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;CAC5C,CAAA;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;CAK9B,CAAA;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;WAKpB,KAAK,CAAC,MAAM,CAAC,SAAS;;;;CAIhC,CAAA;AAED,wDAAwD;AACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;;;CAGvB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import { Confirmation } from '../Confirmation';
4
+ test('renders', () => {
5
+ const { container } = render(React.createElement(Confirmation, null));
6
+ expect(container.firstChild).toMatchSnapshot();
7
+ });
8
+ //# sourceMappingURL=Confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Confirmation.js","sourceRoot":"","sources":["../../../src/ConfirmationRadioButtons/__tests__/Confirmation.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IACnB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,OAAG,CAAC,CAAA;IAC9C,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAA;AAChD,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export { Confirmation } from './Confirmation';
@@ -0,0 +1,2 @@
1
+ export { Confirmation } from './Confirmation';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ConfirmationRadioButtons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -18,7 +18,7 @@ export const DatesList = ({ items, handleDateSelect, showDayLabels, }) => {
18
18
  Array(getBlankDaysCount(items[0].date))
19
19
  .fill(null)
20
20
  .map((_, index) => (React.createElement(ListButton, { key: `blankItem-${index}`, disabled: true }))),
21
- items.map((item, i) => (React.createElement(ListButton, { key: i, disabled: item.disabled, className: `ListButton ${item.active ? 'active' : ''}`, onClick: () => handleDateSelect(item.date), onKeyDown: (e) => {
21
+ items.map((item, i) => (React.createElement(ListButton, { key: i, type: "button", disabled: item.disabled, className: `ListButton ${item.active ? 'active' : ''}`, onClick: () => handleDateSelect(item.date), onKeyDown: (e) => {
22
22
  if (e.key === 'Enter') {
23
23
  handleDateSelect(item.date);
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatesList.js","sourceRoot":"","sources":["../../src/Datepicker/DatesList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatesList.js","sourceRoot":"","sources":["../../src/Datepicker/DatesList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { FC, ReactNode } from 'react';
2
+ type BorderProps = {
3
+ hasBorder?: false;
4
+ borderColor?: never;
5
+ } | {
6
+ hasBorder: true;
7
+ borderColor: string;
8
+ };
9
+ export type MessageProps = {
10
+ className?: string;
11
+ children: ReactNode;
12
+ type?: 'info' | 'warning' | 'warning-bubble' | string;
13
+ alignIcon?: 'center' | 'flex-start' | 'flex-end';
14
+ backgroundColor?: string;
15
+ sizeSmall?: boolean;
16
+ } & BorderProps;
17
+ /**
18
+ * @deprecated Use Support Message instead
19
+ */
20
+ export declare const Message: FC<MessageProps>;
21
+ export {};
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import styled, { css } from 'styled-components';
3
+ import { Box } from '../Box';
4
+ import { Icon } from '../Icon';
5
+ import { theme } from '../theme';
6
+ import { useDeprecatedWarning } from '../utils/deprecated';
7
+ /**
8
+ * @deprecated Use Support Message instead
9
+ */
10
+ export const Message = ({ className, children, type = 'info', alignIcon = 'center', backgroundColor, sizeSmall, hasBorder, borderColor, }) => {
11
+ useDeprecatedWarning({
12
+ title: 'Legacy Message component',
13
+ message: "You're using the legacy Message component. Please use the new Support Message component.",
14
+ });
15
+ return (React.createElement(Wrapper, { className: className, type: type, backgroundColor: backgroundColor, sizeSmall: sizeSmall, hasBorder: hasBorder, borderColor: borderColor },
16
+ React.createElement(IconWrapper, { alignIcon: alignIcon },
17
+ React.createElement(Icon, { size: sizeSmall ? 24 : 32, render: type, color: type === 'warning' ? 'error' : 'secondary' })),
18
+ children));
19
+ };
20
+ const IconWrapper = styled(Box) `
21
+ align-self: ${({ alignIcon }) => alignIcon};
22
+ `;
23
+ const Wrapper = styled.div(({ type, backgroundColor, sizeSmall, hasBorder, borderColor }) => css `
24
+ align-items: center;
25
+ background-color: ${backgroundColor
26
+ ? backgroundColor
27
+ : type === 'warning'
28
+ ? theme.colors.white
29
+ : theme.colors.background};
30
+ box-sizing: border-box;
31
+ ${type === 'warning'
32
+ ? `border: 1px solid ${theme.colors.error};`
33
+ : hasBorder && `border: 1px solid ${borderColor};`}
34
+ border-radius: 8px;
35
+ margin-bottom: 24px;
36
+ padding: 16px;
37
+ display: flex;
38
+ font-family: ${theme.font.system};
39
+ color: ${type === 'warning' ? theme.colors.error : theme.colors.secondary};
40
+ font-size: ${sizeSmall ? '12px' : '16px'};
41
+ span {
42
+ margin: 0 16px 0 0;
43
+ }
44
+ `);
45
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/Message/Message.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAC5C,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAe1D;;GAEG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EACxC,SAAS,EACT,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,SAAS,GAAG,QAAQ,EACpB,eAAe,EACf,SAAS,EACT,SAAS,EACT,WAAW,GACZ,EAAE,EAAE;IACH,oBAAoB,CAAC;QACnB,KAAK,EAAE,0BAA0B;QACjC,OAAO,EACL,0FAA0F;KAC7F,CAAC,CAAA;IACF,OAAO,CACL,oBAAC,OAAO,IACN,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;QAExB,oBAAC,WAAW,IAAC,SAAS,EAAE,SAAS;YAC/B,oBAAC,IAAI,IACH,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,GACjD,CACU;QAEb,QAAQ,CACD,CACX,CAAA;AACH,CAAC,CAAA;AAcD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAc;gBAC7B,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS;CAC3C,CAAA;AAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CACxB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;wBAE/C,eAAe;IACjC,CAAC,CAAC,eAAe;IACjB,CAAC,CAAC,IAAI,KAAK,SAAS;QACpB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;;MAEzB,IAAI,KAAK,SAAS;IAClB,CAAC,CAAC,qBAAqB,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG;IAC5C,CAAC,CAAC,SAAS,IAAI,qBAAqB,WAAW,GAAG;;;;;mBAKrC,KAAK,CAAC,IAAI,CAAC,MAAM;aACvB,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;iBAC5D,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;;;;GAIzC,CACF,CAAA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { MessageProps } from './Message';
3
+ declare const _default: {
4
+ title: string;
5
+ component: React.FC<MessageProps>;
6
+ };
7
+ export default _default;
8
+ export declare const Default: any;
9
+ export declare const Info: any;
10
+ export declare const Warning: any;
11
+ export declare const WarningBubbleSmall: any;
12
+ export declare const InfoBubbleSmall: any;
13
+ export declare const CardWithBorder: any;
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import { Message } from './Message';
3
+ import { theme } from '../theme';
4
+ export default {
5
+ title: 'Message',
6
+ component: Message,
7
+ };
8
+ const Template = (props) => (React.createElement(Message, Object.assign({}, props), "Customer currently in BACS queue"));
9
+ export const Default = Template.bind({});
10
+ export const Info = Template.bind({});
11
+ Info.args = {
12
+ type: 'info',
13
+ };
14
+ export const Warning = Template.bind({});
15
+ Warning.args = {
16
+ type: 'warning',
17
+ };
18
+ export const WarningBubbleSmall = Template.bind({});
19
+ WarningBubbleSmall.args = {
20
+ type: 'warning',
21
+ backgroundColor: theme.colors.bgSecondary,
22
+ sizeSmall: true,
23
+ };
24
+ export const InfoBubbleSmall = Template.bind({});
25
+ InfoBubbleSmall.args = {
26
+ type: 'info',
27
+ backgroundColor: theme.colors.bgSecondary,
28
+ sizeSmall: true,
29
+ };
30
+ export const CardWithBorder = Template.bind({});
31
+ CardWithBorder.args = {
32
+ type: 'card',
33
+ alignIcon: 'flex-start',
34
+ backgroundColor: theme.colors.white,
35
+ hasBorder: true,
36
+ borderColor: theme.colors.secondary,
37
+ };
38
+ //# sourceMappingURL=Message.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.stories.js","sourceRoot":"","sources":["../../src/Message/Message.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEhC,eAAe;IACb,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,OAAO;CACnB,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE,CAAC,CACxC,oBAAC,OAAO,oBAAK,KAAK,sCAA4C,CAC/D,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAErC,IAAI,CAAC,IAAI,GAAG;IACV,IAAI,EAAE,MAAM;CACb,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAExC,OAAO,CAAC,IAAI,GAAG;IACb,IAAI,EAAE,SAAS;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEnD,kBAAkB,CAAC,IAAI,GAAG;IACxB,IAAI,EAAE,SAAS;IACf,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;IACzC,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEhD,eAAe,CAAC,IAAI,GAAG;IACrB,IAAI,EAAE,MAAM;IACZ,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;IACzC,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAE/C,cAAc,CAAC,IAAI,GAAG;IACpB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;IACvB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;IACnC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;CACpC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import '@testing-library/jest-dom/extend-expect';
4
+ import 'jest-styled-components';
5
+ import { Message } from '../Message';
6
+ it('default renders correctly', () => {
7
+ const { container } = render(React.createElement(Message, null, "This is an infomation message for the customer!"));
8
+ expect(container).toMatchSnapshot();
9
+ });
10
+ it('warning renders correctly', () => {
11
+ const { container } = render(React.createElement(Message, { type: "warning", sizeSmall: false }, "This is a warning message for the customer!"));
12
+ expect(container).toMatchSnapshot();
13
+ });
14
+ it('info renders correctly', () => {
15
+ const { container } = render(React.createElement(Message, { type: "info" }, "This is a infomational message for the customer!"));
16
+ expect(container).toMatchSnapshot();
17
+ });
18
+ it('icon prop render correctly', () => {
19
+ const { container } = render(React.createElement(Message, { type: "warning" }, "This is a warning message for the customer!"));
20
+ expect(container).toHaveTextContent('This is a warning message for the customer!');
21
+ });
22
+ it('warning bubble size small renders correctly', () => {
23
+ const { container } = render(React.createElement(Message, { type: "warning-bubble", backgroundColor: "#FAF3EE", sizeSmall: true }, "This is a warning bubble message for the customer!"));
24
+ expect(container).toHaveTextContent('This is a warning bubble message for the customer!');
25
+ });
26
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../src/Message/__tests__/Message.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,yCAAyC,CAAA;AAChD,OAAO,wBAAwB,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,OAAO,0DAA0D,CACnE,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAE,KAAK,kDAE9B,CACX,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAChC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,MAAM,uDAEV,CACX,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,SAAS,kDAEb,CACX,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CACjC,6CAA6C,CAC9C,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,gBAAgB,EAAC,eAAe,EAAC,SAAS,EAAC,SAAS,EAAE,IAAI,yDAE9D,CACX,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CACjC,oDAAoD,CACrD,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './Message';
@@ -0,0 +1,2 @@
1
+ export * from './Message';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Message/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const Container: () => JSX.Element;
@@ -0,0 +1,9 @@
1
+ import React, { useState } from 'react';
2
+ import { RadioButton } from './RadioButton';
3
+ export const Container = () => {
4
+ const [checked, setChecked] = useState('');
5
+ return (React.createElement("form", null,
6
+ React.createElement(RadioButton, { id: "radioButtonOne", label: "What a lovely label", value: checked, onChange: () => setChecked('radioButtonOne'), checked: checked === 'radioButtonOne' }),
7
+ React.createElement(RadioButton, { id: "radioButtonTwo", label: "What a lovely second label", value: checked, onChange: () => setChecked('radioButtonTwo'), checked: checked === 'radioButtonTwo' })));
8
+ };
9
+ //# sourceMappingURL=Container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/RadioButton/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE1C,OAAO,CACL;QACE,oBAAC,WAAW,IACV,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAC5C,OAAO,EAAE,OAAO,KAAK,gBAAgB,GACrC;QAEF,oBAAC,WAAW,IACV,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAC5C,OAAO,EAAE,OAAO,KAAK,gBAAgB,GACrC,CACG,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { FC, ChangeEvent } from 'react';
2
+ import { MarginProps } from '../utils/space';
3
+ export type RadioButtonProps = {
4
+ id?: string;
5
+ label: string;
6
+ checked?: boolean;
7
+ value: string;
8
+ onChange: (event: ChangeEvent<HTMLInputElement>) => void;
9
+ } & MarginProps;
10
+ export declare const RadioButton: FC<RadioButtonProps>;
@@ -0,0 +1,68 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import styled from 'styled-components';
14
+ import { focusOutline } from '../utils/focusOutline';
15
+ import { Box } from '../Box';
16
+ import { theme } from '../theme';
17
+ import { useUniqueId } from '../utils/id';
18
+ import { useDeprecatedWarning } from '../utils/deprecated';
19
+ export const RadioButton = (props) => {
20
+ const { id: idProp, label, checked, value, onChange } = props, marginProps = __rest(props, ["id", "label", "checked", "value", "onChange"]);
21
+ useDeprecatedWarning({
22
+ title: 'RadioButton',
23
+ message: 'The RadioButton component has been deprecated. Please use the new RadioGroup component instead.',
24
+ componentProps: props,
25
+ });
26
+ const id = useUniqueId(idProp);
27
+ return (React.createElement(Box, Object.assign({ flex: true, alignItems: "center" }, marginProps),
28
+ React.createElement(RadioInput, { id: id, type: "radio", checked: checked, value: value, onChange: onChange }),
29
+ React.createElement(RadioLabel, { htmlFor: id },
30
+ React.createElement(FakeInput, { checked: checked }),
31
+ React.createElement(Text, null, label))));
32
+ };
33
+ const FakeInput = styled.div `
34
+ width: 24px;
35
+ height: 24px;
36
+ border-radius: 50%;
37
+ background-color: ${theme.colors.white};
38
+ margin-right: 10px;
39
+ border: ${({ checked }) => checked
40
+ ? `8px solid ${theme.colors.success}`
41
+ : `1px solid ${theme.colors.outline}`};
42
+ `;
43
+ const RadioLabel = styled.label `
44
+ font-family: 'Gordita', sans-serif;
45
+ text-transform: none;
46
+ font-size: 16px;
47
+ line-height: 17px;
48
+ color: ${theme.colors.secondary};
49
+ margin-bottom: 0;
50
+ display: flex;
51
+ cursor: pointer;
52
+ `;
53
+ const RadioInput = styled.input `
54
+ position: absolute;
55
+ opacity: 0;
56
+ height: 0;
57
+ width: 0;
58
+
59
+ ${focusOutline({
60
+ selector: `&:focus-visible ~ ${RadioLabel} ${FakeInput}`,
61
+ })}
62
+ `;
63
+ // needed because the text is top aligned in its viewbox
64
+ const Text = styled.span `
65
+ position: relative;
66
+ bottom: -5px;
67
+ `;
68
+ //# sourceMappingURL=RadioButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../../src/RadioButton/RadioButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAA0B,MAAM,OAAO,CAAA;AAC9C,OAAO,MAAM,MAAM,mBAAmB,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAc1D,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,KAAK,EAAE,EAAE;IACzD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,KAAqB,KAAK,EAArB,WAAW,UAAK,KAAK,EAAvE,+CAA+D,CAAQ,CAAA;IAE7E,oBAAoB,CAAC;QACnB,KAAK,EAAE,aAAa;QACpB,OAAO,EACL,iGAAiG;QACnG,cAAc,EAAE,KAAK;KACtB,CAAC,CAAA;IAEF,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAE9B,OAAO,CACL,oBAAC,GAAG,kBAAC,IAAI,QAAC,UAAU,EAAC,QAAQ,IAAK,WAAW;QAC3C,oBAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAClB;QAEF,oBAAC,UAAU,IAAC,OAAO,EAAE,EAAE;YACrB,oBAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI;YAC/B,oBAAC,IAAI,QAAE,KAAK,CAAQ,CACT,CACT,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAY;;;;sBAIlB,KAAK,CAAC,MAAM,CAAC,KAAK;;YAE5B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACxB,OAAO;IACL,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;IACrC,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;CAC1C,CAAA;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;WAKpB,KAAK,CAAC,MAAM,CAAC,SAAS;;;;CAIhC,CAAA;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;IAM3B,YAAY,CAAC;IACb,QAAQ,EAAE,qBAAqB,UAAU,IAAI,SAAS,EAAE;CACzD,CAAC;CACH,CAAA;AAED,wDAAwD;AACxD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;;;CAGvB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import { RadioButtonProps } from './RadioButton';
3
+ declare const _default: {
4
+ title: string;
5
+ component: React.FC<RadioButtonProps>;
6
+ argTypes: {
7
+ onChange: {
8
+ action: string;
9
+ };
10
+ };
11
+ };
12
+ export default _default;
13
+ export declare const Default: any;
14
+ export declare const Checked: any;
15
+ export declare const WorkingExample: any;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { RadioButton } from './RadioButton';
3
+ import { Container } from './Container';
4
+ import { noop } from '../utils/noop';
5
+ export default {
6
+ title: 'Radio Button',
7
+ component: RadioButton,
8
+ argTypes: { onChange: { action: 'clicked' } },
9
+ };
10
+ const Template = (props) => React.createElement(RadioButton, Object.assign({}, props));
11
+ export const Default = Template.bind({});
12
+ Default.args = {
13
+ id: 'radioButton',
14
+ label: 'What a lovely label',
15
+ value: 'radioButton',
16
+ onChange: noop,
17
+ checked: false,
18
+ };
19
+ export const Checked = Template.bind({});
20
+ Checked.args = {
21
+ id: 'radioButton',
22
+ label: 'What a lovely label',
23
+ value: 'radioButton',
24
+ onChange: noop,
25
+ checked: true,
26
+ };
27
+ const ContainerTemplate = () => React.createElement(Container, null);
28
+ export const WorkingExample = ContainerTemplate.bind({});
29
+ //# sourceMappingURL=RadioButton.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.stories.js","sourceRoot":"","sources":["../../src/RadioButton/RadioButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,eAAe;IACb,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;CAC9C,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,KAAuB,EAAE,EAAE,CAAC,oBAAC,WAAW,oBAAK,KAAK,EAAI,CAAA;AAExE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAExC,OAAO,CAAC,IAAI,GAAG;IACb,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,KAAK;CACf,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAExC,OAAO,CAAC,IAAI,GAAG;IACb,EAAE,EAAE,aAAa;IACjB,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAA;AAED,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,oBAAC,SAAS,OAAG,CAAA;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import 'jest-styled-components';
4
+ import { RadioButton } from '../RadioButton';
5
+ test('renders - checked', () => {
6
+ const { container } = render(React.createElement(RadioButton, { id: "radioButtonOne", label: "What a lovely label", value: true, checked: true, onChange: str => { } }));
7
+ expect(container.firstChild).toMatchSnapshot();
8
+ });
9
+ test('renders - unchecked', () => {
10
+ const { container } = render(React.createElement(RadioButton, { id: "radioButtonOne", label: "What a lovely label", value: false, checked: false, onChange: str => { } }));
11
+ expect(container.firstChild).toMatchSnapshot();
12
+ });
13
+ //# sourceMappingURL=RadioButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioButton.js","sourceRoot":"","sources":["../../../src/RadioButton/__tests__/RadioButton.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC7B,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CACxB,oBAAC,WAAW,IACV,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE,IAAI,EACX,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAE,CAAC,GACnB,CACH,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;IAC/B,MAAM,EAAC,SAAS,EAAC,GAAG,MAAM,CACxB,oBAAC,WAAW,IACV,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAC,qBAAqB,EAC3B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAE,CAAC,GACnB,CACH,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export { RadioButton } from './RadioButton';
@@ -0,0 +1,2 @@
1
+ export { RadioButton } from './RadioButton';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/RadioButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrshmllw/smores-react",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "main": "./dist/index.js",
5
5
  "description": "Collection of React components used by Marshmallow Technology",
6
6
  "keywords": [