From 7b2dda22b9a5d16e62596b4fc60b956a7d922479 Mon Sep 17 00:00:00 2001 From: Mikuisnotavailable Date: Wed, 30 Jul 2025 02:52:26 +0800 Subject: [PATCH] first save --- .idea/inspectionProfiles/Project_Default.xml | 6 ++++++ .idea/vcs.xml | 6 ++++++ next.config.ts => next.config.js | 0 public/images/mc-favicon.ico | Bin 0 -> 15608 bytes src/app/(auth)/login/page.tsx | 0 src/app/(auth)/register/pages.tsx | 0 src/app/api/auth/[...nextauth]/route.ts | 0 src/app/dashboard/page.tsx | 0 src/app/favicon.ico | Bin 25931 -> 0 bytes src/app/not-found.tsx | 0 src/app/skins/[id]/page.tsx | 0 src/app/skins/upload/page.tsx | 0 src/app/template.tsx | 0 src/components/Navbar.tsx | 0 src/components/auth/AuthForm.tsx | 0 src/components/skins/SkinGrid.tsx | 0 src/components/skins/SkinUploader.tsx | 0 src/components/skins/SkinViewer3D.tsx | 0 src/lib/api/auth.ts | 0 src/lib/api/skins.ts | 0 src/lib/constants.ts | 0 src/lib/utils/minecraft.ts | 0 src/styles/globals.css | 0 src/types/api/response.ts | 0 src/types/global.d.ts | 0 src/types/index.d.ts | 0 src/types/next-auth.d.ts | 0 src/types/three.d.ts | 0 tailwind.config.js | 0 29 files changed, 12 insertions(+) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/vcs.xml rename next.config.ts => next.config.js (100%) create mode 100644 public/images/mc-favicon.ico create mode 100644 src/app/(auth)/login/page.tsx create mode 100644 src/app/(auth)/register/pages.tsx create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/dashboard/page.tsx delete mode 100644 src/app/favicon.ico create mode 100644 src/app/not-found.tsx create mode 100644 src/app/skins/[id]/page.tsx create mode 100644 src/app/skins/upload/page.tsx create mode 100644 src/app/template.tsx create mode 100644 src/components/Navbar.tsx create mode 100644 src/components/auth/AuthForm.tsx create mode 100644 src/components/skins/SkinGrid.tsx create mode 100644 src/components/skins/SkinUploader.tsx create mode 100644 src/components/skins/SkinViewer3D.tsx create mode 100644 src/lib/api/auth.ts create mode 100644 src/lib/api/skins.ts create mode 100644 src/lib/constants.ts create mode 100644 src/lib/utils/minecraft.ts create mode 100644 src/styles/globals.css create mode 100644 src/types/api/response.ts create mode 100644 src/types/global.d.ts create mode 100644 src/types/index.d.ts create mode 100644 src/types/next-auth.d.ts create mode 100644 src/types/three.d.ts create mode 100644 tailwind.config.js diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/next.config.ts b/next.config.js similarity index 100% rename from next.config.ts rename to next.config.js diff --git a/public/images/mc-favicon.ico b/public/images/mc-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..aa82ea8e07532d3a93b08bacb42ebbe6449efbef GIT binary patch literal 15608 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 LrJugUA?W`A8`#=m diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/skins/[id]/page.tsx b/src/app/skins/[id]/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/skins/upload/page.tsx b/src/app/skins/upload/page.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/app/template.tsx b/src/app/template.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/auth/AuthForm.tsx b/src/components/auth/AuthForm.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/skins/SkinGrid.tsx b/src/components/skins/SkinGrid.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/skins/SkinUploader.tsx b/src/components/skins/SkinUploader.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/components/skins/SkinViewer3D.tsx b/src/components/skins/SkinViewer3D.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/api/auth.ts b/src/lib/api/auth.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/api/skins.ts b/src/lib/api/skins.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/constants.ts b/src/lib/constants.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/utils/minecraft.ts b/src/lib/utils/minecraft.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..e69de29 diff --git a/src/types/api/response.ts b/src/types/api/response.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/types/global.d.ts b/src/types/global.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/types/index.d.ts b/src/types/index.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/types/next-auth.d.ts b/src/types/next-auth.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/types/three.d.ts b/src/types/three.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..e69de29