{"_id":"@claudebernard/storybook-addon-theme-switcher","_rev":"8-42a47c12ca7c713b379506ebf0c3f567","name":"@claudebernard/storybook-addon-theme-switcher","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.2":{"name":"@claudebernard/storybook-addon-theme-switcher","version":"0.0.2","keywords":["storybook","addon","theme","css","switcher"],"author":{"name":"acroquelois"},"license":"MIT","_id":"@claudebernard/storybook-addon-theme-switcher@0.0.2","maintainers":[{"name":"gdrouet","email":"guidrouet@gmail.com"},{"name":"tdeltour","email":"thomas.deltour@resip.fr"},{"name":"tpoutrain_resip","email":"thierry.poutrain@resip.fr"},{"name":"sclerbout","email":"simon.clerbout@cegedim.com"},{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},{"name":"claudebernard_jhudelle","email":"julien.hudelle@claudebernard.fr"}],"dist":{"shasum":"2d54d064cb474b02d637ed7214480fc14293fe9f","tarball":"https://registry.npmjs.org/@claudebernard/storybook-addon-theme-switcher/-/storybook-addon-theme-switcher-0.0.2.tgz","fileCount":14,"integrity":"sha512-/pweowSI3XEMX+waWf6Y/i3vv6ZG9mXDWHmagvFccPNatPimbA2VZQBipoPsrVNlitmVFBmlxrxXwgQDxCUxYw==","signatures":[{"sig":"MEUCIQDRbWRxBDGDWP7B5sn4T0scCDn0VLHiXUpwAbPMGsQ+OAIgW7rEHhZ5ElMDBQQndgF9dkh4Dv7lJ6iGMFhe20icSTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20249},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"5c3ec475465b9cf77d01ac4cfb061161e1ae3155","scripts":{"dev":"rollup -c -w","test":"echo no test configured","build":"rollup -c","clean":"rimraf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},"_npmVersion":"10.9.2","description":"A Storybook addon for switching between CSS themes","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public","@claudebernard:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","rollup":"^3.0.0","typescript":"^5.0.0","@types/react":"^18.0.0","rollup-plugin-dts":"^5.0.0","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"peerDependencies":{"@storybook/icons":"^1.2.12","@storybook/blocks":"^8.6.11","@storybook/addon-a11y":"^8.6.11","@storybook/addon-links":"^8.6.11","@storybook/addon-controls":"^8.6.11","@storybook/web-components":"^8.6.11","@storybook/addon-essentials":"^8.6.11"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-theme-switcher_0.0.2_1752774756091_0.5899559809272312","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@claudebernard/storybook-addon-theme-switcher","version":"0.0.3","keywords":["storybook","addon","theme","css","switcher"],"author":{"name":"acroquelois"},"license":"MIT","_id":"@claudebernard/storybook-addon-theme-switcher@0.0.3","maintainers":[{"name":"gdrouet","email":"guidrouet@gmail.com"},{"name":"tdeltour","email":"thomas.deltour@resip.fr"},{"name":"tpoutrain_resip","email":"thierry.poutrain@resip.fr"},{"name":"sclerbout","email":"simon.clerbout@cegedim.com"},{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},{"name":"claudebernard_jhudelle","email":"julien.hudelle@claudebernard.fr"}],"dist":{"shasum":"80e1c7780f0e44c073e5a6bac4cc4e1b7381eb54","tarball":"https://registry.npmjs.org/@claudebernard/storybook-addon-theme-switcher/-/storybook-addon-theme-switcher-0.0.3.tgz","fileCount":17,"integrity":"sha512-oPlsJgSNw5QVTTuQzHT6vtzeqUJW7BgVo5RWd9WQKN/tt6iJST2y7mgE9rJEHiU4NQRTH/F+sKgn5PmH/20cVA==","signatures":[{"sig":"MEYCIQDEvxyUuPV1QVUfjf4Mc1DiXpwr8sT4JuYkdmx1UEhDewIhAJweCB+gLoKolSfbjErmS0+gtjv1b0qGrUCtaFIq/V4+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15616},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.esm.js","bundler":{"exportEntries":["src/index.ts"],"managerEntries":["src/manager.tsx"],"previewEntries":["src/preview.ts"]},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs"},"./manager":{"types":"./dist/manager.d.ts","import":"./dist/manager.mjs"},"./preview":{"types":"./dist/preview.d.ts","import":"./dist/preview.mjs"},"./package.json":"./package.json"},"gitHead":"6d892cf0c0c8be62b1588c16e127298f8547b866","scripts":{"dev":"rollup -c -w","test":"echo no test configured","build":"rollup -c","clean":"rimraf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},"_npmVersion":"10.9.2","description":"A Storybook addon for switching between CSS themes","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public","@claudebernard:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","rollup":"^3.0.0","typescript":"^5.0.0","@types/react":"^18.0.0","rollup-plugin-dts":"^5.0.0","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"peerDependencies":{"@storybook/icons":"^1.2.12","@storybook/blocks":"^8.6.11","@storybook/addon-a11y":"^8.6.11","@storybook/addon-links":"^8.6.11","@storybook/addon-controls":"^8.6.11","@storybook/web-components":"^8.6.11","@storybook/addon-essentials":"^8.6.11"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-theme-switcher_0.0.3_1752778119617_0.4230035134403156","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@claudebernard/storybook-addon-theme-switcher","version":"0.0.4","keywords":["storybook","addon","theme","css","switcher"],"author":{"name":"acroquelois"},"license":"MIT","_id":"@claudebernard/storybook-addon-theme-switcher@0.0.4","maintainers":[{"name":"gdrouet","email":"guidrouet@gmail.com"},{"name":"tdeltour","email":"thomas.deltour@resip.fr"},{"name":"tpoutrain_resip","email":"thierry.poutrain@resip.fr"},{"name":"sclerbout","email":"simon.clerbout@cegedim.com"},{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},{"name":"claudebernard_jhudelle","email":"julien.hudelle@claudebernard.fr"}],"dist":{"shasum":"7e9db6fe813c725996c02d2bf769ad1dbc15d3d4","tarball":"https://registry.npmjs.org/@claudebernard/storybook-addon-theme-switcher/-/storybook-addon-theme-switcher-0.0.4.tgz","fileCount":20,"integrity":"sha512-BzGe9XSsW6GRvwQck+TQLQwodshLeAR8lDgzJGEWW9gpe1YKaY8vUs6guWW7ffzpbQzmzNoxpDYAvhoxe4ppSQ==","signatures":[{"sig":"MEYCIQDtqSt+YAv5eO7Ud8SbvD1S3r710n63+RC8Fjo7K5dwPwIhAO6rQZquejs+Rmp2CWcbIcL8dI0paoXo6kgd7FrBD50n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18592},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","bundler":{"exportEntries":["src/index.ts"],"managerEntries":["src/manager.tsx"],"previewEntries":["src/preview.ts"]},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./manager":{"types":"./dist/manager.d.ts","import":"./dist/manager.mjs","require":"./dist/manager.js"},"./preview":{"types":"./dist/preview.d.ts","import":"./dist/preview.mjs","require":"./dist/preview.js"},"./package.json":"./package.json"},"gitHead":"508c1a7e8c287c7db080f4a66d6e54d273604f68","scripts":{"dev":"rollup -c -w","test":"echo no test configured","build":"rollup -c","clean":"rimraf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},"_npmVersion":"10.9.2","description":"A Storybook addon for switching between CSS themes","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public","@claudebernard:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","rollup":"^3.0.0","typescript":"^5.0.0","@types/react":"^18.0.0","rollup-plugin-dts":"^5.0.0","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"peerDependencies":{"@storybook/icons":"^1.2.12","@storybook/blocks":"^8.6.11","@storybook/addon-a11y":"^8.6.11","@storybook/addon-links":"^8.6.11","@storybook/addon-controls":"^8.6.11","@storybook/web-components":"^8.6.11","@storybook/addon-essentials":"^8.6.11"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-theme-switcher_0.0.4_1752779259575_0.8173921619420605","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@claudebernard/storybook-addon-theme-switcher","version":"0.0.5","keywords":["storybook","addon","theme","css","switcher"],"author":{"name":"acroquelois"},"license":"MIT","_id":"@claudebernard/storybook-addon-theme-switcher@0.0.5","maintainers":[{"name":"gdrouet","email":"guidrouet@gmail.com"},{"name":"tdeltour","email":"thomas.deltour@resip.fr"},{"name":"tpoutrain_resip","email":"thierry.poutrain@resip.fr"},{"name":"sclerbout","email":"simon.clerbout@cegedim.com"},{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},{"name":"claudebernard_jhudelle","email":"julien.hudelle@claudebernard.fr"}],"dist":{"shasum":"fd3940a5b0d4f5919beb23959d121c68b7821dc2","tarball":"https://registry.npmjs.org/@claudebernard/storybook-addon-theme-switcher/-/storybook-addon-theme-switcher-0.0.5.tgz","fileCount":16,"integrity":"sha512-JUXTJjqft276Au7uVNX5p6lAkFawR/7sQYa9teuvrTkYLen2Gp2q7FRzikzbVupvrr2948k+WZ9DvYElmz+AGA==","signatures":[{"sig":"MEYCIQCKMQ5jd9fXLAKdTOIDbT8shBy4HU0ZC+zDXtfK6SlxcAIhAPzciebm43JFXgp8s1LUBVUa+0GcnPxDhlFwamdJWkAC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16826},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","bundler":{"exportEntries":["src/index.ts"],"managerEntries":["src/manager.tsx"],"previewEntries":["src/preview.ts"]},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./manager":{"types":"./dist/manager.d.ts","import":"./dist/manager.mjs","require":"./dist/manager.js"},"./package.json":"./package.json"},"gitHead":"3cdf467c2cd7dbb37a9a5bdca8d25aefe8b99cb8","scripts":{"dev":"rollup -c -w","test":"echo no test configured","build":"rollup -c","clean":"rimraf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},"_npmVersion":"10.9.2","description":"A Storybook addon for switching between CSS themes","directories":{},"_nodeVersion":"22.17.1","publishConfig":{"access":"public","@claudebernard:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.0","rollup":"^3.0.0","typescript":"^5.0.0","@types/react":"^18.0.0","rollup-plugin-dts":"^5.0.0","@rollup/plugin-commonjs":"^25.0.0","@rollup/plugin-typescript":"^11.0.0","@rollup/plugin-node-resolve":"^15.0.0"},"peerDependencies":{"@storybook/icons":"^1.2.12","@storybook/blocks":"^8.6.11","@storybook/addon-a11y":"^8.6.11","@storybook/addon-links":"^8.6.11","@storybook/addon-controls":"^8.6.11","@storybook/web-components":"^8.6.11","@storybook/addon-essentials":"^8.6.11"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-theme-switcher_0.0.5_1752780219775_0.4956055462056703","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@claudebernard/storybook-addon-theme-switcher","version":"0.1.0","keywords":["storybook","addon","theme","css","switcher"],"author":{"name":"acroquelois"},"license":"MIT","_id":"@claudebernard/storybook-addon-theme-switcher@0.1.0","maintainers":[{"name":"gdrouet","email":"guidrouet@gmail.com"},{"name":"tdeltour","email":"thomas.deltour@resip.fr"},{"name":"tpoutrain_resip","email":"thierry.poutrain@resip.fr"},{"name":"sclerbout","email":"simon.clerbout@cegedim.com"},{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},{"name":"claudebernard_jhudelle","email":"julien.hudelle@claudebernard.fr"}],"dist":{"shasum":"4f4f3ad00f163115a89e1292b5ceedfb5fe668bd","tarball":"https://registry.npmjs.org/@claudebernard/storybook-addon-theme-switcher/-/storybook-addon-theme-switcher-0.1.0.tgz","fileCount":9,"integrity":"sha512-SFZKw+Di6Uxi9UfEmGOR2XuOhZgidSfoyIgknqsCnFbZLwTP97FKVvoG4yeAOl4BTzcW2E9L5yVSLtE0K/5vwg==","signatures":[{"sig":"MEQCIF13DSda2KPZGuGWjyKN7STxZfFxUGvaa6YJhIBiMbEPAiAHe/YwrIXJYQXUv41J6TtRAa8pYa3v+wKB29yVdWlUrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13266},"type":"module","bundler":{"nodeEntries":["src/preset.ts"],"exportEntries":["src/index.ts"],"managerEntries":["src/manager.tsx"],"previewEntries":["src/preview.ts","src/index.ts"]},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./preset":"./dist/preset.js","./manager":"./dist/manager.js","./preview":{"types":"./dist/preview.d.ts","default":"./dist/preview.js"},"./package.json":"./package.json"},"gitHead":"9d2cdb764085147c9c6fc4d81575b870a0d51d31","scripts":{"test":"echo no test configured","build":"tsup","clean":"rimraf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"claudebernard_tcaillier","email":"thomas.caillier@claudebernard.fr"},"_npmVersion":"11.6.1","description":"A Storybook addon for switching between CSS themes","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public","@claudebernard:registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","rimraf":"^5.0.0","typescript":"^5.0.0","@types/react":"^18.0.0"},"peerDependencies":{"storybook":"^10.0.5","@storybook/icons":"^1.6.0","@storybook/addon-a11y":"^10.0.5","@storybook/addon-links":"^10.0.5","@storybook/web-components":"^10.0.5"},"_npmOperationalInternal":{"tmp":"tmp/storybook-addon-theme-switcher_0.1.0_1762446472753_0.04510043528742247","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-17T17:52:36.014Z","modified":"2026-01-13T11:10:14.046Z","0.0.2":"2025-07-17T17:52:36.296Z","0.0.3":"2025-07-17T18:48:39.781Z","0.0.4":"2025-07-17T19:07:39.835Z","0.0.5":"2025-07-17T19:23:39.970Z","0.1.0":"2025-11-06T16:27:52.930Z"},"author":{"name":"acroquelois"},"license":"MIT","keywords":["storybook","addon","theme","css","switcher"],"description":"A Storybook addon for switching between CSS themes","maintainers":[{"email":"guidrouet@gmail.com","name":"gdrouet"},{"email":"thierry.poutrain@resip.fr","name":"tpoutrain_resip"},{"email":"simon.clerbout@cegedim.com","name":"sclerbout"},{"email":"thomas.caillier@claudebernard.fr","name":"claudebernard_tcaillier"},{"email":"adrien.croquelois@claudebernard.fr","name":"acroquelois_pro"},{"email":"contact@claudebernard.fr","name":"admin_claudebernard"},{"email":"julien.hudelle@claudebernard.fr","name":"claudebernard_jhudelle"}],"readme":"# @claudebernard/storybook-addon-theme-switcher\n\nUn addon Storybook qui permet de basculer entre différents thèmes CSS dans vos stories.\n\n## Fonctionnalités\n\n- 🎨 Basculer entre plusieurs thèmes CSS\n- 🎯 Intégration facile avec Storybook\n- 📦 Léger et type-safe\n- 🔧 Configuration personnalisable des thèmes\n\n## Installation\n\n```bash\nnpm install @claudebernard/storybook-addon-theme-switcher\n```\n\n## Intégration dans votre projet Storybook\n\n### Étape 1 : Enregistrer l'addon\n\nDans votre fichier `.storybook/main.ts` (ou `.storybook/main.js`), ajoutez l'addon à la liste des addons :\n\n```typescript\nimport type { StorybookConfig } from \"@storybook/web-components\";\n\nconst config: StorybookConfig = {\n  stories: [\"../src/**/*.stories.@(js|jsx|ts|tsx|mdx)\"],\n  addons: [\n    \"@storybook/addon-essentials\",\n    \"@storybook/addon-links\",\n    \"@claudebernard/storybook-addon-theme-switcher\" // Ajoutez cette ligne\n  ],\n  framework: {\n    name: \"@storybook/web-components\",\n    options: {},\n  },\n};\n\nexport default config;\n```\n\n### Étape 2 : Configurer les thèmes dans preview.ts\n\n**Option 1 : Utiliser le fichier preview.ts de l'addon (recommandé)**\n\nVous pouvez importer directement la configuration preview de l'addon :\n\n```typescript\nimport type { Preview } from \"@storybook/web-components\";\nimport { decorators, globalTypes, parameters } from \"@claudebernard/storybook-addon-theme-switcher/preview\";\n\n// Définissez vos thèmes CSS\nconst lightTheme = `\n  :root {\n    --primary-color: #007bff;\n    --background-color: #ffffff;\n    --text-color: #333333;\n    --border-color: #e0e0e0;\n  }\n  \n  body {\n    background-color: var(--background-color);\n    color: var(--text-color);\n  }\n`;\n\nconst darkTheme = `\n  :root {\n    --primary-color: #4dabf7;\n    --background-color: #1a1a1a;\n    --text-color: #ffffff;\n    --border-color: #404040;\n  }\n  \n  body {\n    background-color: var(--background-color);\n    color: var(--text-color);\n  }\n`;\n\nconst preview: Preview = {\n  decorators,\n  globalTypes,\n  parameters: {\n    ...parameters,\n    themeSwitcher: {\n      themes: {\n        light: lightTheme,\n        dark: darkTheme,\n      },\n      defaultTheme: 'light',\n    },\n  },\n};\n\nexport default preview;\n```\n\n**Option 2 : Configuration manuelle**\n\nDans votre fichier `.storybook/preview.ts`, configurez vos thèmes et ajoutez le décorateur :\n\n```typescript\nimport type { Preview } from \"@storybook/web-components\";\nimport { withThemeSwitcher } from \"@claudebernard/storybook-addon-theme-switcher\";\n\n// Définissez vos thèmes CSS\nconst lightTheme = `\n  :root {\n    --primary-color: #007bff;\n    --background-color: #ffffff;\n    --text-color: #333333;\n    --border-color: #e0e0e0;\n  }\n  \n  body {\n    background-color: var(--background-color);\n    color: var(--text-color);\n  }\n`;\n\nconst darkTheme = `\n  :root {\n    --primary-color: #4dabf7;\n    --background-color: #1a1a1a;\n    --text-color: #ffffff;\n    --border-color: #404040;\n  }\n  \n  body {\n    background-color: var(--background-color);\n    color: var(--text-color);\n  }\n`;\n\nconst blueTheme = `\n  :root {\n    --primary-color: #0066cc;\n    --background-color: #f0f8ff;\n    --text-color: #003366;\n    --border-color: #b3d9ff;\n  }\n  \n  body {\n    background-color: var(--background-color);\n    color: var(--text-color);\n  }\n`;\n\n// Configuration des thèmes\nconst themes = {\n  'Clair': lightTheme,\n  'Sombre': darkTheme,\n  'Bleu': blueTheme,\n};\n\nconst preview: Preview = {\n  parameters: {\n    // Configuration de l'addon theme-switcher\n    themeSwitcher: {\n      themes,\n      defaultTheme: 'Clair'\n    },\n    actions: { argTypesRegex: \"^on[A-Z].*\" },\n    controls: {\n      matchers: {\n        color: /(background|color)$/i,\n        date: /Date$/,\n      },\n    },\n  },\n  // Ajoutez le décorateur\n  decorators: [withThemeSwitcher],\n  // Déclaration du global type\n  globalTypes: {\n    themeSwitcher: {}\n  },\n};\n\nexport default preview;\n```\n\n### Étape 3 : Utilisation avec des fichiers CSS externes\n\nSi vous préférez utiliser des fichiers CSS séparés :\n\n```typescript\n// .storybook/preview.ts\nimport type { Preview } from \"@storybook/web-components\";\nimport { withThemeSwitcher } from \"@claudebernard/storybook-addon-theme-switcher\";\n\n// Importez vos fichiers CSS comme des chaînes de caractères\n// Note: Vous devrez peut-être configurer votre bundler pour importer les CSS comme du texte\nimport lightThemeCSS from './themes/light.css?inline';\nimport darkThemeCSS from './themes/dark.css?inline';\n\nconst themes = {\n  'Thème Clair': lightThemeCSS,\n  'Thème Sombre': darkThemeCSS,\n};\n\nconst preview: Preview = {\n  parameters: {\n    themeSwitcher: {\n      themes,\n      defaultTheme: 'Thème Clair'\n    },\n  },\n  decorators: [withThemeSwitcher],\n  globalTypes: {\n    themeSwitcher: {}\n  },\n};\n\nexport default preview;\n```\n\n### Étape 4 : Enregistrement manuel (optionnel)\n\nSi vous préférez enregistrer l'addon manuellement, créez un fichier `.storybook/manager.ts` :\n\n```typescript\nimport { registerThemeSwitcher } from \"@claudebernard/storybook-addon-theme-switcher\";\n\nregisterThemeSwitcher();\n```\n\n## Configuration avancée\n\n### Paramètres disponibles\n\n```typescript\ninterface ThemeSwitcherParameters {\n  themes: Record<string, string>;    // Nom du thème -> CSS\n  defaultTheme: string;              // Nom du thème par défaut\n}\n```\n\n### Exemple avec CSS Variables\n\n```typescript\nconst themes = {\n  'Corporate': `\n    :root {\n      --primary: #0066cc;\n      --secondary: #6c757d;\n      --success: #28a745;\n      --danger: #dc3545;\n      --warning: #ffc107;\n      --info: #17a2b8;\n      --light: #f8f9fa;\n      --dark: #343a40;\n    }\n  `,\n  'Creative': `\n    :root {\n      --primary: #ff6b6b;\n      --secondary: #4ecdc4;\n      --success: #45b7d1;\n      --danger: #f9ca24;\n      --warning: #f0932b;\n      --info: #6c5ce7;\n      --light: #ddd;\n      --dark: #2d3436;\n    }\n  `,\n};\n```\n\n## Utilisation dans les stories\n\nUne fois configuré, l'addon apparaîtra dans la barre d'outils de Storybook avec une icône de pinceau. Vous pourrez :\n\n1. Cliquer sur l'icône pour ouvrir le menu des thèmes\n2. Sélectionner un thème dans la liste\n3. Voir le changement appliqué immédiatement à votre story\n\n## Développement\n\n### Construction\n\n```bash\nnpm run build\n```\n\n### Mode développement\n\n```bash\nnpm run dev\n```\n\n### Vérification des types\n\n```bash\nnpm run type-check\n```\n\n## Compatibilité\n\n- Storybook 8.6.11\n- React 18+\n- TypeScript 5+\n\n## Licence\n\nMIT\n","readmeFilename":"README.md"}