{ "name": "frontend", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "tsc && vite build", "preview": "vite preview" }, "dependencies": { "@fluentui/react-components": "^9.47.2", "@fluentui/react-icons": "^2.0.201", "@magenta/music": "^1.23.1", "@microsoft/fetch-event-source": "^2.0.1", "@primer/octicons-react": "^19.1.0", "abcjs": "^6.2.3", "chart.js": "^4.3.0", "classnames": "^2.3.2", "file-saver": "^2.0.5", "html-midi-player": "^1.5.0", "i18next": "^22.4.15", "katex": "^0.16.9", "lodash-es": "^4.17.21", "mobx": "^6.9.0", "mobx-react-lite": "^3.4.3", "pdfjs-dist": "^4.0.189", "react": "^18.2.0", "react-beautiful-dnd": "^13.1.1", "react-chartjs-2": "^5.2.0", "react-dom": "^18.2.0", "react-draggable": "^4.4.6", "react-i18next": "^12.2.2", "react-markdown": "^8.0.7", "react-router": "^6.11.1", "react-router-dom": "^6.11.1", "react-toastify": "^9.1.3", "rehype-highlight": "^6.0.0", "rehype-katex": "^6.0.3", "rehype-raw": "^6.1.1", "remark-breaks": "^3.0.3", "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "usehooks-ts": "^2.9.1", "uuid": "^9.0.0" }, "devDependencies": { "@tailwindcss/typography": "^0.5.10", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", "@types/react": "^18.2.6", "@types/react-beautiful-dnd": "^13.1.4", "@types/react-dom": "^18.2.4", "@types/uuid": "^9.0.1", "@vitejs/plugin-react": "^4.0.0", "autoprefixer": "^10.4.14", "postcss": "^8.4.23", "rollup-plugin-visualizer": "^5.9.0", "sass": "^1.62.1", "tailwindcss": "^3.3.2", "typescript": "^5.0.4", "vite": "^4.3.6", "vite-plugin-top-level-await": "^1.3.1" } }