{
  "name": "@ryanhelsing/ry-ui",
  "version": "1.0.15",
  "description": "Framework-agnostic, Light DOM web components. CSS is the source of truth.",
  "type": "module",
  "main": "./dist/ry-ui.js",
  "module": "./dist/ry-ui.js",
  "types": "./dist/ry-ui.d.ts",
  "exports": {
    ".": {
      "types": "./dist/ry-ui.d.ts",
      "import": "./dist/ry-ui.js"
    },
    "./css/*": "./dist/css/*",
    "./themes/*": "./dist/themes/*"
  },
  "files": [
    "dist",
    "docs/components",
    "docs/theming.md",
    ".claude/skills/ry-ui-builder"
  ],
  "scripts": {
    "dev": "vite",
    "build": "npm run build:lib && npm run build:site",
    "build:lib": "vite build --mode lib && npm run build:types && npm run build:css",
    "build:site": "vite build",
    "build:types": "tsc --emitDeclarationOnly",
    "build:css": "mkdir -p dist/css && node -e \"const fs=require('fs'); const files=['src/css/ry-tokens.css','src/css/ry-structure.css','src/css/ry-theme.css']; const out=files.map(f=>fs.readFileSync(f,'utf8')).join('\\n'); fs.writeFileSync('dist/css/ry-ui.css',out);\" && cp src/css/ry-tokens.css src/css/ry-structure.css src/css/ry-theme.css dist/css/ && mkdir -p dist/themes && cp src/themes/*.css dist/themes/",
    "preview": "vite preview",
    "typecheck": "tsc --noEmit",
    "darkify": "node scripts/theme-darkify.mjs",
    "prepack": "cp README.md .readme-backup && cp CDN_README.md README.md",
    "postpack": "mv .readme-backup README.md",
    "release": "npm run build && git add -A && git diff-index --quiet HEAD || git commit -m 'new build' && npm version patch && npm publish --access public"
  },
  "devDependencies": {
    "playwright": "^1.58.2",
    "typescript": "^5.7.2",
    "vite": "^6.0.7",
    "vite-plugin-dts": "^4.4.0"
  },
  "keywords": [
    "web-components",
    "custom-elements",
    "ui",
    "components",
    "light-dom"
  ],
  "license": "MIT",
  "dependencies": {
    "navigo": "^8.11.1"
  }
}
