{
  "name": "@vectorvesper/motion",
  "version": "4.1.0",
  "description": "Motion primitives on one shared frame loop — a sensor layer, a frame-budget governor, and React hooks for fast, coordinated interactive sites. Zero dependencies.",
  "license": "MIT",
  "author": "Vector Vesper",
  "homepage": "https://vectorvesper.dev/runtime",
  "type": "module",
  "sideEffects": false,
  "files": [
    "dist",
    "react",
    "devtools",
    "r3f",
    "README.md",
    "CHANGELOG.md",
    "MIGRATION-3.0.md",
    "LICENSE"
  ],
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./react": {
      "types": "./dist/react.d.ts",
      "import": "./dist/react.js",
      "require": "./dist/react.cjs"
    },
    "./devtools": {
      "types": "./dist/devtools.d.ts",
      "import": "./dist/devtools.js",
      "require": "./dist/devtools.cjs"
    },
    "./r3f": {
      "types": "./dist/r3f.d.ts",
      "import": "./dist/r3f.js",
      "require": "./dist/r3f.cjs"
    },
    "./package.json": "./package.json"
  },
  "main": "./dist/index.cjs",
  "module": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "scripts": {
    "build": "tsup && node scripts/sanitize-dts.mjs && node scripts/preserve-directives.mjs && node scripts/check-bundle-imports.mjs",
    "check:api": "node scripts/check-api.mjs",
    "typecheck": "tsc --noEmit",
    "lint": "eslint .",
    "test": "vitest run",
    "prepublishOnly": "npm run lint && npm run typecheck && npm run test && npm run build && npm run check:api",
    "test:pressure": "node scripts/pressure-probe/harness.mjs",
    "test:scheduling": "node scripts/pressure-probe/scheduling-check.mjs",
    "test:vanilla": "node scripts/vanilla-check/harness.mjs",
    "bench": "node scripts/benchmark/run.mjs",
    "bench:device": "node scripts/benchmark/serve-device.mjs",
    "bench:overhead": "node --expose-gc scripts/benchmark/overhead.mjs"
  },
  "peerDependencies": {
    "react": ">=18",
    "react-dom": ">=18",
    "three": ">=0.150",
    "@react-three/fiber": ">=8"
  },
  "peerDependenciesMeta": {
    "react": {
      "optional": true
    },
    "react-dom": {
      "optional": true
    },
    "three": {
      "optional": true
    },
    "@react-three/fiber": {
      "optional": true
    }
  },
  "devDependencies": {
    "@react-three/fiber": "^9.6.1",
    "@testing-library/dom": "^10.4.1",
    "@testing-library/react": "^16.3.2",
    "@types/react": "^19",
    "@types/react-dom": "^19",
    "@types/three": "^0.184.1",
    "@typescript-eslint/parser": "^8.68.0",
    "eslint": "^9.39.5",
    "eslint-plugin-react-hooks": "^7.1.1",
    "jsdom": "^30.0.1",
    "react": "^19",
    "react-dom": "^19",
    "three": "^0.184.0",
    "tsup": "^8.5.0",
    "typescript": "^5",
    "vitest": "^4.1.10"
  },
  "keywords": [
    "animation",
    "motion",
    "motion-primitives",
    "primitives",
    "requestAnimationFrame",
    "raf",
    "frame-loop",
    "pointer",
    "scroll",
    "performance",
    "react",
    "runtime",
    "scheduler",
    "devtools",
    "profiler",
    "frame-budget"
  ],
  "publishConfig": {
    "access": "public"
  },
  "engines": {
    "node": ">=18"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/vectorvesper/motion-runtime.git"
  },
  "bugs": {
    "url": "https://github.com/vectorvesper/motion-runtime/issues"
  }
}
