@jsdev_ninja/core 0.7.3 → 0.7.5
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/core.cjs.js +2 -0
- package/dist/core.cjs.js.map +1 -0
- package/dist/core.es.js +3037 -0
- package/dist/core.es.js.map +1 -0
- package/dist/core.umd.js +2 -0
- package/dist/core.umd.js.map +1 -0
- package/dist/entities/Address.d.ts +28 -0
- package/dist/entities/Address.d.ts.map +1 -0
- package/dist/entities/Address.js +10 -0
- package/dist/entities/Cart.d.ts +715 -0
- package/dist/entities/Cart.d.ts.map +1 -0
- package/dist/entities/Cart.js +14 -0
- package/dist/entities/Category.d.ts +103 -0
- package/dist/entities/Category.d.ts.map +1 -0
- package/dist/entities/Category.js +20 -0
- package/dist/entities/Locale.d.ts +12 -0
- package/dist/entities/Locale.d.ts.map +1 -0
- package/dist/entities/Locale.js +5 -0
- package/dist/entities/Order.d.ts +1118 -0
- package/dist/entities/Order.d.ts.map +1 -0
- package/dist/entities/Order.js +30 -0
- package/dist/entities/Payment.d.ts +30 -0
- package/dist/entities/Payment.d.ts.map +1 -0
- package/dist/entities/Payment.js +12 -0
- package/dist/entities/Product.d.ts +1000 -0
- package/dist/entities/Product.d.ts.map +1 -0
- package/dist/entities/Product.js +64 -0
- package/dist/entities/Profile.d.ts +102 -0
- package/dist/entities/Profile.d.ts.map +1 -0
- package/dist/entities/Profile.js +45 -0
- package/dist/entities/index.d.ts +6 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +5 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/tsconfig.app.tsbuildinfo +1 -0
- package/dist/tsconfig.node.tsbuildinfo +1 -0
- package/dist/vite.config.d.ts +3 -0
- package/dist/vite.config.d.ts.map +1 -0
- package/dist/vite.config.js +25 -0
- package/eslint.config.js +28 -0
- package/index.html +13 -0
- package/package.json +1 -5
- package/src/App.css +42 -0
- package/src/App.tsx +35 -0
- package/src/assets/react.svg +1 -0
- package/src/index.css +68 -0
- package/src/main.tsx +3 -0
- package/src/vite-env.d.ts +1 -0
- package/tsconfig.app.json +19 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +26 -0
- package/vite.config.ts +27 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../lib/entities/Product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDxB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { LocaleSchema } from "./Locale";
|
|
3
|
+
import { CategorySchema } from "./Category";
|
|
4
|
+
const text = z.string();
|
|
5
|
+
export const ProductSchema = z.object({
|
|
6
|
+
type: z.literal("Product"),
|
|
7
|
+
storeId: text,
|
|
8
|
+
companyId: text,
|
|
9
|
+
id: z.string(),
|
|
10
|
+
objectID: z.string(),
|
|
11
|
+
sku: z.string().min(1),
|
|
12
|
+
name: z.array(LocaleSchema),
|
|
13
|
+
description: z.array(LocaleSchema),
|
|
14
|
+
isPublished: z.boolean(),
|
|
15
|
+
vat: z.boolean(),
|
|
16
|
+
priceType: z.object({
|
|
17
|
+
type: z.enum(["unit", "kg", "gram", "liter", "ml"]),
|
|
18
|
+
value: z.number(),
|
|
19
|
+
}),
|
|
20
|
+
price: z.number().positive(),
|
|
21
|
+
purchasePrice: z.number().optional(),
|
|
22
|
+
profitPercentage: z.number().optional(),
|
|
23
|
+
currency: z.literal("ILS"),
|
|
24
|
+
discount: z.object({
|
|
25
|
+
type: z.enum(["number", "percent", "none"]),
|
|
26
|
+
value: z.number(),
|
|
27
|
+
}),
|
|
28
|
+
weight: z.object({
|
|
29
|
+
value: z.number(),
|
|
30
|
+
unit: z.enum(["kg", "gram", "none"]),
|
|
31
|
+
}),
|
|
32
|
+
volume: z.object({
|
|
33
|
+
value: z.number(),
|
|
34
|
+
unit: z.enum(["liter", "ml", "none"]),
|
|
35
|
+
}),
|
|
36
|
+
images: z.array(z.object({ url: z.string().url(), id: z.string() })),
|
|
37
|
+
manufacturer: text,
|
|
38
|
+
brand: z.string(),
|
|
39
|
+
importer: z.string(),
|
|
40
|
+
supplier: z.string(),
|
|
41
|
+
ingredients: z.array(LocaleSchema),
|
|
42
|
+
created_at: z.number(),
|
|
43
|
+
updated_at: z.number(),
|
|
44
|
+
categoryList: z.array(CategorySchema),
|
|
45
|
+
// generated
|
|
46
|
+
categories: z.object({
|
|
47
|
+
lvl0: z.array(z.string()),
|
|
48
|
+
lvl1: z.array(z.string()),
|
|
49
|
+
lvl2: z.array(z.string()),
|
|
50
|
+
lvl3: z.array(z.string()),
|
|
51
|
+
lvl4: z.array(z.string()),
|
|
52
|
+
}),
|
|
53
|
+
categoryNames: z.array(z.string()),
|
|
54
|
+
});
|
|
55
|
+
export const NewProductSchema = ProductSchema.omit({
|
|
56
|
+
id: true,
|
|
57
|
+
categories: true,
|
|
58
|
+
images: true,
|
|
59
|
+
}).extend({
|
|
60
|
+
image: z.instanceof(File).optional(),
|
|
61
|
+
});
|
|
62
|
+
export const EditProductSchema = ProductSchema.extend({
|
|
63
|
+
image: z.instanceof(File).optional(),
|
|
64
|
+
});
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const ProfileSchema: z.ZodObject<{
|
|
3
|
+
type: z.ZodLiteral<"Profile">;
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
companyId: z.ZodString;
|
|
6
|
+
storeId: z.ZodString;
|
|
7
|
+
tenantId: z.ZodString;
|
|
8
|
+
clientType: z.ZodEnum<["user", "company"]>;
|
|
9
|
+
displayName: z.ZodString;
|
|
10
|
+
email: z.ZodString;
|
|
11
|
+
phoneNumber: z.ZodObject<{
|
|
12
|
+
code: z.ZodString;
|
|
13
|
+
number: z.ZodString;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
number: string;
|
|
16
|
+
code: string;
|
|
17
|
+
}, {
|
|
18
|
+
number: string;
|
|
19
|
+
code: string;
|
|
20
|
+
}>;
|
|
21
|
+
address: z.ZodObject<{
|
|
22
|
+
country: z.ZodString;
|
|
23
|
+
city: z.ZodString;
|
|
24
|
+
street: z.ZodString;
|
|
25
|
+
streetNumber: z.ZodString;
|
|
26
|
+
floor: z.ZodString;
|
|
27
|
+
apartmentEnterNumber: z.ZodString;
|
|
28
|
+
apartmentNumber: z.ZodString;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
country: string;
|
|
31
|
+
city: string;
|
|
32
|
+
street: string;
|
|
33
|
+
streetNumber: string;
|
|
34
|
+
floor: string;
|
|
35
|
+
apartmentEnterNumber: string;
|
|
36
|
+
apartmentNumber: string;
|
|
37
|
+
}, {
|
|
38
|
+
country: string;
|
|
39
|
+
city: string;
|
|
40
|
+
street: string;
|
|
41
|
+
streetNumber: string;
|
|
42
|
+
floor: string;
|
|
43
|
+
apartmentEnterNumber: string;
|
|
44
|
+
apartmentNumber: string;
|
|
45
|
+
}>;
|
|
46
|
+
isAnonymous: z.ZodBoolean;
|
|
47
|
+
createdDate: z.ZodNumber;
|
|
48
|
+
lastActivityDate: z.ZodNumber;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
type: "Profile";
|
|
51
|
+
id: string;
|
|
52
|
+
companyId: string;
|
|
53
|
+
storeId: string;
|
|
54
|
+
tenantId: string;
|
|
55
|
+
clientType: "user" | "company";
|
|
56
|
+
displayName: string;
|
|
57
|
+
email: string;
|
|
58
|
+
phoneNumber: {
|
|
59
|
+
number: string;
|
|
60
|
+
code: string;
|
|
61
|
+
};
|
|
62
|
+
address: {
|
|
63
|
+
country: string;
|
|
64
|
+
city: string;
|
|
65
|
+
street: string;
|
|
66
|
+
streetNumber: string;
|
|
67
|
+
floor: string;
|
|
68
|
+
apartmentEnterNumber: string;
|
|
69
|
+
apartmentNumber: string;
|
|
70
|
+
};
|
|
71
|
+
isAnonymous: boolean;
|
|
72
|
+
createdDate: number;
|
|
73
|
+
lastActivityDate: number;
|
|
74
|
+
}, {
|
|
75
|
+
type: "Profile";
|
|
76
|
+
id: string;
|
|
77
|
+
companyId: string;
|
|
78
|
+
storeId: string;
|
|
79
|
+
tenantId: string;
|
|
80
|
+
clientType: "user" | "company";
|
|
81
|
+
displayName: string;
|
|
82
|
+
email: string;
|
|
83
|
+
phoneNumber: {
|
|
84
|
+
number: string;
|
|
85
|
+
code: string;
|
|
86
|
+
};
|
|
87
|
+
address: {
|
|
88
|
+
country: string;
|
|
89
|
+
city: string;
|
|
90
|
+
street: string;
|
|
91
|
+
streetNumber: string;
|
|
92
|
+
floor: string;
|
|
93
|
+
apartmentEnterNumber: string;
|
|
94
|
+
apartmentNumber: string;
|
|
95
|
+
};
|
|
96
|
+
isAnonymous: boolean;
|
|
97
|
+
createdDate: number;
|
|
98
|
+
lastActivityDate: number;
|
|
99
|
+
}>;
|
|
100
|
+
export type TProfile = z.infer<typeof ProfileSchema>;
|
|
101
|
+
export declare function createEmptyProfile(): TProfile;
|
|
102
|
+
//# sourceMappingURL=Profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../../lib/entities/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBxB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAErD,wBAAgB,kBAAkB,IAAI,QAAQ,CAwB7C"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { AddressSchema } from "./Address";
|
|
3
|
+
export const ProfileSchema = z.object({
|
|
4
|
+
type: z.literal("Profile"),
|
|
5
|
+
id: z.string(),
|
|
6
|
+
companyId: z.string(),
|
|
7
|
+
storeId: z.string(),
|
|
8
|
+
tenantId: z.string(),
|
|
9
|
+
clientType: z.enum(["user", "company"]),
|
|
10
|
+
displayName: z.string().min(1),
|
|
11
|
+
email: z.string().email(),
|
|
12
|
+
phoneNumber: z.object({
|
|
13
|
+
code: z.string(),
|
|
14
|
+
number: z.string(),
|
|
15
|
+
}),
|
|
16
|
+
address: AddressSchema,
|
|
17
|
+
isAnonymous: z.boolean(),
|
|
18
|
+
createdDate: z.number(),
|
|
19
|
+
lastActivityDate: z.number(),
|
|
20
|
+
});
|
|
21
|
+
export function createEmptyProfile() {
|
|
22
|
+
return {
|
|
23
|
+
type: "Profile",
|
|
24
|
+
id: "",
|
|
25
|
+
companyId: "",
|
|
26
|
+
storeId: "",
|
|
27
|
+
tenantId: "",
|
|
28
|
+
clientType: "user",
|
|
29
|
+
displayName: "",
|
|
30
|
+
email: "",
|
|
31
|
+
phoneNumber: { code: "+972", number: "" },
|
|
32
|
+
address: {
|
|
33
|
+
country: "",
|
|
34
|
+
city: "",
|
|
35
|
+
street: "",
|
|
36
|
+
streetNumber: "",
|
|
37
|
+
floor: "",
|
|
38
|
+
apartmentEnterNumber: "",
|
|
39
|
+
apartmentNumber: "",
|
|
40
|
+
},
|
|
41
|
+
createdDate: 0,
|
|
42
|
+
lastActivityDate: 0,
|
|
43
|
+
isAnonymous: true,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.tsx"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./entities";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../lib/index.tsx","../lib/entities/address.ts","../lib/entities/cart.ts","../lib/entities/category.ts","../lib/entities/locale.ts","../lib/entities/order.ts","../lib/entities/payment.ts","../lib/entities/product.ts","../lib/entities/profile.ts","../lib/entities/index.ts"],"version":"5.6.2"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["../vite.config.ts"],"version":"5.6.2"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["../vite.config.ts"],"names":[],"mappings":";AAIA,wBAsBG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react-swc";
|
|
3
|
+
import { resolve } from "path";
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
plugins: [react()],
|
|
6
|
+
build: {
|
|
7
|
+
lib: {
|
|
8
|
+
entry: resolve(__dirname, "lib/index.tsx"),
|
|
9
|
+
name: "core",
|
|
10
|
+
formats: ["es", "cjs", "umd"],
|
|
11
|
+
fileName: (format) => `core.${format}.js`,
|
|
12
|
+
},
|
|
13
|
+
rollupOptions: {
|
|
14
|
+
external: ["react", "react-dom"], // Exclude dependencies from the bundle
|
|
15
|
+
output: {
|
|
16
|
+
globals: {
|
|
17
|
+
react: "React",
|
|
18
|
+
"react-dom": "ReactDOM",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
sourcemap: true,
|
|
23
|
+
minify: "esbuild",
|
|
24
|
+
},
|
|
25
|
+
});
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import js from '@eslint/js'
|
|
2
|
+
import globals from 'globals'
|
|
3
|
+
import reactHooks from 'eslint-plugin-react-hooks'
|
|
4
|
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
|
5
|
+
import tseslint from 'typescript-eslint'
|
|
6
|
+
|
|
7
|
+
export default tseslint.config(
|
|
8
|
+
{ ignores: ['dist'] },
|
|
9
|
+
{
|
|
10
|
+
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
|
11
|
+
files: ['**/*.{ts,tsx}'],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
ecmaVersion: 2020,
|
|
14
|
+
globals: globals.browser,
|
|
15
|
+
},
|
|
16
|
+
plugins: {
|
|
17
|
+
'react-hooks': reactHooks,
|
|
18
|
+
'react-refresh': reactRefresh,
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
...reactHooks.configs.recommended.rules,
|
|
22
|
+
'react-refresh/only-export-components': [
|
|
23
|
+
'warn',
|
|
24
|
+
{ allowConstantExport: true },
|
|
25
|
+
],
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
)
|
package/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>Vite + React + TS</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="root"></div>
|
|
11
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsdev_ninja/core",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/core.cjs.js",
|
|
6
6
|
"module": "dist/core.es.js",
|
|
@@ -8,10 +8,6 @@
|
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"access": "public"
|
|
10
10
|
},
|
|
11
|
-
"files": [
|
|
12
|
-
"dist",
|
|
13
|
-
"lib"
|
|
14
|
-
],
|
|
15
11
|
"scripts": {
|
|
16
12
|
"dev": "vite",
|
|
17
13
|
"build": "vite build && tsc -b",
|
package/src/App.css
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#root {
|
|
2
|
+
max-width: 1280px;
|
|
3
|
+
margin: 0 auto;
|
|
4
|
+
padding: 2rem;
|
|
5
|
+
text-align: center;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.logo {
|
|
9
|
+
height: 6em;
|
|
10
|
+
padding: 1.5em;
|
|
11
|
+
will-change: filter;
|
|
12
|
+
transition: filter 300ms;
|
|
13
|
+
}
|
|
14
|
+
.logo:hover {
|
|
15
|
+
filter: drop-shadow(0 0 2em #646cffaa);
|
|
16
|
+
}
|
|
17
|
+
.logo.react:hover {
|
|
18
|
+
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@keyframes logo-spin {
|
|
22
|
+
from {
|
|
23
|
+
transform: rotate(0deg);
|
|
24
|
+
}
|
|
25
|
+
to {
|
|
26
|
+
transform: rotate(360deg);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
31
|
+
a:nth-of-type(2) .logo {
|
|
32
|
+
animation: logo-spin infinite 20s linear;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.card {
|
|
37
|
+
padding: 2em;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.read-the-docs {
|
|
41
|
+
color: #888;
|
|
42
|
+
}
|
package/src/App.tsx
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
import reactLogo from "./assets/react.svg";
|
|
3
|
+
import viteLogo from "/vite.svg";
|
|
4
|
+
import "./App.css";
|
|
5
|
+
|
|
6
|
+
import { createEmptyProfile } from "../lib";
|
|
7
|
+
|
|
8
|
+
console.log("createEmptyProfile", createEmptyProfile);
|
|
9
|
+
|
|
10
|
+
function App() {
|
|
11
|
+
const [count, setCount] = useState(0);
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<>
|
|
15
|
+
<div>
|
|
16
|
+
<a href="https://vitejs.dev" target="_blank">
|
|
17
|
+
<img src={viteLogo} className="logo" alt="Vite logo" />
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://react.dev" target="_blank">
|
|
20
|
+
<img src={reactLogo} className="logo react" alt="React logo" />
|
|
21
|
+
</a>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Vite + React</h1>
|
|
24
|
+
<div className="card">
|
|
25
|
+
<button onClick={() => setCount((count) => count + 1)}>count is {count}</button>
|
|
26
|
+
<p>
|
|
27
|
+
Edit <code>src/App.tsx</code> and save to test HMR
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
<p className="read-the-docs">Click on the Vite and React logos to learn more</p>
|
|
31
|
+
</>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export default App;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
|
package/src/index.css
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
3
|
+
line-height: 1.5;
|
|
4
|
+
font-weight: 400;
|
|
5
|
+
|
|
6
|
+
color-scheme: light dark;
|
|
7
|
+
color: rgba(255, 255, 255, 0.87);
|
|
8
|
+
background-color: #242424;
|
|
9
|
+
|
|
10
|
+
font-synthesis: none;
|
|
11
|
+
text-rendering: optimizeLegibility;
|
|
12
|
+
-webkit-font-smoothing: antialiased;
|
|
13
|
+
-moz-osx-font-smoothing: grayscale;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
a {
|
|
17
|
+
font-weight: 500;
|
|
18
|
+
color: #646cff;
|
|
19
|
+
text-decoration: inherit;
|
|
20
|
+
}
|
|
21
|
+
a:hover {
|
|
22
|
+
color: #535bf2;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
body {
|
|
26
|
+
margin: 0;
|
|
27
|
+
display: flex;
|
|
28
|
+
place-items: center;
|
|
29
|
+
min-width: 320px;
|
|
30
|
+
min-height: 100vh;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
h1 {
|
|
34
|
+
font-size: 3.2em;
|
|
35
|
+
line-height: 1.1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
button {
|
|
39
|
+
border-radius: 8px;
|
|
40
|
+
border: 1px solid transparent;
|
|
41
|
+
padding: 0.6em 1.2em;
|
|
42
|
+
font-size: 1em;
|
|
43
|
+
font-weight: 500;
|
|
44
|
+
font-family: inherit;
|
|
45
|
+
background-color: #1a1a1a;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
transition: border-color 0.25s;
|
|
48
|
+
}
|
|
49
|
+
button:hover {
|
|
50
|
+
border-color: #646cff;
|
|
51
|
+
}
|
|
52
|
+
button:focus,
|
|
53
|
+
button:focus-visible {
|
|
54
|
+
outline: 4px auto -webkit-focus-ring-color;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@media (prefers-color-scheme: light) {
|
|
58
|
+
:root {
|
|
59
|
+
color: #213547;
|
|
60
|
+
background-color: #ffffff;
|
|
61
|
+
}
|
|
62
|
+
a:hover {
|
|
63
|
+
color: #747bff;
|
|
64
|
+
}
|
|
65
|
+
button {
|
|
66
|
+
background-color: #f9f9f9;
|
|
67
|
+
}
|
|
68
|
+
}
|
package/src/main.tsx
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="vite/client" />
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"lib": ["ES2020", "DOM"],
|
|
6
|
+
"jsx": "react-jsx",
|
|
7
|
+
"moduleResolution": "node",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"declaration": true,
|
|
10
|
+
"declarationMap": true,
|
|
11
|
+
"emitDeclarationOnly": false,
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"esModuleInterop": true,
|
|
14
|
+
"skipLibCheck": true,
|
|
15
|
+
"forceConsistentCasingInFileNames": true
|
|
16
|
+
},
|
|
17
|
+
"include": ["lib"],
|
|
18
|
+
"exclude": ["node_modules", "dist", "src", "vite.config.ts"]
|
|
19
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"lib": ["ES2023"],
|
|
5
|
+
"module": "ESNext",
|
|
6
|
+
"skipLibCheck": true,
|
|
7
|
+
|
|
8
|
+
/* Bundler mode */
|
|
9
|
+
"moduleResolution": "bundler",
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
"moduleDetection": "force",
|
|
12
|
+
|
|
13
|
+
/* Linting */
|
|
14
|
+
"strict": true,
|
|
15
|
+
"noUnusedLocals": true,
|
|
16
|
+
"noUnusedParameters": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"outDir": "./dist",
|
|
19
|
+
"declaration": true,
|
|
20
|
+
"declarationMap": true,
|
|
21
|
+
"emitDeclarationOnly": false,
|
|
22
|
+
"esModuleInterop": true,
|
|
23
|
+
"forceConsistentCasingInFileNames": true
|
|
24
|
+
},
|
|
25
|
+
"include": ["vite.config.ts"]
|
|
26
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import react from "@vitejs/plugin-react-swc";
|
|
3
|
+
import { resolve } from "path";
|
|
4
|
+
|
|
5
|
+
export default defineConfig({
|
|
6
|
+
plugins: [react()],
|
|
7
|
+
|
|
8
|
+
build: {
|
|
9
|
+
lib: {
|
|
10
|
+
entry: resolve(__dirname, "lib/index.tsx"),
|
|
11
|
+
name: "core",
|
|
12
|
+
formats: ["es", "cjs", "umd"],
|
|
13
|
+
fileName: (format) => `core.${format}.js`,
|
|
14
|
+
},
|
|
15
|
+
rollupOptions: {
|
|
16
|
+
external: ["react", "react-dom"], // Exclude dependencies from the bundle
|
|
17
|
+
output: {
|
|
18
|
+
globals: {
|
|
19
|
+
react: "React",
|
|
20
|
+
"react-dom": "ReactDOM",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
sourcemap: true,
|
|
25
|
+
minify: "esbuild",
|
|
26
|
+
},
|
|
27
|
+
});
|