pixelize-design-library 2.3.1-beta.13 → 2.3.1-beta.15

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 (40) hide show
  1. package/.claude/settings.local.json +5 -1
  2. package/dist/Components/OrgSwitcher/OrgSwitcher.d.ts +4 -0
  3. package/dist/Components/OrgSwitcher/OrgSwitcher.js +121 -0
  4. package/dist/Components/OrgSwitcher/OrgSwitcherProps.d.ts +41 -0
  5. package/dist/Components/OrgSwitcher/OrgSwitcherProps.js +25 -0
  6. package/dist/Components/RolesPermission/DeleteRoleModal.d.ts +4 -0
  7. package/dist/Components/RolesPermission/DeleteRoleModal.js +29 -0
  8. package/dist/Components/RolesPermission/RolesPermission.d.ts +4 -0
  9. package/dist/Components/RolesPermission/RolesPermission.js +243 -0
  10. package/dist/Components/RolesPermission/RolesPermission.test.d.ts +1 -0
  11. package/dist/Components/RolesPermission/RolesPermission.test.js +150 -0
  12. package/dist/Components/RolesPermission/RolesPermissionProps.d.ts +117 -0
  13. package/dist/Components/RolesPermission/RolesPermissionProps.js +2 -0
  14. package/dist/Components/StageProgress/StageItem.d.ts +4 -0
  15. package/dist/Components/StageProgress/StageItem.js +137 -0
  16. package/dist/Components/StageProgress/StageProgress.d.ts +4 -0
  17. package/dist/Components/StageProgress/StageProgress.js +59 -0
  18. package/dist/Components/StageProgress/StageProgressProps.d.ts +85 -0
  19. package/dist/Components/StageProgress/StageProgressProps.js +27 -0
  20. package/dist/Components/StageProgress/StepperStage.d.ts +4 -0
  21. package/dist/Components/StageProgress/StepperStage.js +78 -0
  22. package/dist/Components/UpgradeButton/UpgradeButton.d.ts +4 -0
  23. package/dist/Components/UpgradeButton/UpgradeButton.js +58 -0
  24. package/dist/Components/UpgradeButton/UpgradeButtonProps.d.ts +30 -0
  25. package/dist/Components/UpgradeButton/UpgradeButtonProps.js +2 -0
  26. package/dist/Components/UserDetails/AddUserModal.d.ts +4 -0
  27. package/dist/Components/UserDetails/AddUserModal.js +218 -0
  28. package/dist/Components/UserDetails/ChangeRoleModal.d.ts +4 -0
  29. package/dist/Components/UserDetails/ChangeRoleModal.js +150 -0
  30. package/dist/Components/UserDetails/DeactivateConfirmModal.d.ts +4 -0
  31. package/dist/Components/UserDetails/DeactivateConfirmModal.js +34 -0
  32. package/dist/Components/UserDetails/UserDetails.d.ts +4 -0
  33. package/dist/Components/UserDetails/UserDetails.js +263 -0
  34. package/dist/Components/UserDetails/UserDetails.test.d.ts +1 -0
  35. package/dist/Components/UserDetails/UserDetails.test.js +129 -0
  36. package/dist/Components/UserDetails/UserDetailsProps.d.ts +151 -0
  37. package/dist/Components/UserDetails/UserDetailsProps.js +2 -0
  38. package/dist/index.d.ts +9 -1
  39. package/dist/index.js +14 -2
  40. package/package.json +1 -1
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ var react_1 = __importStar(require("react"));
37
+ var react_2 = require("@chakra-ui/react");
38
+ var lucide_react_1 = require("lucide-react");
39
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
40
+ var StageProgressProps_1 = require("./StageProgressProps");
41
+ var sizeMap = {
42
+ sm: { circle: "24px", font: "0.7rem", label: "0.7rem", icon: 12, minW: "84px" },
43
+ md: { circle: "30px", font: "0.8rem", label: "0.8rem", icon: 14, minW: "104px" },
44
+ lg: { circle: "38px", font: "0.95rem", label: "0.9rem", icon: 16, minW: "124px" },
45
+ };
46
+ var StepperStage = function (_a) {
47
+ var label = _a.label, number = _a.number, state = _a.state, _b = _a.size, size = _b === void 0 ? "md" : _b, _c = _a.colorScheme, colorScheme = _c === void 0 ? "primary" : _c, onClick = _a.onClick, _d = _a.isReadOnly, isReadOnly = _d === void 0 ? false : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.showCheck, showCheck = _f === void 0 ? true : _f, isFirst = _a.isFirst, isLast = _a.isLast, leftDone = _a.leftDone, rightDone = _a.rightDone, _g = _a.scrollIntoViewWhenActive, scrollIntoViewWhenActive = _g === void 0 ? true : _g;
48
+ var theme = (0, useCustomTheme_1.useCustomTheme)();
49
+ var palette = (0, StageProgressProps_1.resolveStagePalette)(theme, colorScheme);
50
+ var ref = (0, react_1.useRef)(null);
51
+ var s = sizeMap[size];
52
+ var interactive = !isReadOnly && !disabled;
53
+ (0, react_1.useEffect)(function () {
54
+ if (state === "active" && scrollIntoViewWhenActive && ref.current) {
55
+ ref.current.scrollIntoView({
56
+ behavior: "smooth",
57
+ inline: "center",
58
+ block: "nearest",
59
+ });
60
+ }
61
+ }, [state, scrollIntoViewWhenActive]);
62
+ var filled = state === "active" || state === "completed";
63
+ var circleBg = filled ? palette.strong : theme.colors.white;
64
+ var circleColor = filled ? palette.onStrong : palette.mutedText;
65
+ var circleBorder = filled ? palette.strong : palette.muted;
66
+ var line = function (done, hidden) { return (react_1.default.createElement(react_2.Box, { flex: "1", height: "2px", bg: done ? palette.strong : palette.muted, visibility: hidden ? "hidden" : "visible", transition: "background 0.18s ease" })); };
67
+ return (react_1.default.createElement(react_2.Flex, { ref: ref, direction: "column", align: "center", flex: "1", minWidth: s.minW, flexShrink: 0, role: "group", cursor: interactive ? "pointer" : "default", opacity: disabled ? 0.55 : 1, onClick: interactive ? onClick : undefined },
68
+ react_1.default.createElement(react_2.Flex, { align: "center", width: "100%" },
69
+ line(leftDone, isFirst),
70
+ react_1.default.createElement(react_2.Flex, { align: "center", justify: "center", boxSize: s.circle, borderRadius: "full", flexShrink: 0, bg: circleBg, color: circleColor, border: "2px solid", borderColor: circleBorder, fontSize: s.font, fontWeight: 600, transition: "all 0.18s ease", "aria-current": state === "active" ? "step" : undefined, sx: state === "active"
71
+ ? { boxShadow: "0 0 0 4px ".concat(palette.soft) }
72
+ : undefined, _groupHover: interactive
73
+ ? { borderColor: palette.strong, color: filled ? palette.onStrong : palette.strong }
74
+ : undefined }, showCheck && state === "completed" ? react_1.default.createElement(lucide_react_1.Check, { size: s.icon }) : number),
75
+ line(rightDone, isLast)),
76
+ react_1.default.createElement(react_2.Text, { mt: 2, px: 1, fontSize: s.label, fontWeight: state === "active" ? 600 : 500, color: state === "upcoming" ? palette.mutedText : palette.softText, textAlign: "center", noOfLines: 2, _groupHover: interactive ? { color: palette.strong } : undefined }, label)));
77
+ };
78
+ exports.default = StepperStage;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { UpgradeButtonProps } from "./UpgradeButtonProps";
3
+ declare const UpgradeButton: React.FC<UpgradeButtonProps>;
4
+ export default UpgradeButton;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var react_2 = require("@chakra-ui/react");
19
+ var lucide_react_1 = require("lucide-react");
20
+ var sizeMap = {
21
+ sm: { px: "12px", py: "4px", font: "12px", sub: "8px", icon: 11, radius: "40px" },
22
+ md: { px: "20px", py: "5px", font: "14px", sub: "10px", icon: 13, radius: "50px" },
23
+ lg: { px: "26px", py: "8px", font: "16px", sub: "11px", icon: 16, radius: "60px" },
24
+ };
25
+ var DEFAULT_GRADIENT = { from: "#667eea", to: "#764ba2" };
26
+ var UpgradeButton = function (_a) {
27
+ var label = _a.label, mobileLabel = _a.mobileLabel, subtitle = _a.subtitle, _b = _a.icon, icon = _b === void 0 ? lucide_react_1.Sparkles : _b, _c = _a.iconColor, iconColor = _c === void 0 ? "#FFD66B" : _c, _d = _a.gradient, gradient = _d === void 0 ? DEFAULT_GRADIENT : _d, _e = _a.size, size = _e === void 0 ? "md" : _e, _f = _a.shimmer, shimmer = _f === void 0 ? true : _f, _g = _a.isLoading, isLoading = _g === void 0 ? false : _g, _h = _a.isDisabled, isDisabled = _h === void 0 ? false : _h, _j = _a.maxLabelWidth, maxLabelWidth = _j === void 0 ? "160px" : _j, ariaLabel = _a.ariaLabel, onClick = _a.onClick;
28
+ var s = sizeMap[size];
29
+ var Icon = icon;
30
+ var blocked = isLoading || isDisabled;
31
+ var g = "linear-gradient(135deg, ".concat(gradient.from, " 0%, ").concat(gradient.to, " 100%)");
32
+ var gReversed = "linear-gradient(135deg, ".concat(gradient.to, " 0%, ").concat(gradient.from, " 100%)");
33
+ var hasMobile = !!mobileLabel && mobileLabel !== label;
34
+ return (react_1.default.createElement(react_2.Box, { as: "button", type: "button", "aria-label": ariaLabel || label, onClick: blocked ? undefined : onClick, disabled: isDisabled, position: "relative", cursor: blocked ? "default" : "pointer", opacity: isDisabled ? 0.6 : 1, px: { base: s.px === "20px" ? "14px" : s.px, md: s.px }, py: s.py, bgImage: g, color: "white", borderRadius: s.radius, fontWeight: "bold", textAlign: "center", overflow: "hidden", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", transition: "transform 0.3s ease, box-shadow 0.3s ease, background-image 0.3s ease", _focusVisible: { outline: "none", boxShadow: "0 0 0 3px ".concat(gradient.from, "55") }, _hover: blocked
35
+ ? undefined
36
+ : __assign({ transform: "translateY(-2px)", bgImage: gReversed, boxShadow: "0 10px 30px ".concat(gradient.from, "66") }, (shimmer ? { _before: { left: "130%" } } : {})), sx: shimmer
37
+ ? {
38
+ _before: {
39
+ content: '""',
40
+ position: "absolute",
41
+ top: 0,
42
+ left: "-75%",
43
+ width: "55%",
44
+ height: "100%",
45
+ background: "linear-gradient(120deg, transparent, rgba(255,255,255,0.45), transparent)",
46
+ transform: "skewX(-20deg)",
47
+ transition: "left 0.7s ease",
48
+ pointerEvents: "none",
49
+ },
50
+ }
51
+ : undefined },
52
+ react_1.default.createElement(react_2.Flex, { align: "center", gap: "6px", maxW: maxLabelWidth, overflow: "hidden", whiteSpace: "nowrap", zIndex: 1 },
53
+ react_1.default.createElement(react_2.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: hasMobile ? { base: "none", md: "block" } : "block" }, label),
54
+ hasMobile && (react_1.default.createElement(react_2.Text, { as: "span", fontSize: s.font, overflow: "hidden", textOverflow: "ellipsis", display: { base: "block", md: "none" } }, mobileLabel)),
55
+ isLoading ? (react_1.default.createElement(react_2.Spinner, { size: "xs", thickness: "1.5px", color: iconColor })) : (Icon && react_1.default.createElement(Icon, { size: s.icon, color: iconColor, style: { flexShrink: 0 } }))),
56
+ subtitle && (react_1.default.createElement(react_2.Text, { as: "span", mt: "1px", fontSize: s.sub, fontWeight: "bold", color: iconColor, maxW: maxLabelWidth, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", zIndex: 1 }, subtitle))));
57
+ };
58
+ exports.default = UpgradeButton;
@@ -0,0 +1,30 @@
1
+ import { ElementType } from "react";
2
+ export type UpgradeButtonSize = "sm" | "md" | "lg";
3
+ export interface UpgradeButtonProps {
4
+ /** Primary label (shown on md+ screens). */
5
+ label: string;
6
+ /** Compact label for small screens. Defaults to `label`. */
7
+ mobileLabel?: string;
8
+ /** Optional small second line, e.g. a plan-expiry message. */
9
+ subtitle?: string;
10
+ /** Leading icon. Defaults to lucide `Sparkles`. Pass null to hide. */
11
+ icon?: ElementType | null;
12
+ /** Icon color. Defaults to a gold tone. */
13
+ iconColor?: string;
14
+ /** Gradient stops. Defaults to the brand purple gradient. */
15
+ gradient?: {
16
+ from: string;
17
+ to: string;
18
+ };
19
+ size?: UpgradeButtonSize;
20
+ /** Animated light sweep on hover. Default true. */
21
+ shimmer?: boolean;
22
+ /** Show a spinner and block interaction. */
23
+ isLoading?: boolean;
24
+ isDisabled?: boolean;
25
+ /** Truncate the label beyond this width. */
26
+ maxLabelWidth?: string;
27
+ /** Accessible label (falls back to `label`). */
28
+ ariaLabel?: string;
29
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
30
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { AddUserModalProps } from "./UserDetailsProps";
3
+ declare const AddUserModal: React.FC<AddUserModalProps>;
4
+ export default AddUserModal;
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
47
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
48
+ return new (P || (P = Promise))(function (resolve, reject) {
49
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
50
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
51
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
52
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
53
+ });
54
+ };
55
+ var __generator = (this && this.__generator) || function (thisArg, body) {
56
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
57
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
58
+ function verb(n) { return function (v) { return step([n, v]); }; }
59
+ function step(op) {
60
+ if (f) throw new TypeError("Generator is already executing.");
61
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
62
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
63
+ if (y = 0, t) op = [op[0] & 2, t.value];
64
+ switch (op[0]) {
65
+ case 0: case 1: t = op; break;
66
+ case 4: _.label++; return { value: op[1], done: false };
67
+ case 5: _.label++; y = op[1]; op = [0]; continue;
68
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
69
+ default:
70
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
71
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
72
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
73
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
74
+ if (t[2]) _.ops.pop();
75
+ _.trys.pop(); continue;
76
+ }
77
+ op = body.call(thisArg, _);
78
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
79
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
80
+ }
81
+ };
82
+ var __importDefault = (this && this.__importDefault) || function (mod) {
83
+ return (mod && mod.__esModule) ? mod : { "default": mod };
84
+ };
85
+ Object.defineProperty(exports, "__esModule", { value: true });
86
+ var react_1 = __importStar(require("react"));
87
+ var react_2 = require("@chakra-ui/react");
88
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
89
+ var Button_1 = __importDefault(require("../Button/Button"));
90
+ var TextInput_1 = __importDefault(require("../Input/TextInput"));
91
+ var SearchSelect_1 = __importDefault(require("../SearchSelect/SearchSelect"));
92
+ var EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
93
+ var emptyValues = {
94
+ firstName: "",
95
+ lastName: "",
96
+ email: "",
97
+ role: null,
98
+ };
99
+ var AddUserModal = function (_a) {
100
+ var _b, _c, _d, _e;
101
+ var isOpen = _a.isOpen, onClose = _a.onClose, roleOptions = _a.roleOptions, isLoading = _a.isLoading, onSubmit = _a.onSubmit, onAddRoleClick = _a.onAddRoleClick, upgradeNotice = _a.upgradeNotice, labels = _a.labels;
102
+ var colors = (0, useCustomTheme_1.useCustomTheme)().colors;
103
+ var _f = (0, react_1.useState)(emptyValues), values = _f[0], setValues = _f[1];
104
+ var _g = (0, react_1.useState)({}), errors = _g[0], setErrors = _g[1];
105
+ (0, react_1.useEffect)(function () {
106
+ if (!isOpen) {
107
+ setValues(emptyValues);
108
+ setErrors({});
109
+ }
110
+ }, [isOpen]);
111
+ var validate = function () {
112
+ var nextErrors = {};
113
+ if (!values.firstName.trim())
114
+ nextErrors.firstName = labels.firstNameRequired;
115
+ if (!values.lastName.trim())
116
+ nextErrors.lastName = labels.lastNameRequired;
117
+ if (!values.email.trim()) {
118
+ nextErrors.email = labels.emailRequired;
119
+ }
120
+ else if (!EMAIL_REGEX.test(values.email.trim())) {
121
+ nextErrors.email = labels.emailInvalid;
122
+ }
123
+ if (!values.role)
124
+ nextErrors.role = labels.roleRequired;
125
+ return nextErrors;
126
+ };
127
+ var handleChange = function (field) {
128
+ return function (event) {
129
+ var value = event.target.value;
130
+ setValues(function (prev) {
131
+ var _a;
132
+ return (__assign(__assign({}, prev), (_a = {}, _a[field] = value, _a)));
133
+ });
134
+ setErrors(function (prev) {
135
+ var _a;
136
+ return (__assign(__assign({}, prev), (_a = {}, _a[field] = undefined, _a)));
137
+ });
138
+ };
139
+ };
140
+ var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
141
+ var nextErrors;
142
+ return __generator(this, function (_a) {
143
+ switch (_a.label) {
144
+ case 0:
145
+ nextErrors = validate();
146
+ if (Object.keys(nextErrors).length > 0) {
147
+ setErrors(nextErrors);
148
+ return [2 /*return*/];
149
+ }
150
+ return [4 /*yield*/, (onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit({
151
+ firstName: values.firstName.trim(),
152
+ lastName: values.lastName.trim(),
153
+ email: values.email.trim(),
154
+ role: values.role,
155
+ }))];
156
+ case 1:
157
+ _a.sent();
158
+ return [2 /*return*/];
159
+ }
160
+ });
161
+ }); };
162
+ var textFields = [
163
+ {
164
+ id: "firstName",
165
+ label: labels.firstName,
166
+ placeholder: labels.firstNamePlaceholder,
167
+ },
168
+ {
169
+ id: "lastName",
170
+ label: labels.lastName,
171
+ placeholder: labels.lastNamePlaceholder,
172
+ },
173
+ {
174
+ id: "email",
175
+ label: labels.email,
176
+ placeholder: labels.emailPlaceholder,
177
+ type: "email",
178
+ },
179
+ ];
180
+ return (react_1.default.createElement(react_2.Modal, { isOpen: isOpen, onClose: onClose, trapFocus: false, isCentered: true },
181
+ react_1.default.createElement(react_2.ModalOverlay, { backdropFilter: "blur(4px)" }),
182
+ react_1.default.createElement(react_2.ModalContent, { borderRadius: "2xl", overflow: "hidden" },
183
+ react_1.default.createElement(react_2.ModalHeader, { borderBottom: "1px solid", borderColor: (_c = (_b = colors === null || colors === void 0 ? void 0 : colors.boxborder) === null || _b === void 0 ? void 0 : _b[200]) !== null && _c !== void 0 ? _c : (_d = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _d === void 0 ? void 0 : _d[200] },
184
+ labels.addNewUser,
185
+ upgradeNotice),
186
+ react_1.default.createElement(react_2.ModalCloseButton, null),
187
+ react_1.default.createElement(react_2.ModalBody, { py: 5 },
188
+ react_1.default.createElement(react_2.VStack, { spacing: 4, align: "stretch" },
189
+ textFields.map(function (field) { return (react_1.default.createElement(react_2.FormControl, { key: field.id, isInvalid: !!errors[field.id] },
190
+ react_1.default.createElement(TextInput_1.default, { id: field.id, name: field.id, type: field.type, label: field.label, placeholder: field.placeholder, value: values[field.id], onChange: handleChange(field.id), isRequired: true, error: !!errors[field.id], errorMessage: errors[field.id], width: "100%" }))); }),
191
+ react_1.default.createElement(react_2.FormControl, { isInvalid: !!errors.role, isRequired: true },
192
+ react_1.default.createElement(SearchSelect_1.default, { label: labels.role, options: roleOptions.map(function (item) { return ({
193
+ id: item.id,
194
+ label: item.label,
195
+ }); }), value: (_e = values.role) !== null && _e !== void 0 ? _e : undefined, onSelect: function (option) {
196
+ if (!option) {
197
+ setValues(function (prev) { return (__assign(__assign({}, prev), { role: null })); });
198
+ }
199
+ else if (!Array.isArray(option)) {
200
+ var role_1 = {
201
+ id: Number(option.id),
202
+ label: option.label,
203
+ };
204
+ setValues(function (prev) { return (__assign(__assign({}, prev), { role: role_1 })); });
205
+ setErrors(function (prev) { return (__assign(__assign({}, prev), { role: undefined })); });
206
+ }
207
+ }, isRequired: true, isRemoveAllIcon: true, error: !!errors.role, errorMessage: errors.role, addNew: onAddRoleClick
208
+ ? {
209
+ enabled: true,
210
+ text: labels.addNewRole,
211
+ onClick: onAddRoleClick,
212
+ }
213
+ : undefined })))),
214
+ react_1.default.createElement(react_2.ModalFooter, null,
215
+ react_1.default.createElement(Button_1.default, { label: labels.cancel, onClick: onClose, colorScheme: "red", size: "sm", variant: "outline" }),
216
+ react_1.default.createElement(Button_1.default, { label: labels.save, type: "submit", colorScheme: "primary", size: "sm", sx: { ml: 3 }, isLoading: isLoading, onClick: handleSubmit })))));
217
+ };
218
+ exports.default = AddUserModal;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ChangeRoleModalProps } from "./UserDetailsProps";
3
+ declare const ChangeRoleModal: React.FC<ChangeRoleModalProps>;
4
+ export default ChangeRoleModal;
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __generator = (this && this.__generator) || function (thisArg, body) {
45
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
+ function verb(n) { return function (v) { return step([n, v]); }; }
48
+ function step(op) {
49
+ if (f) throw new TypeError("Generator is already executing.");
50
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
+ if (y = 0, t) op = [op[0] & 2, t.value];
53
+ switch (op[0]) {
54
+ case 0: case 1: t = op; break;
55
+ case 4: _.label++; return { value: op[1], done: false };
56
+ case 5: _.label++; y = op[1]; op = [0]; continue;
57
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
+ default:
59
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
+ if (t[2]) _.ops.pop();
64
+ _.trys.pop(); continue;
65
+ }
66
+ op = body.call(thisArg, _);
67
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
+ }
70
+ };
71
+ var __importDefault = (this && this.__importDefault) || function (mod) {
72
+ return (mod && mod.__esModule) ? mod : { "default": mod };
73
+ };
74
+ Object.defineProperty(exports, "__esModule", { value: true });
75
+ var react_1 = __importStar(require("react"));
76
+ var react_2 = require("@chakra-ui/react");
77
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
78
+ var Button_1 = __importDefault(require("../Button/Button"));
79
+ var TextInput_1 = __importDefault(require("../Input/TextInput"));
80
+ var SearchSelect_1 = __importDefault(require("../SearchSelect/SearchSelect"));
81
+ var ChangeRoleModal = function (_a) {
82
+ var _b, _c, _d, _e;
83
+ var isOpen = _a.isOpen, onClose = _a.onClose, userId = _a.userId, email = _a.email, currentRole = _a.currentRole, roleOptions = _a.roleOptions, isLoading = _a.isLoading, onSubmit = _a.onSubmit, onAddRoleClick = _a.onAddRoleClick, labels = _a.labels;
84
+ var colors = (0, useCustomTheme_1.useCustomTheme)().colors;
85
+ var _f = (0, react_1.useState)(null), selectedRole = _f[0], setSelectedRole = _f[1];
86
+ var _g = (0, react_1.useState)(null), error = _g[0], setError = _g[1];
87
+ (0, react_1.useEffect)(function () {
88
+ if (isOpen && currentRole) {
89
+ var match = roleOptions.find(function (role) { return role.label.toLowerCase() === currentRole.toLowerCase(); });
90
+ setSelectedRole(match ? { id: match.id, label: match.label } : null);
91
+ setError(null);
92
+ }
93
+ else if (!isOpen) {
94
+ setSelectedRole(null);
95
+ setError(null);
96
+ }
97
+ }, [isOpen, currentRole, roleOptions]);
98
+ var isUnchanged = ((_b = selectedRole === null || selectedRole === void 0 ? void 0 : selectedRole.label) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === (currentRole === null || currentRole === void 0 ? void 0 : currentRole.toLowerCase());
99
+ var handleSubmit = function () { return __awaiter(void 0, void 0, void 0, function () {
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0:
103
+ if (!selectedRole) {
104
+ setError(labels.roleRequired);
105
+ return [2 /*return*/];
106
+ }
107
+ if (userId == null)
108
+ return [2 /*return*/];
109
+ return [4 /*yield*/, (onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit({ userId: userId, roleId: selectedRole.id }))];
110
+ case 1:
111
+ _a.sent();
112
+ return [2 /*return*/];
113
+ }
114
+ });
115
+ }); };
116
+ return (react_1.default.createElement(react_2.Modal, { isOpen: isOpen, onClose: onClose, trapFocus: false, isCentered: true },
117
+ react_1.default.createElement(react_2.ModalOverlay, { backdropFilter: "blur(4px)" }),
118
+ react_1.default.createElement(react_2.ModalContent, { borderRadius: "2xl", overflow: "hidden" },
119
+ react_1.default.createElement(react_2.ModalHeader, { borderBottom: "1px solid", borderColor: (_d = (_c = colors === null || colors === void 0 ? void 0 : colors.boxborder) === null || _c === void 0 ? void 0 : _c[200]) !== null && _d !== void 0 ? _d : (_e = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _e === void 0 ? void 0 : _e[200] }, labels.changeRoleTitle),
120
+ react_1.default.createElement(react_2.ModalCloseButton, null),
121
+ react_1.default.createElement(react_2.ModalBody, { py: 5 },
122
+ react_1.default.createElement(react_2.VStack, { spacing: 4, align: "stretch" },
123
+ react_1.default.createElement(TextInput_1.default, { label: labels.email, value: email !== null && email !== void 0 ? email : "", isDisabled: true, width: "100%" }),
124
+ react_1.default.createElement(react_2.FormControl, { isInvalid: !!error, isRequired: true },
125
+ react_1.default.createElement(SearchSelect_1.default, { label: labels.role, options: roleOptions.map(function (item) { return ({
126
+ id: item.id,
127
+ label: item.label,
128
+ }); }), value: selectedRole !== null && selectedRole !== void 0 ? selectedRole : undefined, onSelect: function (option) {
129
+ if (!option) {
130
+ setSelectedRole(null);
131
+ }
132
+ else if (!Array.isArray(option)) {
133
+ setSelectedRole({
134
+ id: Number(option.id),
135
+ label: option.label,
136
+ });
137
+ setError(null);
138
+ }
139
+ }, isRequired: true, isRemoveAllIcon: true, error: !!error, errorMessage: error !== null && error !== void 0 ? error : undefined, addNew: onAddRoleClick
140
+ ? {
141
+ enabled: true,
142
+ text: labels.addNewRole,
143
+ onClick: onAddRoleClick,
144
+ }
145
+ : undefined })))),
146
+ react_1.default.createElement(react_2.ModalFooter, null,
147
+ react_1.default.createElement(Button_1.default, { label: labels.cancel, onClick: onClose, colorScheme: "red", size: "sm", variant: "outline" }),
148
+ react_1.default.createElement(Button_1.default, { label: labels.save, type: "submit", colorScheme: "primary", size: "sm", sx: { ml: 3 }, isLoading: isLoading, isDisabled: isUnchanged || !selectedRole, onClick: handleSubmit })))));
149
+ };
150
+ exports.default = ChangeRoleModal;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DeactivateConfirmModalProps } from "./UserDetailsProps";
3
+ declare const DeactivateConfirmModal: React.FC<DeactivateConfirmModalProps>;
4
+ export default DeactivateConfirmModal;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_2 = require("@chakra-ui/react");
8
+ var lucide_react_1 = require("lucide-react");
9
+ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
10
+ var Button_1 = __importDefault(require("../Button/Button"));
11
+ var DeactivateConfirmModal = function (_a) {
12
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
13
+ var isOpen = _a.isOpen, onClose = _a.onClose, userName = _a.userName, isLoading = _a.isLoading, onConfirm = _a.onConfirm, labels = _a.labels;
14
+ var colors = (0, useCustomTheme_1.useCustomTheme)().colors;
15
+ return (react_1.default.createElement(react_2.Modal, { isOpen: isOpen, onClose: onClose, isCentered: true },
16
+ react_1.default.createElement(react_2.ModalOverlay, { backdropFilter: "blur(4px)" }),
17
+ react_1.default.createElement(react_2.ModalContent, { borderRadius: "2xl", overflow: "hidden" },
18
+ react_1.default.createElement(react_2.ModalHeader, { borderBottom: "1px solid", borderColor: (_c = (_b = colors === null || colors === void 0 ? void 0 : colors.boxborder) === null || _b === void 0 ? void 0 : _b[200]) !== null && _c !== void 0 ? _c : (_d = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _d === void 0 ? void 0 : _d[200], display: "flex", alignItems: "center", gap: 3 },
19
+ react_1.default.createElement(react_2.Flex, { align: "center", justify: "center", boxSize: "36px", borderRadius: "full", bg: (_j = (_g = (_f = (_e = colors === null || colors === void 0 ? void 0 : colors.semantic) === null || _e === void 0 ? void 0 : _e.error) === null || _f === void 0 ? void 0 : _f[50]) !== null && _g !== void 0 ? _g : (_h = colors === null || colors === void 0 ? void 0 : colors.red) === null || _h === void 0 ? void 0 : _h[50]) !== null && _j !== void 0 ? _j : "#FEF2F2", color: (_p = (_m = (_l = (_k = colors === null || colors === void 0 ? void 0 : colors.semantic) === null || _k === void 0 ? void 0 : _k.error) === null || _l === void 0 ? void 0 : _l[500]) !== null && _m !== void 0 ? _m : (_o = colors === null || colors === void 0 ? void 0 : colors.red) === null || _o === void 0 ? void 0 : _o[500]) !== null && _p !== void 0 ? _p : "#EF4444" },
20
+ react_1.default.createElement(lucide_react_1.AlertTriangle, { size: 18 })),
21
+ react_1.default.createElement(react_2.Text, { fontSize: "1.05rem", fontWeight: 600 }, labels.confirmDeactivation)),
22
+ react_1.default.createElement(react_2.ModalCloseButton, null),
23
+ react_1.default.createElement(react_2.ModalBody, { py: 6 },
24
+ react_1.default.createElement(react_2.VStack, { spacing: 4, align: "stretch" },
25
+ react_1.default.createElement(react_2.Text, { fontSize: "md", fontWeight: 500, color: (_q = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _q === void 0 ? void 0 : _q[800] }, labels.deactivateConfirmQuestion),
26
+ react_1.default.createElement(react_2.Box, { bg: (_s = (_r = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _r === void 0 ? void 0 : _r[50]) !== null && _s !== void 0 ? _s : "#F8FAFC", borderRadius: "lg", p: 4, border: "1px solid", borderColor: (_u = (_t = colors === null || colors === void 0 ? void 0 : colors.boxborder) === null || _t === void 0 ? void 0 : _t[200]) !== null && _u !== void 0 ? _u : (_v = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _v === void 0 ? void 0 : _v[200] },
27
+ react_1.default.createElement(react_2.Text, { color: (_w = colors === null || colors === void 0 ? void 0 : colors.gray) === null || _w === void 0 ? void 0 : _w[600], fontSize: "sm" },
28
+ userName ? "".concat(userName, " ") : "",
29
+ labels.deactivateConfirmDescription)),
30
+ react_1.default.createElement(react_2.HStack, { justifyContent: "flex-end", spacing: 3, pt: 2 },
31
+ react_1.default.createElement(Button_1.default, { label: labels.cancel, onClick: onClose, variant: "outline", size: "sm", colorScheme: "gray" }),
32
+ react_1.default.createElement(Button_1.default, { label: labels.deactivateUser, onClick: onConfirm, colorScheme: "red", size: "sm", isLoading: isLoading, leftIcon: react_1.default.createElement(lucide_react_1.Trash2, { size: 16 }) })))))));
33
+ };
34
+ exports.default = DeactivateConfirmModal;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { UserDetailsProps } from "./UserDetailsProps";
3
+ declare const UserDetails: React.FC<UserDetailsProps>;
4
+ export default UserDetails;