@symply.io/basic-components 1.0.0-alpha.1
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/.gitignore +15 -0
- package/AlertDialog/index.d.ts +5 -0
- package/AlertDialog/index.js +47 -0
- package/AlertDialog/types.d.ts +11 -0
- package/AlertDialog/types.js +1 -0
- package/BasicModal/Content.d.ts +4 -0
- package/BasicModal/Content.js +37 -0
- package/BasicModal/index.d.ts +5 -0
- package/BasicModal/index.js +54 -0
- package/BasicModal/types.d.ts +22 -0
- package/BasicModal/types.js +1 -0
- package/DigitInput/index.d.ts +7 -0
- package/DigitInput/index.js +35 -0
- package/DigitInput/types.d.ts +9 -0
- package/DigitInput/types.js +1 -0
- package/DigitInput/useInteractions.d.ts +11 -0
- package/DigitInput/useInteractions.js +24 -0
- package/DynamicHeaderBar/HeaderBar.d.ts +13 -0
- package/DynamicHeaderBar/HeaderBar.js +31 -0
- package/DynamicHeaderBar/HeaderButtons.d.ts +7 -0
- package/DynamicHeaderBar/HeaderButtons.js +43 -0
- package/DynamicHeaderBar/HeaderLine.d.ts +6 -0
- package/DynamicHeaderBar/HeaderLine.js +12 -0
- package/DynamicHeaderBar/index.d.ts +21 -0
- package/DynamicHeaderBar/index.js +57 -0
- package/DynamicHeaderBar/types.d.ts +33 -0
- package/DynamicHeaderBar/types.js +6 -0
- package/FormRadioGroup/index.d.ts +5 -0
- package/FormRadioGroup/index.js +35 -0
- package/FormRadioGroup/types.d.ts +16 -0
- package/FormRadioGroup/types.js +1 -0
- package/FormSelector/MultipleSelector.d.ts +4 -0
- package/FormSelector/MultipleSelector.js +34 -0
- package/FormSelector/SimpleSelector.d.ts +4 -0
- package/FormSelector/SimpleSelector.js +34 -0
- package/FormSelector/index.d.ts +3 -0
- package/FormSelector/index.js +3 -0
- package/FormSelector/types.d.ts +27 -0
- package/FormSelector/types.js +1 -0
- package/FormSelector/useInteractions.d.ts +6 -0
- package/FormSelector/useInteractions.js +12 -0
- package/HelpCaption/index.d.ts +10 -0
- package/HelpCaption/index.js +34 -0
- package/HelpCaption/useInteractions.d.ts +6 -0
- package/HelpCaption/useInteractions.js +12 -0
- package/LICENSE +21 -0
- package/LoadingModal/index.d.ts +5 -0
- package/LoadingModal/index.js +27 -0
- package/LoadingModal/types.d.ts +8 -0
- package/LoadingModal/types.js +1 -0
- package/MenuButtonGroup/MenuItem.d.ts +12 -0
- package/MenuButtonGroup/MenuItem.js +21 -0
- package/MenuButtonGroup/index.d.ts +13 -0
- package/MenuButtonGroup/index.js +100 -0
- package/NumberInput/index.d.ts +13 -0
- package/NumberInput/index.js +38 -0
- package/NumberInput/useInteractions.d.ts +17 -0
- package/NumberInput/useInteractions.js +54 -0
- package/PasswordInput/ConfirmPassword.d.ts +10 -0
- package/PasswordInput/ConfirmPassword.js +38 -0
- package/PasswordInput/Password.d.ts +18 -0
- package/PasswordInput/Password.js +68 -0
- package/PasswordInput/index.d.ts +4 -0
- package/PasswordInput/index.js +4 -0
- package/PhoneNumberInput/index.d.ts +11 -0
- package/PhoneNumberInput/index.js +44 -0
- package/PhoneNumberInput/useInteractions.d.ts +9 -0
- package/PhoneNumberInput/useInteractions.js +30 -0
- package/README.md +499 -0
- package/TabGroup/index.d.ts +5 -0
- package/TabGroup/index.js +46 -0
- package/TabGroup/types.d.ts +11 -0
- package/TabGroup/types.js +1 -0
- package/TextInput/index.d.ts +12 -0
- package/TextInput/index.js +35 -0
- package/TextInput/useInteractions.d.ts +6 -0
- package/TextInput/useInteractions.js +12 -0
- package/ToastPrompt/Logics.d.ts +12 -0
- package/ToastPrompt/Logics.js +37 -0
- package/ToastPrompt/Presentation.d.ts +16 -0
- package/ToastPrompt/Presentation.js +80 -0
- package/ToastPrompt/index.d.ts +13 -0
- package/ToastPrompt/index.js +29 -0
- package/VideoPlayerModal/index.d.ts +6 -0
- package/VideoPlayerModal/index.js +42 -0
- package/VideoPlayerModal/types.d.ts +8 -0
- package/VideoPlayerModal/types.js +1 -0
- package/index.d.ts +29 -0
- package/index.js +29 -0
- package/package.json +74 -0
@@ -0,0 +1,68 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
23
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
24
|
+
import { useMemo } from "react";
|
25
|
+
import TextField from "@mui/material/TextField";
|
26
|
+
import Typography from "@mui/material/Typography";
|
27
|
+
function Password(props) {
|
28
|
+
var _a = props.strategies, strategies = _a === void 0 ? {
|
29
|
+
uppercaseLetter: { label: "1 Uppercase Letter", regex: /[A-Z]+/ },
|
30
|
+
lowercaseLetter: { label: "1 Lowercase Letter", regex: /[a-z]+/ },
|
31
|
+
specialCharacter: {
|
32
|
+
label: "1 Special Character",
|
33
|
+
regex: /[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/,
|
34
|
+
},
|
35
|
+
number: { label: "1 Number", regex: /\d+/ },
|
36
|
+
minimum8: { label: "Minimum 8 characters", regex: /.{8,}/ },
|
37
|
+
} : _a, _b = props.successColor, successColor = _b === void 0 ? "green" : _b, value = props.value, error = props.error, _c = props.onVerify, onVerify = _c === void 0 ? function (password) {
|
38
|
+
var reg = /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])([!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~a-zA-z0-9]{8,})$/;
|
39
|
+
return reg.test(password);
|
40
|
+
} : _c, onChange = props.onChange, rest = __rest(props, ["strategies", "successColor", "value", "error", "onVerify", "onChange"]);
|
41
|
+
var isValidPassword = useMemo(function () { return !!value && onVerify(value); }, [value, onVerify]);
|
42
|
+
var helperTextColor = useMemo(function () {
|
43
|
+
var textColors = Object.keys(strategies).reduce(function (temp, key) {
|
44
|
+
var regex = strategies[key].regex;
|
45
|
+
if (value === "") {
|
46
|
+
temp[key] = undefined;
|
47
|
+
}
|
48
|
+
else if (regex.test(value)) {
|
49
|
+
temp[key] = successColor;
|
50
|
+
}
|
51
|
+
else {
|
52
|
+
temp[key] = "red";
|
53
|
+
}
|
54
|
+
return temp;
|
55
|
+
}, {});
|
56
|
+
return textColors;
|
57
|
+
}, [value, strategies]);
|
58
|
+
var helperText = useMemo(function () {
|
59
|
+
return (_jsx(_Fragment, { children: Object.keys(strategies).map(function (key) {
|
60
|
+
var label = strategies[key].label;
|
61
|
+
return (_jsx(Typography, __assign({ component: "p", variant: "caption", style: { color: helperTextColor[key] } }, { children: label }), key));
|
62
|
+
}) }, void 0));
|
63
|
+
}, [helperTextColor, strategies]);
|
64
|
+
return (_jsx(TextField, __assign({ error: !isValidPassword || error, helperText: helperText, type: "password", label: "Password", size: "small", margin: "dense", value: value, onChange: function (event) {
|
65
|
+
onChange(event.target.value);
|
66
|
+
}, fullWidth: true, required: true }, rest), void 0));
|
67
|
+
}
|
68
|
+
export default Password;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import { InputProps } from "@mui/material/Input";
|
3
|
+
import { TextFieldProps } from "@mui/material/TextField";
|
4
|
+
declare type TextInputProps = Omit<TextFieldProps, "onChange">;
|
5
|
+
export interface PhoneInputProps {
|
6
|
+
value: string;
|
7
|
+
endAdornment?: InputProps["endAdornment"];
|
8
|
+
onChange: (val: string) => void;
|
9
|
+
}
|
10
|
+
declare function PhoneInput(props: TextInputProps & PhoneInputProps): JSX.Element;
|
11
|
+
export default PhoneInput;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
23
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
24
|
+
import { useRifm } from "rifm";
|
25
|
+
import Typography from "@mui/material/Typography";
|
26
|
+
import InputAdornment from "@mui/material/InputAdornment";
|
27
|
+
import TextField from "@mui/material/TextField";
|
28
|
+
import useInteractions from "./useInteractions";
|
29
|
+
function PhoneInput(props) {
|
30
|
+
var value = props.value, endAdornment = props.endAdornment, onChange = props.onChange, rest = __rest(props, ["value", "endAdornment", "onChange"]);
|
31
|
+
var _a = useInteractions({ value: value }), addMask = _a.addMask, phoneFormat = _a.phoneFormat;
|
32
|
+
var rifm = useRifm({
|
33
|
+
mask: true,
|
34
|
+
value: String(value),
|
35
|
+
onChange: onChange,
|
36
|
+
replace: addMask,
|
37
|
+
format: phoneFormat,
|
38
|
+
});
|
39
|
+
return (_jsx(TextField, __assign({ value: rifm.value, InputProps: {
|
40
|
+
startAdornment: (_jsx(InputAdornment, __assign({ position: "start" }, { children: _jsx(Typography, __assign({ variant: "body2" }, { children: "+1" }), void 0) }), void 0)),
|
41
|
+
endAdornment: endAdornment,
|
42
|
+
}, onChange: rifm.onChange }, rest), void 0));
|
43
|
+
}
|
44
|
+
export default PhoneInput;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { useCallback, useMemo } from "react";
|
2
|
+
function useInteractions(props) {
|
3
|
+
var value = props.value;
|
4
|
+
var phoneFormat = useCallback(function (str) {
|
5
|
+
var digits = (str.match(/\d+/g) || []).join("");
|
6
|
+
var chars = digits.split("");
|
7
|
+
return chars.reduce(function (prev, curr, index) {
|
8
|
+
if (index === 3) {
|
9
|
+
return "".concat(prev, ") ").concat(curr);
|
10
|
+
}
|
11
|
+
if (index === 6) {
|
12
|
+
return "".concat(prev, "-").concat(curr);
|
13
|
+
}
|
14
|
+
return "".concat(prev).concat(curr);
|
15
|
+
}, "(");
|
16
|
+
}, []);
|
17
|
+
var addMask = useCallback(function (str) {
|
18
|
+
var digits = (str.match(/\d+/g) || []).join("");
|
19
|
+
var areaCode = digits.slice(0, 3).padEnd(3, "_");
|
20
|
+
var prefixCode = digits.slice(3, 6).padEnd(3, "_");
|
21
|
+
var subscriber = digits.slice(6, 10).padEnd(4, "_");
|
22
|
+
return "(".concat(areaCode, ") ").concat(prefixCode, "-").concat(subscriber);
|
23
|
+
}, []);
|
24
|
+
var valLength = useMemo(function () {
|
25
|
+
var digitsArr = String(value).match(/\d/g);
|
26
|
+
return digitsArr ? digitsArr.length : 0;
|
27
|
+
}, [value]);
|
28
|
+
return { valLength: valLength, addMask: addMask, phoneFormat: phoneFormat };
|
29
|
+
}
|
30
|
+
export default useInteractions;
|