{
  "name": "@soroban/templates",
  "version": "0.1.0",
  "description": "Shared Typst templates for Soroban flashcard generation",
  "main": "index.js",
  "types": "index.d.ts",
  "files": [
    "*.typ",
    "*.tsx",
    "index.js",
    "index.d.ts",
    "svg-crop-processor.js",
    "__init__.py",
    "pyproject.toml",
    "README.md"
  ],
  "scripts": {
    "build": "echo 'Templates package - no build needed'",
    "dev": "echo 'Templates package - watching for changes'",
    "test": "npm run test:validate && npm run test:node && npm run test:python && npm run test:integration",
    "test:node": "node test.js",
    "test:python": "python3 test.py",
    "test:validate": "node test-validate.js",
    "test:integration": "node test-integration.js",
    "test:ci": "./ci-test.sh",
    "test:watch": "echo 'Watching templates for changes...' && fswatch -o *.typ | xargs -n1 -I{} npm run test",
    "docs": "echo 'Documentation available in README.md'",
    "clean": "rm -rf __pycache__ *.pyc .pytest_cache",
    "lint": "echo 'No linting configured for templates'",
    "verify": "npm run test:validate && npm run test:node && npm run test:python",
    "examples": "echo 'Running examples...' && node examples/node-example.js && python3 examples/python-example.py",
    "examples:node": "node examples/node-example.js",
    "examples:python": "python3 examples/python-example.py",
    "gallery": "node generate-gallery.js && node build-unified-gallery.js && open gallery-unified.html",
    "gallery:node": "node generate-gallery-node.js && node build-unified-gallery.js && open gallery-unified.html",
    "gallery:clean": "rm -rf gallery/ gallery-static.html",
    "storybook": "storybook dev -p 6007",
    "build-storybook": "storybook build"
  },
  "keywords": [
    "typst",
    "templates",
    "soroban",
    "abacus",
    "flashcards",
    "monorepo",
    "typescript",
    "python",
    "react",
    "svg",
    "animations"
  ],
  "peerDependencies": {
    "@react-spring/web": "^9.7.0",
    "@use-gesture/react": "^10.3.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@storybook/addon-actions": "^7.6.0",
    "@storybook/addon-controls": "^7.6.0",
    "@storybook/addon-docs": "^7.6.0",
    "@storybook/addon-essentials": "^7.6.0",
    "@storybook/addon-interactions": "^7.6.0",
    "@storybook/addon-links": "^7.6.0",
    "@storybook/blocks": "^7.6.0",
    "@storybook/react": "^7.6.0",
    "@storybook/react-vite": "^7.6.0",
    "@storybook/testing-library": "^0.2.2",
    "@types/react": "^18.2.0",
    "@types/react-dom": "^18.2.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "storybook": "^7.6.0",
    "typescript": "^5.0.0",
    "vite": "^4.5.0"
  },
  "author": "Soroban Flashcards Team",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/soroban-flashcards/soroban-abacus-flashcards",
    "directory": "packages/templates"
  },
  "engines": {
    "node": ">=18.0.0",
    "python": ">=3.8"
  },
  "dependencies": {
    "@number-flow/react": "^0.5.10"
  }
}
