penpot/frontend/packages/ui/package.json
Andrey Antukh 42ea5def4f Bootstrap @penpot/ui TypeScript component library with DS migrations
- Configure @penpot/ui package with full tooling: ESLint 9, Stylelint,
  Prettier, Vitest, Storybook (react-vite), vite-plugin-dts, React Compiler
- Add AGENTS.md with architecture overview, conventions, and migration table
- Fix Storybook react-docgen TypeScript parse error by removing empty .babelrc
  that disabled Babel's built-in typescript plugin
- Fix vite.config.mts for @vitejs/plugin-react v6 (reactCompilerPreset())
- Fix tsconfig.storybook.json (remove emitDecoratorMetadata without decorator)
- Add shared SCSS foundations: _borders, _sizes, _utils, typography
- Migrate Text, Heading (foundations/typography) with stories and tests
- Migrate Icon (foundations/assets) with full iconIds catalogue and stories
- Migrate Cta (product) with stories and tests
- Migrate Button (buttons) with polymorphic anchor/button rendering,
  4 variants, optional icon, and onRef callback; add _buttons.scss partial
- All checks passing: lint, check-fmt, typecheck, test (41 tests)
2026-04-08 15:46:13 +02:00

66 lines
2.0 KiB
JSON

{
"name": "@penpot/ui",
"version": "0.0.1",
"types": "./dist/index.d.ts",
"type": "module",
"exports": {
".": {
"import": "./dist/index.js"
},
"./style.css": "./dist/style.css"
},
"scripts": {
"build": "vite build",
"watch": "vite build --watch",
"typecheck": "tsc --build",
"test": "vitest run",
"test:watch": "vitest",
"storybook": "storybook dev -p 6006",
"build:storybook": "storybook build",
"lint:ts": "eslint src",
"lint:scss": "stylelint 'src/**/*.scss'",
"lint": "pnpm run lint:ts && pnpm run lint:scss",
"fmt:ts": "prettier -w 'src/**/*.{ts,tsx}'",
"fmt:scss": "prettier -w 'src/**/*.scss'",
"fmt": "pnpm run fmt:ts && pnpm run fmt:scss",
"check-fmt:ts": "prettier -c 'src/**/*.{ts,tsx}'",
"check-fmt:scss": "prettier -c 'src/**/*.scss'",
"check-fmt": "pnpm run check-fmt:ts && pnpm run check-fmt:scss"
},
"devDependencies": {
"@babel/core": "^7.14.5",
"@babel/preset-react": "^7.14.5",
"@storybook/react": "10.3.5",
"@storybook/react-vite": "10.3.5",
"@testing-library/dom": "10.4.1",
"@testing-library/react": "16.3.2",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^6.0.1",
"babel-plugin-react-compiler": "^1.0.0",
"clsx": "^2.1.1",
"eslint": "^9.39.2",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "7.0.1",
"postcss-scss": "^4.0.9",
"prettier": "3.8.1",
"react-compiler-runtime": "^1.0.0",
"sass": "^1.98.0",
"storybook": "10.3.5",
"stylelint": "^17.4.0",
"stylelint-config-standard-scss": "^17.0.0",
"stylelint-scss": "^7.0.0",
"stylelint-use-logical-spec": "^5.0.1",
"typescript": "^6.0.2",
"typescript-eslint": "^8.58.0",
"vite-plugin-dts": "^4.5.4",
"vitest": "^4.1.3"
},
"peerDependencies": {
"react": ">=19.2",
"react-dom": ">=19.2"
}
}