diff --git a/apps/web/package.json b/apps/web/package.json index a5f6041..1a6703d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -29,6 +29,7 @@ "@slotscope/semantics": "workspace:*", "@slotscope/session": "workspace:*", "@slotscope/ui": "workspace:*", + "@vercel/analytics": "2.0.1", "react": "19.2.8", "react-dom": "19.2.8" }, diff --git a/apps/web/src/app/App.tsx b/apps/web/src/app/App.tsx index c644908..600dda4 100644 --- a/apps/web/src/app/App.tsx +++ b/apps/web/src/app/App.tsx @@ -37,6 +37,7 @@ import { InstrumentHeader } from './InstrumentHeader'; import { ChallengePane } from '../challenges/ChallengePane'; import { OnboardingTour } from '../onboarding/OnboardingTour'; import { CommandPalette, type PaletteCommand } from '../palette/CommandPalette'; +import { Analytics } from '@vercel/analytics/react'; import { useOwnerHues, useRelationHighlights } from './hooks'; import { buildRelationIndex } from './relationIndex'; import { resolveSelection } from './selectArtifact'; @@ -703,6 +704,7 @@ export function App() {

{announcement}

+ ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 816a57c..824876d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,6 +107,9 @@ importers: '@slotscope/ui': specifier: workspace:* version: link:../../packages/ui + '@vercel/analytics': + specifier: 2.0.1 + version: 2.0.1(react@19.2.8) react: specifier: 19.2.8 version: 19.2.8 @@ -813,6 +816,35 @@ packages: resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vercel/analytics@2.0.1': + resolution: {integrity: sha512-MTQG6V9qQrt1tsDeF+2Uoo5aPjqbVPys1xvnIftXSJYG2SrwXRHnqEvVoYID7BTruDz4lCd2Z7rM1BdkUehk2g==} + peerDependencies: + '@remix-run/react': ^2 + '@sveltejs/kit': ^1 || ^2 + next: '>= 13' + nuxt: '>= 3' + react: ^18 || ^19 || ^19.0.0-rc + svelte: '>= 4' + vue: ^3 + vue-router: ^4 + peerDependenciesMeta: + '@remix-run/react': + optional: true + '@sveltejs/kit': + optional: true + next: + optional: true + nuxt: + optional: true + react: + optional: true + svelte: + optional: true + vue: + optional: true + vue-router: + optional: true + '@vitejs/plugin-react@6.0.4': resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2114,6 +2146,10 @@ snapshots: '@typescript-eslint/types': 8.65.0 eslint-visitor-keys: 5.0.1 + '@vercel/analytics@2.0.1(react@19.2.8)': + optionalDependencies: + react: 19.2.8 + '@vitejs/plugin-react@6.0.4(vite@8.1.5(@types/node@24.13.3))': dependencies: '@rolldown/pluginutils': 1.0.1