@bizapps/ui 1.5.1 → 1.7.0
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/editor.cjs +1483 -0
- package/dist/editor.cjs.map +1 -0
- package/dist/editor.d.cts +428 -0
- package/dist/editor.d.ts +428 -0
- package/dist/editor.js +1466 -0
- package/dist/editor.js.map +1 -0
- package/dist/main.cjs +112 -62
- package/dist/main.cjs.map +1 -1
- package/dist/main.d.cts +52 -2
- package/dist/main.d.ts +52 -2
- package/dist/main.js +90 -64
- package/dist/main.js.map +1 -1
- package/dist/phone.cjs +18 -0
- package/dist/phone.cjs.map +1 -0
- package/dist/phone.d.cts +28 -0
- package/dist/phone.d.ts +28 -0
- package/dist/phone.js +16 -0
- package/dist/phone.js.map +1 -0
- package/package.json +228 -175
package/dist/phone.cjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var libphonenumberJs = require('libphonenumber-js');
|
|
4
|
+
|
|
5
|
+
// src/lib/phone.ts
|
|
6
|
+
function validatePhone(value) {
|
|
7
|
+
if (!value) {
|
|
8
|
+
return { isValid: false };
|
|
9
|
+
}
|
|
10
|
+
if (libphonenumberJs.isValidPhoneNumber(value)) {
|
|
11
|
+
return { isValid: true };
|
|
12
|
+
}
|
|
13
|
+
return { isValid: false, problem: libphonenumberJs.validatePhoneNumberLength(value) ?? "INVALID" };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
exports.validatePhone = validatePhone;
|
|
17
|
+
//# sourceMappingURL=phone.cjs.map
|
|
18
|
+
//# sourceMappingURL=phone.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/phone.ts"],"names":["isValidPhoneNumber","validatePhoneNumberLength"],"mappings":";;;;;AAmCO,SAAS,cAAc,KAAA,EAAmC;AAC7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACR,IAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,EAC5B;AACA,EAAA,IAAIA,mCAAA,CAAmB,KAAK,CAAA,EAAG;AAC3B,IAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,EAC3B;AACA,EAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,SAASC,0CAAA,CAA0B,KAAK,KAAK,SAAA,EAAU;AACpF","file":"phone.cjs","sourcesContent":["import { isValidPhoneNumber, validatePhoneNumberLength } from 'libphonenumber-js';\n\n/**\n * Why a value is not a valid phone number. Mirrors `libphonenumber-js`'\n * `validatePhoneNumberLength` result, plus `'INVALID'` for a value whose length\n * IS possible for its calling code but which is not a real number (e.g. an\n * 8-digit Colombian value: 8 is a possible fixed-line length, yet `3008...` is\n * not an assignable fixed-line prefix).\n *\n * The design system emits this code, never a message: the copy belongs to the\n * consumer's i18n catalog.\n */\nexport type PhoneFieldProblem =\n | 'TOO_SHORT'\n | 'TOO_LONG'\n | 'INVALID_LENGTH'\n | 'INVALID_COUNTRY'\n | 'NOT_A_NUMBER'\n | 'INVALID';\n\nexport interface PhoneFieldValidity {\n /** True only when the value is a valid, assignable number. */\n isValid: boolean;\n /** Why it is invalid. Absent for a valid value AND for an empty one. */\n problem?: PhoneFieldProblem;\n}\n\n/**\n * Validates an E.164 phone value. Pure and stateless — safe to share between\n * the field, a Zod schema and a server route handler so the rule is written\n * once.\n *\n * An empty value reports `{ isValid: false }` with no `problem`: emptiness is\n * the consumer's `required` rule, not a phone problem.\n */\nexport function validatePhone(value: string): PhoneFieldValidity {\n if (!value) {\n return { isValid: false };\n }\n if (isValidPhoneNumber(value)) {\n return { isValid: true };\n }\n return { isValid: false, problem: validatePhoneNumberLength(value) ?? 'INVALID' };\n}\n"]}
|
package/dist/phone.d.cts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a value is not a valid phone number. Mirrors `libphonenumber-js`'
|
|
3
|
+
* `validatePhoneNumberLength` result, plus `'INVALID'` for a value whose length
|
|
4
|
+
* IS possible for its calling code but which is not a real number (e.g. an
|
|
5
|
+
* 8-digit Colombian value: 8 is a possible fixed-line length, yet `3008...` is
|
|
6
|
+
* not an assignable fixed-line prefix).
|
|
7
|
+
*
|
|
8
|
+
* The design system emits this code, never a message: the copy belongs to the
|
|
9
|
+
* consumer's i18n catalog.
|
|
10
|
+
*/
|
|
11
|
+
type PhoneFieldProblem = 'TOO_SHORT' | 'TOO_LONG' | 'INVALID_LENGTH' | 'INVALID_COUNTRY' | 'NOT_A_NUMBER' | 'INVALID';
|
|
12
|
+
interface PhoneFieldValidity {
|
|
13
|
+
/** True only when the value is a valid, assignable number. */
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
/** Why it is invalid. Absent for a valid value AND for an empty one. */
|
|
16
|
+
problem?: PhoneFieldProblem;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validates an E.164 phone value. Pure and stateless — safe to share between
|
|
20
|
+
* the field, a Zod schema and a server route handler so the rule is written
|
|
21
|
+
* once.
|
|
22
|
+
*
|
|
23
|
+
* An empty value reports `{ isValid: false }` with no `problem`: emptiness is
|
|
24
|
+
* the consumer's `required` rule, not a phone problem.
|
|
25
|
+
*/
|
|
26
|
+
declare function validatePhone(value: string): PhoneFieldValidity;
|
|
27
|
+
|
|
28
|
+
export { type PhoneFieldProblem, type PhoneFieldValidity, validatePhone };
|
package/dist/phone.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why a value is not a valid phone number. Mirrors `libphonenumber-js`'
|
|
3
|
+
* `validatePhoneNumberLength` result, plus `'INVALID'` for a value whose length
|
|
4
|
+
* IS possible for its calling code but which is not a real number (e.g. an
|
|
5
|
+
* 8-digit Colombian value: 8 is a possible fixed-line length, yet `3008...` is
|
|
6
|
+
* not an assignable fixed-line prefix).
|
|
7
|
+
*
|
|
8
|
+
* The design system emits this code, never a message: the copy belongs to the
|
|
9
|
+
* consumer's i18n catalog.
|
|
10
|
+
*/
|
|
11
|
+
type PhoneFieldProblem = 'TOO_SHORT' | 'TOO_LONG' | 'INVALID_LENGTH' | 'INVALID_COUNTRY' | 'NOT_A_NUMBER' | 'INVALID';
|
|
12
|
+
interface PhoneFieldValidity {
|
|
13
|
+
/** True only when the value is a valid, assignable number. */
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
/** Why it is invalid. Absent for a valid value AND for an empty one. */
|
|
16
|
+
problem?: PhoneFieldProblem;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validates an E.164 phone value. Pure and stateless — safe to share between
|
|
20
|
+
* the field, a Zod schema and a server route handler so the rule is written
|
|
21
|
+
* once.
|
|
22
|
+
*
|
|
23
|
+
* An empty value reports `{ isValid: false }` with no `problem`: emptiness is
|
|
24
|
+
* the consumer's `required` rule, not a phone problem.
|
|
25
|
+
*/
|
|
26
|
+
declare function validatePhone(value: string): PhoneFieldValidity;
|
|
27
|
+
|
|
28
|
+
export { type PhoneFieldProblem, type PhoneFieldValidity, validatePhone };
|
package/dist/phone.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isValidPhoneNumber, validatePhoneNumberLength } from 'libphonenumber-js';
|
|
2
|
+
|
|
3
|
+
// src/lib/phone.ts
|
|
4
|
+
function validatePhone(value) {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return { isValid: false };
|
|
7
|
+
}
|
|
8
|
+
if (isValidPhoneNumber(value)) {
|
|
9
|
+
return { isValid: true };
|
|
10
|
+
}
|
|
11
|
+
return { isValid: false, problem: validatePhoneNumberLength(value) ?? "INVALID" };
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { validatePhone };
|
|
15
|
+
//# sourceMappingURL=phone.js.map
|
|
16
|
+
//# sourceMappingURL=phone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/phone.ts"],"names":[],"mappings":";;;AAmCO,SAAS,cAAc,KAAA,EAAmC;AAC7D,EAAA,IAAI,CAAC,KAAA,EAAO;AACR,IAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,EAC5B;AACA,EAAA,IAAI,kBAAA,CAAmB,KAAK,CAAA,EAAG;AAC3B,IAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,EAC3B;AACA,EAAA,OAAO,EAAE,OAAA,EAAS,KAAA,EAAO,SAAS,yBAAA,CAA0B,KAAK,KAAK,SAAA,EAAU;AACpF","file":"phone.js","sourcesContent":["import { isValidPhoneNumber, validatePhoneNumberLength } from 'libphonenumber-js';\n\n/**\n * Why a value is not a valid phone number. Mirrors `libphonenumber-js`'\n * `validatePhoneNumberLength` result, plus `'INVALID'` for a value whose length\n * IS possible for its calling code but which is not a real number (e.g. an\n * 8-digit Colombian value: 8 is a possible fixed-line length, yet `3008...` is\n * not an assignable fixed-line prefix).\n *\n * The design system emits this code, never a message: the copy belongs to the\n * consumer's i18n catalog.\n */\nexport type PhoneFieldProblem =\n | 'TOO_SHORT'\n | 'TOO_LONG'\n | 'INVALID_LENGTH'\n | 'INVALID_COUNTRY'\n | 'NOT_A_NUMBER'\n | 'INVALID';\n\nexport interface PhoneFieldValidity {\n /** True only when the value is a valid, assignable number. */\n isValid: boolean;\n /** Why it is invalid. Absent for a valid value AND for an empty one. */\n problem?: PhoneFieldProblem;\n}\n\n/**\n * Validates an E.164 phone value. Pure and stateless — safe to share between\n * the field, a Zod schema and a server route handler so the rule is written\n * once.\n *\n * An empty value reports `{ isValid: false }` with no `problem`: emptiness is\n * the consumer's `required` rule, not a phone problem.\n */\nexport function validatePhone(value: string): PhoneFieldValidity {\n if (!value) {\n return { isValid: false };\n }\n if (isValidPhoneNumber(value)) {\n return { isValid: true };\n }\n return { isValid: false, problem: validatePhoneNumberLength(value) ?? 'INVALID' };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,177 +1,230 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
2
|
+
"name": "@bizapps/ui",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
5
|
+
},
|
|
6
|
+
"version": "1.7.0",
|
|
7
|
+
"description": "This package provides reusable UI components to ensure consistency across all CRM frontend applications",
|
|
8
|
+
"author": "BizAppsTotal <bizapps@tcce.biz>",
|
|
9
|
+
"type": "module",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"main": "./dist/main.cjs",
|
|
14
|
+
"module": "./dist/main.js",
|
|
15
|
+
"types": "./dist/main.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/main.d.ts",
|
|
19
|
+
"import": "./dist/main.js",
|
|
20
|
+
"require": "./dist/main.cjs"
|
|
21
|
+
},
|
|
22
|
+
"./policy": {
|
|
23
|
+
"types": "./dist/policy.d.ts",
|
|
24
|
+
"import": "./dist/policy.js",
|
|
25
|
+
"require": "./dist/policy.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./phone": {
|
|
28
|
+
"types": "./dist/phone.d.ts",
|
|
29
|
+
"import": "./dist/phone.js",
|
|
30
|
+
"require": "./dist/phone.cjs"
|
|
31
|
+
},
|
|
32
|
+
"./editor": {
|
|
33
|
+
"types": "./dist/editor.d.ts",
|
|
34
|
+
"import": "./dist/editor.js",
|
|
35
|
+
"require": "./dist/editor.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./styles": "./dist/main.css"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"dev": "vite",
|
|
41
|
+
"build": "tsup && vite build --config vite.lib.config.ts",
|
|
42
|
+
"build:storybook": "storybook build",
|
|
43
|
+
"generate-catalog": "tsx scripts/generate-catalog.ts",
|
|
44
|
+
"generate-permissions": "tsx scripts/generate-permissions.ts",
|
|
45
|
+
"type-check": "tsc -p tsconfig.build.json --noEmit",
|
|
46
|
+
"lint": "eslint .",
|
|
47
|
+
"lint:fix": "eslint . --fix",
|
|
48
|
+
"format": "prettier --write .",
|
|
49
|
+
"preview": "vite preview",
|
|
50
|
+
"storybook": "storybook dev -p 6006 --host 0.0.0.0 --no-open",
|
|
51
|
+
"build-storybook": "storybook build",
|
|
52
|
+
"test": "vitest run",
|
|
53
|
+
"test:watch": "vitest",
|
|
54
|
+
"test:coverage": "vitest run --coverage"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"@hookform/resolvers": "^5.4.0",
|
|
58
|
+
"@schedule-x/calendar": "4.6.0",
|
|
59
|
+
"@schedule-x/calendar-controls": "4.6.0",
|
|
60
|
+
"@schedule-x/event-modal": "4.6.0",
|
|
61
|
+
"@schedule-x/events-service": "4.6.0",
|
|
62
|
+
"@schedule-x/react": "4.1.0",
|
|
63
|
+
"@schedule-x/theme-default": "4.6.0",
|
|
64
|
+
"@tanstack/react-table": "^8.21.3",
|
|
65
|
+
"@tiptap/core": "^3.30.5",
|
|
66
|
+
"@tiptap/extension-highlight": "^3.30.5",
|
|
67
|
+
"@tiptap/extension-image": "^3.30.5",
|
|
68
|
+
"@tiptap/extension-link": "^3.30.5",
|
|
69
|
+
"@tiptap/extension-table": "^3.30.5",
|
|
70
|
+
"@tiptap/pm": "^3.30.5",
|
|
71
|
+
"@tiptap/react": "^3.30.5",
|
|
72
|
+
"@tiptap/starter-kit": "^3.30.5",
|
|
73
|
+
"embla-carousel-react": "^8.6.0",
|
|
74
|
+
"lucide-react": "^1.16.0",
|
|
75
|
+
"motion": "^12.23.13",
|
|
76
|
+
"next-themes": "^0.4.6",
|
|
77
|
+
"radix-ui": "^1.4.3",
|
|
78
|
+
"react": "^19.1.1",
|
|
79
|
+
"react-day-picker": "^10.0.1",
|
|
80
|
+
"react-dom": "^19.1.1",
|
|
81
|
+
"react-hook-form": "^7.77.0",
|
|
82
|
+
"sonner": "^2.0.7",
|
|
83
|
+
"zod": "^4.4.3"
|
|
84
|
+
},
|
|
85
|
+
"peerDependenciesMeta": {
|
|
86
|
+
"@hookform/resolvers": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"@schedule-x/calendar": {
|
|
90
|
+
"optional": true
|
|
91
|
+
},
|
|
92
|
+
"@schedule-x/calendar-controls": {
|
|
93
|
+
"optional": true
|
|
94
|
+
},
|
|
95
|
+
"@schedule-x/event-modal": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"@schedule-x/events-service": {
|
|
99
|
+
"optional": true
|
|
100
|
+
},
|
|
101
|
+
"@schedule-x/react": {
|
|
102
|
+
"optional": true
|
|
103
|
+
},
|
|
104
|
+
"@schedule-x/theme-default": {
|
|
105
|
+
"optional": true
|
|
106
|
+
},
|
|
107
|
+
"@tanstack/react-table": {
|
|
108
|
+
"optional": true
|
|
109
|
+
},
|
|
110
|
+
"@tiptap/core": {
|
|
111
|
+
"optional": true
|
|
112
|
+
},
|
|
113
|
+
"@tiptap/extension-highlight": {
|
|
114
|
+
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"@tiptap/extension-image": {
|
|
117
|
+
"optional": true
|
|
118
|
+
},
|
|
119
|
+
"@tiptap/extension-link": {
|
|
120
|
+
"optional": true
|
|
121
|
+
},
|
|
122
|
+
"@tiptap/extension-table": {
|
|
123
|
+
"optional": true
|
|
124
|
+
},
|
|
125
|
+
"@tiptap/pm": {
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"@tiptap/react": {
|
|
129
|
+
"optional": true
|
|
130
|
+
},
|
|
131
|
+
"@tiptap/starter-kit": {
|
|
132
|
+
"optional": true
|
|
133
|
+
},
|
|
134
|
+
"embla-carousel-react": {
|
|
135
|
+
"optional": true
|
|
136
|
+
},
|
|
137
|
+
"lucide-react": {
|
|
138
|
+
"optional": true
|
|
139
|
+
},
|
|
140
|
+
"motion": {
|
|
141
|
+
"optional": true
|
|
142
|
+
},
|
|
143
|
+
"next-themes": {
|
|
144
|
+
"optional": true
|
|
145
|
+
},
|
|
146
|
+
"react-day-picker": {
|
|
147
|
+
"optional": true
|
|
148
|
+
},
|
|
149
|
+
"react-hook-form": {
|
|
150
|
+
"optional": true
|
|
151
|
+
},
|
|
152
|
+
"sonner": {
|
|
153
|
+
"optional": true
|
|
154
|
+
},
|
|
155
|
+
"zod": {
|
|
156
|
+
"optional": true
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"devDependencies": {
|
|
160
|
+
"@eslint/js": "^9.39.4",
|
|
161
|
+
"@faker-js/faker": "^10.4.0",
|
|
162
|
+
"@fontsource-variable/inter": "^5.2.8",
|
|
163
|
+
"@storybook/addon-a11y": "^10.2.17",
|
|
164
|
+
"@storybook/addon-docs": "^10.2.17",
|
|
165
|
+
"@storybook/addon-mcp": "^0.6.0",
|
|
166
|
+
"@storybook/react-vite": "^10.2.17",
|
|
167
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
168
|
+
"@tanstack/react-table": "^8.21.3",
|
|
169
|
+
"@testing-library/jest-dom": "^7.0.0",
|
|
170
|
+
"@testing-library/react": "^16.3.2",
|
|
171
|
+
"@testing-library/user-event": "^14.6.1",
|
|
172
|
+
"@tiptap/core": "3.30.5",
|
|
173
|
+
"@tiptap/extension-highlight": "3.30.5",
|
|
174
|
+
"@tiptap/extension-image": "3.30.5",
|
|
175
|
+
"@tiptap/extension-link": "3.30.5",
|
|
176
|
+
"@tiptap/extension-table": "3.30.5",
|
|
177
|
+
"@tiptap/pm": "3.30.5",
|
|
178
|
+
"@tiptap/react": "3.30.5",
|
|
179
|
+
"@tiptap/starter-kit": "3.30.5",
|
|
180
|
+
"@types/canvas-confetti": "^1.9.0",
|
|
181
|
+
"@types/node": "^24.12.0",
|
|
182
|
+
"@types/react": "^19.2.14",
|
|
183
|
+
"@types/react-dom": "^19.2.3",
|
|
184
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
185
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
186
|
+
"axe-core": "^4.12.1",
|
|
187
|
+
"eslint": "^9.39.4",
|
|
188
|
+
"eslint-config-prettier": "^10.1.8",
|
|
189
|
+
"eslint-plugin-react": "^7.37.5",
|
|
190
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
191
|
+
"eslint-plugin-react-refresh": "^0.4.26",
|
|
192
|
+
"eslint-plugin-storybook": "^10.2.17",
|
|
193
|
+
"globals": "^16.5.0",
|
|
194
|
+
"jsdom": "^30.0.1",
|
|
195
|
+
"motion": "^12.40.0",
|
|
196
|
+
"prettier": "^3.8.1",
|
|
197
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
198
|
+
"react": "^19.2.4",
|
|
199
|
+
"react-dom": "^19.2.4",
|
|
200
|
+
"shadcn": "^4.8.1",
|
|
201
|
+
"sonner": "^2.0.7",
|
|
202
|
+
"storybook": "^10.2.17",
|
|
203
|
+
"tailwindcss": "^4.2.1",
|
|
204
|
+
"ts-morph": "^24.0.0",
|
|
205
|
+
"tsup": "^8.5.1",
|
|
206
|
+
"tsx": "^4.19.4",
|
|
207
|
+
"typescript": "~5.8.3",
|
|
208
|
+
"typescript-eslint": "8.53.0",
|
|
209
|
+
"vite": "^7.3.1",
|
|
210
|
+
"vite-plugin-dts": "^4.5.4",
|
|
211
|
+
"vitest": "^4.1.10",
|
|
212
|
+
"vitest-axe": "^0.1.0",
|
|
213
|
+
"zod": "^4.4.3"
|
|
214
|
+
},
|
|
215
|
+
"packageManager": "pnpm@11.7.0+sha512.19cc852c120c7125760f2443ee6be0ca5b40f9f50598de1a09a1f177503e010e57c23c77646e01e761de59bf874fb22a3398c33ab9691fc13eb946b6f0f4d620",
|
|
216
|
+
"dependencies": {
|
|
217
|
+
"canvas-confetti": "^1.9.4",
|
|
218
|
+
"class-variance-authority": "^0.7.1",
|
|
219
|
+
"clsx": "^2.1.1",
|
|
220
|
+
"cmdk": "^1.1.1",
|
|
221
|
+
"color": "^5.0.3",
|
|
222
|
+
"country-flag-icons": "^1.6.20",
|
|
223
|
+
"date-fns": "^4.4.0",
|
|
224
|
+
"libphonenumber-js": "^1.13.10",
|
|
225
|
+
"react-dropzone": "^15.0.0",
|
|
226
|
+
"tailwind-merge": "^3.6.0",
|
|
227
|
+
"temporal-polyfill": "0.3.2",
|
|
228
|
+
"tw-animate-css": "^1.4.0"
|
|
98
229
|
}
|
|
99
|
-
|
|
100
|
-
"devDependencies": {
|
|
101
|
-
"@eslint/js": "^9.39.4",
|
|
102
|
-
"@faker-js/faker": "^10.4.0",
|
|
103
|
-
"@fontsource-variable/inter": "^5.2.8",
|
|
104
|
-
"@storybook/addon-a11y": "^10.2.17",
|
|
105
|
-
"@storybook/addon-docs": "^10.2.17",
|
|
106
|
-
"@storybook/addon-mcp": "^0.6.0",
|
|
107
|
-
"@storybook/react-vite": "^10.2.17",
|
|
108
|
-
"@tailwindcss/vite": "^4.2.1",
|
|
109
|
-
"@tanstack/react-table": "^8.21.3",
|
|
110
|
-
"@testing-library/jest-dom": "^7.0.0",
|
|
111
|
-
"@testing-library/react": "^16.3.2",
|
|
112
|
-
"@testing-library/user-event": "^14.6.1",
|
|
113
|
-
"@types/node": "^24.12.0",
|
|
114
|
-
"@types/react": "^19.2.14",
|
|
115
|
-
"@types/react-dom": "^19.2.3",
|
|
116
|
-
"@vitejs/plugin-react": "^5.1.4",
|
|
117
|
-
"@vitest/coverage-v8": "^4.1.10",
|
|
118
|
-
"axe-core": "^4.12.1",
|
|
119
|
-
"eslint": "^9.39.4",
|
|
120
|
-
"eslint-config-prettier": "^10.1.8",
|
|
121
|
-
"eslint-plugin-react": "^7.37.5",
|
|
122
|
-
"eslint-plugin-react-hooks": "^5.2.0",
|
|
123
|
-
"eslint-plugin-react-refresh": "^0.4.26",
|
|
124
|
-
"eslint-plugin-storybook": "^10.2.17",
|
|
125
|
-
"globals": "^16.5.0",
|
|
126
|
-
"jsdom": "^30.0.1",
|
|
127
|
-
"motion": "^12.40.0",
|
|
128
|
-
"prettier": "^3.8.1",
|
|
129
|
-
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
130
|
-
"react": "^19.2.4",
|
|
131
|
-
"react-dom": "^19.2.4",
|
|
132
|
-
"shadcn": "^4.8.1",
|
|
133
|
-
"sonner": "^2.0.7",
|
|
134
|
-
"storybook": "^10.2.17",
|
|
135
|
-
"tailwindcss": "^4.2.1",
|
|
136
|
-
"ts-morph": "^24.0.0",
|
|
137
|
-
"tsup": "^8.5.1",
|
|
138
|
-
"tsx": "^4.19.4",
|
|
139
|
-
"typescript": "~5.8.3",
|
|
140
|
-
"typescript-eslint": "8.53.0",
|
|
141
|
-
"vite": "^7.3.1",
|
|
142
|
-
"vite-plugin-dts": "^4.5.4",
|
|
143
|
-
"vitest": "^4.1.10",
|
|
144
|
-
"vitest-axe": "^0.1.0",
|
|
145
|
-
"zod": "^4.4.3"
|
|
146
|
-
},
|
|
147
|
-
"dependencies": {
|
|
148
|
-
"class-variance-authority": "^0.7.1",
|
|
149
|
-
"clsx": "^2.1.1",
|
|
150
|
-
"cmdk": "^1.1.1",
|
|
151
|
-
"color": "^5.0.3",
|
|
152
|
-
"country-flag-icons": "^1.6.20",
|
|
153
|
-
"date-fns": "^4.4.0",
|
|
154
|
-
"libphonenumber-js": "^1.13.10",
|
|
155
|
-
"react-dropzone": "^15.0.0",
|
|
156
|
-
"tailwind-merge": "^3.6.0",
|
|
157
|
-
"temporal-polyfill": "0.3.2",
|
|
158
|
-
"tw-animate-css": "^1.4.0"
|
|
159
|
-
},
|
|
160
|
-
"scripts": {
|
|
161
|
-
"dev": "vite",
|
|
162
|
-
"build": "tsup && vite build --config vite.lib.config.ts",
|
|
163
|
-
"build:storybook": "storybook build",
|
|
164
|
-
"generate-catalog": "tsx scripts/generate-catalog.ts",
|
|
165
|
-
"generate-permissions": "tsx scripts/generate-permissions.ts",
|
|
166
|
-
"type-check": "tsc -p tsconfig.build.json --noEmit",
|
|
167
|
-
"lint": "eslint .",
|
|
168
|
-
"lint:fix": "eslint . --fix",
|
|
169
|
-
"format": "prettier --write .",
|
|
170
|
-
"preview": "vite preview",
|
|
171
|
-
"storybook": "storybook dev -p 6006 --host 0.0.0.0 --no-open",
|
|
172
|
-
"build-storybook": "storybook build",
|
|
173
|
-
"test": "vitest run",
|
|
174
|
-
"test:watch": "vitest",
|
|
175
|
-
"test:coverage": "vitest run --coverage"
|
|
176
|
-
}
|
|
177
|
-
}
|
|
230
|
+
}
|