doct-ui-auth-kit 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/http-auth-adapter.d.ts +13 -0
- package/dist/adapters/index.d.ts +1 -0
- package/dist/auth/index.d.ts +28 -0
- package/dist/auth-methods/apple.d.ts +19 -0
- package/dist/auth-methods/google.d.ts +5 -0
- package/dist/auth-methods/index.d.ts +2 -0
- package/dist/auth-methods/use-google-auth.d.ts +69 -0
- package/dist/components/common/back-button.d.ts +13 -0
- package/dist/components/common/default-footer.d.ts +5 -0
- package/dist/components/form/rhf-doct-phone-input.d.ts +2 -0
- package/dist/components/form/rhf-input-field.d.ts +2 -0
- package/dist/components/form/rhf-otp-input-field.d.ts +3 -0
- package/dist/components/layout/auth-layout-preset.d.ts +30 -0
- package/dist/components/layout/auth-layout-public.d.ts +17 -0
- package/dist/components/layout/auth-layout-wrapper.d.ts +42 -0
- package/dist/components/layout/auth-layout.d.ts +89 -0
- package/dist/components/layout/image-slider.d.ts +28 -0
- package/dist/components/layout/index.d.ts +8 -0
- package/dist/components/layout/main-layout.d.ts +30 -0
- package/dist/constants/brand.d.ts +9 -0
- package/dist/constants/demo-slider.d.ts +14 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/layout-classes.d.ts +10 -0
- package/dist/constants/layout-presets.d.ts +10 -0
- package/dist/core/auth-api-adapter.d.ts +6 -0
- package/dist/core/auth-context.d.ts +21 -0
- package/dist/core/auth-flow.d.ts +1 -1
- package/dist/core/auth-provider.d.ts +8 -0
- package/dist/core/auth-types.d.ts +5 -0
- package/dist/core/device-detection.d.ts +19 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/sso-session.d.ts +35 -0
- package/dist/core/use-auth-flow-router-sync.d.ts +1 -1
- package/dist/core/use-auth-flow.d.ts +9 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/use-login-entry-form.d.ts +12 -0
- package/dist/hooks/use-main-auth-page-handlers.d.ts +9 -0
- package/dist/hooks/use-otp-verification.d.ts +3 -3
- package/dist/hooks/use-repeat-login.d.ts +9 -0
- package/dist/hooks/use-signup-form.d.ts +12 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +321 -313
- package/dist/pages/index.d.ts +8 -0
- package/dist/pages/login-entry/index.d.ts +3 -0
- package/dist/pages/login-entry/login-entry-page.d.ts +21 -0
- package/dist/pages/login-entry/login-entry.d.ts +21 -0
- package/dist/pages/main-login/index.d.ts +3 -0
- package/dist/pages/main-login/main-login-page.d.ts +16 -0
- package/dist/pages/main-login/main-login.d.ts +25 -0
- package/dist/pages/otp-verification/index.d.ts +3 -0
- package/dist/pages/otp-verification/otp-verification-page.d.ts +23 -0
- package/dist/pages/otp-verification/otp-verification.d.ts +22 -0
- package/dist/pages/repeat-login/index.d.ts +3 -0
- package/dist/pages/repeat-login/repeat-login-page.d.ts +24 -0
- package/dist/pages/repeat-login/repeat-login.d.ts +25 -0
- package/dist/pages/signup/index.d.ts +3 -0
- package/dist/pages/signup/signup-page.d.ts +6 -0
- package/dist/pages/signup/signup.d.ts +7 -0
- package/dist/pages.js +1 -1
- package/dist/{signup-page-ChXnxtSS.js → signup-page-LsYojX4-.js} +43 -38
- package/dist/types/auth/auth-api-adapter.d.ts +57 -0
- package/dist/types/auth/auth-provider.d.ts +40 -0
- package/dist/types/auth/auth-types.d.ts +70 -0
- package/dist/types/auth/device-detection.d.ts +13 -0
- package/dist/types/auth/flow.d.ts +133 -0
- package/dist/types/auth/index.d.ts +10 -0
- package/dist/types/auth/router.d.ts +60 -0
- package/dist/types/auth/sso-session.d.ts +33 -0
- package/dist/types/components/auth-layout-types.d.ts +92 -0
- package/dist/types/components/forms.d.ts +77 -0
- package/dist/types/components/index.d.ts +7 -0
- package/dist/types/components/layout-presets.d.ts +29 -0
- package/dist/types/components/layout.d.ts +57 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/pages/index.d.ts +9 -0
- package/dist/types/pages/login-form.d.ts +57 -0
- package/dist/types/pages/otp-verification.d.ts +1 -1
- package/dist/types/pages/repeat-login.d.ts +29 -0
- package/dist/types/pages/signup-form.d.ts +49 -0
- package/dist/utils/build-phone-recipient.d.ts +12 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/set-form-errors-from-zod.d.ts +11 -0
- package/dist/validations/index.d.ts +6 -0
- package/dist/validations/schemas.d.ts +87 -0
- package/package.json +110 -109
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize a phone + country code pair into a single E.164-style string.
|
|
3
|
+
*
|
|
4
|
+
* Rules (shared by login-entry submission and the SSO flow's identifier /
|
|
5
|
+
* signup-details handlers):
|
|
6
|
+
* - Trim the phone value.
|
|
7
|
+
* - Empty phone → `''`.
|
|
8
|
+
* - Phone already starting with `+` → return as-is (caller-supplied E.164).
|
|
9
|
+
* - Otherwise: strip non-digits from the country code; prefix `+{cc}{phone}`
|
|
10
|
+
* if a country code is present, else return the bare phone digits.
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildPhoneRecipient(phone?: string, countryCode?: string): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ZodError } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Applies Zod validation errors to a React Hook Form setError function.
|
|
4
|
+
* Used by form submit handlers to display field-level errors from schema validation.
|
|
5
|
+
*
|
|
6
|
+
* @param error - The ZodError from schema.safeParse when validation fails
|
|
7
|
+
* @param setError - RHF's setError (e.g. methods.setError)
|
|
8
|
+
*/
|
|
9
|
+
export declare function setFormErrorsFromZod(error: ZodError, setError: (path: string, opts: {
|
|
10
|
+
message: string;
|
|
11
|
+
}) => void): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central export for all validation schemas and helpers.
|
|
3
|
+
* Import from here: import { signupSchemas, loginSchemas, otpFormSchema } from '../validations';
|
|
4
|
+
*/
|
|
5
|
+
export type { OtpVerificationMode } from './schemas';
|
|
6
|
+
export { capitalizeWords, emailSchema, fullNameSchema, getResendCooldownSeconds, loginEmailFormSchema, loginPhoneFormSchema, loginSchemas, OTP_LENGTH, otpFormSchema, phoneSchema, RESEND_COOLDOWN_EMAIL_SECONDS, RESEND_COOLDOWN_PHONE_SECONDS, signupEmailFormSchema, signupForeignFormSchema, signupPhoneFormSchema, signupSchemas, } from './schemas';
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Zod schemas for auth forms (signup, login, OTP).
|
|
3
|
+
* Single source of truth for all validation rules per PRODUCT_PROTOCOLS.
|
|
4
|
+
* Schemas are consumed by hooks (not components) to enforce clean layer separation.
|
|
5
|
+
* Future SSO API validation (e.g. server-side field constraints) can extend these schemas.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
/** Capitalize first letter of each word (PRODUCT_PROTOCOLS #25 – Naming conventions). */
|
|
9
|
+
export declare function capitalizeWords(value: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Full name: required, min 3 chars, trim, capitalize each word (Protocol #1, #25; Edge case 9).
|
|
12
|
+
*/
|
|
13
|
+
export declare const fullNameSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
14
|
+
/**
|
|
15
|
+
* Phone: required; accepts both legacy "countryCode-number" and direct numeric input.
|
|
16
|
+
* Valid when the normalized phone digits length is between 7 and 15.
|
|
17
|
+
*/
|
|
18
|
+
export declare const phoneSchema: z.ZodString;
|
|
19
|
+
/** Optional country calling code, normalized to digits (e.g. `91`). */
|
|
20
|
+
export declare const countryCodeSchema: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
21
|
+
/**
|
|
22
|
+
* Email: required, valid format, trim and lowercase before save (Edge case 10).
|
|
23
|
+
*/
|
|
24
|
+
export declare const emailSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
25
|
+
export declare const signupPhoneFormSchema: z.ZodObject<{
|
|
26
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
27
|
+
phone: z.ZodString;
|
|
28
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const signupEmailFormSchema: z.ZodObject<{
|
|
31
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
32
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const signupForeignFormSchema: z.ZodObject<{
|
|
35
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
36
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
37
|
+
phone: z.ZodString;
|
|
38
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
39
|
+
}, z.core.$strip>;
|
|
40
|
+
export declare const signupSchemas: {
|
|
41
|
+
readonly phone: z.ZodObject<{
|
|
42
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
43
|
+
phone: z.ZodString;
|
|
44
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
45
|
+
}, z.core.$strip>;
|
|
46
|
+
readonly email: z.ZodObject<{
|
|
47
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
48
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
49
|
+
}, z.core.$strip>;
|
|
50
|
+
readonly foreign: z.ZodObject<{
|
|
51
|
+
fullName: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
52
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
53
|
+
phone: z.ZodString;
|
|
54
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
55
|
+
}, z.core.$strip>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Phone validation per PRODUCT_PROTOCOLS #2, #5 and edge cases 3–5.
|
|
59
|
+
*/
|
|
60
|
+
export declare const loginPhoneFormSchema: z.ZodObject<{
|
|
61
|
+
phone: z.ZodString;
|
|
62
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
/**
|
|
65
|
+
* Email validation: trim and lowercase per edge case 10.
|
|
66
|
+
*/
|
|
67
|
+
export declare const loginEmailFormSchema: z.ZodObject<{
|
|
68
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
export declare const loginSchemas: {
|
|
71
|
+
readonly phone: z.ZodObject<{
|
|
72
|
+
phone: z.ZodString;
|
|
73
|
+
countryCode: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
74
|
+
}, z.core.$strip>;
|
|
75
|
+
readonly email: z.ZodObject<{
|
|
76
|
+
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
};
|
|
79
|
+
export declare const OTP_LENGTH = 6;
|
|
80
|
+
/** Resend cooldown: 60s for phone OTP, 2 min for email OTP (per design). */
|
|
81
|
+
export declare const RESEND_COOLDOWN_PHONE_SECONDS = 60;
|
|
82
|
+
export declare const RESEND_COOLDOWN_EMAIL_SECONDS = 120;
|
|
83
|
+
export type OtpVerificationMode = 'phone' | 'email';
|
|
84
|
+
export declare function getResendCooldownSeconds(mode: OtpVerificationMode): number;
|
|
85
|
+
export declare const otpFormSchema: z.ZodObject<{
|
|
86
|
+
otp: z.ZodArray<z.ZodString>;
|
|
87
|
+
}, z.core.$strip>;
|
package/package.json
CHANGED
|
@@ -1,109 +1,110 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "doct-ui-auth-kit",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Composable React auth SDK – layouts, login/signup/OTP pages, SSO provider, and auth flow hooks for Docthub",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"module": "./dist/index.js",
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"files": ["dist", "README.md"],
|
|
10
|
-
"keywords": [
|
|
11
|
-
"react",
|
|
12
|
-
"auth",
|
|
13
|
-
"sdk",
|
|
14
|
-
"docthub",
|
|
15
|
-
"login",
|
|
16
|
-
"signup",
|
|
17
|
-
"sso",
|
|
18
|
-
"otp"
|
|
19
|
-
],
|
|
20
|
-
"license": "UNLICENSED",
|
|
21
|
-
"repository": {
|
|
22
|
-
"type": "git",
|
|
23
|
-
"url": "https://github.com/docthub/doct-ui-auth-kit"
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"dev": "vite",
|
|
27
|
-
"build": "vite build && tsc -p tsconfig.build.json",
|
|
28
|
-
"prepublishOnly": "npm run build",
|
|
29
|
-
"lint": "biome lint .",
|
|
30
|
-
"preview": "vite preview",
|
|
31
|
-
"format": "biome format --write .",
|
|
32
|
-
"lint:biome": "biome lint .",
|
|
33
|
-
"check": "biome check .",
|
|
34
|
-
"check:fix": "biome check --write .",
|
|
35
|
-
"type-check": "tsc --noEmit",
|
|
36
|
-
"prepare": "husky",
|
|
37
|
-
"storybook": "storybook dev -p 6006",
|
|
38
|
-
"build-storybook": "storybook build"
|
|
39
|
-
},
|
|
40
|
-
"exports": {
|
|
41
|
-
".": {
|
|
42
|
-
"types": "./dist/index.d.ts",
|
|
43
|
-
"import": "./dist/index.js"
|
|
44
|
-
},
|
|
45
|
-
"./style.css": "./dist/doct-ui-auth-kit.css",
|
|
46
|
-
"./pages": {
|
|
47
|
-
"types": "./dist/pages/index.d.ts",
|
|
48
|
-
"import": "./dist/pages.js"
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"peerDependencies": {
|
|
52
|
-
"docthub-core-components": "2.99.0",
|
|
53
|
-
"react": "^19.0.0",
|
|
54
|
-
"react-dom": "^19.0.0",
|
|
55
|
-
"react-hook-form": "^7.50.0",
|
|
56
|
-
"react-icons": "^5.5.0",
|
|
57
|
-
"zod": "^4.0.0"
|
|
58
|
-
},
|
|
59
|
-
"dependencies": {
|
|
60
|
-
"clsx": "^2.1.1",
|
|
61
|
-
"dayjs": "^1.11.19",
|
|
62
|
-
"docthub-core-components": "2.99.0",
|
|
63
|
-
"react": "^19.0.0",
|
|
64
|
-
"react-dom": "^19.0.0",
|
|
65
|
-
"react-hook-form": "^7.50.0",
|
|
66
|
-
"react-icons": "^5.5.0",
|
|
67
|
-
"react-phone-number-input": "^3.4.14",
|
|
68
|
-
"react-router-dom": "^7.13.0",
|
|
69
|
-
"zod": "^4.0.0"
|
|
70
|
-
},
|
|
71
|
-
"devDependencies": {
|
|
72
|
-
"@biomejs/biome": "^2.3.14",
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"@
|
|
76
|
-
"@
|
|
77
|
-
"@storybook/addon-
|
|
78
|
-
"@storybook/addon-
|
|
79
|
-
"@storybook/
|
|
80
|
-
"@
|
|
81
|
-
"@
|
|
82
|
-
"@types/
|
|
83
|
-
"@
|
|
84
|
-
"@
|
|
85
|
-
"@
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"eslint": "^
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"storybook": "^10.2.6",
|
|
100
|
-
"tailwind-merge": "^3.0.1",
|
|
101
|
-
"tailwindcss": "^3.4.16",
|
|
102
|
-
"tailwindcss-animate": "^1.0.7",
|
|
103
|
-
"
|
|
104
|
-
"typescript
|
|
105
|
-
"
|
|
106
|
-
"vite
|
|
107
|
-
"
|
|
108
|
-
|
|
109
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "doct-ui-auth-kit",
|
|
3
|
+
"version": "1.0.15",
|
|
4
|
+
"description": "Composable React auth SDK – layouts, login/signup/OTP pages, SSO provider, and auth flow hooks for Docthub",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"files": ["dist", "README.md"],
|
|
10
|
+
"keywords": [
|
|
11
|
+
"react",
|
|
12
|
+
"auth",
|
|
13
|
+
"sdk",
|
|
14
|
+
"docthub",
|
|
15
|
+
"login",
|
|
16
|
+
"signup",
|
|
17
|
+
"sso",
|
|
18
|
+
"otp"
|
|
19
|
+
],
|
|
20
|
+
"license": "UNLICENSED",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "https://github.com/docthub/doct-ui-auth-kit"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"dev": "vite",
|
|
27
|
+
"build": "vite build && tsc --build tsconfig.build.json --force && tsc-alias -p tsconfig.build.json",
|
|
28
|
+
"prepublishOnly": "npm run build",
|
|
29
|
+
"lint": "biome lint .",
|
|
30
|
+
"preview": "vite preview",
|
|
31
|
+
"format": "biome format --write .",
|
|
32
|
+
"lint:biome": "biome lint .",
|
|
33
|
+
"check": "biome check .",
|
|
34
|
+
"check:fix": "biome check --write .",
|
|
35
|
+
"type-check": "tsc --noEmit",
|
|
36
|
+
"prepare": "husky",
|
|
37
|
+
"storybook": "storybook dev -p 6006",
|
|
38
|
+
"build-storybook": "storybook build"
|
|
39
|
+
},
|
|
40
|
+
"exports": {
|
|
41
|
+
".": {
|
|
42
|
+
"types": "./dist/index.d.ts",
|
|
43
|
+
"import": "./dist/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./style.css": "./dist/doct-ui-auth-kit.css",
|
|
46
|
+
"./pages": {
|
|
47
|
+
"types": "./dist/pages/index.d.ts",
|
|
48
|
+
"import": "./dist/pages.js"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"docthub-core-components": "2.99.0",
|
|
53
|
+
"react": "^19.0.0",
|
|
54
|
+
"react-dom": "^19.0.0",
|
|
55
|
+
"react-hook-form": "^7.50.0",
|
|
56
|
+
"react-icons": "^5.5.0",
|
|
57
|
+
"zod": "^4.0.0"
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"clsx": "^2.1.1",
|
|
61
|
+
"dayjs": "^1.11.19",
|
|
62
|
+
"docthub-core-components": "2.99.0",
|
|
63
|
+
"react": "^19.0.0",
|
|
64
|
+
"react-dom": "^19.0.0",
|
|
65
|
+
"react-hook-form": "^7.50.0",
|
|
66
|
+
"react-icons": "^5.5.0",
|
|
67
|
+
"react-phone-number-input": "^3.4.14",
|
|
68
|
+
"react-router-dom": "^7.13.0",
|
|
69
|
+
"zod": "^4.0.0"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@biomejs/biome": "^2.3.14",
|
|
73
|
+
"@chromatic-com/storybook": "^5.0.0",
|
|
74
|
+
"@eslint/js": "^9.39.1",
|
|
75
|
+
"@storybook/addon-a11y": "^10.2.6",
|
|
76
|
+
"@storybook/addon-docs": "^10.2.6",
|
|
77
|
+
"@storybook/addon-onboarding": "^10.2.6",
|
|
78
|
+
"@storybook/addon-vitest": "^10.2.6",
|
|
79
|
+
"@storybook/react-vite": "^10.2.6",
|
|
80
|
+
"@types/node": "^24.10.1",
|
|
81
|
+
"@types/react": "^19.2.5",
|
|
82
|
+
"@types/react-dom": "^19.2.3",
|
|
83
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
84
|
+
"@vitest/browser-playwright": "^4.0.18",
|
|
85
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
86
|
+
"autoprefixer": "^10.4.24",
|
|
87
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
88
|
+
"eslint": "^9.39.1",
|
|
89
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
90
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
91
|
+
"glob": "^13.0.1",
|
|
92
|
+
"globals": "^16.5.0",
|
|
93
|
+
"husky": "^9.1.7",
|
|
94
|
+
"lint-staged": "^16.2.7",
|
|
95
|
+
"playwright": "^1.58.1",
|
|
96
|
+
"postcss": "^8.5.6",
|
|
97
|
+
"react": "^19.2.0",
|
|
98
|
+
"react-dom": "^19.2.0",
|
|
99
|
+
"storybook": "^10.2.6",
|
|
100
|
+
"tailwind-merge": "^3.0.1",
|
|
101
|
+
"tailwindcss": "^3.4.16",
|
|
102
|
+
"tailwindcss-animate": "^1.0.7",
|
|
103
|
+
"tsc-alias": "^1.8.17",
|
|
104
|
+
"typescript": "~5.6.2",
|
|
105
|
+
"typescript-eslint": "^8.46.4",
|
|
106
|
+
"vite": "^7.2.4",
|
|
107
|
+
"vite-plugin-dts": "^4.5.0",
|
|
108
|
+
"vitest": "^4.0.18"
|
|
109
|
+
}
|
|
110
|
+
}
|