{"_id":"@carbonid1/storybook-config","_rev":"2-7c9c553d1a1bdecff6dd021c7608ae47","name":"@carbonid1/storybook-config","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@carbonid1/storybook-config","version":"0.1.0","author":{"name":"Andrew Korin"},"license":"MIT","_id":"@carbonid1/storybook-config@0.1.0","maintainers":[{"name":"carbonid1","email":"carbonid1@gmail.com"}],"homepage":"https://github.com/carbonid1/packages#readme","bugs":{"url":"https://github.com/carbonid1/packages/issues"},"dist":{"shasum":"3575316054fd2887014b8db916aceb6751686281","tarball":"https://registry.npmjs.org/@carbonid1/storybook-config/-/storybook-config-0.1.0.tgz","fileCount":4,"integrity":"sha512-EA9j2wD1rz1bMkqtRhV6lYrFaZnPpomJy7eXQgNKJdq6dBIQF3A2Ul7MoVUUzhKFXa8IY+lG5icsvwb0HVJEoQ==","signatures":[{"sig":"MEUCIQCqhS86vRYD4yOc66z1K1WlYY+Vy8qc97WNWQ85lqgOuQIgX3om122I+Dmgn2iTiGe0EwFCa4NGmwG2Zk+okaXNW4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3374},"type":"module","_from":"file:carbonid1-storybook-config-0.1.0.tgz","exports":{"./addons":"./addons.ts","./preview":"./preview.ts"},"_npmUser":{"name":"carbonid1","email":"carbonid1@gmail.com"},"_resolved":"/tmp/f0b907046debc952e2f030c7b4b608ad/carbonid1-storybook-config-0.1.0.tgz","_integrity":"sha512-EA9j2wD1rz1bMkqtRhV6lYrFaZnPpomJy7eXQgNKJdq6dBIQF3A2Ul7MoVUUzhKFXa8IY+lG5icsvwb0HVJEoQ==","repository":{"url":"git+https://github.com/carbonid1/packages.git","type":"git","directory":"packages/storybook-config"},"_npmVersion":"10.9.4","description":"Shared Storybook configuration (addons list + framework-agnostic preview decorators)","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"storybook":"^9.0.0 || ^10.0.0","@storybook/addon-docs":"^9.0.0 || ^10.0.0","@storybook/addon-themes":"^9.0.0 || ^10.0.0","@storybook/addon-vitest":"^9.0.0 || ^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/storybook-config_0.1.0_1776186239941_0.5384252923449961","host":"s3://npm-registry-packages-npm-production"},"deprecated":"inline storybook config per-consumer"}},"time":{"created":"2026-04-14T17:03:59.790Z","modified":"2026-04-15T07:42:50.770Z","0.1.0":"2026-04-14T17:04:00.077Z"},"bugs":{"url":"https://github.com/carbonid1/packages/issues"},"author":{"name":"Andrew Korin"},"license":"MIT","homepage":"https://github.com/carbonid1/packages#readme","repository":{"url":"git+https://github.com/carbonid1/packages.git","type":"git","directory":"packages/storybook-config"},"description":"Shared Storybook configuration (addons list + framework-agnostic preview decorators)","maintainers":[{"name":"carbonid1","email":"carbonid1@gmail.com"}],"readme":"# @carbonid1/storybook-config\n\nShared Storybook configuration. Framework-agnostic — consumers pick their own framework package (`@storybook/react-vite`, `@storybook/nextjs-vite`, etc.).\n\n## Install\n\n```sh\npnpm add -D @carbonid1/storybook-config storybook @storybook/addon-docs @storybook/addon-themes @storybook/addon-vitest\n```\n\nThen install your framework:\n\n```sh\npnpm add -D @storybook/react-vite      # for Vite-based React apps / libraries\n# or\npnpm add -D @storybook/nextjs-vite     # for Next.js apps\n```\n\n## Usage\n\n`.storybook/main.ts`:\n\n```ts\nimport type { StorybookConfig } from '@storybook/react-vite'\nimport { sharedAddons } from '@carbonid1/storybook-config/addons'\n\nconst config: StorybookConfig = {\n  framework: '@storybook/react-vite',\n  stories: ['../src/**/*.stories.@(ts|tsx)'],\n  addons: sharedAddons,\n  features: { experimentalTestSyntax: true },\n}\n\nexport default config\n```\n\n`.storybook/preview.ts`:\n\n```ts\nimport { definePreview } from '@storybook/react-vite'\nimport { sharedPreview } from '@carbonid1/storybook-config/preview'\nimport '@carbonid1/tailwind-config/reader'\n\nexport default definePreview({ ...sharedPreview })\n```\n\n## What's in the box\n\n**`./addons`** — shared addon list:\n- `@storybook/addon-docs` — MDX + auto-generated docs\n- `@storybook/addon-themes` — theme toggle in the toolbar\n- `@storybook/addon-vitest` — run story tests via Vitest\n\n**`./preview`** — shared preview fragment:\n- `withThemeByClassName` decorator — toggles `.dark` on root for light/dark preview\n- `layout: 'centered'` parameter\n- `controls.matchers` for automatic color/date controls\n\nThe `sharedPreview` is a plain object — consumers spread it into their framework-specific `definePreview()` call. This avoids locking the package to one framework.\n\n## Why not a ready-made `main.ts`?\n\n`main.ts` references `@storybook/react-vite` vs `@storybook/nextjs-vite`. These are separate packages and the typed `StorybookConfig` differs. Shipping `main.ts` would force a framework on consumers. Instead, consumers write their own 8-line `main.ts` and import `sharedAddons`.\n","readmeFilename":"README.md"}