@w-iris/react 0.1.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/dist/admin/AdminAuth.d.ts +70 -0
- package/dist/admin/AdminAuth.d.ts.map +1 -0
- package/dist/admin/AdminAuth.js +105 -0
- package/dist/admin/AdminAuth.js.map +1 -0
- package/dist/admin/AdminNavigation.d.ts +27 -0
- package/dist/admin/AdminNavigation.d.ts.map +1 -0
- package/dist/admin/AdminNavigation.js +31 -0
- package/dist/admin/AdminNavigation.js.map +1 -0
- package/dist/admin/AdminUser.d.ts +40 -0
- package/dist/admin/AdminUser.d.ts.map +1 -0
- package/dist/admin/AdminUser.js +41 -0
- package/dist/admin/AdminUser.js.map +1 -0
- package/dist/admin/index.d.ts +4 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +20 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/feedback/EmptyState.d.ts +11 -0
- package/dist/feedback/EmptyState.d.ts.map +1 -0
- package/dist/feedback/EmptyState.js +10 -0
- package/dist/feedback/EmptyState.js.map +1 -0
- package/dist/forms/Select.d.ts +18 -0
- package/dist/forms/Select.d.ts.map +1 -0
- package/dist/forms/Select.js +12 -0
- package/dist/forms/Select.js.map +1 -0
- package/dist/forms/TextInput.d.ts +12 -0
- package/dist/forms/TextInput.d.ts.map +1 -0
- package/dist/forms/TextInput.js +13 -0
- package/dist/forms/TextInput.js.map +1 -0
- package/dist/forms/Textarea.d.ts +12 -0
- package/dist/forms/Textarea.d.ts.map +1 -0
- package/dist/forms/Textarea.js +13 -0
- package/dist/forms/Textarea.js.map +1 -0
- package/dist/foundation/Avatar.d.ts +8 -0
- package/dist/foundation/Avatar.d.ts.map +1 -0
- package/dist/foundation/Avatar.js +15 -0
- package/dist/foundation/Avatar.js.map +1 -0
- package/dist/foundation/Badge.d.ts +8 -0
- package/dist/foundation/Badge.d.ts.map +1 -0
- package/dist/foundation/Badge.js +9 -0
- package/dist/foundation/Badge.js.map +1 -0
- package/dist/foundation/Button.d.ts +18 -0
- package/dist/foundation/Button.d.ts.map +1 -0
- package/dist/foundation/Button.js +11 -0
- package/dist/foundation/Button.js.map +1 -0
- package/dist/foundation/Card.d.ts +4 -0
- package/dist/foundation/Card.d.ts.map +1 -0
- package/dist/foundation/Card.js +9 -0
- package/dist/foundation/Card.js.map +1 -0
- package/dist/foundation/IconButton.d.ts +15 -0
- package/dist/foundation/IconButton.d.ts.map +1 -0
- package/dist/foundation/IconButton.js +11 -0
- package/dist/foundation/IconButton.js.map +1 -0
- package/dist/foundation/Spinner.d.ts +7 -0
- package/dist/foundation/Spinner.d.ts.map +1 -0
- package/dist/foundation/Spinner.js +9 -0
- package/dist/foundation/Spinner.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/AppShell.d.ts +8 -0
- package/dist/layout/AppShell.d.ts.map +1 -0
- package/dist/layout/AppShell.js +8 -0
- package/dist/layout/AppShell.js.map +1 -0
- package/dist/layout/PageHeader.d.ts +9 -0
- package/dist/layout/PageHeader.d.ts.map +1 -0
- package/dist/layout/PageHeader.js +8 -0
- package/dist/layout/PageHeader.js.map +1 -0
- package/dist/layout/Sidebar.d.ts +14 -0
- package/dist/layout/Sidebar.d.ts.map +1 -0
- package/dist/layout/Sidebar.js +13 -0
- package/dist/layout/Sidebar.js.map +1 -0
- package/dist/layout/Topbar.d.ts +8 -0
- package/dist/layout/Topbar.d.ts.map +1 -0
- package/dist/layout/Topbar.js +8 -0
- package/dist/layout/Topbar.js.map +1 -0
- package/dist/overlay/ConfirmDialog.d.ts +12 -0
- package/dist/overlay/ConfirmDialog.d.ts.map +1 -0
- package/dist/overlay/ConfirmDialog.js +11 -0
- package/dist/overlay/ConfirmDialog.js.map +1 -0
- package/dist/overlay/Dialog.d.ts +10 -0
- package/dist/overlay/Dialog.d.ts.map +1 -0
- package/dist/overlay/Dialog.js +12 -0
- package/dist/overlay/Dialog.js.map +1 -0
- package/dist/presets/mixiAdmin.d.ts +30 -0
- package/dist/presets/mixiAdmin.d.ts.map +1 -0
- package/dist/presets/mixiAdmin.js +117 -0
- package/dist/presets/mixiAdmin.js.map +1 -0
- package/dist/prime/PrimeComponents.d.ts +195 -0
- package/dist/prime/PrimeComponents.d.ts.map +1 -0
- package/dist/prime/PrimeComponents.js +199 -0
- package/dist/prime/PrimeComponents.js.map +1 -0
- package/dist/prime/PrimeProvider.d.ts +7 -0
- package/dist/prime/PrimeProvider.d.ts.map +1 -0
- package/dist/prime/PrimeProvider.js +10 -0
- package/dist/prime/PrimeProvider.js.map +1 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +7 -0
- package/dist/utils.js.map +1 -0
- package/package.json +32 -0
- package/styles.css +1953 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type AdminAuthCardProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
subtitle?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
logo?: ReactNode;
|
|
7
|
+
showLogo?: boolean;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare function AdminAuthCard({ title, subtitle, icon, logo, showLogo, children }: AdminAuthCardProps): import("react").JSX.Element;
|
|
11
|
+
export declare function AdminLoginForm({ loading, error, forgotPasswordHref, registerHref, rememberStorageKey, teamName, onSubmit, }: {
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
error?: string | null;
|
|
14
|
+
forgotPasswordHref?: string;
|
|
15
|
+
registerHref?: string;
|
|
16
|
+
rememberStorageKey?: string;
|
|
17
|
+
teamName?: string | null;
|
|
18
|
+
onSubmit: (payload: {
|
|
19
|
+
email: string;
|
|
20
|
+
password: string;
|
|
21
|
+
remember: boolean;
|
|
22
|
+
mfaCode?: string;
|
|
23
|
+
}) => Promise<{
|
|
24
|
+
requiresMfa?: boolean;
|
|
25
|
+
} | void> | {
|
|
26
|
+
requiresMfa?: boolean;
|
|
27
|
+
} | void;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
29
|
+
export declare function AdminForgotPasswordForm({ loading, message, loginHref, teamName, onSubmit, }: {
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
message?: {
|
|
32
|
+
severity: "success" | "error";
|
|
33
|
+
text: string;
|
|
34
|
+
} | null;
|
|
35
|
+
loginHref?: string;
|
|
36
|
+
teamName?: string | null;
|
|
37
|
+
onSubmit: (payload: {
|
|
38
|
+
email: string;
|
|
39
|
+
}) => void | Promise<void>;
|
|
40
|
+
}): import("react").JSX.Element;
|
|
41
|
+
export declare function AdminResetPasswordForm({ loading, message, loginHref, teamName, onSubmit, }: {
|
|
42
|
+
loading?: boolean;
|
|
43
|
+
message?: {
|
|
44
|
+
severity: "success" | "error" | "warn" | "info";
|
|
45
|
+
text: string;
|
|
46
|
+
} | null;
|
|
47
|
+
loginHref?: string;
|
|
48
|
+
teamName?: string | null;
|
|
49
|
+
onSubmit: (payload: {
|
|
50
|
+
token: string;
|
|
51
|
+
newPassword: string;
|
|
52
|
+
}) => void | Promise<void>;
|
|
53
|
+
}): import("react").JSX.Element;
|
|
54
|
+
export declare function AdminLogoutView({ text, teamName }: {
|
|
55
|
+
text?: string;
|
|
56
|
+
teamName?: string | null;
|
|
57
|
+
}): import("react").JSX.Element;
|
|
58
|
+
export declare function AdminChangePasswordForm({ loading, mustChangePassword, message, onSubmit, }: {
|
|
59
|
+
loading?: boolean;
|
|
60
|
+
mustChangePassword?: boolean;
|
|
61
|
+
message?: {
|
|
62
|
+
severity: "success" | "error" | "warn" | "info";
|
|
63
|
+
text: string;
|
|
64
|
+
} | null;
|
|
65
|
+
onSubmit: (payload: {
|
|
66
|
+
currentPassword: string;
|
|
67
|
+
newPassword: string;
|
|
68
|
+
}) => void | Promise<void>;
|
|
69
|
+
}): import("react").JSX.Element;
|
|
70
|
+
//# sourceMappingURL=AdminAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAuth.d.ts","sourceRoot":"","sources":["../../src/admin/AdminAuth.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AdminAuthCard = AdminAuthCard;
|
|
5
|
+
exports.AdminLoginForm = AdminLoginForm;
|
|
6
|
+
exports.AdminForgotPasswordForm = AdminForgotPasswordForm;
|
|
7
|
+
exports.AdminResetPasswordForm = AdminResetPasswordForm;
|
|
8
|
+
exports.AdminLogoutView = AdminLogoutView;
|
|
9
|
+
exports.AdminChangePasswordForm = AdminChangePasswordForm;
|
|
10
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
const checkbox_1 = require("primereact/checkbox");
|
|
13
|
+
const inputtext_1 = require("primereact/inputtext");
|
|
14
|
+
const message_1 = require("primereact/message");
|
|
15
|
+
const password_1 = require("primereact/password");
|
|
16
|
+
const Button_1 = require("../foundation/Button");
|
|
17
|
+
const Spinner_1 = require("../foundation/Spinner");
|
|
18
|
+
function AdminAuthCard({ title, subtitle, icon = "wi-sakai-mark", logo, showLogo = false, children }) {
|
|
19
|
+
return ((0, jsx_runtime_1.jsx)("main", { className: "wi-admin-auth-page", children: (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-auth-stack", children: [showLogo ? (logo ? (0, jsx_runtime_1.jsx)("div", { className: "wi-admin-auth-logo", children: logo }) : (0, jsx_runtime_1.jsx)("div", { className: "wi-admin-auth-logo-mark", children: "M" })) : null, (0, jsx_runtime_1.jsx)("section", { className: "wi-admin-auth-card", children: (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-auth-card__inner", children: [(0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-auth-card__heading", children: [(0, jsx_runtime_1.jsx)("div", { className: "wi-admin-auth-card__icon", children: icon === "wi-sakai-mark" ? (0, jsx_runtime_1.jsx)("span", { className: "wi-sakai-mark", "aria-hidden": "true" }) : (0, jsx_runtime_1.jsx)("i", { className: icon }) }), (0, jsx_runtime_1.jsx)("h1", { children: title }), subtitle ? (0, jsx_runtime_1.jsx)("p", { children: subtitle }) : null] }), children] }) })] }) }));
|
|
20
|
+
}
|
|
21
|
+
function AdminLoginForm({ loading, error, forgotPasswordHref = "/auth/forgot-password", registerHref, rememberStorageKey, teamName, onSubmit, }) {
|
|
22
|
+
const [email, setEmail] = (0, react_1.useState)("");
|
|
23
|
+
const [password, setPassword] = (0, react_1.useState)("");
|
|
24
|
+
const [remember, setRemember] = (0, react_1.useState)(false);
|
|
25
|
+
const [mfaCode, setMfaCode] = (0, react_1.useState)("");
|
|
26
|
+
const [mfaStep, setMfaStep] = (0, react_1.useState)(false);
|
|
27
|
+
const [localError, setLocalError] = (0, react_1.useState)(null);
|
|
28
|
+
(0, react_1.useEffect)(() => {
|
|
29
|
+
if (!rememberStorageKey || typeof window === "undefined")
|
|
30
|
+
return;
|
|
31
|
+
const raw = window.localStorage.getItem(rememberStorageKey);
|
|
32
|
+
if (!raw)
|
|
33
|
+
return;
|
|
34
|
+
try {
|
|
35
|
+
const value = JSON.parse(raw);
|
|
36
|
+
setEmail(value.email ?? "");
|
|
37
|
+
setPassword(value.password ?? "");
|
|
38
|
+
setRemember(Boolean(value.email || value.password));
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
window.localStorage.removeItem(rememberStorageKey);
|
|
42
|
+
}
|
|
43
|
+
}, [rememberStorageKey]);
|
|
44
|
+
async function submit(event) {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
setLocalError(null);
|
|
47
|
+
try {
|
|
48
|
+
const result = await onSubmit({ email: email.trim(), password, remember, mfaCode: mfaStep ? mfaCode : undefined });
|
|
49
|
+
if (result?.requiresMfa) {
|
|
50
|
+
setMfaStep(true);
|
|
51
|
+
setMfaCode("");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (rememberStorageKey && typeof window !== "undefined") {
|
|
55
|
+
if (remember)
|
|
56
|
+
window.localStorage.setItem(rememberStorageKey, JSON.stringify({ email: email.trim(), password }));
|
|
57
|
+
else
|
|
58
|
+
window.localStorage.removeItem(rememberStorageKey);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (caughtError) {
|
|
62
|
+
setLocalError(caughtError instanceof Error ? caughtError.message : "Unable to sign in.");
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return ((0, jsx_runtime_1.jsx)(AdminAuthCard, { title: mfaStep ? "Security verification" : `Welcome to ${teamName ?? "Mixi Team"}!`, subtitle: "Sign in to continue", icon: mfaStep ? "pi pi-shield" : "wi-sakai-mark", children: (0, jsx_runtime_1.jsxs)("form", { className: "wi-admin-auth-form", onSubmit: (event) => void submit(event), children: [error || localError ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: "error", text: error ?? localError ?? "" }) : null, !mfaStep ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("label", { children: "Email" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { type: "email", value: email, onChange: (event) => setEmail(event.target.value), placeholder: "Email address", required: true }), (0, jsx_runtime_1.jsx)("label", { children: "Password" }), (0, jsx_runtime_1.jsx)(password_1.Password, { value: password, onChange: (event) => setPassword(event.target.value), placeholder: "Password", toggleMask: true, feedback: false, inputClassName: "w-full", required: true }), (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-auth-form__row", children: [(0, jsx_runtime_1.jsxs)("label", { className: "wi-admin-auth-check", children: [(0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { checked: remember, onChange: (event) => setRemember(Boolean(event.checked)) }), " Remember me"] }), (0, jsx_runtime_1.jsx)("a", { href: forgotPasswordHref, children: "Forgot password?" })] })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(message_1.Message, { severity: "info", text: `Enter the 6-digit MFA code for ${email.trim()}.` }), (0, jsx_runtime_1.jsx)("label", { children: "Authentication code" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { inputMode: "numeric", autoComplete: "one-time-code", value: mfaCode, onChange: (event) => setMfaCode(event.target.value.replace(/\D/g, "").slice(0, 6)), placeholder: "123456", className: "wi-admin-auth-form__mfa", required: true }), (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "wi-admin-link-button", onClick: () => { setMfaStep(false); setMfaCode(""); setLocalError(null); }, children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-arrow-left" }), " Use another account"] })] })), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", loading: loading, disabled: loading || (mfaStep && mfaCode.length !== 6), leftIcon: !loading && mfaStep ? (0, jsx_runtime_1.jsx)("i", { className: "pi pi-shield" }) : undefined, children: mfaStep ? "Verify code" : "Sign In" }), !mfaStep && registerHref ? (0, jsx_runtime_1.jsxs)("p", { className: "wi-admin-auth-form__footer", children: ["Need an account? ", (0, jsx_runtime_1.jsx)("a", { href: registerHref, children: "Create account" })] }) : null] }) }));
|
|
66
|
+
}
|
|
67
|
+
function AdminForgotPasswordForm({ loading, message, loginHref = "/auth/login", teamName, onSubmit, }) {
|
|
68
|
+
const [email, setEmail] = (0, react_1.useState)("");
|
|
69
|
+
return ((0, jsx_runtime_1.jsx)(AdminAuthCard, { title: `Reset access for ${teamName ?? "Mixi Team"}`, subtitle: "Enter your email to receive reset instructions", icon: "wi-sakai-mark", children: (0, jsx_runtime_1.jsxs)("form", { className: "wi-admin-auth-form", onSubmit: (event) => { event.preventDefault(); void onSubmit({ email: email.trim() }); }, children: [message ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: message.severity, text: message.text }) : null, (0, jsx_runtime_1.jsx)("label", { children: "Email" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { type: "email", value: email, onChange: (event) => setEmail(event.target.value), placeholder: "Email address", required: true }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", loading: loading, children: "Send Reset Email" }), (0, jsx_runtime_1.jsxs)("p", { className: "wi-admin-auth-form__footer", children: ["Remembered your password? ", (0, jsx_runtime_1.jsx)("a", { href: loginHref, children: "Sign in" })] })] }) }));
|
|
70
|
+
}
|
|
71
|
+
function AdminResetPasswordForm({ loading, message, loginHref = "/auth/login", teamName, onSubmit, }) {
|
|
72
|
+
const [token, setToken] = (0, react_1.useState)("");
|
|
73
|
+
const [passwords, setPasswords] = (0, react_1.useState)({ newPassword: "", confirmPassword: "" });
|
|
74
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
75
|
+
function submit(event) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
setError(null);
|
|
78
|
+
if (!token.trim())
|
|
79
|
+
return setError("Reset token is required.");
|
|
80
|
+
if (passwords.newPassword.length < 8)
|
|
81
|
+
return setError("New password must be at least 8 characters.");
|
|
82
|
+
if (passwords.newPassword !== passwords.confirmPassword)
|
|
83
|
+
return setError("Password confirmation does not match.");
|
|
84
|
+
void onSubmit({ token: token.trim(), newPassword: passwords.newPassword });
|
|
85
|
+
}
|
|
86
|
+
return ((0, jsx_runtime_1.jsx)(AdminAuthCard, { title: `Create a new ${teamName ?? "Mixi Team"} password`, subtitle: "Set a password and return to sign in", icon: "wi-sakai-mark", children: (0, jsx_runtime_1.jsxs)("form", { className: "wi-admin-auth-form", onSubmit: submit, children: [message ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: message.severity, text: message.text }) : null, error ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: "error", text: error }) : null, (0, jsx_runtime_1.jsx)("label", { children: "Reset token" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { value: token, onChange: (event) => setToken(event.target.value), placeholder: "Paste reset token", required: true }), (0, jsx_runtime_1.jsx)("label", { children: "New password" }), (0, jsx_runtime_1.jsx)(password_1.Password, { value: passwords.newPassword, onChange: (event) => setPasswords({ ...passwords, newPassword: event.target.value }), placeholder: "New password", toggleMask: true, inputClassName: "w-full", required: true }), (0, jsx_runtime_1.jsx)("label", { children: "Confirm new password" }), (0, jsx_runtime_1.jsx)(password_1.Password, { value: passwords.confirmPassword, onChange: (event) => setPasswords({ ...passwords, confirmPassword: event.target.value }), placeholder: "Confirm new password", feedback: false, toggleMask: true, inputClassName: "w-full", required: true }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", loading: loading, children: "Reset password" }), (0, jsx_runtime_1.jsxs)("p", { className: "wi-admin-auth-form__footer", children: ["Already updated? ", (0, jsx_runtime_1.jsx)("a", { href: loginHref, children: "Sign in" })] })] }) }));
|
|
87
|
+
}
|
|
88
|
+
function AdminLogoutView({ text = "Signing out...", teamName }) {
|
|
89
|
+
return ((0, jsx_runtime_1.jsx)(AdminAuthCard, { title: `Leaving ${teamName ?? "Mixi Team"}`, subtitle: "Your session is being closed", icon: "wi-sakai-mark", children: (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-logout-view", children: [(0, jsx_runtime_1.jsx)(Spinner_1.Spinner, { size: "lg" }), (0, jsx_runtime_1.jsx)("span", { children: text })] }) }));
|
|
90
|
+
}
|
|
91
|
+
function AdminChangePasswordForm({ loading, mustChangePassword, message, onSubmit, }) {
|
|
92
|
+
const [passwords, setPasswords] = (0, react_1.useState)({ currentPassword: "", newPassword: "", confirmPassword: "" });
|
|
93
|
+
const [error, setError] = (0, react_1.useState)(null);
|
|
94
|
+
function submit(event) {
|
|
95
|
+
event.preventDefault();
|
|
96
|
+
setError(null);
|
|
97
|
+
if (passwords.newPassword.length < 8)
|
|
98
|
+
return setError("New password must be at least 8 characters.");
|
|
99
|
+
if (passwords.newPassword !== passwords.confirmPassword)
|
|
100
|
+
return setError("Password confirmation does not match.");
|
|
101
|
+
void onSubmit({ currentPassword: passwords.currentPassword, newPassword: passwords.newPassword });
|
|
102
|
+
}
|
|
103
|
+
return ((0, jsx_runtime_1.jsxs)("form", { className: "wi-admin-security-card", onSubmit: submit, children: [(0, jsx_runtime_1.jsx)("h2", { children: "Password" }), mustChangePassword ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: "warn", text: "This account must change its temporary password." }) : null, message ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: message.severity, text: message.text }) : null, error ? (0, jsx_runtime_1.jsx)(message_1.Message, { severity: "error", text: error }) : null, (0, jsx_runtime_1.jsx)("label", { children: "Current password" }), (0, jsx_runtime_1.jsx)(password_1.Password, { value: passwords.currentPassword, onChange: (event) => setPasswords({ ...passwords, currentPassword: event.target.value }), feedback: false, toggleMask: true, inputClassName: "w-full" }), (0, jsx_runtime_1.jsx)("label", { children: "New password" }), (0, jsx_runtime_1.jsx)(password_1.Password, { value: passwords.newPassword, onChange: (event) => setPasswords({ ...passwords, newPassword: event.target.value }), toggleMask: true, inputClassName: "w-full" }), (0, jsx_runtime_1.jsx)("label", { children: "Confirm new password" }), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { type: "password", value: passwords.confirmPassword, onChange: (event) => setPasswords({ ...passwords, confirmPassword: event.target.value }) }), (0, jsx_runtime_1.jsx)(Button_1.Button, { type: "submit", loading: loading, leftIcon: !loading ? (0, jsx_runtime_1.jsx)("i", { className: "pi pi-key" }) : undefined, children: "Update password" })] }));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=AdminAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAuth.js","sourceRoot":"","sources":["../../src/admin/AdminAuth.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type AdminUser, type AdminUserMenuItem } from "./AdminUser";
|
|
3
|
+
import { MixiAdminMenuItem } from "../presets/mixiAdmin";
|
|
4
|
+
export type AdminHeaderProps = {
|
|
5
|
+
brand?: ReactNode;
|
|
6
|
+
logo?: ReactNode;
|
|
7
|
+
homeHref?: string;
|
|
8
|
+
breadcrumbs?: Array<{
|
|
9
|
+
label: string;
|
|
10
|
+
href?: string;
|
|
11
|
+
}>;
|
|
12
|
+
actions?: ReactNode;
|
|
13
|
+
user?: AdminUser | null;
|
|
14
|
+
userMenuItems?: AdminUserMenuItem[];
|
|
15
|
+
onMenuToggle?: () => void;
|
|
16
|
+
onSettings?: () => void;
|
|
17
|
+
onLogout?: () => void;
|
|
18
|
+
};
|
|
19
|
+
export declare function AdminHeader({ brand, logo, homeHref, breadcrumbs, actions, user, userMenuItems, onMenuToggle, onSettings, onLogout, }: AdminHeaderProps): import("react").JSX.Element;
|
|
20
|
+
export type AdminLeftMenuProps = {
|
|
21
|
+
items?: MixiAdminMenuItem[];
|
|
22
|
+
activePath?: string;
|
|
23
|
+
title?: string;
|
|
24
|
+
onNavigate?: (href: string, item: MixiAdminMenuItem) => void;
|
|
25
|
+
};
|
|
26
|
+
export declare function AdminLeftMenu({ items, activePath, title, onNavigate }: AdminLeftMenuProps): import("react").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=AdminNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminNavigation.d.ts","sourceRoot":"","sources":["../../src/admin/AdminNavigation.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAuB,MAAM,sBAAsB,CAAC;AAG9E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAC1B,KAAoB,EACpB,IAAI,EACJ,QAAkB,EAClB,WAAgB,EAChB,OAAO,EACP,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,QAAQ,GACT,EAAE,gBAAgB,+BAgClB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,KAAoC,EAAE,UAAe,EAAE,KAAc,EAAE,UAAU,EAAE,EAAE,kBAAkB,+BAWtI"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AdminHeader = AdminHeader;
|
|
5
|
+
exports.AdminLeftMenu = AdminLeftMenu;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const AdminUser_1 = require("./AdminUser");
|
|
8
|
+
const mixiAdmin_1 = require("../presets/mixiAdmin");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
function AdminHeader({ brand = "MIXI ADMIN", logo, homeHref = "/main", breadcrumbs = [], actions, user, userMenuItems, onMenuToggle, onSettings, onLogout, }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("header", { className: "wi-admin-header", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "wi-admin-header__icon", "aria-label": "Toggle menu", onClick: onMenuToggle, children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-bars" }) }), (0, jsx_runtime_1.jsxs)("a", { href: homeHref, className: "wi-admin-header__brand", children: [logo ?? (0, jsx_runtime_1.jsx)("span", { className: "wi-admin-header__mark", children: "M" }), (0, jsx_runtime_1.jsx)("span", { children: brand })] }), (0, jsx_runtime_1.jsxs)("nav", { className: "wi-admin-header__breadcrumb", "aria-label": "Breadcrumb", children: [(0, jsx_runtime_1.jsx)("a", { href: homeHref, children: "Home" }), breadcrumbs.map((item) => ((0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-chevron-right" }), item.href ? (0, jsx_runtime_1.jsx)("a", { href: item.href, children: item.label }) : (0, jsx_runtime_1.jsx)("strong", { children: item.label })] }, `${item.label}-${item.href ?? ""}`)))] }), (0, jsx_runtime_1.jsx)("div", { className: "wi-admin-header__spacer" }), (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-header__actions", children: [actions, (0, jsx_runtime_1.jsx)("button", { type: "button", className: "wi-admin-header__icon", "aria-label": "Notifications", children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-bell" }) }), (0, jsx_runtime_1.jsx)("button", { type: "button", className: "wi-admin-header__icon", "aria-label": "Settings", onClick: onSettings, children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-cog" }) }), (0, jsx_runtime_1.jsx)(AdminUser_1.AdminUserMenu, { user: user, items: userMenuItems, onLogout: onLogout })] })] }));
|
|
12
|
+
}
|
|
13
|
+
function AdminLeftMenu({ items = (0, mixiAdmin_1.createMixiAdminMenu)("/main"), activePath = "", title = "Main", onNavigate }) {
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)("nav", { className: "wi-admin-left-menu", "aria-label": "Admin menu", children: [(0, jsx_runtime_1.jsx)("div", { className: "wi-admin-left-menu__title", children: title }), (0, jsx_runtime_1.jsx)("ul", { children: items.map((item) => ((0, jsx_runtime_1.jsx)(AdminLeftMenuItem, { item: item, activePath: activePath, onNavigate: onNavigate }, `${item.label}-${item.href ?? item.url ?? ""}`))) })] }));
|
|
15
|
+
}
|
|
16
|
+
function AdminLeftMenuItem({ item, activePath, onNavigate }) {
|
|
17
|
+
const active = isActive(item, activePath);
|
|
18
|
+
const href = item.href ?? item.url;
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("li", { className: (0, utils_1.cx)(active && "is-active"), children: [(0, jsx_runtime_1.jsxs)("a", { href: href, target: item.target, onClick: (event) => {
|
|
20
|
+
if (item.href && onNavigate) {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
onNavigate(item.href, item);
|
|
23
|
+
}
|
|
24
|
+
}, children: [(0, jsx_runtime_1.jsx)("i", { className: item.icon ?? "pi pi-circle" }), (0, jsx_runtime_1.jsx)("span", { children: item.label }), item.items?.length ? (0, jsx_runtime_1.jsx)("i", { className: "pi pi-angle-down" }) : null] }), item.items?.length ? ((0, jsx_runtime_1.jsx)("ul", { children: item.items.map((child) => ((0, jsx_runtime_1.jsx)(AdminLeftMenuItem, { item: child, activePath: activePath, onNavigate: onNavigate }, `${child.label}-${child.href ?? child.url ?? ""}`))) })) : null] }));
|
|
25
|
+
}
|
|
26
|
+
function isActive(item, activePath) {
|
|
27
|
+
if (item.href && (activePath === item.href || activePath.startsWith(`${item.href}/`)))
|
|
28
|
+
return true;
|
|
29
|
+
return item.items?.some((child) => isActive(child, activePath)) ?? false;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=AdminNavigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminNavigation.js","sourceRoot":"","sources":["../../src/admin/AdminNavigation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type AdminUser = {
|
|
3
|
+
name?: string;
|
|
4
|
+
email?: string;
|
|
5
|
+
role?: string;
|
|
6
|
+
department?: string;
|
|
7
|
+
avatarUrl?: string;
|
|
8
|
+
tenantName?: string;
|
|
9
|
+
};
|
|
10
|
+
export type AdminUserMenuItem = {
|
|
11
|
+
label: string;
|
|
12
|
+
icon?: string;
|
|
13
|
+
danger?: boolean;
|
|
14
|
+
badge?: ReactNode;
|
|
15
|
+
onSelect: () => void;
|
|
16
|
+
};
|
|
17
|
+
export type AdminUserInfoProps = {
|
|
18
|
+
user?: AdminUser | null;
|
|
19
|
+
showRole?: boolean;
|
|
20
|
+
showEmail?: boolean;
|
|
21
|
+
layout?: "horizontal" | "vertical";
|
|
22
|
+
className?: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function AdminUserInfo({ user, showRole, showEmail, layout, className }: AdminUserInfoProps): import("react").JSX.Element;
|
|
25
|
+
export declare function AdminUserAvatar({ user, size, showStatus }: {
|
|
26
|
+
user?: AdminUser | null;
|
|
27
|
+
size?: "sm" | "md" | "lg";
|
|
28
|
+
showStatus?: boolean;
|
|
29
|
+
}): import("react").JSX.Element;
|
|
30
|
+
export declare function AdminUserMenu({ user, items, onLogout, }: {
|
|
31
|
+
user?: AdminUser | null;
|
|
32
|
+
items?: AdminUserMenuItem[];
|
|
33
|
+
onLogout?: () => void;
|
|
34
|
+
}): import("react").JSX.Element;
|
|
35
|
+
export declare function AdminProfileCard({ user, completion, actions, }: {
|
|
36
|
+
user?: AdminUser | null;
|
|
37
|
+
completion?: number;
|
|
38
|
+
actions?: ReactNode;
|
|
39
|
+
}): import("react").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=AdminUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminUser.d.ts","sourceRoot":"","sources":["../../src/admin/AdminUser.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAO/C,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAe,EAAE,SAAiB,EAAE,MAAmB,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BAW7H;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAW,EAAE,UAAiB,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,+BAOrJ;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,+BAoDA;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,OAAO,GACR,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,+BAwBA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AdminUserInfo = AdminUserInfo;
|
|
5
|
+
exports.AdminUserAvatar = AdminUserAvatar;
|
|
6
|
+
exports.AdminUserMenu = AdminUserMenu;
|
|
7
|
+
exports.AdminProfileCard = AdminProfileCard;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const badge_1 = require("primereact/badge");
|
|
11
|
+
const overlaypanel_1 = require("primereact/overlaypanel");
|
|
12
|
+
const Avatar_1 = require("../foundation/Avatar");
|
|
13
|
+
const Button_1 = require("../foundation/Button");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
|
+
function AdminUserInfo({ user, showRole = true, showEmail = false, layout = "vertical", className }) {
|
|
16
|
+
const displayName = user?.name || user?.email || "User";
|
|
17
|
+
const role = user?.role || user?.department || "User";
|
|
18
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cx)("wi-admin-user-info", `wi-admin-user-info--${layout}`, className), children: [(0, jsx_runtime_1.jsx)("span", { className: "wi-admin-user-info__name", children: displayName }), showRole ? (0, jsx_runtime_1.jsx)("span", { className: "wi-admin-user-info__meta", children: role }) : null, showEmail && user?.email ? (0, jsx_runtime_1.jsx)("span", { className: "wi-admin-user-info__meta", children: user.email }) : null] }));
|
|
19
|
+
}
|
|
20
|
+
function AdminUserAvatar({ user, size = "md", showStatus = true }) {
|
|
21
|
+
return ((0, jsx_runtime_1.jsxs)("span", { className: "wi-admin-avatar-wrap", children: [(0, jsx_runtime_1.jsx)(Avatar_1.Avatar, { name: user?.name || user?.email || "User", src: user?.avatarUrl, size: size }), showStatus ? (0, jsx_runtime_1.jsx)("span", { className: "wi-admin-avatar-status" }) : null] }));
|
|
22
|
+
}
|
|
23
|
+
function AdminUserMenu({ user, items, onLogout, }) {
|
|
24
|
+
const menuRef = (0, react_1.useRef)(null);
|
|
25
|
+
const defaultItems = [
|
|
26
|
+
{ label: "My Profile", icon: "pi pi-user", onSelect: () => undefined },
|
|
27
|
+
{ label: "Settings", icon: "pi pi-cog", onSelect: () => undefined },
|
|
28
|
+
{ label: "Security", icon: "pi pi-shield", badge: (0, jsx_runtime_1.jsx)(badge_1.Badge, { value: "!", severity: "warning" }), onSelect: () => undefined },
|
|
29
|
+
];
|
|
30
|
+
const model = items ?? defaultItems;
|
|
31
|
+
function select(item) {
|
|
32
|
+
menuRef.current?.hide();
|
|
33
|
+
item.onSelect();
|
|
34
|
+
}
|
|
35
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-user-menu", children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", className: "wi-admin-user-button", "aria-label": "User menu", onClick: (event) => menuRef.current?.toggle(event), children: [(0, jsx_runtime_1.jsx)(AdminUserAvatar, { user: user }), (0, jsx_runtime_1.jsx)(AdminUserInfo, { user: user }), (0, jsx_runtime_1.jsx)("i", { className: "pi pi-chevron-down wi-admin-user-button__arrow" })] }), (0, jsx_runtime_1.jsxs)(overlaypanel_1.OverlayPanel, { ref: menuRef, className: "wi-admin-user-panel", dismissable: true, showCloseIcon: false, children: [(0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-user-panel__header", children: [(0, jsx_runtime_1.jsx)(AdminUserAvatar, { user: user, size: "lg", showStatus: false }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("strong", { children: user?.name || user?.email || "User" }), user?.email ? (0, jsx_runtime_1.jsx)("span", { children: user.email }) : null, user?.department ? (0, jsx_runtime_1.jsxs)("small", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-briefcase" }), " ", user.department] }) : null] })] }), (0, jsx_runtime_1.jsx)("div", { className: "wi-admin-user-panel__items", children: model.map((item) => ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: (0, utils_1.cx)("wi-admin-user-panel__item", item.danger && "is-danger"), onClick: () => select(item), children: [(0, jsx_runtime_1.jsx)("i", { className: item.icon ?? "pi pi-circle" }), (0, jsx_runtime_1.jsx)("span", { children: item.label }), item.badge ? (0, jsx_runtime_1.jsx)("span", { className: "wi-admin-user-panel__badge", children: item.badge }) : null, !item.danger ? (0, jsx_runtime_1.jsx)("i", { className: "pi pi-chevron-right wi-admin-user-panel__arrow" }) : null] }, item.label))) }), onLogout ? ((0, jsx_runtime_1.jsx)("div", { className: "wi-admin-user-panel__footer", children: (0, jsx_runtime_1.jsxs)("button", { type: "button", className: "wi-admin-user-panel__item is-danger", onClick: onLogout, children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-sign-out" }), (0, jsx_runtime_1.jsx)("span", { children: "Sign Out" })] }) })) : null] })] }));
|
|
36
|
+
}
|
|
37
|
+
function AdminProfileCard({ user, completion, actions, }) {
|
|
38
|
+
const displayName = user?.name || "Your Name";
|
|
39
|
+
return ((0, jsx_runtime_1.jsxs)("section", { className: "wi-admin-profile-card", children: [(0, jsx_runtime_1.jsx)(AdminUserAvatar, { user: user, size: "lg", showStatus: false }), (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-profile-card__body", children: [(0, jsx_runtime_1.jsx)("h2", { children: displayName }), user?.email ? (0, jsx_runtime_1.jsxs)("p", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-envelope" }), " ", user.email] }) : null, (0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-profile-card__tags", children: [user?.department ? (0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-briefcase" }), " ", user.department] }) : null, user?.tenantName ? (0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-building" }), " ", user.tenantName] }) : null, user?.role ? (0, jsx_runtime_1.jsxs)("span", { children: [(0, jsx_runtime_1.jsx)("i", { className: "pi pi-verified" }), " ", user.role] }) : null] }), typeof completion === "number" ? ((0, jsx_runtime_1.jsxs)("div", { className: "wi-admin-profile-card__completion", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { children: "Profile Completion" }), (0, jsx_runtime_1.jsxs)("strong", { children: [completion, "%"] })] }), (0, jsx_runtime_1.jsx)("progress", { value: completion, max: 100 })] })) : null] }), (0, jsx_runtime_1.jsx)("div", { className: "wi-admin-profile-card__actions", children: actions ?? (0, jsx_runtime_1.jsx)(Button_1.Button, { variant: "secondary", leftIcon: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-pencil" }), children: "Edit Profile" }) })] }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=AdminUser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminUser.js","sourceRoot":"","sources":["../../src/admin/AdminUser.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAkCb,sCAWC;AAED,0CAOC;AAED,sCA4DC;AAED,4CAgCC;;AApJD,iCAA+C;AAC/C,4CAAuD;AACvD,0DAAuD;AACvD,iDAA8C;AAC9C,iDAA8C;AAC9C,oCAA8B;AA2B9B,SAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,SAAS,EAAsB;IAC5H,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC;IAEtD,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,UAAE,EAAC,oBAAoB,EAAE,uBAAuB,MAAM,EAAE,EAAE,SAAS,CAAC,aAClF,iCAAM,SAAS,EAAC,0BAA0B,YAAE,WAAW,GAAQ,EAC9D,QAAQ,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,0BAA0B,YAAE,IAAI,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC1E,SAAS,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,0BAA0B,YAAE,IAAI,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC7F,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAgF;IACpJ,OAAO,CACL,kCAAM,SAAS,EAAC,sBAAsB,aACpC,uBAAC,eAAM,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI,EACtF,UAAU,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC,IAAI,IAC3D,CACR,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,OAAO,GAAG,IAAA,cAAM,EAAe,IAAI,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAwB;QACxC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QACtE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QACnE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,uBAAC,aAAU,IAAC,KAAK,EAAC,GAAG,EAAC,QAAQ,EAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;KAC3H,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,IAAI,YAAY,CAAC;IAEpC,SAAS,MAAM,CAAC,IAAuB;QACrC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAC,oBAAoB,aACjC,oCAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,sBAAsB,gBAAY,WAAW,EAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,aAC9H,uBAAC,eAAe,IAAC,IAAI,EAAE,IAAI,GAAI,EAC/B,uBAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,EAC7B,8BAAG,SAAS,EAAC,gDAAgD,GAAG,IACzD,EAET,wBAAC,2BAAY,IAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,qBAAqB,EAAC,WAAW,QAAC,aAAa,EAAE,KAAK,aAC1F,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,uBAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,GAAI,EAC5D,4CACE,6CAAS,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,MAAM,GAAU,EACrD,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,2CAAO,IAAI,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC9C,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,8CAAO,8BAAG,SAAS,EAAC,iBAAiB,GAAG,OAAE,IAAI,CAAC,UAAU,IAAS,CAAC,CAAC,CAAC,IAAI,IACzF,IACF,EACN,gCAAK,SAAS,EAAC,4BAA4B,YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,oCAAyB,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,IAAA,UAAE,EAAC,2BAA2B,EAAE,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aACxI,8BAAG,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,cAAc,GAAI,EAC7C,2CAAO,IAAI,CAAC,KAAK,GAAQ,EACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,4BAA4B,YAAE,IAAI,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EACpF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,8BAAG,SAAS,EAAC,gDAAgD,GAAG,CAAC,CAAC,CAAC,IAAI,KAJ5E,IAAI,CAAC,KAAK,CAKd,CACV,CAAC,GACE,EACL,QAAQ,CAAC,CAAC,CAAC,CACV,gCAAK,SAAS,EAAC,6BAA6B,YAC1C,oCAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,qCAAqC,EAAC,OAAO,EAAE,QAAQ,aACrF,8BAAG,SAAS,EAAC,gBAAgB,GAAG,EAChC,wDAAqB,IACd,GACL,CACP,CAAC,CAAC,CAAC,IAAI,IACK,IACX,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,UAAU,EACV,OAAO,GAKR;IACC,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,IAAI,WAAW,CAAC;IAE9C,OAAO,CACL,qCAAS,SAAS,EAAC,uBAAuB,aACxC,uBAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,GAAI,EAC5D,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,yCAAK,WAAW,GAAM,EACrB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,0CAAG,8BAAG,SAAS,EAAC,gBAAgB,GAAG,OAAE,IAAI,CAAC,KAAK,IAAK,CAAC,CAAC,CAAC,IAAI,EAC1E,iCAAK,SAAS,EAAC,6BAA6B,aACzC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,6CAAM,8BAAG,SAAS,EAAC,iBAAiB,GAAG,OAAE,IAAI,CAAC,UAAU,IAAQ,CAAC,CAAC,CAAC,IAAI,EAC1F,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,6CAAM,8BAAG,SAAS,EAAC,gBAAgB,GAAG,OAAE,IAAI,CAAC,UAAU,IAAQ,CAAC,CAAC,CAAC,IAAI,EACzF,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,6CAAM,8BAAG,SAAS,EAAC,gBAAgB,GAAG,OAAE,IAAI,CAAC,IAAI,IAAQ,CAAC,CAAC,CAAC,IAAI,IAC1E,EACL,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,iCAAK,SAAS,EAAC,mCAAmC,aAChD,4CAAK,kEAA+B,EAAA,+CAAS,UAAU,SAAW,IAAM,EACxE,qCAAU,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAI,IACrC,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,gCAAK,SAAS,EAAC,gCAAgC,YAAE,OAAO,IAAI,uBAAC,eAAM,IAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAE,8BAAG,SAAS,EAAC,cAAc,GAAG,6BAAuB,GAAO,IACtJ,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AdminAuth"), exports);
|
|
18
|
+
__exportStar(require("./AdminNavigation"), exports);
|
|
19
|
+
__exportStar(require("./AdminUser"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,oDAAkC;AAClC,8CAA4B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type EmptyStateProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
actionLabel?: string;
|
|
7
|
+
onAction?: () => void;
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function EmptyState({ title, description, icon, actionLabel, onAction, className }: EmptyStateProps): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/feedback/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,+BAazG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmptyState = EmptyState;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const Button_1 = require("../foundation/Button");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
function EmptyState({ title, description, icon, actionLabel, onAction, className }) {
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cx)("wi-empty-state", className), children: [icon ? (0, jsx_runtime_1.jsx)("div", { className: "wi-empty-state__icon", children: icon }) : null, (0, jsx_runtime_1.jsx)("strong", { children: title }), description ? (0, jsx_runtime_1.jsx)("p", { children: description }) : null, actionLabel && onAction ? ((0, jsx_runtime_1.jsx)(Button_1.Button, { type: "button", size: "sm", onClick: onAction, children: actionLabel })) : null] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/feedback/EmptyState.tsx"],"names":[],"mappings":";;AAaA,gCAaC;;AAzBD,iDAA8C;AAC9C,oCAA8B;AAW9B,SAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAmB;IACxG,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,UAAE,EAAC,gBAAgB,EAAE,SAAS,CAAC,aAC5C,IAAI,CAAC,CAAC,CAAC,gCAAK,SAAS,EAAC,sBAAsB,YAAE,IAAI,GAAO,CAAC,CAAC,CAAC,IAAI,EACjE,6CAAS,KAAK,GAAU,EACvB,WAAW,CAAC,CAAC,CAAC,wCAAI,WAAW,GAAK,CAAC,CAAC,CAAC,IAAI,EACzC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,CACzB,uBAAC,eAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,YAC9C,WAAW,GACL,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type SelectHTMLAttributes } from "react";
|
|
2
|
+
export type SelectOption = {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
export type SelectProps = SelectHTMLAttributes<HTMLSelectElement> & {
|
|
7
|
+
label?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
helperText?: string;
|
|
10
|
+
options: SelectOption[];
|
|
11
|
+
};
|
|
12
|
+
export declare const Select: import("react").ForwardRefExoticComponent<SelectHTMLAttributes<HTMLSelectElement> & {
|
|
13
|
+
label?: string;
|
|
14
|
+
error?: string;
|
|
15
|
+
helperText?: string;
|
|
16
|
+
options: SelectOption[];
|
|
17
|
+
} & import("react").RefAttributes<HTMLSelectElement>>;
|
|
18
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/forms/Select.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAG9D,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,MAAM;YANT,MAAM;YACN,MAAM;iBACD,MAAM;aACV,YAAY,EAAE;qDAgCvB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Select = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
exports.Select = (0, react_1.forwardRef)(function Select({ className, id, label, error, helperText, options, ...props }, ref) {
|
|
9
|
+
const inputId = id ?? props.name;
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)("label", { className: "wi-field", children: [label ? (0, jsx_runtime_1.jsx)("span", { className: "wi-field__label", children: label }) : null, (0, jsx_runtime_1.jsx)("select", { ref: ref, id: inputId, "aria-invalid": !!error || undefined, className: (0, utils_1.cx)("wi-input wi-select", error && "wi-input--error", className), ...props, children: options.map((option) => ((0, jsx_runtime_1.jsx)("option", { value: option.value, children: option.label }, option.value))) }), error ? ((0, jsx_runtime_1.jsx)("span", { className: "wi-field__error", children: error })) : helperText ? ((0, jsx_runtime_1.jsx)("span", { className: "wi-field__helper", children: helperText })) : null] }));
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/forms/Select.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAA8D;AAC9D,oCAA8B;AAcjB,QAAA,MAAM,GAAG,IAAA,kBAAU,EAAiC,SAAS,MAAM,CAC9E,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAC9D,GAAG;IAEH,MAAM,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;IAEjC,OAAO,CACL,mCAAO,SAAS,EAAC,UAAU,aACxB,KAAK,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChE,mCACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,kBACG,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,IAAA,UAAE,EAAC,oBAAoB,EAAE,KAAK,IAAI,iBAAiB,EAAE,SAAS,CAAC,KACtE,KAAK,YAER,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,mCAA2B,KAAK,EAAE,MAAM,CAAC,KAAK,YAC3C,MAAM,CAAC,KAAK,IADF,MAAM,CAAC,KAAK,CAEhB,CACV,CAAC,GACK,EACR,KAAK,CAAC,CAAC,CAAC,CACP,iCAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,CACjD,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,iCAAM,SAAS,EAAC,kBAAkB,YAAE,UAAU,GAAQ,CACvD,CAAC,CAAC,CAAC,IAAI,IACF,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type InputHTMLAttributes } from "react";
|
|
2
|
+
export type TextInputProps = InputHTMLAttributes<HTMLInputElement> & {
|
|
3
|
+
label?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
helperText?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const TextInput: import("react").ForwardRefExoticComponent<InputHTMLAttributes<HTMLInputElement> & {
|
|
8
|
+
label?: string;
|
|
9
|
+
error?: string;
|
|
10
|
+
helperText?: string;
|
|
11
|
+
} & import("react").RefAttributes<HTMLInputElement>>;
|
|
12
|
+
//# sourceMappingURL=TextInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.d.ts","sourceRoot":"","sources":["../../src/forms/TextInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,GAAG;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,SAAS;YALZ,MAAM;YACN,MAAM;iBACD,MAAM;oDAgCnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.TextInput = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
exports.TextInput = (0, react_1.forwardRef)(function TextInput({ className, id, label, error, helperText, ...props }, ref) {
|
|
9
|
+
const inputId = id ?? props.name;
|
|
10
|
+
const describedBy = error ? `${inputId}-error` : helperText ? `${inputId}-help` : undefined;
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("label", { className: "wi-field", children: [label ? (0, jsx_runtime_1.jsx)("span", { className: "wi-field__label", children: label }) : null, (0, jsx_runtime_1.jsx)("input", { ref: ref, id: inputId, "aria-invalid": !!error || undefined, "aria-describedby": describedBy, className: (0, utils_1.cx)("wi-input", error && "wi-input--error", className), ...props }), error ? ((0, jsx_runtime_1.jsx)("span", { id: `${inputId}-error`, className: "wi-field__error", children: error })) : helperText ? ((0, jsx_runtime_1.jsx)("span", { id: `${inputId}-help`, className: "wi-field__helper", children: helperText })) : null] }));
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=TextInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput.js","sourceRoot":"","sources":["../../src/forms/TextInput.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAA6D;AAC7D,oCAA8B;AAQjB,QAAA,SAAS,GAAG,IAAA,kBAAU,EAAmC,SAAS,SAAS,CACtF,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EACrD,GAAG;IAEH,MAAM,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,OAAO,CACL,mCAAO,SAAS,EAAC,UAAU,aACxB,KAAK,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChE,kCACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,kBACG,CAAC,CAAC,KAAK,IAAI,SAAS,sBAChB,WAAW,EAC7B,SAAS,EAAE,IAAA,UAAE,EAAC,UAAU,EAAE,KAAK,IAAI,iBAAiB,EAAE,SAAS,CAAC,KAC5D,KAAK,GACT,EACD,KAAK,CAAC,CAAC,CAAC,CACP,iCAAM,EAAE,EAAE,GAAG,OAAO,QAAQ,EAAE,SAAS,EAAC,iBAAiB,YACtD,KAAK,GACD,CACR,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,iCAAM,EAAE,EAAE,GAAG,OAAO,OAAO,EAAE,SAAS,EAAC,kBAAkB,YACtD,UAAU,GACN,CACR,CAAC,CAAC,CAAC,IAAI,IACF,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type TextareaHTMLAttributes } from "react";
|
|
2
|
+
export type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {
|
|
3
|
+
label?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
helperText?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const Textarea: import("react").ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & {
|
|
8
|
+
label?: string;
|
|
9
|
+
error?: string;
|
|
10
|
+
helperText?: string;
|
|
11
|
+
} & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
12
|
+
//# sourceMappingURL=Textarea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../src/forms/Textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAGhE,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,GAAG;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,QAAQ;YALX,MAAM;YACN,MAAM;iBACD,MAAM;uDAgCnB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Textarea = void 0;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
exports.Textarea = (0, react_1.forwardRef)(function Textarea({ className, id, label, error, helperText, ...props }, ref) {
|
|
9
|
+
const inputId = id ?? props.name;
|
|
10
|
+
const describedBy = error ? `${inputId}-error` : helperText ? `${inputId}-help` : undefined;
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("label", { className: "wi-field", children: [label ? (0, jsx_runtime_1.jsx)("span", { className: "wi-field__label", children: label }) : null, (0, jsx_runtime_1.jsx)("textarea", { ref: ref, id: inputId, "aria-invalid": !!error || undefined, "aria-describedby": describedBy, className: (0, utils_1.cx)("wi-input wi-textarea", error && "wi-input--error", className), ...props }), error ? ((0, jsx_runtime_1.jsx)("span", { id: `${inputId}-error`, className: "wi-field__error", children: error })) : helperText ? ((0, jsx_runtime_1.jsx)("span", { id: `${inputId}-help`, className: "wi-field__helper", children: helperText })) : null] }));
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=Textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/forms/Textarea.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAAgE;AAChE,oCAA8B;AAQjB,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAAqC,SAAS,QAAQ,CACtF,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EACrD,GAAG;IAEH,MAAM,OAAO,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5F,OAAO,CACL,mCAAO,SAAS,EAAC,UAAU,aACxB,KAAK,CAAC,CAAC,CAAC,iCAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChE,qCACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,kBACG,CAAC,CAAC,KAAK,IAAI,SAAS,sBAChB,WAAW,EAC7B,SAAS,EAAE,IAAA,UAAE,EAAC,sBAAsB,EAAE,KAAK,IAAI,iBAAiB,EAAE,SAAS,CAAC,KACxE,KAAK,GACT,EACD,KAAK,CAAC,CAAC,CAAC,CACP,iCAAM,EAAE,EAAE,GAAG,OAAO,QAAQ,EAAE,SAAS,EAAC,iBAAiB,YACtD,KAAK,GACD,CACR,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,iCAAM,EAAE,EAAE,GAAG,OAAO,OAAO,EAAE,SAAS,EAAC,kBAAkB,YACtD,UAAU,GACN,CACR,CAAC,CAAC,CAAC,IAAI,IACF,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
|