@faststore/components 2.0.15-alpha.0 → 2.0.16-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/assets/Checked.d.ts +3 -0
- package/dist/assets/Checked.js +6 -0
- package/dist/assets/Checked.js.map +1 -0
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/index.js +1 -0
- package/dist/assets/index.js.map +1 -1
- package/dist/atoms/SROnly/SROnly.d.ts +7 -0
- package/dist/atoms/SROnly/SROnly.js +7 -0
- package/dist/atoms/SROnly/SROnly.js.map +1 -0
- package/dist/atoms/SROnly/index.d.ts +1 -0
- package/dist/atoms/SROnly/index.js +2 -0
- package/dist/atoms/SROnly/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/molecules/Toggle/Toggle.d.ts +22 -0
- package/dist/molecules/Toggle/Toggle.js +11 -0
- package/dist/molecules/Toggle/Toggle.js.map +1 -0
- package/dist/molecules/Toggle/index.d.ts +2 -0
- package/dist/molecules/Toggle/index.js +2 -0
- package/dist/molecules/Toggle/index.js.map +1 -0
- package/dist/molecules/ToggleField/ToggleField.d.ts +29 -0
- package/dist/molecules/ToggleField/ToggleField.js +9 -0
- package/dist/molecules/ToggleField/ToggleField.js.map +1 -0
- package/dist/molecules/ToggleField/index.d.ts +2 -0
- package/dist/molecules/ToggleField/index.js +2 -0
- package/dist/molecules/ToggleField/index.js.map +1 -0
- package/package.json +2 -2
- package/src/assets/Checked.tsx +25 -0
- package/src/assets/index.ts +1 -0
- package/src/atoms/SROnly/SROnly.tsx +15 -0
- package/src/atoms/SROnly/index.ts +1 -0
- package/src/index.ts +5 -0
- package/src/molecules/Toggle/Toggle.tsx +53 -0
- package/src/molecules/Toggle/index.ts +2 -0
- package/src/molecules/ToggleField/ToggleField.tsx +59 -0
- package/src/molecules/ToggleField/index.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.16-alpha.0](https://github.com/vtex/faststore/compare/v2.0.15-alpha.0...v2.0.16-alpha.0) (2022-12-15)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* Adds `Toggle` & `ToggleField` & `SROnly` components ([#1555](https://github.com/vtex/faststore/issues/1555)) ([b055c0a](https://github.com/vtex/faststore/commit/b055c0aa67291ad88e865b60e96b8a898a97db14))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
## [2.0.15-alpha.0](https://github.com/vtex/faststore/compare/v2.0.14-alpha.0...v2.0.15-alpha.0) (2022-12-14)
|
|
7
16
|
|
|
8
17
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
// Icon from Phosphor Icons
|
|
3
|
+
const Checked = () => (React.createElement("svg", { id: "Checked", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 19 18", strokeWidth: "16", width: 15, height: 15 },
|
|
4
|
+
React.createElement("path", { d: "M15.6875 5.0625L7.8125 12.9375L3.875 9", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })));
|
|
5
|
+
export default Checked;
|
|
6
|
+
//# sourceMappingURL=Checked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checked.js","sourceRoot":"","sources":["../../src/assets/Checked.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,2BAA2B;AAC3B,MAAM,OAAO,GAAO,GAAG,EAAE,CAAC,CACxB,6BACE,EAAE,EAAC,SAAS,EACZ,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,WAAW,EAAC,IAAI,EAChB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE;IAEV,8BACE,CAAC,EAAC,wCAAwC,EAC1C,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,GACtB,CACE,CACP,CAAA;AAED,eAAe,OAAO,CAAA"}
|
package/dist/assets/index.d.ts
CHANGED
package/dist/assets/index.js
CHANGED
package/dist/assets/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SROnly.js","sourceRoot":"","sources":["../../../src/atoms/SROnly/SROnly.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAS;IACjC,MAAM,SAAS,GAAG,EAAE,IAAI,MAAM,CAAA;IAE9B,OAAO,oBAAC,SAAS,+BAAkB,IAAI,CAAa,CAAA;AACtD,CAAC;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './SROnly';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atoms/SROnly/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export { default as Radio } from './atoms/Radio';
|
|
|
23
23
|
export type { RadioProps } from './atoms/Radio';
|
|
24
24
|
export { default as Select } from './atoms/Select';
|
|
25
25
|
export type { SelectProps } from './atoms/Select';
|
|
26
|
+
export { default as SROnly } from './atoms/SROnly';
|
|
26
27
|
export { default as BuyButton } from './molecules/BuyButton';
|
|
27
28
|
export { default as CheckboxField } from './molecules/CheckboxField';
|
|
28
29
|
export type { CheckboxFieldProps } from './molecules/CheckboxField';
|
|
@@ -38,3 +39,7 @@ export { default as SelectField } from './molecules/SelectField';
|
|
|
38
39
|
export type { SelectFieldProps } from './molecules/SelectField';
|
|
39
40
|
export { default as Tag } from './molecules/Tag';
|
|
40
41
|
export type { TagProps } from './molecules/Tag';
|
|
42
|
+
export { default as Toggle } from './molecules/Toggle';
|
|
43
|
+
export type { ToggleProps } from './molecules/Toggle';
|
|
44
|
+
export { default as ToggleField } from './molecules/ToggleField';
|
|
45
|
+
export type { ToggleFieldProps } from './molecules/ToggleField';
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { default as Overlay } from './atoms/Overlay';
|
|
|
13
13
|
export { default as Price } from './atoms/Price';
|
|
14
14
|
export { default as Radio } from './atoms/Radio';
|
|
15
15
|
export { default as Select } from './atoms/Select';
|
|
16
|
+
export { default as SROnly } from './atoms/SROnly';
|
|
16
17
|
// Molecules
|
|
17
18
|
export { default as BuyButton } from './molecules/BuyButton';
|
|
18
19
|
export { default as CheckboxField } from './molecules/CheckboxField';
|
|
@@ -22,4 +23,6 @@ export { default as InputField } from './molecules/InputField';
|
|
|
22
23
|
export { default as RadioField } from './molecules/RadioField';
|
|
23
24
|
export { default as SelectField } from './molecules/SelectField';
|
|
24
25
|
export { default as Tag } from './molecules/Tag';
|
|
26
|
+
export { default as Toggle } from './molecules/Toggle';
|
|
27
|
+
export { default as ToggleField } from './molecules/ToggleField';
|
|
25
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,UAAU,CAAA;AAExB,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,cAAc,UAAU,CAAA;AAExB,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElD,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { InputHTMLAttributes } from 'react';
|
|
3
|
+
export interface ToggleProps extends InputHTMLAttributes<Omit<HTMLInputElement, 'disabled' | 'type'>> {
|
|
4
|
+
/**
|
|
5
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
6
|
+
*/
|
|
7
|
+
testId?: string;
|
|
8
|
+
/**
|
|
9
|
+
* ID to identify input and corresponding label.
|
|
10
|
+
*/
|
|
11
|
+
id: string;
|
|
12
|
+
/**
|
|
13
|
+
* Specifies that this input should be disabled.
|
|
14
|
+
*/
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Controls the component's direction.
|
|
18
|
+
*/
|
|
19
|
+
variant?: 'horizontal' | 'vertical';
|
|
20
|
+
}
|
|
21
|
+
declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLInputElement>>;
|
|
22
|
+
export default Toggle;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { Input, Icon } from './../../';
|
|
3
|
+
import { Checked } from '../../assets';
|
|
4
|
+
const Toggle = forwardRef(function Toggle({ testId = 'fs-toggle', id, disabled, variant = 'horizontal', ...otherProps }, ref) {
|
|
5
|
+
return (React.createElement("div", { "data-fs-toggle": true, "data-fs-toggle-variant": variant, "data-testid": testId },
|
|
6
|
+
React.createElement(Input, { id: id, ref: ref, role: "switch", type: "checkbox", disabled: disabled, ...otherProps }),
|
|
7
|
+
React.createElement("span", { "data-fs-toggle-knob": true },
|
|
8
|
+
React.createElement(Icon, { component: React.createElement(Checked, null) }))));
|
|
9
|
+
});
|
|
10
|
+
export default Toggle;
|
|
11
|
+
//# sourceMappingURL=Toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.js","sourceRoot":"","sources":["../../../src/molecules/Toggle/Toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAsBtC,MAAM,MAAM,GAAG,UAAU,CAAgC,SAAS,MAAM,CACtE,EACE,MAAM,GAAG,WAAW,EACpB,EAAE,EACF,QAAQ,EACR,OAAO,GAAG,YAAY,EACtB,GAAG,UAAU,EACD,EACd,GAAG;IAEH,OAAO,CACL,+EAA4C,OAAO,iBAAe,MAAM;QACtE,oBAAC,KAAK,IACJ,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,KACd,UAAU,GACd;QACF;YACE,oBAAC,IAAI,IAAC,SAAS,EAAE,oBAAC,OAAO,OAAG,GAAI,CAC3B,CACH,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/Toggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type ToggleFieldProps = {
|
|
3
|
+
/**
|
|
4
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
5
|
+
*/
|
|
6
|
+
testId?: string;
|
|
7
|
+
/**
|
|
8
|
+
* ID to identify input and corresponding label.
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* The text displayed to identify the input.
|
|
13
|
+
*/
|
|
14
|
+
label: string;
|
|
15
|
+
/**
|
|
16
|
+
* Controls whether the label will be displayed or not.
|
|
17
|
+
*/
|
|
18
|
+
displayLabel?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Specifies that this input should be disabled.
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Controls the component's direction.
|
|
25
|
+
*/
|
|
26
|
+
variant?: 'horizontal' | 'vertical';
|
|
27
|
+
};
|
|
28
|
+
declare const ToggleField: React.ForwardRefExoticComponent<ToggleFieldProps & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
+
export default ToggleField;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { Label, SROnly, Toggle } from './../../';
|
|
3
|
+
const ToggleField = forwardRef(function ToggleField({ testId = 'fs-toggle-field', id, label, disabled, displayLabel = true, variant = 'horizontal', ...otherProps }, ref) {
|
|
4
|
+
return (React.createElement("div", { ref: ref, "data-fs-toggle-field": true, "data-testid": testId },
|
|
5
|
+
React.createElement(Toggle, { id: id, variant: variant, disabled: disabled, ...otherProps }),
|
|
6
|
+
displayLabel ? (React.createElement(Label, { "data-fs-toggle-field-label": true, htmlFor: id }, label)) : (React.createElement(SROnly, { text: label }))));
|
|
7
|
+
});
|
|
8
|
+
export default ToggleField;
|
|
9
|
+
//# sourceMappingURL=ToggleField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleField.js","sourceRoot":"","sources":["../../../src/molecules/ToggleField/ToggleField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AA6BhD,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,WAAW,CAClB,EACE,MAAM,GAAG,iBAAiB,EAC1B,EAAE,EACF,KAAK,EACL,QAAQ,EACR,YAAY,GAAG,IAAI,EACnB,OAAO,GAAG,YAAY,EACtB,GAAG,UAAU,EACd,EACD,GAAG;IAEH,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG,+CAAoC,MAAM;QACrD,oBAAC,MAAM,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAM,UAAU,GAAI;QACvE,YAAY,CAAC,CAAC,CAAC,CACd,oBAAC,KAAK,wCAA4B,OAAO,EAAE,EAAE,IAC1C,KAAK,CACA,CACT,CAAC,CAAC,CAAC,CACF,oBAAC,MAAM,IAAC,IAAI,EAAE,KAAK,GAAI,CACxB,CACG,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecules/ToggleField/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faststore/components",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.16-alpha.0",
|
|
4
4
|
"module": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
6
6
|
"author": "Emerson Laurentino @emersonlaurentino",
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"node": "16.18.0",
|
|
29
29
|
"yarn": "1.19.1"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "2aa7d4ac5f4c0ad30a900e0239f1bcb5b9ddaab8"
|
|
32
32
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import type { FC } from 'react'
|
|
3
|
+
|
|
4
|
+
// Icon from Phosphor Icons
|
|
5
|
+
const Checked: FC = () => (
|
|
6
|
+
<svg
|
|
7
|
+
id="Checked"
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
fill="none"
|
|
10
|
+
viewBox="0 0 19 18"
|
|
11
|
+
strokeWidth="16"
|
|
12
|
+
width={15}
|
|
13
|
+
height={15}
|
|
14
|
+
>
|
|
15
|
+
<path
|
|
16
|
+
d="M15.6875 5.0625L7.8125 12.9375L3.875 9"
|
|
17
|
+
stroke="currentColor"
|
|
18
|
+
strokeWidth="1.5"
|
|
19
|
+
strokeLinecap="round"
|
|
20
|
+
strokeLinejoin="round"
|
|
21
|
+
/>
|
|
22
|
+
</svg>
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
export default Checked
|
package/src/assets/index.ts
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import type { ElementType } from 'react'
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
text: string
|
|
6
|
+
as?: ElementType
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function SROnly({ text, as }: Props) {
|
|
10
|
+
const Component = as ?? 'span'
|
|
11
|
+
|
|
12
|
+
return <Component data-fs-sr-only>{text}</Component>
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default SROnly
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './SROnly'
|
package/src/index.ts
CHANGED
|
@@ -26,6 +26,7 @@ export { default as Radio } from './atoms/Radio'
|
|
|
26
26
|
export type { RadioProps } from './atoms/Radio'
|
|
27
27
|
export { default as Select } from './atoms/Select'
|
|
28
28
|
export type { SelectProps } from './atoms/Select'
|
|
29
|
+
export { default as SROnly } from './atoms/SROnly'
|
|
29
30
|
|
|
30
31
|
// Molecules
|
|
31
32
|
export { default as BuyButton } from './molecules/BuyButton'
|
|
@@ -43,3 +44,7 @@ export { default as SelectField } from './molecules/SelectField'
|
|
|
43
44
|
export type { SelectFieldProps } from './molecules/SelectField'
|
|
44
45
|
export { default as Tag } from './molecules/Tag'
|
|
45
46
|
export type { TagProps } from './molecules/Tag'
|
|
47
|
+
export { default as Toggle } from './molecules/Toggle'
|
|
48
|
+
export type { ToggleProps } from './molecules/Toggle'
|
|
49
|
+
export { default as ToggleField } from './molecules/ToggleField'
|
|
50
|
+
export type { ToggleFieldProps } from './molecules/ToggleField'
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react'
|
|
2
|
+
import type { InputHTMLAttributes } from 'react'
|
|
3
|
+
import { Input, Icon } from './../../'
|
|
4
|
+
import { Checked } from '../../assets'
|
|
5
|
+
|
|
6
|
+
export interface ToggleProps
|
|
7
|
+
extends InputHTMLAttributes<Omit<HTMLInputElement, 'disabled' | 'type'>> {
|
|
8
|
+
/**
|
|
9
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
10
|
+
*/
|
|
11
|
+
testId?: string
|
|
12
|
+
/**
|
|
13
|
+
* ID to identify input and corresponding label.
|
|
14
|
+
*/
|
|
15
|
+
id: string
|
|
16
|
+
/**
|
|
17
|
+
* Specifies that this input should be disabled.
|
|
18
|
+
*/
|
|
19
|
+
disabled?: boolean
|
|
20
|
+
/**
|
|
21
|
+
* Controls the component's direction.
|
|
22
|
+
*/
|
|
23
|
+
variant?: 'horizontal' | 'vertical'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const Toggle = forwardRef<HTMLInputElement, ToggleProps>(function Toggle(
|
|
27
|
+
{
|
|
28
|
+
testId = 'fs-toggle',
|
|
29
|
+
id,
|
|
30
|
+
disabled,
|
|
31
|
+
variant = 'horizontal',
|
|
32
|
+
...otherProps
|
|
33
|
+
}: ToggleProps,
|
|
34
|
+
ref
|
|
35
|
+
) {
|
|
36
|
+
return (
|
|
37
|
+
<div data-fs-toggle data-fs-toggle-variant={variant} data-testid={testId}>
|
|
38
|
+
<Input
|
|
39
|
+
id={id}
|
|
40
|
+
ref={ref}
|
|
41
|
+
role="switch"
|
|
42
|
+
type="checkbox"
|
|
43
|
+
disabled={disabled}
|
|
44
|
+
{...otherProps}
|
|
45
|
+
/>
|
|
46
|
+
<span data-fs-toggle-knob>
|
|
47
|
+
<Icon component={<Checked />} />
|
|
48
|
+
</span>
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
export default Toggle
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react'
|
|
2
|
+
import { Label, SROnly, Toggle } from './../../'
|
|
3
|
+
|
|
4
|
+
export type ToggleFieldProps = {
|
|
5
|
+
/**
|
|
6
|
+
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
7
|
+
*/
|
|
8
|
+
testId?: string
|
|
9
|
+
/**
|
|
10
|
+
* ID to identify input and corresponding label.
|
|
11
|
+
*/
|
|
12
|
+
id: string
|
|
13
|
+
/**
|
|
14
|
+
* The text displayed to identify the input.
|
|
15
|
+
*/
|
|
16
|
+
label: string
|
|
17
|
+
/**
|
|
18
|
+
* Controls whether the label will be displayed or not.
|
|
19
|
+
*/
|
|
20
|
+
displayLabel?: boolean
|
|
21
|
+
/**
|
|
22
|
+
* Specifies that this input should be disabled.
|
|
23
|
+
*/
|
|
24
|
+
disabled?: boolean
|
|
25
|
+
/**
|
|
26
|
+
* Controls the component's direction.
|
|
27
|
+
*/
|
|
28
|
+
variant?: 'horizontal' | 'vertical'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const ToggleField = forwardRef<HTMLDivElement, ToggleFieldProps>(
|
|
32
|
+
function ToggleField(
|
|
33
|
+
{
|
|
34
|
+
testId = 'fs-toggle-field',
|
|
35
|
+
id,
|
|
36
|
+
label,
|
|
37
|
+
disabled,
|
|
38
|
+
displayLabel = true,
|
|
39
|
+
variant = 'horizontal',
|
|
40
|
+
...otherProps
|
|
41
|
+
},
|
|
42
|
+
ref
|
|
43
|
+
) {
|
|
44
|
+
return (
|
|
45
|
+
<div ref={ref} data-fs-toggle-field data-testid={testId}>
|
|
46
|
+
<Toggle id={id} variant={variant} disabled={disabled} {...otherProps} />
|
|
47
|
+
{displayLabel ? (
|
|
48
|
+
<Label data-fs-toggle-field-label htmlFor={id}>
|
|
49
|
+
{label}
|
|
50
|
+
</Label>
|
|
51
|
+
) : (
|
|
52
|
+
<SROnly text={label} />
|
|
53
|
+
)}
|
|
54
|
+
</div>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
export default ToggleField
|