diff --git a/bun.lock b/bun.lock index 4fd564f..79b14c2 100644 --- a/bun.lock +++ b/bun.lock @@ -8,10 +8,12 @@ "@elysiajs/cookie": "^0.8.0", "@elysiajs/html": "^1.4.0", "@kitajs/ts-html-plugin": "^4.1.3", + "alpinejs": "^3.15.2", "arctic": "^3.7.0", "autoprefixer": "^10.4.22", "elysia": "^1.4.16", "postcss": "^8.5.6", + "sortablejs": "^1.15.6", "tailwindcss": "^4.1.17", "typed-html": "^3.0.1", }, @@ -55,6 +57,12 @@ "@types/react": ["@types/react@19.2.6", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w=="], + "@vue/reactivity": ["@vue/reactivity@3.1.5", "", { "dependencies": { "@vue/shared": "3.1.5" } }, "sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg=="], + + "@vue/shared": ["@vue/shared@3.1.5", "", {}, "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="], + + "alpinejs": ["alpinejs@3.15.2", "", { "dependencies": { "@vue/reactivity": "~3.1.1" } }, "sha512-2kYF2aG+DTFkE6p0rHG5XmN4VEb6sO9b02aOdU4+i8QN6rL0DbRZQiypDE1gBcGO65yDcqMz5KKYUYgMUxgNkw=="], + "ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], "ansi-styles": ["ansi-styles@6.2.3", "", {}, "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg=="], @@ -123,6 +131,8 @@ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], + "sortablejs": ["sortablejs@1.15.6", "", {}, "sha512-aNfiuwMEpfBM/CN6LY0ibyhxPfPbyFeBTYJKCvzkJ2GkUpazIt3H+QIPAMHwqQ7tMKaHz1Qj+rJJCqljnf4p3A=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="], diff --git a/package.json b/package.json index f38d4f9..f6bf4f3 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,12 @@ "@elysiajs/cookie": "^0.8.0", "@elysiajs/html": "^1.4.0", "@kitajs/ts-html-plugin": "^4.1.3", + "alpinejs": "^3.15.2", "arctic": "^3.7.0", "autoprefixer": "^10.4.22", "elysia": "^1.4.16", "postcss": "^8.5.6", + "sortablejs": "^1.15.6", "tailwindcss": "^4.1.17", "typed-html": "^3.0.1" }, diff --git a/src/components/AdminForms.tsx b/src/components/AdminForms.tsx index 9db00d7..51a3253 100644 --- a/src/components/AdminForms.tsx +++ b/src/components/AdminForms.tsx @@ -16,60 +16,110 @@ export const TextAreaGroup = ({ label, name, value }: any) => ( ); export const ExperienceForm = ({ exp }: any) => ( -