@simplybusiness/mobius 5.19.1 → 5.20.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 +6 -0
- package/dist/cjs/components/Switch/Switch.js +62 -0
- package/dist/cjs/components/Switch/Switch.js.map +1 -0
- package/dist/cjs/components/Switch/index.js +20 -0
- package/dist/cjs/components/Switch/index.js.map +1 -0
- package/dist/cjs/components/index.js +1 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/components/Switch/Switch.js +48 -0
- package/dist/esm/components/Switch/Switch.js.map +1 -0
- package/dist/esm/components/Switch/index.js +3 -0
- package/dist/esm/components/Switch/index.js.map +1 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/types/src/components/Switch/Switch.d.ts +12 -0
- package/dist/types/src/components/Switch/Switch.stories.d.ts +6 -0
- package/dist/types/src/components/Switch/Switch.test.d.ts +1 -0
- package/dist/types/src/components/Switch/index.d.ts +1 -0
- package/dist/types/src/components/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/Switch/Switch.css +62 -0
- package/src/components/Switch/Switch.mdx +40 -0
- package/src/components/Switch/Switch.stories.tsx +31 -0
- package/src/components/Switch/Switch.test.tsx +68 -0
- package/src/components/Switch/Switch.tsx +70 -0
- package/src/components/Switch/index.tsx +1 -0
- package/src/components/index.tsx +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Switch", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function() {
|
|
9
|
+
return Switch;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
13
|
+
const _react = require("react");
|
|
14
|
+
const _dedupe = /*#__PURE__*/ _interop_require_default(require("classnames/dedupe"));
|
|
15
|
+
const _VisuallyHidden = require("../VisuallyHidden");
|
|
16
|
+
function _interop_require_default(obj) {
|
|
17
|
+
return obj && obj.__esModule ? obj : {
|
|
18
|
+
default: obj
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const Switch = /*#__PURE__*/ (0, _react.forwardRef)((props, ref)=>{
|
|
22
|
+
const { checked = false, className, onChange, ...otherProps } = props;
|
|
23
|
+
const [enabled, setEnabled] = (0, _react.useState)(checked);
|
|
24
|
+
(0, _react.useEffect)(()=>{
|
|
25
|
+
setEnabled(checked);
|
|
26
|
+
}, [
|
|
27
|
+
checked
|
|
28
|
+
]);
|
|
29
|
+
const classes = (0, _dedupe.default)("mobius", "mobius-switch", {
|
|
30
|
+
"mobius-switch--checked": enabled
|
|
31
|
+
}, className);
|
|
32
|
+
const handleChange = (event)=>{
|
|
33
|
+
setEnabled(!enabled);
|
|
34
|
+
if (onChange) {
|
|
35
|
+
onChange(event);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("label", {
|
|
39
|
+
ref: ref,
|
|
40
|
+
className: classes,
|
|
41
|
+
children: [
|
|
42
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)(_VisuallyHidden.VisuallyHidden, {
|
|
43
|
+
children: /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
44
|
+
children: enabled ? "On" : "Off"
|
|
45
|
+
})
|
|
46
|
+
}),
|
|
47
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("input", {
|
|
48
|
+
type: "checkbox",
|
|
49
|
+
role: "switch",
|
|
50
|
+
checked: enabled,
|
|
51
|
+
onChange: handleChange,
|
|
52
|
+
...otherProps
|
|
53
|
+
}),
|
|
54
|
+
/*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
|
|
55
|
+
className: "mobius-switch__slider"
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
Switch.displayName = "Switch";
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=Switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ChangeEvent,\n type Ref,\n type RefAttributes,\n forwardRef,\n useState,\n useEffect,\n} from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { VisuallyHidden } from \"../VisuallyHidden\";\n\nexport type SwitchElementType = HTMLLabelElement;\n\nexport interface SwitchProps\n extends DOMProps,\n RefAttributes<SwitchElementType> {\n /** Custom class name for setting specific CSS */\n className?: string;\n checked?: boolean;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport type SwitchRef = Ref<SwitchElementType>;\n\nconst Switch = forwardRef<HTMLLabelElement, SwitchProps>((props, ref) => {\n const { checked = false, className, onChange, ...otherProps } = props;\n const [enabled, setEnabled] = useState<boolean>(checked);\n\n useEffect(() => {\n setEnabled(checked);\n }, [checked]);\n\n const classes = classNames(\n \"mobius\",\n \"mobius-switch\",\n {\n \"mobius-switch--checked\": enabled,\n },\n className,\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setEnabled(!enabled);\n if (onChange) {\n onChange(event);\n }\n };\n\n return (\n <label ref={ref} className={classes}>\n <VisuallyHidden>\n <span>{enabled ? \"On\" : \"Off\"}</span>\n </VisuallyHidden>\n <input\n type=\"checkbox\"\n role=\"switch\"\n checked={enabled}\n onChange={handleChange}\n {...otherProps}\n />\n <span className=\"mobius-switch__slider\"></span>\n </label>\n );\n});\n\nSwitch.displayName = \"Switch\";\nexport { Switch };\n"],"names":["Switch","forwardRef","props","ref","checked","className","onChange","otherProps","enabled","setEnabled","useState","useEffect","classes","classNames","handleChange","event","label","VisuallyHidden","span","input","type","role","displayName"],"mappings":"AAAA;;;;;+BAqESA;;;eAAAA;;;;uBA5DF;+DACgB;gCAEQ;;;;;;AAe/B,MAAMA,uBAASC,IAAAA,iBAAU,EAAgC,CAACC,OAAOC;IAC/D,MAAM,EAAEC,UAAU,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAE,GAAGC,YAAY,GAAGL;IAChE,MAAM,CAACM,SAASC,WAAW,GAAGC,IAAAA,eAAQ,EAAUN;IAEhDO,IAAAA,gBAAS,EAAC;QACRF,WAAWL;IACb,GAAG;QAACA;KAAQ;IAEZ,MAAMQ,UAAUC,IAAAA,eAAU,EACxB,UACA,iBACA;QACE,0BAA0BL;IAC5B,GACAH;IAGF,MAAMS,eAAe,CAACC;QACpBN,WAAW,CAACD;QACZ,IAAIF,UAAU;YACZA,SAASS;QACX;IACF;IAEA,qBACE,sBAACC;QAAMb,KAAKA;QAAKE,WAAWO;;0BAC1B,qBAACK,8BAAc;0BACb,cAAA,qBAACC;8BAAMV,UAAU,OAAO;;;0BAE1B,qBAACW;gBACCC,MAAK;gBACLC,MAAK;gBACLjB,SAASI;gBACTF,UAAUQ;gBACT,GAAGP,UAAU;;0BAEhB,qBAACW;gBAAKb,WAAU;;;;AAGtB;AAEAL,OAAOsB,WAAW,GAAG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
_export_star(require("./Switch"), exports);
|
|
6
|
+
function _export_star(from, to) {
|
|
7
|
+
Object.keys(from).forEach(function(k) {
|
|
8
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
9
|
+
Object.defineProperty(to, k, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return from[k];
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return from;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Switch/index.tsx"],"sourcesContent":["export * from \"./Switch\";\n"],"names":[],"mappings":";;;;qBAAc"}
|
|
@@ -38,6 +38,7 @@ _export_star(require("./Select"), exports);
|
|
|
38
38
|
_export_star(require("./Slider"), exports);
|
|
39
39
|
_export_star(require("./Stack"), exports);
|
|
40
40
|
_export_star(require("./SVG"), exports);
|
|
41
|
+
_export_star(require("./Switch"), exports);
|
|
41
42
|
_export_star(require("./Table"), exports);
|
|
42
43
|
_export_star(require("./Text"), exports);
|
|
43
44
|
_export_star(require("./TextArea"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/index.tsx"],"sourcesContent":["export * from \"./Accordion\";\nexport * from \"./AddressLookup\";\nexport * from \"./Alert\";\nexport * from \"./Box\";\nexport * from \"./Breadcrumbs\";\nexport * from \"./Button\";\nexport * from \"./Checkbox\";\nexport * from \"./Combobox\";\nexport * from \"./Container\";\nexport * from \"./Divider\";\nexport * from \"./Drawer\";\nexport * from \"./DropdownMenu\";\nexport * from \"./ErrorMessage\";\nexport * from \"./Fieldset\";\nexport * from \"./Flex\";\nexport * from \"./Grid\";\nexport * from \"./Icon\";\nexport * from \"./Image\";\nexport * from \"./Label\";\nexport * from \"./Link\";\nexport * from \"./LinkButton\";\nexport * from \"./List\";\nexport * from \"./LoadingIndicator\";\nexport * from \"./Logo\";\nexport * from \"./Modal\";\nexport * from \"./NumberField\";\nexport * from \"./Option\";\nexport * from \"./PasswordField\";\nexport * from \"./Popover\";\nexport * from \"./Progress\";\nexport * from \"./Radio\";\nexport * from \"./Segment\";\nexport * from \"./Select\";\nexport * from \"./Slider\";\nexport * from \"./Stack\";\nexport * from \"./SVG\";\nexport * from \"./Table\";\nexport * from \"./Text\";\nexport * from \"./TextArea\";\nexport * from \"./TextAreaInput\";\nexport * from \"./TextField\";\nexport * from \"./Title\";\nexport * from \"./Trust\";\nexport * from \"./VisuallyHidden\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/index.tsx"],"sourcesContent":["export * from \"./Accordion\";\nexport * from \"./AddressLookup\";\nexport * from \"./Alert\";\nexport * from \"./Box\";\nexport * from \"./Breadcrumbs\";\nexport * from \"./Button\";\nexport * from \"./Checkbox\";\nexport * from \"./Combobox\";\nexport * from \"./Container\";\nexport * from \"./Divider\";\nexport * from \"./Drawer\";\nexport * from \"./DropdownMenu\";\nexport * from \"./ErrorMessage\";\nexport * from \"./Fieldset\";\nexport * from \"./Flex\";\nexport * from \"./Grid\";\nexport * from \"./Icon\";\nexport * from \"./Image\";\nexport * from \"./Label\";\nexport * from \"./Link\";\nexport * from \"./LinkButton\";\nexport * from \"./List\";\nexport * from \"./LoadingIndicator\";\nexport * from \"./Logo\";\nexport * from \"./Modal\";\nexport * from \"./NumberField\";\nexport * from \"./Option\";\nexport * from \"./PasswordField\";\nexport * from \"./Popover\";\nexport * from \"./Progress\";\nexport * from \"./Radio\";\nexport * from \"./Segment\";\nexport * from \"./Select\";\nexport * from \"./Slider\";\nexport * from \"./Stack\";\nexport * from \"./SVG\";\nexport * from \"./Switch\";\nexport * from \"./Table\";\nexport * from \"./Text\";\nexport * from \"./TextArea\";\nexport * from \"./TextAreaInput\";\nexport * from \"./TextField\";\nexport * from \"./Title\";\nexport * from \"./Trust\";\nexport * from \"./VisuallyHidden\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA;qBACA"}
|