{
  "name": "react-tetris2",
  "version": "0.1.3",
  "type": "module",
  "description": "Classic Tetris game as a reusable React 18+ component, fully typed with TypeScript and controllable via ref.",
  "engines": {
    "node": ">=20.0.0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/Ingenarte/react-tetris2.git"
  },
  "homepage": "https://ingenarte.github.io/react-tetris2/",
  "license": "MIT",
  "author": {
    "name": "Ingenarte",
    "url": "https://github.com/Ingenarte"
  },
  "_originalWork": {
    "author": "Matthew Brandly",
    "repo": "https://github.com/brandly/react-tetris",
    "version": "0.4.0"
  },
  "main": "./dist/index.cjs.js",
  "module": "./dist/index.esm.js",
  "types": "./dist/index.d.ts",
  "lint-staged": {
    "*.{ts,tsx,js,jsx}": [
      "eslint --fix",
      "prettier --write"
    ],
    "*.{css,md,json}": [
      "prettier --write"
    ]
  },
  "keywords": [
    "react",
    "tetris",
    "game",
    "react-component",
    "typescript",
    "hooks",
    "tetris-game",
    "playable",
    "keyboard-controls",
    "react-game",
    "ui-component",
    "block-game"
  ],
  "sideEffects": false,
  "bugs": {
    "url": "https://github.com/Ingenarte/react-tetris2/issues"
  },
  "publishConfig": {
    "access": "public"
  },
  "files": [
    "dist"
  ],
  "scripts": {
    "build": "npm run clean && vite build",
    "buildvite": "vite build",
    "clean": "rimraf dist",
    "test:unit": "vitest run",
    "dev": "vite",
    "lint": "eslint src --ext .ts,.tsx",
    "typecheck": "tsc --noEmit",
    "test": "vitest run --coverage",
    "fulltest": "npm run typecheck && npm run lint && npm run test",
    "storybook": "storybook dev -p 6006",
    "build-storybook": "build-storybook -c .storybook",
    "test:e2e": "VITE_E2E=1 playwright test",
    "test:e2e:install": "playwright install --with-deps"
  },
  "devDependencies": {
    "@axe-core/playwright": "^4.10.1",
    "@chromatic-com/storybook": "^3.2.6",
    "@commitlint/cli": "^19.8.1",
    "@commitlint/config-conventional": "^19.8.1",
    "@eslint/eslintrc": "^3.3.1",
    "@eslint/js": "^9.27.0",
    "@playwright/test": "^1.52.0",
    "@storybook/addon-a11y": "^8.6.14",
    "@storybook/addon-essentials": "^8.6.14",
    "@storybook/addon-onboarding": "^8.6.14",
    "@storybook/blocks": "^8.6.14",
    "@storybook/experimental-addon-test": "^8.6.14",
    "@storybook/react": "^8.6.14",
    "@storybook/react-vite": "^8.6.14",
    "@storybook/test": "^8.6.14",
    "@testing-library/jest-dom": "^6.6.3",
    "@testing-library/react": "^16.3.0",
    "@testing-library/user-event": "^14.6.1",
    "@types/assert": "1.5.10",
    "@types/events": "3.0.0",
    "@types/jsdom": "^21.1.7",
    "@types/node": "^22.15.18",
    "@types/react": "18.3.8",
    "@types/react-dom": "18.3.0",
    "@types/styled-components": "^5.1.34",
    "@types/testing-library__jest-dom": "^5.14.9",
    "@typescript-eslint/eslint-plugin": "^8.32.1",
    "@typescript-eslint/parser": "^8.32.1",
    "@vitejs/plugin-react": "^4.4.1",
    "@vitest/browser": "^3.1.3",
    "@vitest/coverage-istanbul": "^3.1.3",
    "@vitest/ui": "^3.1.3",
    "axe-playwright": "^2.1.0",
    "esbuild": "0.25.4",
    "eslint": "^9.27.0",
    "eslint-config-prettier": "^10.1.5",
    "eslint-import-resolver-typescript": "^4.3.5",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-jsx-a11y": "6.10.2",
    "eslint-plugin-prettier": "^5.4.0",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-security": "^3.0.1",
    "eslint-plugin-storybook": "^0.12.0",
    "gh-pages": "^6.1.1",
    "husky": "^9.1.7",
    "jsdom": "^26.1.0",
    "lint-staged": "^15.5.2",
    "playwright": "^1.52.0",
    "prettier": "^3.1.0",
    "rimraf": "^5.0.0",
    "storybook": "^8.6.14",
    "typescript": "^5.8.3",
    "uglify-js": "3.17.4",
    "vite": "^6.3.5",
    "vite-plugin-dts": "^4.5.4",
    "vitest": "^3.1.3"
  },
  "peerDependencies": {
    "react": "^18.0.0 || ^19.1.0",
    "react-dom": "^18.0.0 || ^19.1.0"
  },
  "dependencies": {
    "keymaster": "1.6.2",
    "react-icons": "^5.5.0",
    "styled-components": "^5.3.11"
  }
}
