@symply.io/basic-components 1.0.0-alpha.8 → 1.0.0-bata.7

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 (140) hide show
  1. package/AlertDialog/index.d.ts +0 -1
  2. package/AlertDialog/index.js +2 -2
  3. package/Autocomplete/index.d.ts +4 -0
  4. package/Autocomplete/index.js +38 -0
  5. package/Autocomplete/types.d.ts +14 -0
  6. package/Autocomplete/types.js +1 -0
  7. package/Autocomplete/useInteractions.d.ts +5 -0
  8. package/Autocomplete/useInteractions.js +9 -0
  9. package/AutocompleteWithFilter/index.d.ts +4 -0
  10. package/AutocompleteWithFilter/index.js +52 -0
  11. package/AutocompleteWithFilter/types.d.ts +15 -0
  12. package/AutocompleteWithFilter/types.js +1 -0
  13. package/BasicModal/Content.d.ts +0 -1
  14. package/BasicModal/Content.js +6 -6
  15. package/BasicModal/index.d.ts +0 -1
  16. package/BasicModal/index.js +3 -6
  17. package/BasicTable/TableBody.d.ts +4 -0
  18. package/BasicTable/TableBody.js +51 -0
  19. package/BasicTable/TableBodyRow.d.ts +3 -0
  20. package/BasicTable/TableBodyRow.js +42 -0
  21. package/BasicTable/TableFooter.d.ts +3 -0
  22. package/BasicTable/TableFooter.js +44 -0
  23. package/BasicTable/TableHeader.d.ts +3 -0
  24. package/BasicTable/TableHeader.js +47 -0
  25. package/BasicTable/index.d.ts +5 -0
  26. package/BasicTable/index.js +88 -0
  27. package/BasicTable/types.d.ts +70 -0
  28. package/BasicTable/types.js +1 -0
  29. package/BasicTable/useScroll.d.ts +9 -0
  30. package/BasicTable/useScroll.js +76 -0
  31. package/BasicTable/useTable.d.ts +38 -0
  32. package/BasicTable/useTable.js +94 -0
  33. package/BreadCrumbs/index.d.ts +4 -0
  34. package/BreadCrumbs/index.js +37 -0
  35. package/BreadCrumbs/types.d.ts +9 -0
  36. package/BreadCrumbs/types.js +1 -0
  37. package/CheckBox/CheckBox.d.ts +3 -0
  38. package/CheckBox/CheckBox.js +36 -0
  39. package/CheckBox/CheckBoxGroup.d.ts +3 -0
  40. package/CheckBox/CheckBoxGroup.js +30 -0
  41. package/CheckBox/index.d.ts +3 -0
  42. package/CheckBox/index.js +3 -0
  43. package/CheckBox/types.d.ts +12 -0
  44. package/CheckBox/types.js +1 -0
  45. package/Copyright/index.d.ts +4 -0
  46. package/Copyright/index.js +25 -0
  47. package/Copyright/types.d.ts +5 -0
  48. package/Copyright/types.js +1 -0
  49. package/DateInput/FullDateInput/index.d.ts +5 -0
  50. package/DateInput/FullDateInput/index.js +79 -0
  51. package/DateInput/FullDateInput/types.d.ts +9 -0
  52. package/DateInput/FullDateInput/types.js +1 -0
  53. package/DateInput/FullDateInput/useInteractions.d.ts +8 -0
  54. package/DateInput/FullDateInput/useInteractions.js +20 -0
  55. package/DateInput/MonthDayInput/index.d.ts +5 -0
  56. package/DateInput/MonthDayInput/index.js +65 -0
  57. package/DateInput/MonthDayInput/types.d.ts +9 -0
  58. package/DateInput/MonthDayInput/types.js +1 -0
  59. package/DateInput/MonthDayInput/useInteractions.d.ts +8 -0
  60. package/DateInput/MonthDayInput/useInteractions.js +19 -0
  61. package/DateInput/MonthYearInput/index.d.ts +5 -0
  62. package/DateInput/MonthYearInput/index.js +66 -0
  63. package/DateInput/MonthYearInput/types.d.ts +9 -0
  64. package/DateInput/MonthYearInput/types.js +1 -0
  65. package/DateInput/MonthYearInput/useInteractions.d.ts +8 -0
  66. package/DateInput/MonthYearInput/useInteractions.js +19 -0
  67. package/DateInput/index.d.ts +6 -0
  68. package/DateInput/index.js +6 -0
  69. package/DigitInput/index.d.ts +1 -4
  70. package/DigitInput/index.js +3 -3
  71. package/DigitInput/types.d.ts +2 -1
  72. package/DynamicHeaderBar/HeaderBar.js +1 -1
  73. package/DynamicHeaderBar/HeaderButtons.d.ts +0 -1
  74. package/DynamicHeaderBar/HeaderButtons.js +6 -6
  75. package/DynamicHeaderBar/HeaderLine.js +1 -1
  76. package/DynamicHeaderBar/index.js +2 -2
  77. package/DynamicHeaderBar/types.d.ts +3 -0
  78. package/FeinInput/index.d.ts +6 -0
  79. package/FeinInput/index.js +75 -0
  80. package/FeinInput/types.d.ts +9 -0
  81. package/FeinInput/types.js +1 -0
  82. package/FeinInput/useInteractions.d.ts +8 -0
  83. package/FeinInput/useInteractions.js +16 -0
  84. package/FormRadioGroup/index.d.ts +0 -1
  85. package/FormRadioGroup/index.js +3 -3
  86. package/FormSelector/MultipleSelector.d.ts +0 -1
  87. package/FormSelector/MultipleSelector.js +14 -3
  88. package/FormSelector/SimpleSelector.d.ts +0 -1
  89. package/FormSelector/SimpleSelector.js +3 -3
  90. package/FormSelector/types.d.ts +2 -7
  91. package/HelpCaption/index.js +2 -2
  92. package/LoadingModal/index.d.ts +0 -1
  93. package/LoadingModal/index.js +1 -1
  94. package/MenuButtonGroup/MenuItem.d.ts +0 -1
  95. package/MenuButtonGroup/MenuItem.js +1 -1
  96. package/MenuButtonGroup/index.js +2 -2
  97. package/NumberInput/index.d.ts +2 -3
  98. package/NumberInput/index.js +1 -1
  99. package/PasswordInput/ConfirmPassword.d.ts +2 -3
  100. package/PasswordInput/ConfirmPassword.js +1 -1
  101. package/PasswordInput/Password.d.ts +5 -5
  102. package/PasswordInput/Password.js +9 -8
  103. package/PhoneNumberInput/index.d.ts +4 -3
  104. package/PhoneNumberInput/index.js +15 -4
  105. package/README.md +438 -15
  106. package/Sidebar/SidebarItem.d.ts +3 -0
  107. package/Sidebar/SidebarItem.js +62 -0
  108. package/Sidebar/SidebarItemsGroup.d.ts +5 -0
  109. package/Sidebar/SidebarItemsGroup.js +38 -0
  110. package/Sidebar/SidebarLink.d.ts +3 -0
  111. package/Sidebar/SidebarLink.js +37 -0
  112. package/Sidebar/index.d.ts +7 -0
  113. package/Sidebar/index.js +30 -0
  114. package/Sidebar/types.d.ts +31 -0
  115. package/Sidebar/types.js +1 -0
  116. package/SocialInput/index.d.ts +6 -0
  117. package/SocialInput/index.js +77 -0
  118. package/SocialInput/types.d.ts +9 -0
  119. package/SocialInput/types.js +1 -0
  120. package/SocialInput/useInteractions.d.ts +10 -0
  121. package/SocialInput/useInteractions.js +26 -0
  122. package/TabGroup/index.js +10 -5
  123. package/TablePagination/Actions.d.ts +3 -0
  124. package/TablePagination/Actions.js +27 -0
  125. package/TablePagination/index.d.ts +4 -0
  126. package/TablePagination/index.js +30 -0
  127. package/TablePagination/types.d.ts +14 -0
  128. package/TablePagination/types.js +1 -0
  129. package/TablePagination/useInteractions.d.ts +14 -0
  130. package/TablePagination/useInteractions.js +23 -0
  131. package/TextInput/index.d.ts +2 -3
  132. package/TextInput/index.js +13 -3
  133. package/ToastPrompt/Presentation.js +3 -3
  134. package/ToastPrompt/index.js +1 -1
  135. package/VideoPlayerModal/index.d.ts +1 -3
  136. package/VideoPlayerModal/index.js +2 -2
  137. package/VideoPlayerModal/types.d.ts +2 -1
  138. package/index.d.ts +20 -0
  139. package/index.js +20 -0
  140. package/package.json +8 -2
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { UseScrollProps } from "./types";
3
+ declare function useScroll(props: UseScrollProps): {
4
+ frozenWidth: number;
5
+ setFrozenWidth: import("react").Dispatch<import("react").SetStateAction<number>>;
6
+ fixedRef: import("react").RefObject<HTMLDivElement>;
7
+ dynamicRef: import("react").RefObject<HTMLDivElement>;
8
+ };
9
+ export default useScroll;
@@ -0,0 +1,76 @@
1
+ import { useState, useCallback, useEffect, useRef } from "react";
2
+ import useTheme from "@mui/material/styles/useTheme";
3
+ import useMediaQuery from "@mui/material/useMediaQuery";
4
+ function useScroll(props) {
5
+ var canFreeze = props.canFreeze;
6
+ var theme = useTheme();
7
+ var isUpMd = useMediaQuery(theme.breakpoints.up("md"));
8
+ var _a = useState(370), frozenWidth = _a[0], setFrozenWidth = _a[1];
9
+ var fixedRef = useRef(null);
10
+ var dynamicRef = useRef(null);
11
+ var resetFrozenWidth = useCallback(function () {
12
+ setFrozenWidth(function (fw) {
13
+ var _a, _b;
14
+ if (fw !== ((_a = fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current) === null || _a === void 0 ? void 0 : _a.clientWidth)) {
15
+ return ((_b = fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) || fw;
16
+ }
17
+ return fw;
18
+ });
19
+ }, [fixedRef]);
20
+ var onFixedScroll = useCallback(function (event) {
21
+ if (isUpMd && (dynamicRef === null || dynamicRef === void 0 ? void 0 : dynamicRef.current)) {
22
+ var targetDiv = event.target;
23
+ dynamicRef.current.scrollTop = targetDiv.scrollTop;
24
+ resetFrozenWidth();
25
+ }
26
+ }, [dynamicRef, isUpMd, resetFrozenWidth]);
27
+ var onDynamicScroll = useCallback(function (event) {
28
+ if (isUpMd && (fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current)) {
29
+ var targetDiv = event.target;
30
+ fixedRef.current.scrollTop = targetDiv.scrollTop;
31
+ resetFrozenWidth();
32
+ }
33
+ }, [fixedRef, isUpMd, resetFrozenWidth]);
34
+ var removeEventFixed = useCallback(function () {
35
+ if (fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current) {
36
+ fixedRef.current.removeEventListener("scroll", onFixedScroll);
37
+ }
38
+ }, [fixedRef, onFixedScroll]);
39
+ var removeEventDynamic = useCallback(function () {
40
+ if (dynamicRef === null || dynamicRef === void 0 ? void 0 : dynamicRef.current) {
41
+ dynamicRef.current.removeEventListener("scroll", onDynamicScroll);
42
+ }
43
+ }, [dynamicRef, onDynamicScroll]);
44
+ var bindEventFixed = useCallback(function () {
45
+ removeEventDynamic();
46
+ if (fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current) {
47
+ fixedRef.current.addEventListener("scroll", onFixedScroll);
48
+ }
49
+ }, [fixedRef, onFixedScroll, removeEventDynamic]);
50
+ var bindEventDynamic = useCallback(function () {
51
+ removeEventFixed();
52
+ if (dynamicRef === null || dynamicRef === void 0 ? void 0 : dynamicRef.current) {
53
+ dynamicRef.current.addEventListener("scroll", onDynamicScroll);
54
+ }
55
+ }, [dynamicRef, onDynamicScroll, removeEventFixed]);
56
+ useEffect(function () {
57
+ if (canFreeze) {
58
+ if (fixedRef === null || fixedRef === void 0 ? void 0 : fixedRef.current) {
59
+ fixedRef.current.addEventListener("mouseover", bindEventFixed);
60
+ }
61
+ if (dynamicRef === null || dynamicRef === void 0 ? void 0 : dynamicRef.current) {
62
+ dynamicRef.current.addEventListener("mouseover", bindEventDynamic);
63
+ }
64
+ }
65
+ }, [
66
+ bindEventDynamic,
67
+ bindEventFixed,
68
+ canFreeze,
69
+ dynamicRef,
70
+ fixedRef,
71
+ onDynamicScroll,
72
+ onFixedScroll
73
+ ]);
74
+ return { frozenWidth: frozenWidth, setFrozenWidth: setFrozenWidth, fixedRef: fixedRef, dynamicRef: dynamicRef };
75
+ }
76
+ export default useScroll;
@@ -0,0 +1,38 @@
1
+ /// <reference types="react" />
2
+ import { UseTableProps, SortingProps } from "./types";
3
+ declare function useTable(props: UseTableProps): {
4
+ headers: {
5
+ Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
6
+ Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
7
+ Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
8
+ align?: "left" | "right" | "center" | undefined;
9
+ accessor: string;
10
+ canSort: boolean | undefined;
11
+ canBeFrozen?: boolean | undefined;
12
+ Cell: JSX.Element;
13
+ title: string;
14
+ onSort: ({ field }: Pick<SortingProps, "field">) => void;
15
+ }[];
16
+ footers: {
17
+ Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
18
+ Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
19
+ Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
20
+ align?: "left" | "right" | "center" | undefined;
21
+ accessor: string;
22
+ canSort?: boolean | undefined;
23
+ canBeFrozen?: boolean | undefined;
24
+ Cell: import("react").FunctionComponentElement<any>;
25
+ }[];
26
+ columns: {
27
+ Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
28
+ Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
29
+ Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
30
+ align?: "left" | "right" | "center" | undefined;
31
+ accessor: string;
32
+ canSort?: boolean | undefined;
33
+ canBeFrozen?: boolean | undefined;
34
+ Cell: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
35
+ }[];
36
+ rows: import("./types").IRow[];
37
+ };
38
+ export default useTable;
@@ -0,0 +1,94 @@
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 { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
+ import { cloneElement, useState, useMemo, useCallback } from "react";
25
+ function useTable(props) {
26
+ var data = props.data, columns = props.columns, initialState = props.initialState, disableSortBy = props.disableSortBy, onSort = props.onSort, rest = __rest(props, ["data", "columns", "initialState", "disableSortBy", "onSort"]);
27
+ if (!data) {
28
+ throw new Error('"data" is required but got null or undefined');
29
+ }
30
+ if (!columns) {
31
+ throw new Error('"columns" is required but got null or undefined');
32
+ }
33
+ var sortBy = (initialState || {}).sortBy;
34
+ var _a = sortBy || {}, id = _a.id, desc = _a.desc;
35
+ var _b = useState({
36
+ field: id || "",
37
+ isSorted: !!id,
38
+ descending: desc || false
39
+ }), sortingProps = _b[0], setSortingProps = _b[1];
40
+ var handleSort = useCallback(function (_a) {
41
+ var field = _a.field;
42
+ if (!disableSortBy) {
43
+ var newSortingProps = __assign({}, sortingProps);
44
+ if (field !== sortingProps.field || !sortingProps.isSorted) {
45
+ newSortingProps = { field: field, isSorted: true, descending: false };
46
+ }
47
+ else if (!sortingProps.descending) {
48
+ newSortingProps = __assign(__assign({}, sortingProps), { descending: true });
49
+ }
50
+ else {
51
+ newSortingProps = __assign(__assign({}, sortingProps), { isSorted: false });
52
+ }
53
+ if (onSort) {
54
+ onSort(__assign({}, newSortingProps));
55
+ }
56
+ setSortingProps(__assign({}, newSortingProps));
57
+ }
58
+ }, [disableSortBy, onSort, sortingProps]);
59
+ var renderSortingSymbol = useCallback(function (accessor) {
60
+ var field = sortingProps.field, isSorted = sortingProps.isSorted, descending = sortingProps.descending;
61
+ if (accessor !== field || !isSorted) {
62
+ return "";
63
+ }
64
+ if (!descending) {
65
+ return "↑";
66
+ }
67
+ return "↓";
68
+ }, [sortingProps]);
69
+ var rows = useMemo(function () { return data.map(function (d) { return d; }); }, [data]);
70
+ var cols = useMemo(function () {
71
+ return columns.map(function (col) {
72
+ var Body = col.Body;
73
+ return __assign(__assign({ Cell: cloneElement(Body || _jsx(_Fragment, {}), { column: col }) }, col), rest);
74
+ });
75
+ }, [columns, rest]);
76
+ var headers = useMemo(function () {
77
+ return columns.map(function (col) {
78
+ var Header = col.Header, accessor = col.accessor, canSort = col.canSort;
79
+ var canSortBy = canSort && !disableSortBy;
80
+ return __assign(__assign({ Cell: (_jsxs(_Fragment, { children: [cloneElement(Header || _jsx(_Fragment, {}), { column: col }), canSortBy && renderSortingSymbol(accessor)] })), title: "".concat(canSortBy ? " (Click to sort)" : ""), canSort: canSortBy, onSort: canSortBy ? handleSort : function () { } }, col), rest);
81
+ });
82
+ }, [columns, disableSortBy, handleSort, renderSortingSymbol, rest]);
83
+ var footers = useMemo(function () {
84
+ return columns.map(function (col) {
85
+ var Footer = col.Footer;
86
+ return __assign(__assign({ Cell: cloneElement(Footer || _jsx(_Fragment, {}), {
87
+ column: col,
88
+ rows: rows
89
+ }) }, col), rest);
90
+ });
91
+ }, [columns, rest, rows]);
92
+ return { headers: headers, footers: footers, columns: cols, rows: rows };
93
+ }
94
+ export default useTable;
@@ -0,0 +1,4 @@
1
+ import { BreadCrumbsProps } from "./types";
2
+ declare function Crumbs(props: BreadCrumbsProps): JSX.Element;
3
+ export default Crumbs;
4
+ export * from "./types";
@@ -0,0 +1,37 @@
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
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { useCallback } from "react";
14
+ import { navigate } from "@reach/router";
15
+ import Breadcrumbs from "@mui/material/Breadcrumbs";
16
+ import Typography from "@mui/material/Typography";
17
+ import ThemeProvider from "@mui/material/styles/ThemeProvider";
18
+ import NavigateNextIcon from "@mui/icons-material/NavigateNext";
19
+ import useCustomTheme from "../useCustomTheme";
20
+ function Crumbs(props) {
21
+ var routes = props.routes, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor;
22
+ var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
23
+ var onNavigateTo = useCallback(function (url) {
24
+ navigate(url, { replace: true });
25
+ }, []);
26
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsxs(Breadcrumbs, __assign({ "aria-label": "breadcrumb", separator: _jsx(NavigateNextIcon, { fontSize: "small" }) }, { children: [_jsx(Typography, {}), routes.map(function (route) {
27
+ var href = route.href, label = route.label;
28
+ return href ? (_jsx(Typography, __assign({ variant: "body2", color: "inherit", sx: {
29
+ "&:hover": {
30
+ cursor: "pointer",
31
+ color: theme.palette.primary.light,
32
+ },
33
+ }, onClick: function () { return onNavigateTo(href); } }, { children: label }), label)) : (_jsx(Typography, __assign({ variant: "body2", color: "primary" }, { children: label }), label));
34
+ })] })) })));
35
+ }
36
+ export default Crumbs;
37
+ export * from "./types";
@@ -0,0 +1,9 @@
1
+ import { CSSProperties } from "react";
2
+ export interface BreadCrumbsProps {
3
+ routes: Array<{
4
+ href?: string;
5
+ label: string;
6
+ }>;
7
+ primaryColor?: CSSProperties["color"];
8
+ secondaryColor?: CSSProperties["color"];
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { CheckBoxProps } from "./types";
2
+ export declare function CheckBox(props: CheckBoxProps): JSX.Element;
3
+ export default CheckBox;
@@ -0,0 +1,36 @@
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 Checkbox from "@mui/material/Checkbox";
25
+ import FormControlLabel from "@mui/material/FormControlLabel";
26
+ import ThemeProvider from "@mui/material/styles/ThemeProvider";
27
+ import useCustomTheme from "../useCustomTheme";
28
+ export function CheckBox(props) {
29
+ var label = props.label, onChange = props.onChange, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, rest = __rest(props, ["label", "onChange", "primaryColor", "secondaryColor"]);
30
+ var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
31
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(FormControlLabel, { control: _jsx(Checkbox, __assign({ onChange: function (event) {
32
+ event.stopPropagation();
33
+ onChange(event.target.checked);
34
+ } }, rest)), label: label }) })));
35
+ }
36
+ export default CheckBox;
@@ -0,0 +1,3 @@
1
+ import { CheckBoxGroupProps } from "./types";
2
+ export declare function CheckBoxGroup(props: CheckBoxGroupProps): JSX.Element;
3
+ export default CheckBoxGroup;
@@ -0,0 +1,30 @@
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 FormGroup from "@mui/material/FormGroup";
25
+ import CheckBox from "./CheckBox";
26
+ export function CheckBoxGroup(props) {
27
+ var checkboxes = props.checkboxes, rest = __rest(props, ["checkboxes"]);
28
+ return (_jsx(FormGroup, __assign({}, rest, { children: checkboxes.map(function (checkbox, index) { return (_jsx(CheckBox, __assign({}, checkbox), index)); }) })));
29
+ }
30
+ export default CheckBoxGroup;
@@ -0,0 +1,3 @@
1
+ export { default as CheckBox } from "./CheckBox";
2
+ export { default as CheckBoxGroup } from "./CheckBoxGroup";
3
+ export * from "./types";
@@ -0,0 +1,3 @@
1
+ export { default as CheckBox } from "./CheckBox";
2
+ export { default as CheckBoxGroup } from "./CheckBoxGroup";
3
+ export * from "./types";
@@ -0,0 +1,12 @@
1
+ import { CSSProperties, ReactNode } from "react";
2
+ import { CheckboxProps } from "@mui/material/Checkbox";
3
+ import { FormGroupProps } from "@mui/material/FormGroup";
4
+ export interface CheckBoxProps extends Omit<CheckboxProps, "onChange"> {
5
+ label: string | ReactNode;
6
+ onChange: (val: boolean) => void;
7
+ primaryColor?: CSSProperties["color"];
8
+ secondaryColor?: CSSProperties["color"];
9
+ }
10
+ export interface CheckBoxGroupProps extends FormGroupProps {
11
+ checkboxes: Array<CheckBoxProps>;
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { CopyrightProps } from "./types";
2
+ declare function Copyright(props: CopyrightProps): JSX.Element;
3
+ export default Copyright;
4
+ export * from "./types";
@@ -0,0 +1,25 @@
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
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import Link from "@mui/material/Link";
14
+ import Typography from "@mui/material/Typography";
15
+ import ThemeProvider from "@mui/material/styles/ThemeProvider";
16
+ import useCustomTheme from "../useCustomTheme";
17
+ function Copyright(props) {
18
+ var primaryColor = props.primaryColor, secondaryColor = props.secondaryColor;
19
+ var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
20
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsxs(Typography, __assign({ variant: "body2", color: "textSecondary", align: "center" }, { children: ["Copyright © ", _jsx(Link, __assign({ color: "inherit", href: "https://symply.io/" }, { children: "Symply Software Inc" })), "\u00A0", new Date().getFullYear() > 2020
21
+ ? "2020-".concat(new Date().getFullYear())
22
+ : new Date().getFullYear(), "."] })) })));
23
+ }
24
+ export default Copyright;
25
+ export * from "./types";
@@ -0,0 +1,5 @@
1
+ import { CSSProperties } from "react";
2
+ export interface CopyrightProps {
3
+ primaryColor?: CSSProperties["color"];
4
+ secondaryColor?: CSSProperties["color"];
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { DateInputprops } from "./types";
2
+ export declare function MonthDayYearFormat(str: string): string;
3
+ export declare function onValidateDate(dateString: string): boolean;
4
+ declare function FullDateInput(props: DateInputprops): JSX.Element;
5
+ export default FullDateInput;
@@ -0,0 +1,79 @@
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 TextField from "@mui/material/TextField";
26
+ import ThemeProvider from "@mui/material/styles/ThemeProvider";
27
+ import useInteractions from "./useInteractions";
28
+ import useCustomTheme from "../../useCustomTheme";
29
+ export function MonthDayYearFormat(str) {
30
+ var digits = (str.match(/\d+/g) || []).join("");
31
+ var chars = digits.split("");
32
+ return chars.reduce(function (prev, curr, index) {
33
+ if (index === 2) {
34
+ return "".concat(prev, " / ").concat(curr);
35
+ }
36
+ else if (index === 4) {
37
+ return "".concat(prev, " / ").concat(curr);
38
+ }
39
+ else {
40
+ return "".concat(prev).concat(curr);
41
+ }
42
+ }, "");
43
+ }
44
+ export function onValidateDate(dateString) {
45
+ var reg = /^((((0[1,3,5,7,8]{1})|(1[0,2]{1}))\s?\/\s?((0[1-9]{1})|([1-2]{1}\d{1})|(3[0-1]{1})))|(((0[4,6,9]{1})|(11))\s?\/\s?((0[1-9]{1})|([1-2]{1}\d{1})|(30)))|((02)\s?\/\s?(0[1-9]{1}|[1-2]{1}\d{1})))\s?\/\s?\d{4}$/g;
46
+ if (reg.test(dateString)) {
47
+ var tmpArr = dateString.split("/");
48
+ var month = parseInt(tmpArr[0].trim(), 10);
49
+ var day = parseInt(tmpArr[1].trim(), 10);
50
+ var year = parseInt(tmpArr[2].trim(), 10);
51
+ var verifyLeapYear = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
52
+ if (month === 2 && !verifyLeapYear) {
53
+ return day < 29;
54
+ }
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ function FullDateInput(props) {
60
+ var onChange = props.onChange, value = props.value, _a = props.margin, margin = _a === void 0 ? "normal" : _a, error = props.error, _b = props.helperText, helperText = _b === void 0 ? "Please enter a valid date" : _b, onValidate = props.onValidate, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, rest = __rest(props, ["onChange", "value", "margin", "error", "helperText", "onValidate", "primaryColor", "secondaryColor"]);
61
+ var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
62
+ var _c = useInteractions({ value: value }), valLength = _c.valLength, addMask = _c.addMask;
63
+ var rifm = useRifm({
64
+ mask: true,
65
+ value: String(value),
66
+ onChange: onChange,
67
+ replace: addMask,
68
+ format: MonthDayYearFormat
69
+ });
70
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(TextField, __assign({ placeholder: "MM / DD / YYYY", error: error ||
71
+ (valLength > 0 &&
72
+ (onValidate ? !onValidate(value) : !onValidateDate(value))), margin: margin, value: rifm.value, onChange: rifm.onChange, helperText: valLength > 0 &&
73
+ (onValidate ? !onValidate(value) : !onValidateDate(value))
74
+ ? helperText
75
+ : "", InputLabelProps: {
76
+ shrink: true
77
+ } }, rest)) })));
78
+ }
79
+ export default FullDateInput;
@@ -0,0 +1,9 @@
1
+ import { CSSProperties } from "react";
2
+ import { TextFieldProps } from "@mui/material/TextField";
3
+ export interface DateInputprops extends Omit<TextFieldProps, "onChange"> {
4
+ onChange: (value: string) => void;
5
+ onValidate?: (value?: string) => boolean;
6
+ value: string;
7
+ primaryColor?: CSSProperties["color"];
8
+ secondaryColor?: CSSProperties["color"];
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ interface InteractionProps {
2
+ value: string;
3
+ }
4
+ declare function useInteractions(props: InteractionProps): {
5
+ valLength: number;
6
+ addMask: (str: string) => string;
7
+ };
8
+ export default useInteractions;
@@ -0,0 +1,20 @@
1
+ import { useCallback, useMemo } from "react";
2
+ function useInteractions(props) {
3
+ var value = props.value;
4
+ var addMask = useCallback(function (str) {
5
+ var digits = (str.match(/\d+/g) || []).join("");
6
+ var month = digits.slice(0, 2).padEnd(2, "_");
7
+ var day = digits.slice(2, 4).padEnd(2, "_");
8
+ var Year = digits.slice(4, 8).padEnd(4, "_");
9
+ if (digits) {
10
+ return "".concat(month, " / ").concat(day, " / ").concat(Year);
11
+ }
12
+ return "";
13
+ }, []);
14
+ var valLength = useMemo(function () {
15
+ var digitsArr = String(value).match(/\d/g);
16
+ return digitsArr ? digitsArr.length : 0;
17
+ }, [value]);
18
+ return { valLength: valLength, addMask: addMask };
19
+ }
20
+ export default useInteractions;
@@ -0,0 +1,5 @@
1
+ import { DateInputprops } from "./types";
2
+ export declare function MonthDayFormat(str: string): string;
3
+ export declare function onValidateMonthDay(monthDayString: string): boolean;
4
+ declare function MonthDayInput(props: DateInputprops): JSX.Element;
5
+ export default MonthDayInput;
@@ -0,0 +1,65 @@
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 TextField from "@mui/material/TextField";
26
+ import ThemeProvider from "@mui/material/styles/ThemeProvider";
27
+ import useInteractions from "./useInteractions";
28
+ import useCustomTheme from "../../useCustomTheme";
29
+ export function MonthDayFormat(str) {
30
+ var digits = (str.match(/\d+/g) || []).join("");
31
+ var chars = digits.split("");
32
+ return chars.reduce(function (prev, curr, index) {
33
+ if (index === 2) {
34
+ return "".concat(prev, " / ").concat(curr);
35
+ }
36
+ else {
37
+ return "".concat(prev).concat(curr);
38
+ }
39
+ }, "");
40
+ }
41
+ export function onValidateMonthDay(monthDayString) {
42
+ var reg = /^((((0[1,3,5,7,8]{1})|(1[0,2]{1}))\s?\/\s?((0[1-9]{1})|([1-2]{1}\d{1})|(3[0-1]{1})))|(((0[4,6,9]{1})|(11))\s?\/\s?((0[1-9]{1})|([1-2]{1}\d{1})|(30)))|((02)\s?\/\s?(0[1-9]{1})|([1-2]{1}\d{1})))$/g;
43
+ return reg.test(monthDayString);
44
+ }
45
+ function MonthDayInput(props) {
46
+ var onChange = props.onChange, value = props.value, _a = props.margin, margin = _a === void 0 ? "normal" : _a, error = props.error, _b = props.helperText, helperText = _b === void 0 ? "Please enter a valid date" : _b, onValidate = props.onValidate, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, rest = __rest(props, ["onChange", "value", "margin", "error", "helperText", "onValidate", "primaryColor", "secondaryColor"]);
47
+ var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
48
+ var _c = useInteractions({ value: value }), valLength = _c.valLength, addMask = _c.addMask;
49
+ var rifm = useRifm({
50
+ mask: true,
51
+ value: String(value),
52
+ onChange: onChange,
53
+ replace: addMask,
54
+ format: MonthDayFormat
55
+ });
56
+ return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(TextField, __assign({ placeholder: "MM / DD", error: error ||
57
+ (valLength > 0 &&
58
+ (onValidate ? !onValidate(value) : !onValidateMonthDay(value))), margin: margin, value: rifm.value, onChange: rifm.onChange, helperText: valLength > 0 &&
59
+ (onValidate ? !onValidate(value) : !onValidateMonthDay(value))
60
+ ? helperText
61
+ : "", InputLabelProps: {
62
+ shrink: true
63
+ } }, rest)) })));
64
+ }
65
+ export default MonthDayInput;
@@ -0,0 +1,9 @@
1
+ import { CSSProperties } from "react";
2
+ import { TextFieldProps } from "@mui/material/TextField";
3
+ export interface DateInputprops extends Omit<TextFieldProps, "onChange"> {
4
+ onChange: (value: string) => void;
5
+ onValidate?: (value?: string) => boolean;
6
+ value: string;
7
+ primaryColor?: CSSProperties["color"];
8
+ secondaryColor?: CSSProperties["color"];
9
+ }
@@ -0,0 +1 @@
1
+ export {};