{
  "name": "frontend",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc -b && vite build",
    "postbuild": "node scripts/generate-sitemap.js",
    "lint": "eslint .",
    "preview": "vite preview"
  },
  "dependencies": {
    "@fontsource-variable/noto-sans-jp": "^5.2.9",
    "@radix-ui/react-dialog": "^1.1.14",
    "@radix-ui/react-switch": "^1.2.5",
    "@radix-ui/react-toast": "^1.2.14",
    "axios": "^1.10.0",
    "camelcase-keys": "^9.1.3",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "framer-motion": "^12.23.26",
    "humps": "^2.0.1",
    "lucide-react": "^0.511.0",
    "markdown-it": "^14.1.0",
    "react": "^19.1.0",
    "react-dom": "^19.1.0",
    "react-helmet-async": "^2.0.5",
    "react-markdown": "^10.1.0",
    "react-markdown-editor-lite": "^1.3.4",
    "react-router-dom": "^6.30.0",
    "react-youtube": "^10.1.0",
    "remark-gfm": "^4.0.1",
    "tailwind-merge": "^3.3.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.25.0",
    "@types/axios": "^0.14.4",
    "@types/markdown-it": "^14.1.2",
    "@types/node": "^24.0.13",
    "@types/react": "^19.1.2",
    "@types/react-dom": "^19.1.2",
    "@types/react-router-dom": "^5.3.3",
    "@vitejs/plugin-react": "^4.4.1",
    "autoprefixer": "^10.4.21",
    "eslint": "^9.25.0",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.19",
    "globals": "^16.0.0",
    "postcss": "^8.5.3",
    "tailwindcss": "^3.4.13",
    "typescript": "~5.8.3",
    "typescript-eslint": "^8.30.1",
    "vite": "^6.3.5"
  },
  "description": "This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.",
  "main": "eslint.config.js",
  "keywords": [],
  "author": "",
  "license": "ISC"
}
