{ "name": "bubble-studio", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "cp ../../packages/bubble-core/dist/bubble-bundle.d.ts public/bubble-types.txt && cp ../../packages/bubble-core/dist/bubbles.json public/bubbles.json && vite --host 0.0.0.0 --port 3000", "dev:hot": "cp ../../packages/bubble-core/dist/bubble-bundle.d.ts public/bubble-types.txt && cp ../../packages/bubble-core/dist/bubbles.json public/bubbles.json && vite --host 0.0.0.0 --port 3000", "build": "cp ../../packages/bubble-core/dist/bubble-bundle.d.ts public/bubble-types.txt && cp ../../packages/bubble-core/dist/bubbles.json public/bubbles.json && tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", "typecheck": "tsc --noEmit", "test": "vitest" }, "dependencies": { "@bubblelab/shared-schemas": "workspace:*", "@clerk/clerk-react": "^5.46.0", "@clerk/themes": "^2.4.21", "@heroicons/react": "^2.2.0", "@monaco-editor/react": "^4.7.0", "@tailwindcss/typography": "^0.5.19", "@tanstack/react-query": "^5.81.5", "@types/marked": "^6.0.0", "@xyflow/react": "^12.8.2", "browser-image-compression": "^2.0.2", "jszip": "^3.10.1", "lucide-react": "^0.544.0", "marked": "^16.2.1", "monaco-editor": "^0.52.2", "posthog-js": "^1.276.0", "react": "^19.1.0", "react-dom": "^19.1.0", "react-markdown": "^10.1.0", "react-resizable-panels": "^3.0.4", "react-toastify": "^11.0.5", "zod": "3.25.76", "zustand": "^4.5.7" }, "devDependencies": { "@eslint/js": "^9.30.1", "@tailwindcss/vite": "^4.1.11", "@types/browser-image-compression": "^1.0.13", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^4.6.0", "eslint": "^9.30.1", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "globals": "^16.3.0", "tailwindcss": "^4.1.11", "typescript": "~5.8.3", "typescript-eslint": "^8.35.1", "vite": "^7.0.4", "vitest": "^3.2.4" } }