@schemavaults/auth-ui 0.6.73 → 0.6.75
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/components/UsersCard/UsersCard.d.ts +1 -0
- package/dist/components/UsersCard/UsersCard.js +2 -1
- package/dist/components/UsersCard/UsersCard.js.map +1 -1
- package/dist/components/UsersTable/UsersTable.d.ts +3 -2
- package/dist/components/UsersTable/UsersTable.js +4 -2
- package/dist/components/UsersTable/UsersTable.js.map +1 -1
- package/dist/components/UsersTable/columns.d.ts +4 -0
- package/dist/components/UsersTable/columns.js +120 -106
- package/dist/components/UsersTable/columns.js.map +1 -1
- package/package.json +13 -13
|
@@ -8,6 +8,7 @@ export function UsersCard(props) {
|
|
|
8
8
|
const cardTitle = props.cardTitle ?? "Users";
|
|
9
9
|
const cardDescription = props.cardDescription ?? "View and manage registered users.";
|
|
10
10
|
const cardClassName = cn("w-full", props.cardClassName);
|
|
11
|
+
const getUserHref = props.getUserHref;
|
|
11
12
|
const listAllUsersEndpoint = "/api/admin/users/list";
|
|
12
13
|
const users = useSWR(listAllUsersEndpoint, async () => {
|
|
13
14
|
try {
|
|
@@ -53,6 +54,6 @@ export function UsersCard(props) {
|
|
|
53
54
|
}, {
|
|
54
55
|
fallbackData: props.preloaded,
|
|
55
56
|
});
|
|
56
|
-
return (_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(UsersTable, { users: users }) }), _jsx(CardFooter, { children: _jsx("div", { className: "flex flex-row items-start justify-start gap-2" }) })] }));
|
|
57
|
+
return (_jsxs(Card, { className: cardClassName, children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: cardTitle }), _jsx(CardDescription, { children: cardDescription })] }), _jsx(CardContent, { children: _jsx(UsersTable, { users: users, getUserHref: getUserHref }) }), _jsx(CardFooter, { children: _jsx("div", { className: "flex flex-row items-start justify-start gap-2" }) })] }));
|
|
57
58
|
}
|
|
58
59
|
//# sourceMappingURL=UsersCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsersCard.js","sourceRoot":"","sources":["../../../src/components/UsersCard/UsersCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAiB,MAAM,2BAA2B,CAAC;AAC1E,OAAO,MAAM,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"UsersCard.js","sourceRoot":"","sources":["../../../src/components/UsersCard/UsersCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ReactElement } from "react";
|
|
2
2
|
import type { SWRResponse } from "swr";
|
|
3
3
|
import type { UserData } from "@schemavaults/auth-common";
|
|
4
4
|
export interface UsersDatatableProps {
|
|
5
5
|
users: SWRResponse<readonly UserData[], Error>;
|
|
6
|
+
getUserHref?: (user: UserData) => string;
|
|
6
7
|
}
|
|
7
|
-
export declare function UsersTable({ users }: UsersDatatableProps): ReactElement;
|
|
8
|
+
export declare function UsersTable({ users, getUserHref, }: UsersDatatableProps): ReactElement;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
3
4
|
import { Datatable } from "@schemavaults/ui";
|
|
4
|
-
import {
|
|
5
|
+
import { buildColumns } from "./columns";
|
|
5
6
|
import { Loader2 } from "lucide-react";
|
|
6
|
-
export function UsersTable({ users }) {
|
|
7
|
+
export function UsersTable({ users, getUserHref, }) {
|
|
7
8
|
const { isLoading, data } = users;
|
|
9
|
+
const columns = useMemo(() => buildColumns({ getUserHref }), [getUserHref]);
|
|
8
10
|
if (!data && isLoading) {
|
|
9
11
|
return (_jsx("div", { className: "min-h-48 w-full flex items-center justify-center", children: _jsx(Loader2, { className: "h-12 w-12 animate-spin" }) }));
|
|
10
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/components/UsersTable/UsersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"UsersTable.js","sourceRoot":"","sources":["../../../src/components/UsersTable/UsersTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,GACS;IACpB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAElC,MAAM,OAAO,GAA0B,OAAO,CAC5C,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EACnC,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACvB,OAAO,CACL,cAAK,SAAS,EAAC,kDAAkD,YAC/D,KAAC,OAAO,IAAC,SAAS,EAAC,wBAAwB,GAAG,GAC1C,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACpD,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,KAAK;YACrB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,IAAI;SACjB,EACD,aAAa,EAAE,GAAiB,EAAE;YAChC,OAAO,mBAAK,CAAC;QACf,CAAC,EACD,aAAa,EAAC,MAAM,EACpB,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GACtC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { ColumnDef } from "@schemavaults/ui";
|
|
2
2
|
import type { UserData } from "@schemavaults/auth-common";
|
|
3
|
+
export interface BuildUsersTableColumnsOptions {
|
|
4
|
+
getUserHref?: (user: UserData) => string;
|
|
5
|
+
}
|
|
6
|
+
export declare function buildColumns(opts?: BuildUsersTableColumnsOptions): ColumnDef<UserData>[];
|
|
3
7
|
export declare const columns: ColumnDef<UserData>[];
|
|
@@ -2,126 +2,140 @@
|
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Checkbox, useToast } from "@schemavaults/ui";
|
|
4
4
|
import { Button } from "@schemavaults/ui";
|
|
5
|
-
import { ClipboardCopy, MoreHorizontal, ShieldCheck, ShieldX, } from "lucide-react";
|
|
5
|
+
import { ClipboardCopy, ExternalLink, MoreHorizontal, ShieldCheck, ShieldX, } from "lucide-react";
|
|
6
6
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@schemavaults/ui";
|
|
7
7
|
import printDateTime from "../../lib/printDateTime";
|
|
8
|
-
export
|
|
9
|
-
{
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
id: "email",
|
|
19
|
-
accessorKey: "email",
|
|
20
|
-
header: "Email",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: "admin",
|
|
24
|
-
accessorKey: "admin",
|
|
25
|
-
header: "Admin",
|
|
26
|
-
cell: ({ row }) => {
|
|
27
|
-
const user = row.original;
|
|
28
|
-
const isAdmin = user.admin === true;
|
|
29
|
-
return (_jsx("div", { className: "flex items-center gap-1", children: isAdmin ? (_jsxs(_Fragment, { children: [_jsx(ShieldCheck, { className: "h-4 w-4 text-green-600" }), _jsx("span", { className: "text-green-600", children: "Yes" })] })) : (_jsxs(_Fragment, { children: [_jsx(ShieldX, { className: "h-4 w-4 text-muted-foreground" }), _jsx("span", { className: "text-muted-foreground", children: "No" })] })) }));
|
|
8
|
+
export function buildColumns(opts = {}) {
|
|
9
|
+
const { getUserHref } = opts;
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
id: "select",
|
|
13
|
+
header: ({ table }) => (_jsx(Checkbox, { checked: table.getIsAllPageRowsSelected() ||
|
|
14
|
+
(table.getIsSomePageRowsSelected() && "indeterminate"), onCheckedChange: (value) => table.toggleAllPageRowsSelected(!!value), "aria-label": "Select all" })),
|
|
15
|
+
cell: ({ row }) => (_jsx(Checkbox, { checked: row.getIsSelected(), onCheckedChange: (value) => row.toggleSelected(!!value), "aria-label": "Select row" })),
|
|
16
|
+
enableSorting: false,
|
|
17
|
+
enableHiding: false,
|
|
30
18
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
19
|
+
{
|
|
20
|
+
id: "email",
|
|
21
|
+
accessorKey: "email",
|
|
22
|
+
header: "Email",
|
|
23
|
+
cell: ({ row }) => {
|
|
24
|
+
const user = row.original;
|
|
25
|
+
if (getUserHref) {
|
|
26
|
+
return (_jsx("a", { href: getUserHref(user), className: "text-primary underline-offset-4 hover:underline", "data-testid": `users-table-row-link-${user.uid}`, children: user.email }));
|
|
27
|
+
}
|
|
28
|
+
return _jsx("span", { children: user.email });
|
|
29
|
+
},
|
|
40
30
|
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
{
|
|
32
|
+
id: "admin",
|
|
33
|
+
accessorKey: "admin",
|
|
34
|
+
header: "Admin",
|
|
35
|
+
cell: ({ row }) => {
|
|
36
|
+
const user = row.original;
|
|
37
|
+
const isAdmin = user.admin === true;
|
|
38
|
+
return (_jsx("div", { className: "flex items-center gap-1", children: isAdmin ? (_jsxs(_Fragment, { children: [_jsx(ShieldCheck, { className: "h-4 w-4 text-green-600" }), _jsx("span", { className: "text-green-600", children: "Yes" })] })) : (_jsxs(_Fragment, { children: [_jsx(ShieldX, { className: "h-4 w-4 text-muted-foreground" }), _jsx("span", { className: "text-muted-foreground", children: "No" })] })) }));
|
|
39
|
+
},
|
|
50
40
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
41
|
+
{
|
|
42
|
+
id: "email_verified",
|
|
43
|
+
accessorKey: "email_verified",
|
|
44
|
+
header: "Email Verified",
|
|
45
|
+
cell: ({ row }) => {
|
|
46
|
+
const user = row.original;
|
|
47
|
+
const isVerified = user.email_verified === true;
|
|
48
|
+
return (_jsx("span", { className: isVerified ? "text-green-600" : "text-muted-foreground", children: isVerified ? "Yes" : "No" }));
|
|
49
|
+
},
|
|
59
50
|
},
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return _jsx("div", { children: printDateTime(asDate) });
|
|
51
|
+
{
|
|
52
|
+
id: "disabled",
|
|
53
|
+
accessorKey: "disabled",
|
|
54
|
+
header: "Disabled",
|
|
55
|
+
cell: ({ row }) => {
|
|
56
|
+
const user = row.original;
|
|
57
|
+
const isDisabled = user.disabled === true;
|
|
58
|
+
return (_jsx("span", { className: isDisabled ? "text-red-600" : "text-muted-foreground", children: isDisabled ? "Yes" : "No" }));
|
|
59
|
+
},
|
|
70
60
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
{
|
|
62
|
+
id: "invite_code",
|
|
63
|
+
accessorKey: "invite_code",
|
|
64
|
+
header: "Invite Code",
|
|
65
|
+
cell: ({ row }) => {
|
|
66
|
+
const user = row.original;
|
|
67
|
+
return _jsx("span", { children: user.invite_code ?? "-" });
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "created_at",
|
|
72
|
+
accessorKey: "created_at",
|
|
73
|
+
header: "Created At",
|
|
74
|
+
cell: ({ row }) => {
|
|
75
|
+
const user = row.original;
|
|
76
|
+
const created_at = user.created_at;
|
|
77
|
+
const asDate = new Date(created_at);
|
|
78
|
+
return _jsx("div", { children: printDateTime(asDate) });
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "actions",
|
|
83
|
+
cell: function UsersTableRowActionsCell({ row }) {
|
|
84
|
+
const { toast } = useToast();
|
|
85
|
+
const user = row.original;
|
|
86
|
+
const href = getUserHref
|
|
87
|
+
? getUserHref(user)
|
|
88
|
+
: undefined;
|
|
89
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "ghost", className: "h-8 w-8 p-0", children: [_jsx("span", { className: "sr-only", children: "Open menu" }), _jsx(MoreHorizontal, { className: "h-4 w-4" })] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuLabel, { children: "Actions" }), href ? (_jsx(DropdownMenuItem, { asChild: true, children: _jsxs("a", { href: href, "data-testid": `users-table-row-view-details-${user.uid}`, children: [_jsx(ExternalLink, { className: "h-4 w-4 pr-2" }), " View Details"] }) })) : null, _jsxs(DropdownMenuItem, { onClick: async (e) => {
|
|
90
|
+
e.preventDefault();
|
|
91
|
+
const uid = user.uid;
|
|
92
|
+
try {
|
|
93
|
+
if (!window.isSecureContext) {
|
|
94
|
+
throw new Error("Writing to clipboard is only allowed in secure contexts!");
|
|
95
|
+
}
|
|
96
|
+
await navigator.clipboard.writeText(uid);
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
toast({
|
|
100
|
+
title: "Failed to copy user ID to clipboard!",
|
|
101
|
+
description: e instanceof Error
|
|
102
|
+
? e.message
|
|
103
|
+
: "An unknown error has occurred!",
|
|
104
|
+
});
|
|
105
|
+
return;
|
|
83
106
|
}
|
|
84
|
-
await navigator.clipboard.writeText(uid);
|
|
85
|
-
}
|
|
86
|
-
catch (e) {
|
|
87
107
|
toast({
|
|
88
|
-
title: "
|
|
89
|
-
description:
|
|
90
|
-
? e.message
|
|
91
|
-
: "An unknown error has occurred!",
|
|
108
|
+
title: "Successfully copied user ID to clipboard!",
|
|
109
|
+
description: `You should now be able to paste '${uid}' from your clipboard!`,
|
|
92
110
|
});
|
|
93
111
|
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
112
|
+
}, children: [_jsx(ClipboardCopy, { className: "h-4 w-4 pr-2" }), " Copy User ID"] }), _jsxs(DropdownMenuItem, { onClick: async (e) => {
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
const email = user.email;
|
|
115
|
+
try {
|
|
116
|
+
if (!window.isSecureContext) {
|
|
117
|
+
throw new Error("Writing to clipboard is only allowed in secure contexts!");
|
|
118
|
+
}
|
|
119
|
+
await navigator.clipboard.writeText(email);
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
toast({
|
|
123
|
+
title: "Failed to copy email to clipboard!",
|
|
124
|
+
description: e instanceof Error
|
|
125
|
+
? e.message
|
|
126
|
+
: "An unknown error has occurred!",
|
|
127
|
+
});
|
|
128
|
+
return;
|
|
106
129
|
}
|
|
107
|
-
await navigator.clipboard.writeText(email);
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
130
|
toast({
|
|
111
|
-
title: "
|
|
112
|
-
description:
|
|
113
|
-
? e.message
|
|
114
|
-
: "An unknown error has occurred!",
|
|
131
|
+
title: "Successfully copied email to clipboard!",
|
|
132
|
+
description: `You should now be able to paste '${email}' from your clipboard!`,
|
|
115
133
|
});
|
|
116
134
|
return;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
title: "Successfully copied email to clipboard!",
|
|
120
|
-
description: `You should now be able to paste '${email}' from your clipboard!`,
|
|
121
|
-
});
|
|
122
|
-
return;
|
|
123
|
-
}, children: [_jsx(ClipboardCopy, { className: "h-4 w-4 pr-2" }), " Copy Email"] })] })] }));
|
|
135
|
+
}, children: [_jsx(ClipboardCopy, { className: "h-4 w-4 pr-2" }), " Copy Email"] })] })] }));
|
|
136
|
+
},
|
|
124
137
|
},
|
|
125
|
-
|
|
126
|
-
|
|
138
|
+
];
|
|
139
|
+
}
|
|
140
|
+
export const columns = buildColumns();
|
|
127
141
|
//# sourceMappingURL=columns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/UsersTable/columns.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,aAAa,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../../src/components/UsersTable/columns.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schemavaults/auth-ui",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.75",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"description": "React.js UI components for authentication/authorization shared between different SchemaVaults apps",
|
|
@@ -10,11 +10,20 @@
|
|
|
10
10
|
"directory": "packages/auth-ui"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@
|
|
14
|
-
|
|
13
|
+
"@hookform/resolvers": "3.9.0"
|
|
14
|
+
},
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"react": "^19.2.5",
|
|
17
|
+
"react-dom": "^19.2.5",
|
|
18
|
+
"next": "^16.2.4",
|
|
19
|
+
"@schemavaults/ui": "^0.16.2",
|
|
20
|
+
"@schemavaults/auth-react-provider": "0.10.30",
|
|
15
21
|
"@schemavaults/app-definitions": "0.6.23",
|
|
16
22
|
"@schemavaults/auth-common": "0.10.10",
|
|
17
|
-
"
|
|
23
|
+
"lucide-react": "0.575.0",
|
|
24
|
+
"swr": "2.3.4",
|
|
25
|
+
"postcss": "8.5.3",
|
|
26
|
+
"tailwindcss": "3.4.17"
|
|
18
27
|
},
|
|
19
28
|
"devDependencies": {
|
|
20
29
|
"typescript": "5.9.3",
|
|
@@ -31,15 +40,6 @@
|
|
|
31
40
|
"eslint-plugin-react-hooks": "7.0.1",
|
|
32
41
|
"eslint-plugin-jsx-a11y": "6.10.2"
|
|
33
42
|
},
|
|
34
|
-
"peerDependencies": {
|
|
35
|
-
"react": "19.2.4",
|
|
36
|
-
"react-dom": "19.2.4",
|
|
37
|
-
"lucide-react": "0.508.0",
|
|
38
|
-
"swr": "2.3.4",
|
|
39
|
-
"next": "16.2.2",
|
|
40
|
-
"postcss": "8.5.3",
|
|
41
|
-
"tailwindcss": "3.4.17"
|
|
42
|
-
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json",
|
|
45
45
|
"lint": "eslint src --ext .ts,.tsx",
|