@studiocubics/cms 0.0.1 → 0.0.2
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/clerk/actions/invitations.d.ts +6 -0
- package/dist/clerk/actions/invitations.js +59 -0
- package/dist/clerk/actions/invitations.js.map +1 -0
- package/dist/clerk/actions/systemUsers.d.ts +8 -0
- package/dist/clerk/actions/systemUsers.js +64 -0
- package/dist/clerk/actions/systemUsers.js.map +1 -0
- package/dist/clerk/auth.d.ts +8 -0
- package/dist/clerk/auth.js +21 -0
- package/dist/clerk/auth.js.map +1 -0
- package/dist/clerk/hasPermission.d.ts +33 -0
- package/dist/clerk/hasPermission.js +78 -0
- package/dist/clerk/hasPermission.js.map +1 -0
- package/dist/clerk/rbacConfig.d.ts +31 -0
- package/dist/clerk/rbacConfig.js +48 -0
- package/dist/clerk/rbacConfig.js.map +1 -0
- package/dist/clerk/schemas/invitation.d.ts +12 -0
- package/dist/clerk/schemas/invitation.js +20 -0
- package/dist/clerk/schemas/invitation.js.map +1 -0
- package/dist/clerk/schemas/systemUser.d.ts +6 -0
- package/dist/clerk/toClientSafeUser.d.ts +48 -0
- package/dist/clerk/toClientSafeUser.js +46 -0
- package/dist/clerk/toClientSafeUser.js.map +1 -0
- package/dist/constants/defaults.d.ts +6 -0
- package/dist/constants/defaults.js +56 -0
- package/dist/constants/defaults.js.map +1 -0
- package/dist/constants/pageLimits.d.ts +2 -0
- package/dist/constants/pageLimits.js +5 -0
- package/dist/constants/pageLimits.js.map +1 -0
- package/dist/index.css +215 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/CMSRootProviders.d.ts +4 -0
- package/dist/providers/CMSRootProviders.js +11 -0
- package/dist/providers/CMSRootProviders.js.map +1 -0
- package/dist/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.d.ts +2 -0
- package/dist/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.js +13 -0
- package/dist/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.js.map +1 -0
- package/dist/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.module.css.js +4 -0
- package/dist/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.module.css.js.map +1 -0
- package/dist/ui/Layout/CMSSecurityLayout.d.ts +2 -0
- package/dist/ui/Layout/CMSSecurityLayout.js +18 -0
- package/dist/ui/Layout/CMSSecurityLayout.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebar.d.ts +6 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebar.js +15 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebar.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarBody.d.ts +4 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarBody.js +18 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarBody.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.d.ts +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.js +39 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.module.css.js +4 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.module.css.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.d.ts +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.js +16 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.js.map +1 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.module.css.js +4 -0
- package/dist/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.module.css.js.map +1 -0
- package/dist/ui/Layout/_index.d.ts +2 -0
- package/dist/ui/System/Auth/SignIn/SignIn.d.ts +1 -0
- package/dist/ui/System/Auth/SignIn/SignIn.js +28 -0
- package/dist/ui/System/Auth/SignIn/SignIn.js.map +1 -0
- package/dist/ui/System/Auth/SignIn/SignIn.module.css.js +4 -0
- package/dist/ui/System/Auth/SignIn/SignIn.module.css.js.map +1 -0
- package/dist/ui/System/Auth/SignIn/useSignInForm.d.ts +14 -0
- package/dist/ui/System/Auth/SignIn/useSignInForm.js +46 -0
- package/dist/ui/System/Auth/SignIn/useSignInForm.js.map +1 -0
- package/dist/ui/System/Auth/SignUp/SignUp.d.ts +1 -0
- package/dist/ui/System/Auth/SignUp/SignUp.js +36 -0
- package/dist/ui/System/Auth/SignUp/SignUp.js.map +1 -0
- package/dist/ui/System/Auth/SignUp/SignUp.module.css.js +4 -0
- package/dist/ui/System/Auth/SignUp/SignUp.module.css.js.map +1 -0
- package/dist/ui/System/Auth/SignUp/useSignUpForm.d.ts +19 -0
- package/dist/ui/System/Auth/SignUp/useSignUpForm.js +58 -0
- package/dist/ui/System/Auth/SignUp/useSignUpForm.js.map +1 -0
- package/dist/ui/System/Invitations/InvitationList.d.ts +1 -0
- package/dist/ui/System/Invitations/InvitationList.js +11 -0
- package/dist/ui/System/Invitations/InvitationList.js.map +1 -0
- package/dist/ui/System/Invitations/InvitationListActions.d.ts +11 -0
- package/dist/ui/System/Invitations/InvitationListActions.js +39 -0
- package/dist/ui/System/Invitations/InvitationListActions.js.map +1 -0
- package/dist/ui/System/Invitations/InvitationListCard.d.ts +4 -0
- package/dist/ui/System/Invitations/InvitationListCard.js +16 -0
- package/dist/ui/System/Invitations/InvitationListCard.js.map +1 -0
- package/dist/ui/System/Invitations/InvitationListPage.d.ts +2 -0
- package/dist/ui/System/Invitations/InvitationListPage.js +22 -0
- package/dist/ui/System/Invitations/InvitationListPage.js.map +1 -0
- package/dist/ui/System/Invitations/InvitationListPagination.d.ts +4 -0
- package/dist/ui/System/Invitations/InvitationListPagination.js +11 -0
- package/dist/ui/System/Invitations/InvitationListPagination.js.map +1 -0
- package/dist/ui/System/Permissions/RoleListCard.d.ts +6 -0
- package/dist/ui/System/Permissions/RoleListCard.js +11 -0
- package/dist/ui/System/Permissions/RoleListCard.js.map +1 -0
- package/dist/ui/System/Permissions/RolePermissionsPage.d.ts +4 -0
- package/dist/ui/System/Permissions/RolePermissionsPage.js +14 -0
- package/dist/ui/System/Permissions/RolePermissionsPage.js.map +1 -0
- package/dist/ui/System/Permissions/RolePermissionsTable.d.ts +2 -0
- package/dist/ui/System/Permissions/RolePermissionsTable.js +28 -0
- package/dist/ui/System/Permissions/RolePermissionsTable.js.map +1 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.d.ts +5 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.js +31 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.js.map +1 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.module.css.js +4 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.module.css.js.map +1 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserPage.d.ts +1 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserPage.js +17 -0
- package/dist/ui/System/SystemUser/CurrentSystemUserPage.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserActions.d.ts +6 -0
- package/dist/ui/System/SystemUser/SystemUserActions.js +14 -0
- package/dist/ui/System/SystemUser/SystemUserActions.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.d.ts +12 -0
- package/dist/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.js +16 -0
- package/dist/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.module.css.js +4 -0
- package/dist/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.module.css.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.d.ts +11 -0
- package/dist/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.js +26 -0
- package/dist/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.module.css.js +4 -0
- package/dist/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.module.css.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserList.d.ts +1 -0
- package/dist/ui/System/SystemUser/SystemUserList.js +11 -0
- package/dist/ui/System/SystemUser/SystemUserList.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserListActions.d.ts +1 -0
- package/dist/ui/System/SystemUser/SystemUserListActions.js +11 -0
- package/dist/ui/System/SystemUser/SystemUserListActions.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserListCard.d.ts +11 -0
- package/dist/ui/System/SystemUser/SystemUserListCard.js +34 -0
- package/dist/ui/System/SystemUser/SystemUserListCard.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserListPage.d.ts +2 -0
- package/dist/ui/System/SystemUser/SystemUserListPage.js +24 -0
- package/dist/ui/System/SystemUser/SystemUserListPage.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserListPagination.d.ts +4 -0
- package/dist/ui/System/SystemUser/SystemUserListPagination.js +11 -0
- package/dist/ui/System/SystemUser/SystemUserListPagination.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserPage.d.ts +1 -0
- package/dist/ui/System/SystemUser/SystemUserPage.js +17 -0
- package/dist/ui/System/SystemUser/SystemUserPage.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserPageContent.d.ts +5 -0
- package/dist/ui/System/SystemUser/SystemUserPageContent.js +13 -0
- package/dist/ui/System/SystemUser/SystemUserPageContent.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserRole/SystemUserRole.d.ts +6 -0
- package/dist/ui/System/SystemUser/SystemUserRole/SystemUserRole.js +21 -0
- package/dist/ui/System/SystemUser/SystemUserRole/SystemUserRole.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserRole/SystemUserRole.module.css.js +4 -0
- package/dist/ui/System/SystemUser/SystemUserRole/SystemUserRole.module.css.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserRoleForm/SystemUserRoleForm.d.ts +9 -0
- package/dist/ui/System/SystemUser/SystemUserRoleForm/SystemUserRoleForm.js +19 -0
- package/dist/ui/System/SystemUser/SystemUserRoleForm/SystemUserRoleForm.js.map +1 -0
- package/dist/ui/System/SystemUser/SystemUserTimestamps.d.ts +9 -0
- package/dist/ui/System/SystemUser/SystemUserTimestamps.js +27 -0
- package/dist/ui/System/SystemUser/SystemUserTimestamps.js.map +1 -0
- package/dist/ui/System/WelcomePage/WelcomePage.d.ts +1 -0
- package/dist/ui/System/WelcomePage/WelcomePage.js +16 -0
- package/dist/ui/System/WelcomePage/WelcomePage.js.map +1 -0
- package/dist/ui/System/WelcomePage/WelcomePage.module.css.js +4 -0
- package/dist/ui/System/WelcomePage/WelcomePage.module.css.js.map +1 -0
- package/{src/ui/System/types.ts → dist/ui/System/types.d.ts} +3 -5
- package/dist/utils/proxyFunctions.d.ts +4 -0
- package/dist/utils/proxyFunctions.js +34 -0
- package/dist/utils/proxyFunctions.js.map +1 -0
- package/package.json +14 -14
- package/rollup.config.js +1 -1
- package/.turbo/turbo-build.log +0 -7
- package/CHANGELOG.md +0 -12
- package/eslint.config.js +0 -21
- package/src/clerk/actions/invitations.ts +0 -78
- package/src/clerk/actions/systemUsers.ts +0 -94
- package/src/clerk/auth.ts +0 -34
- package/src/clerk/clerk.d.ts +0 -105
- package/src/clerk/hasPermission.ts +0 -96
- package/src/clerk/rbacConfig.ts +0 -68
- package/src/clerk/schemas/invitation.ts +0 -17
- package/src/clerk/schemas/systemUser.ts +0 -16
- package/src/clerk/toClientSafeUser.ts +0 -77
- package/src/constants/defaults.tsx +0 -62
- package/src/constants/pageLimits.ts +0 -2
- package/src/declaration.d.ts +0 -5
- package/src/providers/CMSRootProviders.tsx +0 -13
- package/src/routes.d.ts +0 -96
- package/src/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.module.css +0 -4
- package/src/ui/Inputs/ThemedMonacoEditor/ThemedMonacoEditor.tsx +0 -16
- package/src/ui/Layout/CMSSecurityLayout.tsx +0 -27
- package/src/ui/Layout/CMSSidebar/CMSSidebar.tsx +0 -39
- package/src/ui/Layout/CMSSidebar/CMSSidebarBody.tsx +0 -43
- package/src/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.module.css +0 -7
- package/src/ui/Layout/CMSSidebar/CMSSidebarFooter/CMSSidebarFooter.tsx +0 -59
- package/src/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.module.css +0 -44
- package/src/ui/Layout/CMSSidebar/CMSSidebarHeader/CMSSidebarHeader.tsx +0 -30
- package/src/ui/Layout/_index.ts +0 -2
- package/src/ui/System/Auth/SignIn/SignIn.module.css +0 -50
- package/src/ui/System/Auth/SignIn/SignIn.tsx +0 -79
- package/src/ui/System/Auth/SignIn/useSignInForm.tsx +0 -42
- package/src/ui/System/Auth/SignUp/SignUp.module.css +0 -48
- package/src/ui/System/Auth/SignUp/SignUp.tsx +0 -138
- package/src/ui/System/Auth/SignUp/useSignUpForm.tsx +0 -54
- package/src/ui/System/Invitations/InvitationList.tsx +0 -9
- package/src/ui/System/Invitations/InvitationListActions.tsx +0 -167
- package/src/ui/System/Invitations/InvitationListCard.tsx +0 -79
- package/src/ui/System/Invitations/InvitationListPage.tsx +0 -32
- package/src/ui/System/Invitations/InvitationListPagination.tsx +0 -19
- package/src/ui/System/Permissions/RoleListCard.tsx +0 -33
- package/src/ui/System/Permissions/RolePermissionsPage.tsx +0 -18
- package/src/ui/System/Permissions/RolePermissionsTable.tsx +0 -36
- package/src/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.module.css +0 -5
- package/src/ui/System/SystemUser/CurrentSystemUserButton/CurrentSystemUserButton.tsx +0 -102
- package/src/ui/System/SystemUser/CurrentSystemUserPage.tsx +0 -12
- package/src/ui/System/SystemUser/SystemUserActions.tsx +0 -45
- package/src/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.module.css +0 -6
- package/src/ui/System/SystemUser/SystemUserDetails/SystemUserDetails.tsx +0 -71
- package/src/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.module.css +0 -7
- package/src/ui/System/SystemUser/SystemUserDetailsForm/SystemUserDetailsForm.tsx +0 -114
- package/src/ui/System/SystemUser/SystemUserList.tsx +0 -18
- package/src/ui/System/SystemUser/SystemUserListActions.tsx +0 -17
- package/src/ui/System/SystemUser/SystemUserListCard.tsx +0 -85
- package/src/ui/System/SystemUser/SystemUserListPage.tsx +0 -33
- package/src/ui/System/SystemUser/SystemUserListPagination.tsx +0 -19
- package/src/ui/System/SystemUser/SystemUserPage.tsx +0 -30
- package/src/ui/System/SystemUser/SystemUserPageContent.tsx +0 -54
- package/src/ui/System/SystemUser/SystemUserRole/SystemUserRole.module.css +0 -17
- package/src/ui/System/SystemUser/SystemUserRole/SystemUserRole.tsx +0 -64
- package/src/ui/System/SystemUser/SystemUserRoleForm/SystemUserRoleForm.tsx +0 -51
- package/src/ui/System/SystemUser/SystemUserTimestamps.tsx +0 -56
- package/src/ui/System/WelcomePage/WelcomePage.module.css +0 -18
- package/src/ui/System/WelcomePage/WelcomePage.tsx +0 -43
- package/src/utils/proxyFunctions.ts +0 -37
- package/tsconfig.json +0 -32
- /package/{src/clerk/_index.ts → dist/clerk/_index.d.ts} +0 -0
- /package/{src/clerk/actions/_index.ts → dist/clerk/actions/_index.d.ts} +0 -0
- /package/{src/clerk/schemas/_index.ts → dist/clerk/schemas/_index.d.ts} +0 -0
- /package/{src/constants/_index.ts → dist/constants/_index.d.ts} +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
- /package/{src/providers/_index.ts → dist/providers/_index.d.ts} +0 -0
- /package/{src/ui/Inputs/_index.ts → dist/ui/Inputs/_index.d.ts} +0 -0
- /package/{src/ui/Layout/CMSSidebar/_index.ts → dist/ui/Layout/CMSSidebar/_index.d.ts} +0 -0
- /package/{src/ui/System/Auth/SignIn/_index.ts → dist/ui/System/Auth/SignIn/_index.d.ts} +0 -0
- /package/{src/ui/System/Auth/SignUp/_index.ts → dist/ui/System/Auth/SignUp/_index.d.ts} +0 -0
- /package/{src/ui/System/Auth/_index.ts → dist/ui/System/Auth/_index.d.ts} +0 -0
- /package/{src/ui/System/Invitations/_index.ts → dist/ui/System/Invitations/_index.d.ts} +0 -0
- /package/{src/ui/System/Permissions/_index.ts → dist/ui/System/Permissions/_index.d.ts} +0 -0
- /package/{src/ui/System/SystemUser/_index.ts → dist/ui/System/SystemUser/_index.d.ts} +0 -0
- /package/{src/ui/System/_index.ts → dist/ui/System/_index.d.ts} +0 -0
- /package/{src/ui/_index.ts → dist/ui/_index.d.ts} +0 -0
- /package/{src/utils/_index.ts → dist/utils/_index.d.ts} +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useUser } from '@clerk/nextjs';
|
|
4
|
+
import { Card, CubicsUILogo, TextInput, PasswordInput, Button, PoweredByBanner } from '@studiocubics/components';
|
|
5
|
+
import { useRouter } from 'next/navigation';
|
|
6
|
+
import { useEffect } from 'react';
|
|
7
|
+
import styles from './SignIn.module.css.js';
|
|
8
|
+
import { useSignInForm } from './useSignInForm.js';
|
|
9
|
+
import Link from 'next/link';
|
|
10
|
+
|
|
11
|
+
function SignIn() {
|
|
12
|
+
const { user } = useUser();
|
|
13
|
+
const router = useRouter();
|
|
14
|
+
const { formState, setFormState, pending, error, handleSubmit } = useSignInForm();
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (user?.id) {
|
|
17
|
+
router.push("/dashboard");
|
|
18
|
+
}
|
|
19
|
+
}, [user]);
|
|
20
|
+
function handleFormStateChange(e) {
|
|
21
|
+
const target = e.currentTarget;
|
|
22
|
+
setFormState({ ...formState, [target.id]: target.value });
|
|
23
|
+
}
|
|
24
|
+
return (jsxs(Card, { size: "lg", className: styles.root, children: [jsxs("div", { className: styles.body, children: [jsx(CubicsUILogo, { width: "120px" }), jsxs("header", { className: styles.header, children: [jsx("h1", { children: "Sign in to your Account" }), jsx("p", { children: "Welcome Back! Lets get started." })] }), jsxs("form", { onSubmit: handleSubmit, className: styles.form, children: [jsx("div", { id: "clerk-captcha" }), jsx(TextInput, { label: "Email Address", id: "email", value: formState.email, onChange: handleFormStateChange, required: true, fullWidth: true, type: "email" }), jsx(PasswordInput, { label: "Password", id: "password", value: formState.password, onChange: handleFormStateChange, required: true, fullWidth: true, disabled: pending }), jsx(Button, { type: "submit", variant: "contained", children: "Confirm" }), error && jsx("p", { className: styles.error, children: error })] })] }), jsxs("div", { className: styles.footer, children: [jsxs("p", { children: ["Dont have an account?", " ", jsx(Link, { href: "/auth/requestAccount", children: "Request" }), " one from an admin"] }), jsx(PoweredByBanner, {})] })] }));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { SignIn };
|
|
28
|
+
//# sourceMappingURL=SignIn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignIn.js","sources":["../../../../../src/ui/System/Auth/SignIn/SignIn.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@clerk/nextjs\";\nimport {\n Button,\n Card,\n CubicsUILogo,\n PasswordInput,\n TextInput,\n PoweredByBanner,\n} from \"@studiocubics/components\";\nimport { useRouter } from \"next/navigation\";\nimport { type ChangeEvent, useEffect } from \"react\";\nimport styles from \"./SignIn.module.css\";\nimport { useSignInForm } from \"./useSignInForm\";\nimport Link from \"next/link\";\n\nexport function SignIn() {\n const { user } = useUser();\n const router = useRouter();\n const { formState, setFormState, pending, error, handleSubmit } =\n useSignInForm();\n\n useEffect(() => {\n if (user?.id) {\n router.push(\"/dashboard\");\n }\n }, [user]);\n\n function handleFormStateChange(e: ChangeEvent<HTMLInputElement>) {\n const target = e.currentTarget as HTMLInputElement;\n setFormState({ ...formState, [target.id]: target.value });\n }\n\n return (\n <Card size=\"lg\" className={styles.root}>\n <div className={styles.body}>\n <CubicsUILogo width={\"120px\"} />\n <header className={styles.header}>\n <h1>Sign in to your Account</h1>\n <p>Welcome Back! Lets get started.</p>\n </header>\n <form onSubmit={handleSubmit} className={styles.form}>\n <div id=\"clerk-captcha\" />\n\n <TextInput\n label={\"Email Address\"}\n id=\"email\"\n value={formState.email}\n onChange={handleFormStateChange}\n required\n fullWidth\n type=\"email\"\n />\n <PasswordInput\n label={\"Password\"}\n id=\"password\"\n value={formState.password}\n onChange={handleFormStateChange}\n required\n fullWidth\n disabled={pending}\n />\n <Button type=\"submit\" variant=\"contained\">\n Confirm\n </Button>\n {error && <p className={styles.error}>{error}</p>}\n </form>\n </div>\n <div className={styles.footer}>\n <p>\n Dont have an account?{\" \"}\n <Link href={\"/auth/requestAccount\"}>Request</Link> one from an admin\n </p>\n <PoweredByBanner />\n </div>\n </Card>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"root":"SignIn-module_root__a85lb","body":"SignIn-module_body__Sg2nG","header":"SignIn-module_header__eyTQi","form":"SignIn-module_form__myu4V","footer":"SignIn-module_footer__u-JMS","error":"SignIn-module_error__zk6qv"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=SignIn.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignIn.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type FormEvent } from "react";
|
|
2
|
+
export declare function useSignInForm(): {
|
|
3
|
+
formState: {
|
|
4
|
+
email: string;
|
|
5
|
+
password: string;
|
|
6
|
+
};
|
|
7
|
+
setFormState: import("react").Dispatch<import("react").SetStateAction<{
|
|
8
|
+
email: string;
|
|
9
|
+
password: string;
|
|
10
|
+
}>>;
|
|
11
|
+
pending: boolean;
|
|
12
|
+
error: string;
|
|
13
|
+
handleSubmit: (e: FormEvent) => Promise<void>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useSignIn } from '@clerk/nextjs';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
|
|
5
|
+
function useSignInForm() {
|
|
6
|
+
const clerkSignIn = useSignIn();
|
|
7
|
+
const [formState, setFormState] = useState({
|
|
8
|
+
email: "",
|
|
9
|
+
password: "",
|
|
10
|
+
});
|
|
11
|
+
const [pending, setPending] = useState(false);
|
|
12
|
+
const [error, setError] = useState("");
|
|
13
|
+
async function handleSubmit(e) {
|
|
14
|
+
e.preventDefault();
|
|
15
|
+
const { email, password } = formState;
|
|
16
|
+
if (!clerkSignIn.isLoaded)
|
|
17
|
+
return;
|
|
18
|
+
try {
|
|
19
|
+
setPending(true);
|
|
20
|
+
const signInAttempt = await clerkSignIn.signIn.create({
|
|
21
|
+
identifier: email,
|
|
22
|
+
password,
|
|
23
|
+
});
|
|
24
|
+
if (signInAttempt.status === "complete") {
|
|
25
|
+
await clerkSignIn.setActive({
|
|
26
|
+
session: signInAttempt.createdSessionId,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error("Sign In failed to complete");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
console.error(err);
|
|
35
|
+
if (err instanceof Error)
|
|
36
|
+
setError(err.message);
|
|
37
|
+
}
|
|
38
|
+
finally {
|
|
39
|
+
setPending(false);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { formState, setFormState, pending, error, handleSubmit };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { useSignInForm };
|
|
46
|
+
//# sourceMappingURL=useSignInForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSignInForm.js","sources":["../../../../../src/ui/System/Auth/SignIn/useSignInForm.tsx"],"sourcesContent":["\"use client\";\n\nimport { useSignIn } from \"@clerk/nextjs\";\nimport { type FormEvent, useState } from \"react\";\n\nexport function useSignInForm() {\n const clerkSignIn = useSignIn();\n const [formState, setFormState] = useState({\n email: \"\",\n password: \"\",\n });\n const [pending, setPending] = useState(false);\n const [error, setError] = useState(\"\");\n\n async function handleSubmit(e: FormEvent) {\n e.preventDefault();\n const { email, password } = formState;\n if (!clerkSignIn.isLoaded) return;\n\n try {\n setPending(true);\n const signInAttempt = await clerkSignIn.signIn.create({\n identifier: email,\n password,\n });\n if (signInAttempt.status === \"complete\") {\n await clerkSignIn.setActive({\n session: signInAttempt.createdSessionId,\n });\n } else {\n throw new Error(\"Sign In failed to complete\");\n }\n } catch (err) {\n console.error(err);\n if (err instanceof Error) setError(err.message);\n } finally {\n setPending(false);\n }\n }\n\n return { formState, setFormState, pending, error, handleSubmit };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SignUp(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { useUser } from '@clerk/nextjs';
|
|
4
|
+
import { Card, TextInput, Button, PasswordInput, CubicsUILogo, PoweredByBanner } from '@studiocubics/components';
|
|
5
|
+
import Link from 'next/link';
|
|
6
|
+
import { useRouter } from 'next/navigation';
|
|
7
|
+
import { useState, useEffect } from 'react';
|
|
8
|
+
import styles from './SignUp.module.css.js';
|
|
9
|
+
import { useSignUpForm } from './useSignUpForm.js';
|
|
10
|
+
|
|
11
|
+
function SignUp() {
|
|
12
|
+
const { user } = useUser();
|
|
13
|
+
const router = useRouter();
|
|
14
|
+
const { ticket, setFormState, formState, pending, error, handleSubmit } = useSignUpForm();
|
|
15
|
+
const [step, setStep] = useState(0);
|
|
16
|
+
// Handle signed-in users visiting this page
|
|
17
|
+
// This will also redirect the user once they finish the sign-up process
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (user?.id) {
|
|
20
|
+
router.push("/dashboard");
|
|
21
|
+
}
|
|
22
|
+
}, [user]);
|
|
23
|
+
// If there is no invitation ticket, restrict access to this page
|
|
24
|
+
if (!ticket) {
|
|
25
|
+
return (jsx(Card, { size: "lg", className: styles.root, children: jsxs("p", { children: ["Looks like you haven\u2018t been invited!", jsx("br", {}), " Please ", jsx(Link, { href: "/auth/requestAccount", children: "request" }), " an invitation from an admin."] }) }));
|
|
26
|
+
}
|
|
27
|
+
function handleFormStateChange(e) {
|
|
28
|
+
setFormState({ ...formState, [e.target.id]: e.target.value });
|
|
29
|
+
}
|
|
30
|
+
const Step0 = (jsxs(Fragment, { children: [jsx(TextInput, { label: "First Name", id: "firstName", value: formState.firstName, onChange: handleFormStateChange, required: true, fullWidth: true }), jsx(TextInput, { label: "Last Name", id: "lastName", value: formState.lastName, onChange: handleFormStateChange, required: true, fullWidth: true }), jsx(Button, { type: "button", variant: "contained", onClick: () => setStep(1), fullWidth: true, disabled: !formState.firstName || !formState.lastName, children: "Continue" })] }));
|
|
31
|
+
const Step1 = (jsxs(Fragment, { children: [jsx(PasswordInput, { label: "Password", id: "password", value: formState.password, onChange: handleFormStateChange, required: true, fullWidth: true, disabled: pending, disableStrengthMeter: false }), jsx(PasswordInput, { label: "Confirm Password", id: "confirmPassword", value: formState.confirmPassword, onChange: handleFormStateChange, required: true, fullWidth: true, disabled: pending }), jsx(Button, { disabled: pending, variant: "contained", type: "submit", fullWidth: true, children: "Register" })] }));
|
|
32
|
+
return (jsxs(Card, { size: "lg", className: styles.root, children: [jsxs("div", { className: styles.body, children: [jsx(CubicsUILogo, { width: "120px" }), jsxs("header", { className: styles.header, children: [jsx("h1", { children: "Create your account" }), jsx("p", { children: "Welcome! Please fill in the details to get started." })] }), jsxs("form", { onSubmit: handleSubmit, className: styles.form, children: [jsx("div", { id: "clerk-captcha" }), step == 0 && Step0, step == 1 && Step1, step > 0 && (jsx(Button, { disabled: pending, type: "button", onClick: () => setStep(step - 1), fullWidth: true, children: "Go back" })), error && jsx("p", { className: styles.error, children: error })] })] }), jsxs("div", { className: styles.footer, children: [jsxs("p", { children: ["Already have an account? ", jsx(Link, { href: "/auth/signIn/", children: "Sign In" })] }), jsx(PoweredByBanner, {})] })] }));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { SignUp };
|
|
36
|
+
//# sourceMappingURL=SignUp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignUp.js","sources":["../../../../../src/ui/System/Auth/SignUp/SignUp.tsx"],"sourcesContent":["\"use client\";\n\nimport { useUser } from \"@clerk/nextjs\";\nimport {\n Card,\n CubicsUILogo,\n TextInput,\n PasswordInput,\n Button,\n PoweredByBanner,\n} from \"@studiocubics/components\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/navigation\";\nimport { useState, useEffect, type ChangeEvent } from \"react\";\nimport styles from \"./SignUp.module.css\";\nimport { useSignUpForm } from \"./useSignUpForm\";\n\nexport function SignUp() {\n const { user } = useUser();\n const router = useRouter();\n const { ticket, setFormState, formState, pending, error, handleSubmit } =\n useSignUpForm();\n const [step, setStep] = useState(0);\n\n // Handle signed-in users visiting this page\n // This will also redirect the user once they finish the sign-up process\n useEffect(() => {\n if (user?.id) {\n router.push(\"/dashboard\");\n }\n }, [user]);\n\n // If there is no invitation ticket, restrict access to this page\n if (!ticket) {\n return (\n <Card size=\"lg\" className={styles.root}>\n <p>\n Looks like you haven‘t been invited!\n <br /> Please <Link href={\"/auth/requestAccount\"}>request</Link> an\n invitation from an admin.\n </p>\n </Card>\n );\n }\n\n function handleFormStateChange(e: ChangeEvent<HTMLInputElement>) {\n setFormState({ ...formState, [e.target.id]: e.target.value });\n }\n\n const Step0 = (\n <>\n <TextInput\n label={\"First Name\"}\n id=\"firstName\"\n value={formState.firstName}\n onChange={handleFormStateChange}\n required\n fullWidth\n />\n <TextInput\n label={\"Last Name\"}\n id=\"lastName\"\n value={formState.lastName}\n onChange={handleFormStateChange}\n required\n fullWidth\n />\n <Button\n type=\"button\"\n variant=\"contained\"\n onClick={() => setStep(1)}\n fullWidth\n disabled={!formState.firstName || !formState.lastName}\n >\n Continue\n </Button>\n </>\n );\n const Step1 = (\n <>\n <PasswordInput\n label={\"Password\"}\n id=\"password\"\n value={formState.password}\n onChange={handleFormStateChange}\n required\n fullWidth\n disabled={pending}\n disableStrengthMeter={false}\n />\n <PasswordInput\n label={\"Confirm Password\"}\n id=\"confirmPassword\"\n value={formState.confirmPassword}\n onChange={handleFormStateChange}\n required\n fullWidth\n disabled={pending}\n />\n <Button disabled={pending} variant=\"contained\" type=\"submit\" fullWidth>\n Register\n </Button>\n </>\n );\n return (\n <Card size=\"lg\" className={styles.root}>\n <div className={styles.body}>\n <CubicsUILogo width={\"120px\"} />\n <header className={styles.header}>\n <h1>Create your account</h1>\n <p>Welcome! Please fill in the details to get started.</p>\n </header>\n <form onSubmit={handleSubmit} className={styles.form}>\n <div id=\"clerk-captcha\" />\n {step == 0 && Step0}\n {step == 1 && Step1}\n {step > 0 && (\n <Button\n disabled={pending}\n type=\"button\"\n onClick={() => setStep(step - 1)}\n fullWidth\n >\n Go back\n </Button>\n )}\n {error && <p className={styles.error}>{error}</p>}\n </form>\n </div>\n <div className={styles.footer}>\n <p>\n Already have an account? <Link href={\"/auth/signIn/\"}>Sign In</Link>\n </p>\n <PoweredByBanner />\n </div>\n </Card>\n );\n}\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"root":"SignUp-module_root__N7dct","body":"SignUp-module_body__K80Nw","header":"SignUp-module_header__2s9kc","form":"SignUp-module_form__BDitR","footer":"SignUp-module_footer__YFJst","error":"SignUp-module_error__1HM-5"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=SignUp.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignUp.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type FormEvent } from "react";
|
|
2
|
+
export declare function useSignUpForm(): {
|
|
3
|
+
formState: {
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
password: string;
|
|
7
|
+
confirmPassword: string;
|
|
8
|
+
};
|
|
9
|
+
setFormState: import("react").Dispatch<import("react").SetStateAction<{
|
|
10
|
+
firstName: string;
|
|
11
|
+
lastName: string;
|
|
12
|
+
password: string;
|
|
13
|
+
confirmPassword: string;
|
|
14
|
+
}>>;
|
|
15
|
+
pending: boolean;
|
|
16
|
+
ticket: string | null;
|
|
17
|
+
error: string;
|
|
18
|
+
handleSubmit: (e: FormEvent) => Promise<void>;
|
|
19
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useSignUp } from '@clerk/nextjs';
|
|
3
|
+
import { useSearchParams } from 'next/navigation';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
|
|
6
|
+
function useSignUpForm() {
|
|
7
|
+
const clerkSignUp = useSignUp();
|
|
8
|
+
const [formState, setFormState] = useState({
|
|
9
|
+
firstName: "",
|
|
10
|
+
lastName: "",
|
|
11
|
+
password: "",
|
|
12
|
+
confirmPassword: "",
|
|
13
|
+
});
|
|
14
|
+
const [pending, setPending] = useState(false);
|
|
15
|
+
const [error, setError] = useState("");
|
|
16
|
+
const ticket = useSearchParams().get("__clerk_ticket");
|
|
17
|
+
async function handleSubmit(e) {
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
const { firstName, lastName, password, confirmPassword } = formState;
|
|
20
|
+
if (!clerkSignUp.isLoaded)
|
|
21
|
+
return;
|
|
22
|
+
if (!ticket)
|
|
23
|
+
return;
|
|
24
|
+
if (password != confirmPassword) {
|
|
25
|
+
return setError("Passwords dont match!");
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
setPending(true);
|
|
29
|
+
const signUpAttempt = await clerkSignUp.signUp.create({
|
|
30
|
+
strategy: "ticket",
|
|
31
|
+
ticket,
|
|
32
|
+
firstName,
|
|
33
|
+
lastName,
|
|
34
|
+
password,
|
|
35
|
+
});
|
|
36
|
+
if (signUpAttempt.status === "complete") {
|
|
37
|
+
await clerkSignUp.setActive({
|
|
38
|
+
session: signUpAttempt.createdSessionId,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw new Error("Sign Up failed to complete");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error(err);
|
|
47
|
+
if (err instanceof Error)
|
|
48
|
+
setError(err.message);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
setPending(false);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { formState, setFormState, pending, ticket, error, handleSubmit };
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { useSignUpForm };
|
|
58
|
+
//# sourceMappingURL=useSignUpForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSignUpForm.js","sources":["../../../../../src/ui/System/Auth/SignUp/useSignUpForm.tsx"],"sourcesContent":["\"use client\";\n\nimport { useSignUp } from \"@clerk/nextjs\";\nimport { useSearchParams } from \"next/navigation\";\nimport { type FormEvent, useState } from \"react\";\n\nexport function useSignUpForm() {\n const clerkSignUp = useSignUp();\n const [formState, setFormState] = useState({\n firstName: \"\",\n lastName: \"\",\n password: \"\",\n confirmPassword: \"\",\n });\n const [pending, setPending] = useState(false);\n const [error, setError] = useState(\"\");\n\n const ticket = useSearchParams().get(\"__clerk_ticket\");\n\n async function handleSubmit(e: FormEvent) {\n e.preventDefault();\n const { firstName, lastName, password, confirmPassword } = formState;\n if (!clerkSignUp.isLoaded) return;\n if (!ticket) return;\n if (password != confirmPassword) {\n return setError(\"Passwords dont match!\");\n }\n\n try {\n setPending(true);\n const signUpAttempt = await clerkSignUp.signUp.create({\n strategy: \"ticket\",\n ticket,\n firstName,\n lastName,\n password,\n });\n if (signUpAttempt.status === \"complete\") {\n await clerkSignUp.setActive({\n session: signUpAttempt.createdSessionId,\n });\n } else {\n throw new Error(\"Sign Up failed to complete\");\n }\n } catch (err) {\n console.error(err);\n if (err instanceof Error) setError(err.message);\n } finally {\n setPending(false);\n }\n }\n\n return { formState, setFormState, pending, ticket, error, handleSubmit };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function InvitationList(params: ClerkInvitationListParams): Promise<import("react/jsx-runtime").JSX.Element[]>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { invitationListReadAction } from '../../../clerk/actions/invitations.js';
|
|
3
|
+
import { InvitationListCard } from './InvitationListCard.js';
|
|
4
|
+
|
|
5
|
+
async function InvitationList(params) {
|
|
6
|
+
const invitationList = await invitationListReadAction(params);
|
|
7
|
+
return invitationList.data.map((inv) => (jsx(InvitationListCard, { invitation: inv }, inv.id)));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { InvitationList };
|
|
11
|
+
//# sourceMappingURL=InvitationList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvitationList.js","sources":["../../../../src/ui/System/Invitations/InvitationList.tsx"],"sourcesContent":["import { invitationListReadAction } from \"../../../clerk/actions/invitations\";\nimport { InvitationListCard } from \"./InvitationListCard\";\n\nexport async function InvitationList(params: ClerkInvitationListParams) {\n const invitationList = await invitationListReadAction(params);\n return invitationList.data.map((inv) => (\n <InvitationListCard key={inv.id} invitation={inv} />\n ));\n}\n"],"names":["_jsx"],"mappings":";;;;AAGO,eAAe,cAAc,CAAC,MAAiC,EAAA;AACpE,IAAA,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC;IAC7D,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACjCA,IAAC,kBAAkB,EAAA,EAAc,UAAU,EAAE,GAAG,EAAA,EAAvB,GAAG,CAAC,EAAE,CAAqB,CACrD,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Invitation } from "@clerk/nextjs/server";
|
|
2
|
+
export declare function InvitationListActions({ status, }: {
|
|
3
|
+
status: ClerkInvitationListParams["status"];
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function InvitationRevokeDialog({ id }: {
|
|
6
|
+
id: Invitation["id"];
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const initialInvitationCreateState: import("@studiocubics/utils").ActionResponse<"role" | "emailAddress" | "expiresInDays", ("role" | "emailAddress" | "expiresInDays")[]>;
|
|
9
|
+
export type InvitationCreateState = typeof initialInvitationCreateState;
|
|
10
|
+
export declare function InvitationCreateDialog(): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useDisclosure } from '@studiocubics/hooks';
|
|
4
|
+
import { Button, Dialog, ConfirmationForm, TextInput, Switch, Select } from '@studiocubics/components';
|
|
5
|
+
import { Eye, EyeClosed, Ban, UserPlus } from 'lucide-react';
|
|
6
|
+
import Link from 'next/link';
|
|
7
|
+
import { initialiseForm, toCapitalised } from '@studiocubics/utils';
|
|
8
|
+
import { useActionState, useEffect } from 'react';
|
|
9
|
+
import { invitationDeleteAction, invitationCreateAction } from '../../../clerk/actions/invitations.js';
|
|
10
|
+
import { roles } from '../../../clerk/rbacConfig.js';
|
|
11
|
+
|
|
12
|
+
function InvitationListActions({ status, }) {
|
|
13
|
+
const isShowRevoked = status == "revoked";
|
|
14
|
+
return (jsxs(Fragment, { children: [jsx(Link, { href: `?status=${!isShowRevoked ? "revoked" : ""}`, children: jsxs(Button, { startIcon: isShowRevoked ? jsx(Eye, {}) : jsx(EyeClosed, {}), size: "sm", color: isShowRevoked ? "primary" : undefined, children: [isShowRevoked ? "Hide" : "Show", " Revoked"] }) }), jsx(InvitationCreateDialog, {})] }));
|
|
15
|
+
}
|
|
16
|
+
function InvitationRevokeDialog({ id }) {
|
|
17
|
+
const { open, handleOpen, handleStrictClose, handleClose } = useDisclosure();
|
|
18
|
+
const [state, action, pending] = useActionState(invitationDeleteAction.bind(null, id), initialiseForm());
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (state.success) {
|
|
21
|
+
handleClose();
|
|
22
|
+
}
|
|
23
|
+
}, [state]);
|
|
24
|
+
return (jsxs(Fragment, { children: [jsx(Button, { color: "error", type: "submit", startIcon: jsx(Ban, {}), onClick: handleOpen, disabled: pending, children: "Revoke Invitation" }), jsx(Dialog, { open: open, onClose: handleStrictClose, children: jsx(ConfirmationForm, { variant: "danger", onCancel: handleClose, action: action, formTitle: "Revoke Invitation", confirmText: "Revoke", disabled: pending, children: "Are you sure you want to revoke this invitation?" }) })] }));
|
|
25
|
+
}
|
|
26
|
+
const initialInvitationCreateState = initialiseForm("emailAddress", "expiresInDays", "role");
|
|
27
|
+
function InvitationCreateDialog() {
|
|
28
|
+
const { open, handleOpen, handleStrictClose, handleClose } = useDisclosure();
|
|
29
|
+
const [state, action, pending] = useActionState(invitationCreateAction, initialInvitationCreateState);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (state.success) {
|
|
32
|
+
handleClose();
|
|
33
|
+
}
|
|
34
|
+
}, [state]);
|
|
35
|
+
return (jsxs(Fragment, { children: [jsx(Button, { size: "sm", startIcon: jsx(UserPlus, {}), variant: "contained", onClick: handleOpen, children: "Invite New" }), jsx(Dialog, { open: open, onClose: handleStrictClose, children: jsxs(ConfirmationForm, { onCancel: handleClose, action: action, formTitle: "Invite New", disabled: pending, children: [jsx(TextInput, { required: true, type: "email", name: "emailAddress", label: "Email Address", disabled: pending, error: state.fieldErrors?.emailAddress }), jsx(TextInput, { type: "number", name: "expiresInDays", label: "Expires in Days", endIcon: jsx("strong", { children: "Days\u00A0\u00A0" }), defaultValue: 30, disabled: pending, error: state.fieldErrors?.expiresInDays }), jsx(Switch, { name: "ignoreExisting", label: "Ignore Existing Invites", disabled: pending }), jsx(Switch, { name: "notify", value: true, label: "Notify with email", disabled: pending }), jsx(Select, { name: "role", label: "Select Role to assign user on sign up", disabled: pending, error: state.fieldErrors?.role, children: roles.map((r) => (jsx("option", { value: r, children: toCapitalised(r) }, r))) })] }) })] }));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { InvitationCreateDialog, InvitationListActions, InvitationRevokeDialog };
|
|
39
|
+
//# sourceMappingURL=InvitationListActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvitationListActions.js","sources":["../../../../src/ui/System/Invitations/InvitationListActions.tsx"],"sourcesContent":["\"use client\";\n\nimport { useDisclosure } from \"@studiocubics/hooks\";\nimport {\n Button,\n Dialog,\n Switch,\n TextInput,\n ConfirmationForm,\n Select,\n} from \"@studiocubics/components\";\nimport { Ban, Eye, EyeClosed, UserPlus } from \"lucide-react\";\nimport Link from \"next/link\";\nimport type { Invitation } from \"@clerk/nextjs/server\";\nimport { initialiseForm, toCapitalised } from \"@studiocubics/utils\";\nimport { useActionState, useEffect } from \"react\";\nimport {\n invitationDeleteAction,\n invitationCreateAction,\n} from \"../../../clerk/actions/invitations\";\nimport { roles } from \"../../../clerk/rbacConfig\";\n\nexport function InvitationListActions({\n status,\n}: {\n status: ClerkInvitationListParams[\"status\"];\n}) {\n const isShowRevoked = status == \"revoked\";\n return (\n <>\n <Link href={`?status=${!isShowRevoked ? \"revoked\" : \"\"}`}>\n <Button\n startIcon={isShowRevoked ? <Eye /> : <EyeClosed />}\n size=\"sm\"\n color={isShowRevoked ? \"primary\" : undefined}\n >\n {isShowRevoked ? \"Hide\" : \"Show\"} Revoked\n </Button>\n </Link>\n <InvitationCreateDialog />\n </>\n );\n}\nexport function InvitationRevokeDialog({ id }: { id: Invitation[\"id\"] }) {\n const { open, handleOpen, handleStrictClose, handleClose } = useDisclosure();\n const [state, action, pending] = useActionState(\n invitationDeleteAction.bind(null, id),\n initialiseForm(),\n );\n useEffect(() => {\n if (state.success) {\n handleClose();\n }\n }, [state]);\n return (\n <>\n <Button\n color=\"error\"\n type=\"submit\"\n startIcon={<Ban />}\n onClick={handleOpen}\n disabled={pending}\n >\n Revoke Invitation\n </Button>\n <Dialog open={open} onClose={handleStrictClose}>\n <ConfirmationForm\n variant=\"danger\"\n onCancel={handleClose}\n action={action}\n formTitle=\"Revoke Invitation\"\n confirmText=\"Revoke\"\n disabled={pending}\n >\n Are you sure you want to revoke this invitation?\n </ConfirmationForm>\n </Dialog>\n </>\n );\n}\nconst initialInvitationCreateState = initialiseForm(\n \"emailAddress\",\n \"expiresInDays\",\n \"role\",\n);\nexport type InvitationCreateState = typeof initialInvitationCreateState;\nexport function InvitationCreateDialog() {\n const { open, handleOpen, handleStrictClose, handleClose } = useDisclosure();\n const [state, action, pending] = useActionState<\n InvitationCreateState,\n FormData\n >(invitationCreateAction, initialInvitationCreateState);\n useEffect(() => {\n if (state.success) {\n handleClose();\n }\n }, [state]);\n return (\n <>\n <Button\n size=\"sm\"\n startIcon={<UserPlus />}\n variant=\"contained\"\n onClick={handleOpen}\n >\n Invite New\n </Button>\n <Dialog open={open} onClose={handleStrictClose}>\n <ConfirmationForm\n onCancel={handleClose}\n action={action}\n formTitle=\"Invite New\"\n disabled={pending}\n >\n <TextInput\n required\n type=\"email\"\n name=\"emailAddress\"\n label=\"Email Address\"\n disabled={pending}\n error={state.fieldErrors?.emailAddress}\n />\n <TextInput\n type=\"number\"\n name=\"expiresInDays\"\n label=\"Expires in Days\"\n endIcon={<strong>Days </strong>}\n defaultValue={30}\n disabled={pending}\n error={state.fieldErrors?.expiresInDays}\n />\n <Switch\n name=\"ignoreExisting\"\n label=\"Ignore Existing Invites\"\n disabled={pending}\n />\n <Switch\n name=\"notify\"\n value={true}\n label=\"Notify with email\"\n disabled={pending}\n />\n <Select\n name=\"role\"\n label=\"Select Role to assign user on sign up\"\n disabled={pending}\n error={state.fieldErrors?.role}\n >\n {roles.map((r) => (\n <option key={r} value={r}>\n {toCapitalised(r)}\n </option>\n ))}\n </Select>\n </ConfirmationForm>\n </Dialog>\n </>\n );\n}\n\n// emailAddress: string;\n// expiresInDays?: number;\n// ignoreExisting?: boolean;\n// notify?: boolean;\n// publicMetadata?: UserPublicMetadata;\n// redirectUrl?: string;\n// templateSlug?: \"invitation\" | \"waitlist_invitation\";\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { AccordionItem, SectionWrapper, LabeledValue, Chip, CopyableText, CollectionItemCard, Tooltip } from '@studiocubics/components';
|
|
3
|
+
import { toCapitalised, formatDate, relativeTime } from '@studiocubics/utils';
|
|
4
|
+
import { InvitationRevokeDialog } from './InvitationListActions.js';
|
|
5
|
+
import { ThemedMonacoEditor } from '../../Inputs/ThemedMonacoEditor/ThemedMonacoEditor.js';
|
|
6
|
+
|
|
7
|
+
function InvitationListCard({ invitation }) {
|
|
8
|
+
return (jsxs(AccordionItem, { summary: jsx(CollectionItemCard, { id: invitation.id, title: invitation.emailAddress, subtitle: jsxs(Fragment, { children: ["Invited\u2009", jsx(Tooltip, { children: jsx("span", { children: relativeTime(invitation.createdAt) }) })] }), chip: toCapitalised(invitation.status), description: jsx("span", {}) }), name: "InvitationListCard", children: [jsxs(SectionWrapper, { title: "Basic Details", noBorders: true, children: [jsx(LabeledValue, { label: "Id", children: invitation.id }), jsx(LabeledValue, { label: "Email Address", children: invitation.emailAddress }), jsx(LabeledValue, { label: "Status", children: jsx(Chip, { color: invitation.status == "accepted"
|
|
9
|
+
? "primary"
|
|
10
|
+
: invitation.status == "pending"
|
|
11
|
+
? "secondary"
|
|
12
|
+
: "error", children: jsx("strong", { children: toCapitalised(invitation.status) }) }) })] }), jsxs(SectionWrapper, { title: "Timestamps", children: [jsx(LabeledValue, { label: "Created At", children: formatDate(invitation.createdAt) }), jsx(LabeledValue, { label: "Updated At", children: formatDate(invitation.updatedAt) })] }), jsx(SectionWrapper, { title: "Invite Link", children: jsx(CopyableText, { children: invitation.url ?? "No link found!" }) }), jsx(SectionWrapper, { title: "Public Metadata", children: jsx(ThemedMonacoEditor, { options: { readOnly: true }, height: "10vh", defaultLanguage: "json", defaultValue: JSON.stringify(invitation.publicMetadata) }) }), invitation.status == "pending" && (jsx(InvitationRevokeDialog, { id: invitation.id }))] }));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { InvitationListCard };
|
|
16
|
+
//# sourceMappingURL=InvitationListCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvitationListCard.js","sources":["../../../../src/ui/System/Invitations/InvitationListCard.tsx"],"sourcesContent":["import type { Invitation } from \"@clerk/nextjs/server\";\nimport {\n AccordionItem,\n Chip,\n CollectionItemCard,\n CopyableText,\n LabeledValue,\n SectionWrapper,\n Tooltip,\n} from \"@studiocubics/components\";\nimport { formatDate, relativeTime, toCapitalised } from \"@studiocubics/utils\";\nimport { InvitationRevokeDialog } from \"./InvitationListActions\";\nimport { ThemedMonacoEditor } from \"../../Inputs/ThemedMonacoEditor/ThemedMonacoEditor\";\n\nexport function InvitationListCard({ invitation }: { invitation: Invitation }) {\n return (\n <AccordionItem\n summary={\n <CollectionItemCard\n id={invitation.id}\n title={invitation.emailAddress}\n subtitle={\n <>\n Invited \n <Tooltip>\n <span>{relativeTime(invitation.createdAt)}</span>\n </Tooltip>\n </>\n }\n chip={toCapitalised(invitation.status)}\n description={<span></span>}\n />\n }\n name=\"InvitationListCard\"\n >\n <SectionWrapper title={\"Basic Details\"} noBorders>\n <LabeledValue label={\"Id\"}>{invitation.id}</LabeledValue>\n <LabeledValue label={\"Email Address\"}>\n {invitation.emailAddress}\n </LabeledValue>\n <LabeledValue label={\"Status\"}>\n <Chip\n color={\n invitation.status == \"accepted\"\n ? \"primary\"\n : invitation.status == \"pending\"\n ? \"secondary\"\n : \"error\"\n }\n >\n <strong>{toCapitalised(invitation.status)}</strong>\n </Chip>\n </LabeledValue>\n </SectionWrapper>\n <SectionWrapper title={\"Timestamps\"}>\n <LabeledValue label={\"Created At\"}>\n {formatDate(invitation.createdAt)}\n </LabeledValue>\n <LabeledValue label={\"Updated At\"}>\n {formatDate(invitation.updatedAt)}\n </LabeledValue>\n </SectionWrapper>\n <SectionWrapper title={\"Invite Link\"}>\n <CopyableText>{invitation.url ?? \"No link found!\"}</CopyableText>\n </SectionWrapper>\n <SectionWrapper title={\"Public Metadata\"}>\n <ThemedMonacoEditor\n options={{ readOnly: true }}\n height=\"10vh\"\n defaultLanguage=\"json\"\n defaultValue={JSON.stringify(invitation.publicMetadata)}\n />\n </SectionWrapper>\n {invitation.status == \"pending\" && (\n <InvitationRevokeDialog id={invitation.id} />\n )}\n </AccordionItem>\n );\n}\n"],"names":["_jsxs","_jsx","_Fragment"],"mappings":";;;;;;AAcM,SAAU,kBAAkB,CAAC,EAAE,UAAU,EAA8B,EAAA;IAC3E,QACEA,KAAC,aAAa,EAAA,EACZ,OAAO,EACLC,GAAA,CAAC,kBAAkB,EAAA,EACjB,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,KAAK,EAAE,UAAU,CAAC,YAAY,EAC9B,QAAQ,EACND,IAAA,CAAAE,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,EAEED,GAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EACNA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAA,CAAQ,EAAA,CACzC,CAAA,EAAA,CACT,EAEL,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EACtC,WAAW,EAAEA,GAAA,CAAA,MAAA,EAAA,EAAA,CAAa,EAAA,CAC1B,EAEJ,IAAI,EAAC,oBAAoB,aAEzBD,IAAA,CAAC,cAAc,IAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAA,IAAA,EAAA,QAAA,EAAA,CAC/CC,IAAC,YAAY,EAAA,EAAC,KAAK,EAAE,IAAI,EAAA,QAAA,EAAG,UAAU,CAAC,EAAE,EAAA,CAAgB,EACzDA,GAAA,CAAC,YAAY,IAAC,KAAK,EAAE,eAAe,EAAA,QAAA,EACjC,UAAU,CAAC,YAAY,EAAA,CACX,EACfA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,QAAQ,EAAA,QAAA,EAC3BA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EACH,UAAU,CAAC,MAAM,IAAI;AACnB,kCAAE;AACF,kCAAE,UAAU,CAAC,MAAM,IAAI;AACrB,sCAAE;AACF,sCAAE,OAAO,EAAA,QAAA,EAGfA,GAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAS,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAA,CAAU,EAAA,CAC9C,EAAA,CACM,CAAA,EAAA,CACA,EACjBD,IAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,YAAY,EAAA,QAAA,EAAA,CACjCC,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,YAAY,YAC9B,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAA,CACpB,EACfA,GAAA,CAAC,YAAY,EAAA,EAAC,KAAK,EAAE,YAAY,EAAA,QAAA,EAC9B,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAA,CACpB,CAAA,EAAA,CACA,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,aAAa,EAAA,QAAA,EAClCA,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAE,UAAU,CAAC,GAAG,IAAI,gBAAgB,EAAA,CAAgB,EAAA,CAClD,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,iBAAiB,EAAA,QAAA,EACtCA,GAAA,CAAC,kBAAkB,EAAA,EACjB,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAC3B,MAAM,EAAC,MAAM,EACb,eAAe,EAAC,MAAM,EACtB,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAA,CACvD,EAAA,CACa,EAChB,UAAU,CAAC,MAAM,IAAI,SAAS,KAC7BA,GAAA,CAAC,sBAAsB,EAAA,EAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAA,CAAI,CAC9C,CAAA,EAAA,CACa;AAEpB;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { INVITATIONS_PAGE_LIMIT } from '../../../constants/pageLimits.js';
|
|
3
|
+
import { PageLayoutPagination } from '@studiocubics/components';
|
|
4
|
+
import { InvitationListPagination } from './InvitationListPagination.js';
|
|
5
|
+
import { InvitationList } from './InvitationList.js';
|
|
6
|
+
import { InvitationListActions } from './InvitationListActions.js';
|
|
7
|
+
|
|
8
|
+
async function InvitationListPage({ searchParams, securityLinks, }) {
|
|
9
|
+
const sp = await searchParams;
|
|
10
|
+
const status = sp.status;
|
|
11
|
+
const page = Number(sp.page ?? 1);
|
|
12
|
+
const offset = (page - 1) * INVITATIONS_PAGE_LIMIT;
|
|
13
|
+
const params = {
|
|
14
|
+
limit: INVITATIONS_PAGE_LIMIT,
|
|
15
|
+
offset,
|
|
16
|
+
status,
|
|
17
|
+
};
|
|
18
|
+
return (jsx(PageLayoutPagination, { size: "sm", title: securityLinks[3]?.children, actions: jsx(InvitationListActions, { status: status }), paginationComponent: jsx(InvitationListPagination, { page: page, ...params }), children: jsx(InvitationList, { ...params }) }));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { InvitationListPage };
|
|
22
|
+
//# sourceMappingURL=InvitationListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvitationListPage.js","sources":["../../../../src/ui/System/Invitations/InvitationListPage.tsx"],"sourcesContent":["import { INVITATIONS_PAGE_LIMIT as limit } from \"../../../constants/pageLimits\";\nimport { PageLayoutPagination } from \"@studiocubics/components\";\nimport { InvitationListPagination } from \"./InvitationListPagination\";\nimport { InvitationList } from \"./InvitationList\";\nimport type { SecurityPageProps } from \"../types\";\nimport { InvitationListActions } from \"./InvitationListActions\";\n\nexport async function InvitationListPage({\n searchParams,\n securityLinks,\n}: SecurityPageProps) {\n const sp = await searchParams;\n const status = sp.status as ClerkInvitationListParams[\"status\"];\n const page = Number(sp.page ?? 1);\n const offset = (page - 1) * limit;\n const params = {\n limit,\n offset,\n status,\n };\n\n return (\n <PageLayoutPagination\n size=\"sm\"\n title={securityLinks[3]?.children}\n actions={<InvitationListActions status={status} />}\n paginationComponent={<InvitationListPagination page={page} {...params} />}\n >\n <InvitationList {...params} />\n </PageLayoutPagination>\n );\n}\n"],"names":["limit","_jsx"],"mappings":";;;;;;;AAOO,eAAe,kBAAkB,CAAC,EACvC,YAAY,EACZ,aAAa,GACK,EAAA;AAClB,IAAA,MAAM,EAAE,GAAG,MAAM,YAAY;AAC7B,IAAA,MAAM,MAAM,GAAG,EAAE,CAAC,MAA6C;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAIA,sBAAK;AACjC,IAAA,MAAM,MAAM,GAAG;eACbA,sBAAK;QACL,MAAM;QACN,MAAM;KACP;IAED,QACEC,IAAC,oBAAoB,EAAA,EACnB,IAAI,EAAC,IAAI,EACT,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EACjC,OAAO,EAAEA,GAAA,CAAC,qBAAqB,EAAA,EAAC,MAAM,EAAE,MAAM,EAAA,CAAI,EAClD,mBAAmB,EAAEA,IAAC,wBAAwB,EAAA,EAAC,IAAI,EAAE,IAAI,KAAM,MAAM,EAAA,CAAI,YAEzEA,GAAA,CAAC,cAAc,OAAK,MAAM,EAAA,CAAI,EAAA,CACT;AAE3B;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { NextSSRPagination } from '@studiocubics/next';
|
|
3
|
+
import { invitationListReadAction } from '../../../clerk/actions/invitations.js';
|
|
4
|
+
|
|
5
|
+
async function InvitationListPagination({ page, ...params }) {
|
|
6
|
+
const invitationList = await invitationListReadAction(params);
|
|
7
|
+
return (jsx(NextSSRPagination, { page: page, limit: params.limit, total: invitationList.totalCount }));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { InvitationListPagination };
|
|
11
|
+
//# sourceMappingURL=InvitationListPagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvitationListPagination.js","sources":["../../../../src/ui/System/Invitations/InvitationListPagination.tsx"],"sourcesContent":["import { NextSSRPagination } from \"@studiocubics/next\";\nimport { invitationListReadAction } from \"../../../clerk/actions/invitations\";\n\nexport async function InvitationListPagination({\n page,\n ...params\n}: {\n page: number;\n limit: number;\n} & ClerkInvitationListParams) {\n const invitationList = await invitationListReadAction(params);\n return (\n <NextSSRPagination\n page={page}\n limit={params.limit}\n total={invitationList.totalCount}\n />\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAGO,eAAe,wBAAwB,CAAC,EAC7C,IAAI,EACJ,GAAG,MAAM,EAIkB,EAAA;AAC3B,IAAA,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC;IAC7D,QACEA,IAAC,iBAAiB,EAAA,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,cAAc,CAAC,UAAU,EAAA,CAChC;AAEN;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { AccordionItem, SectionWrapper, CollectionItemCard } from '@studiocubics/components';
|
|
3
|
+
import { RolePermissionsTable } from './RolePermissionsTable.js';
|
|
4
|
+
|
|
5
|
+
function RoleListCard(props) {
|
|
6
|
+
const { role, rbacConfig } = props;
|
|
7
|
+
return (jsx(AccordionItem, { name: "RoleCard", summary: jsx(CollectionItemCard, { title: role, chip: rbacConfig.isSystem ? "System User" : "", description: rbacConfig.desc }), children: jsx(SectionWrapper, { title: `${role}'s Permissions`, noBorders: true, children: jsx(RolePermissionsTable, { ...props }) }) }));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { RoleListCard };
|
|
11
|
+
//# sourceMappingURL=RoleListCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoleListCard.js","sources":["../../../../src/ui/System/Permissions/RoleListCard.tsx"],"sourcesContent":["import {\n AccordionItem,\n CollectionItemCard,\n SectionWrapper,\n} from \"@studiocubics/components\";\nimport { RolePermissionsTable } from \"./RolePermissionsTable\";\nimport type { Role, RoleDoc } from \"../../../clerk/rbacConfig\";\n\nexport interface RoleCardProps {\n role: Role;\n rbacConfig: RoleDoc;\n}\n\nexport function RoleListCard(props: RoleCardProps) {\n const { role, rbacConfig } = props;\n\n return (\n <AccordionItem\n name=\"RoleCard\"\n summary={\n <CollectionItemCard\n title={role}\n chip={rbacConfig.isSystem ? \"System User\" : \"\"}\n description={rbacConfig.desc}\n />\n }\n >\n <SectionWrapper title={`${role}'s Permissions`} noBorders>\n <RolePermissionsTable {...props} />\n </SectionWrapper>\n </AccordionItem>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;AAaM,SAAU,YAAY,CAAC,KAAoB,EAAA;AAC/C,IAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK;IAElC,QACEA,GAAA,CAAC,aAAa,EAAA,EACZ,IAAI,EAAC,UAAU,EACf,OAAO,EACLA,GAAA,CAAC,kBAAkB,EAAA,EACjB,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,UAAU,CAAC,QAAQ,GAAG,aAAa,GAAG,EAAE,EAC9C,WAAW,EAAE,UAAU,CAAC,IAAI,EAAA,CAC5B,EAAA,QAAA,EAGJA,GAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,cAAA,CAAgB,EAAE,SAAS,EAAA,IAAA,EAAA,QAAA,EACvDA,GAAA,CAAC,oBAAoB,EAAA,EAAA,GAAK,KAAK,EAAA,CAAI,EAAA,CACpB,EAAA,CACH;AAEpB;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { PageLayoutPagination } from '@studiocubics/components';
|
|
3
|
+
import { RoleListCard } from './RoleListCard.js';
|
|
4
|
+
import { RBAC_CONFIG } from '../../../clerk/rbacConfig.js';
|
|
5
|
+
|
|
6
|
+
function RolePermissionsPage({ securityLinks, }) {
|
|
7
|
+
return (jsx(PageLayoutPagination, { size: "sm", title: securityLinks[1]?.children, children: Object.keys(RBAC_CONFIG).map((k) => {
|
|
8
|
+
const item = RBAC_CONFIG[k];
|
|
9
|
+
return jsx(RoleListCard, { role: k, rbacConfig: item }, k);
|
|
10
|
+
}) }));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { RolePermissionsPage };
|
|
14
|
+
//# sourceMappingURL=RolePermissionsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RolePermissionsPage.js","sources":["../../../../src/ui/System/Permissions/RolePermissionsPage.tsx"],"sourcesContent":["import { PageLayoutPagination, type TabProps } from \"@studiocubics/components\";\nimport { RoleListCard } from \"./RoleListCard\";\nimport { RBAC_CONFIG } from \"../../../clerk/rbacConfig\";\n\nexport function RolePermissionsPage({\n securityLinks,\n}: {\n securityLinks: TabProps[];\n}) {\n return (\n <PageLayoutPagination size=\"sm\" title={securityLinks[1]?.children}>\n {(Object.keys(RBAC_CONFIG) as (keyof typeof RBAC_CONFIG)[]).map((k) => {\n const item = RBAC_CONFIG[k];\n return <RoleListCard key={k} role={k} rbacConfig={item} />;\n })}\n </PageLayoutPagination>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;;AAIM,SAAU,mBAAmB,CAAC,EAClC,aAAa,GAGd,EAAA;AACC,IAAA,QACEA,GAAA,CAAC,oBAAoB,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAA,QAAA,EAC7D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAkC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACpE,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;AAC3B,YAAA,OAAOA,GAAA,CAAC,YAAY,EAAA,EAAS,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAA,EAA5B,CAAC,CAA+B;QAC5D,CAAC,CAAC,EAAA,CACmB;AAE3B;;;;"}
|