Repository: AndreaPontrandolfo/sheriff
Pull request #381: feat(config): Move Storybook support behind an option
Author: login: AndreaPontrandolfo
Created: 2025-03-09T14:56:59Z | Merged: 2025-03-09T15:41:52Z

<!--- Provide a general summary of your changes in the Title above -->
<!--- Make sure to read the [Contributing Guidelines on Pull Requests](https://github.com/AndreaPontrandolfo/sheriff/blob/master/CONTRIBUTING.md#opening-a-new-pull-request) -->

## Related Issue

<!--- This project only accepts pull requests related to open issues with the `approved` label -->
<!--- Failure to meet the above basic requirement will see this PR declined immediately -->

<!--- Please link to the issue below 👇 -->

Closes #355

## Other

<!--- If there is any other detail you want to add, write it here. -->


Linked issue #355: Move Storybook support behind an option
### Describe the feature

Add a new storybook setting

### Motivation

There used to be some bugs with with it. I don't think there are anymore, but I'd still prefer finer-grained control.

### Projects

eslint-config-sheriff

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://github.com/AndreaPontrandolfo/sheriff/blob/master/CODE_OF_CONDUCT.md)
- [x] I have read the [Contributing Guidelines on Issues](https://github.com/AndreaPontrandolfo/sheriff/blob/master/CONTRIBUTING.md#opening-a-new-issue).

### I will submit a PR

- [x] I'd be willing to submit a PR for this issue.
Linked issue comments: user: login: AndreaPontrandolfo
created_at: 2025-01-18T18:11:53Z
body: Makes sense.
author_association: OWNER
user: login: AndreaPontrandolfo
created_at: 2025-01-18T18:13:17Z
body: We shall have it behind an option, but it should always be checked on by default, we shouldn't even check the package.json.
author_association: OWNER
user: login: lishaduck
created_at: 2025-02-17T02:24:44Z
body: > There used to be some bugs with with it. I don't think there are anymore.

I did find another one, btw.

https://github.com/AndreaPontrandolfo/sheriff/blob/b5053ae2e585e65244b87de7eb3d5aab4f23af25/packages/eslint-config-sheriff/src/getBaseConfig.ts#L228-L231

Here, the storybook plugin isn't applied, so the config crashes on storybook projects.

Speaking of which, Storybook doesn't need a fixupPluginRules anymore.

---

Here's my current set of patches atop Sheriff: https://github.com/PSDTools/psdtools.github.io/blob/main/patches/eslint-config-sheriff.patch
author_association: CONTRIBUTOR
user: login: AndreaPontrandolfo
created_at: 2025-02-17T15:20:43Z
body: @lishaduck  I'll PR this this weekend if you can't!
author_association: OWNER

Diff:
diff --git a/.changeset/cyan-impalas-refuse.md b/.changeset/cyan-impalas-refuse.md
new file mode 100644
index 00000000..f8acd07a
--- /dev/null
+++ b/.changeset/cyan-impalas-refuse.md
@@ -0,0 +1,7 @@
+---
+'eslint-config-sheriff': minor
+'@sherifforg/create-config': minor
+---
+
+feat(config): Move Storybook support behind an option
+Fixes [#355](https://github.com/AndreaPontrandolfo/sheriff/issues/355)
diff --git a/apps/config-validation-playground/eslint.config.js b/apps/config-validation-playground/eslint.config.js
index fb2218d3..79f018e4 100644
--- a/apps/config-validation-playground/eslint.config.js
+++ b/apps/config-validation-playground/eslint.config.js
@@ -7,6 +7,7 @@ const sheriffOptions = {
   next: true,
   astro: true,
   playwright: true,
+  storybook: true,
   jest: false,
   vitest: true,
 };
diff --git a/apps/docs-website/docs/configuration.mdx b/apps/docs-website/docs/configuration.mdx
index 388f145f..35106144 100644
--- a/apps/docs-website/docs/configuration.mdx
+++ b/apps/docs-website/docs/configuration.mdx
@@ -38,6 +38,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -61,6 +62,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -91,6 +93,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -118,6 +121,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -150,6 +154,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -177,6 +182,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -240,6 +246,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   // highlight-start
@@ -265,6 +272,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   // highlight-start
@@ -299,6 +307,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   // highlight-start
@@ -324,6 +333,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   // highlight-start
@@ -373,6 +383,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
@@ -397,6 +408,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
@@ -438,6 +450,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
@@ -467,6 +480,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
@@ -513,6 +527,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
@@ -542,6 +557,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
   pathsOverrides: {
diff --git a/apps/docs-website/docs/migration-guide.mdx b/apps/docs-website/docs/migration-guide.mdx
index b2298cf3..fea4260f 100644
--- a/apps/docs-website/docs/migration-guide.mdx
+++ b/apps/docs-website/docs/migration-guide.mdx
@@ -39,6 +39,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -61,6 +62,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
diff --git a/apps/docs-website/docs/performance-considerations.mdx b/apps/docs-website/docs/performance-considerations.mdx
index 5a1cbda6..3a38daef 100644
--- a/apps/docs-website/docs/performance-considerations.mdx
+++ b/apps/docs-website/docs/performance-considerations.mdx
@@ -52,6 +52,7 @@ const sheriffOptions = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
@@ -79,6 +80,7 @@ const sheriffOptions: SheriffSettings = {
   lodash: false,
   remeda: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 };
diff --git a/apps/docs-website/docs/setup/manual-setup.mdx b/apps/docs-website/docs/setup/manual-setup.mdx
index 59fe917f..3f706405 100644
--- a/apps/docs-website/docs/setup/manual-setup.mdx
+++ b/apps/docs-website/docs/setup/manual-setup.mdx
@@ -28,6 +28,7 @@ Follow these steps:
       lodash: false,
       remeda: false,
       playwright: false,
+      storybook: true,
       jest: false,
       vitest: false,
     };
@@ -51,6 +52,7 @@ Follow these steps:
       lodash: false,
       remeda: false,
       playwright: false,
+      storybook: true,
       jest: false,
       vitest: false,
     };
@@ -67,7 +69,7 @@ Follow these steps:
 
     If you want to have a `.ts` configuration file ([learn more](../typescript-support/eslint-config-ts.md)) instead of the default `.js` file, follow these steps:
 
-      - make sure your installed ESLint version is `>=9.9.0` (preferably `>=9.18.0`. [See why](../vscode-support.md##eslintconfigts-support))
+      - make sure your installed ESLint version is `>=9.9.0` (preferably `>=9.18.0`. [See why](../vscode-support.md#eslintconfigts-support))
       - install [jiti](https://github.com/unjs/jiti)
         ```bash npm2yarn
         npm install -D jiti
@@ -85,6 +87,7 @@ Follow these steps:
           lodash: false,
           remeda: false,
           playwright: false,
+          storybook: true,
           jest: false,
           vitest: false,
         };
diff --git a/apps/docs-website/docs/techs.md b/apps/docs-website/docs/techs.md
index 1e990646..4c12aa24 100644
--- a/apps/docs-website/docs/techs.md
+++ b/apps/docs-website/docs/techs.md
@@ -7,7 +7,7 @@ sidebar_position: 4
 - [Eslint](https://eslint.org)
 - [Prettier](https://prettier.io)
 - [Typescript](https://www.typescriptlang.org) (_out of the box support_)
-- [Storybook](https://storybook.js.org) (_out of the box support_)
+- [Storybook](https://storybook.js.org) (_opt-out_)
 - [Astro](https://astro.build) (_opt-in_)
 - [React](https://reactjs.org) (_opt-in_)
 - [Next](https://nextjs.org) (_opt-in_)
diff --git a/apps/docs-website/docs/usage-in-ci.md b/apps/docs-website/docs/usage-in-ci.md
index 16e6379e..52abf5e2 100644
--- a/apps/docs-website/docs/usage-in-ci.md
+++ b/apps/docs-website/docs/usage-in-ci.md
@@ -13,7 +13,7 @@ The Sheriff CLI is composed of 2 packages:
 
 The `@sherifforg/cli` is invoked in the CLI with the `sheriff` command.
 
-It is advised to integrate the `@sherifforg/cli` in your CI pipelines to ensure that the Sheriff configuration is always correct and up-to-date, but you can also integarte it into pre-commit hooks if that's your preference.
+It is advised to integrate the `@sherifforg/cli` in your CI pipelines to ensure that the Sheriff configuration is always correct and up-to-date, but you can also integrate it into pre-commit hooks if that's your preference.
 
 ## Usage
 
diff --git a/apps/docs-website/src/components/ConfigCombinationForm.tsx b/apps/docs-website/src/components/ConfigCombinationForm.tsx
index 2ef9846e..0f0c4e55 100644
--- a/apps/docs-website/src/components/ConfigCombinationForm.tsx
+++ b/apps/docs-website/src/components/ConfigCombinationForm.tsx
@@ -15,6 +15,7 @@ interface FormInputs {
   lodash: boolean;
   remeda: boolean;
   playwright: boolean;
+  storybook: boolean;
   vitest: boolean;
   jest: boolean;
 }
@@ -98,6 +99,15 @@ export const ConfigCombinationForm = ({
         />
         <label htmlFor="playwright">Playwright</label>
       </div>
+      <div className={styles.nativeCheckbox}>
+        <input
+          {...register('storybook')}
+          defaultChecked
+          type="checkbox"
+          id="storybook"
+        />
+        <label htmlFor="storybook">Storybook</label>
+      </div>
       <div className={styles.nativeCheckbox}>
         <input
           {...register('vitest')}
diff --git a/apps/sheriff-webservices/package.json b/apps/sheriff-webservices/package.json
index 759d331e..62879463 100644
--- a/apps/sheriff-webservices/package.json
+++ b/apps/sheriff-webservices/package.json
@@ -46,12 +46,12 @@
     "eslint-plugin-remeda": "^1.4.0",
     "eslint-plugin-simple-import-sort": "^12.1.0",
     "eslint-plugin-sonarjs": "^1.0.4",
-    "eslint-plugin-storybook": "^0.10.2",
+    "eslint-plugin-storybook": "^0.11.4",
     "eslint-plugin-tsdoc": "^0.2.17",
     "eslint-plugin-unicorn": "^56.0.1",
     "hono": "^3.12.0",
     "lodash": "^4.17.21",
-    "typescript-eslint": "^8.22.0"
+    "typescript-eslint": "^8.26.0"
   },
   "packageManager": "pnpm@9.15.1",
   "engines": {
diff --git a/apps/sheriff-webservices/src/getAllRules.ts b/apps/sheriff-webservices/src/getAllRules.ts
index 442840d4..c0ec0773 100644
--- a/apps/sheriff-webservices/src/getAllRules.ts
+++ b/apps/sheriff-webservices/src/getAllRules.ts
@@ -79,6 +79,7 @@ export const getAllRules = (
     ),
     ...prependRulesWithPluginName(simpleImportSort.rules, 'simple-import-sort'),
     ...prependRulesWithPluginName(pluginImport.rules, 'import'),
+    // @ts-expect-error
     ...prependRulesWithPluginName(storybook.rules, 'storybook'),
     ...prependRulesWithPluginName(astro.rules, 'astro'),
     ...(settings.react ? reactRulesCatalog : {}),
diff --git a/apps/sheriff-webservices/src/handledModules.d.ts b/apps/sheriff-webservices/src/handledModules.d.ts
index 1a908fac..255108e7 100644
--- a/apps/sheriff-webservices/src/handledModules.d.ts
+++ b/apps/sheriff-webservices/src/handledModules.d.ts
@@ -40,13 +40,6 @@ declare module 'eslint-plugin-jest' {
 
   export default config;
 }
-declare module 'eslint-plugin-storybook' {
-  const config: {
-    rules: Record<string, import('@sherifforg/types').RuleOptions>;
-  };
-
-  export default config;
-}
 declare module 'eslint-plugin-react*' {
   const config: {
     rules: Record<string, import('@sherifforg/types').RuleOptions>;
diff --git a/packages/eslint-config-sheriff/package.json b/packages/eslint-config-sheriff/package.json
index aa160db6..b4d6f13f 100644
--- a/packages/eslint-config-sheriff/package.json
+++ b/packages/eslint-config-sheriff/package.json
@@ -81,12 +81,12 @@
     "eslint-plugin-remeda": "^1.4.0",
     "eslint-plugin-simple-import-sort": "^12.1.0",
     "eslint-plugin-sonarjs": "^1.0.4",
-    "eslint-plugin-storybook": "^0.10.2",
+    "eslint-plugin-storybook": "^0.11.4",
     "eslint-plugin-tsdoc": "^0.2.17",
     "eslint-plugin-unicorn": "^56.0.1",
     "globals": "^15.11.0",
     "lodash": "^4.17.21",
-    "typescript-eslint": "^8.22.0"
+    "typescript-eslint": "^8.26.0"
   },
   "peerDependencies": {
     "eslint": ">=9.0.0",
@@ -104,7 +104,7 @@
     "@types/eslint-plugin-jsx-a11y": "^6.10.0",
     "@types/lodash": "^4.17.13",
     "@types/node": "^22.10.3",
-    "@typescript-eslint/utils": "^8.22.0",
+    "@typescript-eslint/utils": "^8.26.0",
     "dts-bundle-generator": "^9.5.1",
     "eslint": "^9.19.0",
     "jiti": "^2.4.2",
diff --git a/packages/eslint-config-sheriff/src/getBaseConfig.ts b/packages/eslint-config-sheriff/src/getBaseConfig.ts
index 2dc89d68..1fc18aba 100644
--- a/packages/eslint-config-sheriff/src/getBaseConfig.ts
+++ b/packages/eslint-config-sheriff/src/getBaseConfig.ts
@@ -6,12 +6,10 @@ import jsdoc from 'eslint-plugin-jsdoc';
 import * as regexpPlugin from 'eslint-plugin-regexp';
 import simpleImportSort from 'eslint-plugin-simple-import-sort';
 import sonarjs from 'eslint-plugin-sonarjs';
-import storybook from 'eslint-plugin-storybook';
 import tsdoc from 'eslint-plugin-tsdoc';
 import unicorn from 'eslint-plugin-unicorn';
 import globals from 'globals';
 import tseslint from 'typescript-eslint';
-import { fixupPluginRules } from '@eslint/compat';
 import eslintJs from '@eslint/js';
 import preferEarlyReturn from '@regru/eslint-plugin-prefer-early-return';
 import {
@@ -84,16 +82,16 @@ export const getBaseConfig = (
 
   return tseslint.config(
     {
-      files: [supportedFileTypes],
       extends: [eslintJs.configs.recommended],
+      files: [supportedFileTypes],
     },
     {
       files: [supportedFileTypes],
       rules: getBaseEslintHandPickedRules(),
     },
     {
-      files: [supportedFileTypes],
       extends: tseslint.configs.strictTypeChecked,
+      files: [supportedFileTypes],
     },
     {
       files: [`**/*{${allJsExtensions}}`],
@@ -213,22 +211,6 @@ export const getBaseConfig = (
         'import/no-default-export': 0,
       },
     },
-    {
-      files: [
-        '**/*.stories.@(ts|tsx|js|jsx|mjs|cjs)',
-        '**/*.story.@(ts|tsx|js|jsx|mjs|cjs)',
-      ],
-      plugins: { storybook: fixupPluginRules(storybook) },
-      rules: {
-        ...storybook.configs['flat/recommended'][1].rules,
-        ...storybook.configs['flat/csf'][1].rules,
-        'import/no-default-export': 0,
-      },
-    },
-    {
-      files: ['**/.storybook/main.@(js|cjs|mjs|ts)'],
-      rules: { ...storybook.configs['flat/recommended'][2].rules },
-    },
     {
       files: [supportedFileTypes],
       plugins: { jsdoc },
diff --git a/packages/eslint-config-sheriff/src/getExportableConfig.ts b/packages/eslint-config-sheriff/src/getExportableConfig.ts
index d88f2915..080656be 100644
--- a/packages/eslint-config-sheriff/src/getExportableConfig.ts
+++ b/packages/eslint-config-sheriff/src/getExportableConfig.ts
@@ -8,6 +8,7 @@ import { getAstroConfig } from './getAstroConfig';
 import { getBaseConfig } from './getBaseConfig';
 import { getJestConfig } from './getJestConfig';
 import { getReactConfig } from './getReactConfig';
+import { getStorybookConfig } from './getStorybookConfig';
 import { getVitestConfig } from './getVitestConfig';
 import { lodashConfig } from './lodashConfig';
 import { nextjsConfig } from './nextjsConfig';
@@ -22,7 +23,9 @@ export const getExportableConfig = (
   let exportableConfig: TSESLint.FlatConfig.ConfigArray =
     getBaseConfig(userConfigChoices);
 
-  if (userConfigChoices.react || userConfigChoices.next) {
+  const hasReact = Boolean(userConfigChoices.react);
+
+  if (hasReact || userConfigChoices.next) {
     // we insert reactConfig this way because it's an array. It's an array because it contains multiple configs, currently: react, react-hooks, react-a11y and react-refresh.
     exportableConfig.push(
       ...getReactConfig(userConfigChoices.pathsOverrides?.tsconfigLocation),
@@ -66,7 +69,6 @@ export const getExportableConfig = (
   if (userConfigChoices.astro) {
     const customTSConfigPath =
       userConfigChoices.pathsOverrides?.tsconfigLocation;
-    const hasReact = Boolean(userConfigChoices.react);
 
     exportableConfig.push(...getAstroConfig(hasReact, customTSConfigPath));
   }
@@ -77,6 +79,10 @@ export const getExportableConfig = (
     );
   }
 
+  if (userConfigChoices.storybook) {
+    exportableConfig.push(...getStorybookConfig());
+  }
+
   if (userConfigChoices.files) {
     const allowedPatterns = userConfigChoices.files.map(
       (globPattern) => `!${globPattern}`,
diff --git a/packages/eslint-config-sheriff/src/getReactConfig.ts b/packages/eslint-config-sheriff/src/getReactConfig.ts
index cd978da1..b7f79375 100644
--- a/packages/eslint-config-sheriff/src/getReactConfig.ts
+++ b/packages/eslint-config-sheriff/src/getReactConfig.ts
@@ -85,14 +85,6 @@ export const getReactConfig = (
         'fsecond/valid-event-listener': 2,
       },
     },
-    // Specific overrides for storybook
-    {
-      files: ['**/*.stories.tsx'],
-      plugins: { 'react-refresh': reactRefresh },
-      rules: {
-        'react-refresh/only-export-components': 0,
-      },
-    },
     // Specific overrides for astro
     {
       files: ['**/*.astro'],
diff --git a/packages/eslint-config-sheriff/src/getStorybookConfig.ts b/packages/eslint-config-sheriff/src/getStorybookConfig.ts
new file mode 100644
index 00000000..8800bb3c
--- /dev/null
+++ b/packages/eslint-config-sheriff/src/getStorybookConfig.ts
@@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
+    },
+    ignores: ['!.storybook'],
+  });
+};
diff --git a/packages/eslint-config-sheriff/src/handledModules.d.ts b/packages/eslint-config-sheriff/src/handledModules.d.ts
index 23a790aa..2cb4fc39 100644
--- a/packages/eslint-config-sheriff/src/handledModules.d.ts
+++ b/packages/eslint-config-sheriff/src/handledModules.d.ts
@@ -3,7 +3,6 @@ declare module '@regru/eslint-plugin-prefer-early-return';
 declare module 'eslint-plugin-lodash-f';
 declare module 'eslint-plugin-import';
 declare module 'eslint-plugin-jest';
-declare module 'eslint-plugin-storybook';
 declare module 'eslint-plugin-react*';
 declare module 'eslint-plugin-react-hooks';
 declare module 'eslint-plugin-fsecond';
diff --git a/packages/sheriff-cli/package.json b/packages/sheriff-cli/package.json
index c90e71dc..7c42b3ad 100644
--- a/packages/sheriff-cli/package.json
+++ b/packages/sheriff-cli/package.json
@@ -13,7 +13,7 @@
   },
   "license": "MIT",
   "dependencies": {
-    "@typescript-eslint/typescript-estree": "^8.22.0",
+    "@typescript-eslint/typescript-estree": "^8.26.0",
     "consola": "^3.3.3",
     "read-pkg": "^9.0.1",
     "yargs": "^17.7.2"
diff --git a/packages/sheriff-constants/src/index.ts b/packages/sheriff-constants/src/index.ts
index 70965796..f2189c4a 100644
--- a/packages/sheriff-constants/src/index.ts
+++ b/packages/sheriff-constants/src/index.ts
@@ -7,6 +7,7 @@ export const sheriffStartingOptions: SheriffConfigurablePlugins = {
   next: false,
   astro: false,
   playwright: false,
+  storybook: true,
   jest: false,
   vitest: false,
 } as const;
@@ -18,6 +19,7 @@ export const configCombinationDefaultValues = {
   next: true,
   astro: true,
   playwright: true,
+  storybook: true,
   jest: false,
   vitest: true,
 } as const;
diff --git a/packages/sheriff-create-config/src/utils/setSheriffConfig.ts b/packages/sheriff-create-config/src/utils/setSheriffConfig.ts
index 69731104..c4209488 100644
--- a/packages/sheriff-create-config/src/utils/setSheriffConfig.ts
+++ b/packages/sheriff-create-config/src/utils/setSheriffConfig.ts
@@ -13,7 +13,7 @@ export const setSheriffConfig = async (
 
   if (!root) {
     throwError(
-      "couldn't read the package.json. Every setting will be set to false",
+      "couldn't read the package.json. Every setting will be set to default values.",
     );
 
     return finalPluginsConfigurationSetup;
diff --git a/packages/sheriff-types/src/index.ts b/packages/sheriff-types/src/index.ts
index a47e8532..cb645e3a 100644
--- a/packages/sheriff-types/src/index.ts
+++ b/packages/sheriff-types/src/index.ts
@@ -51,6 +51,10 @@ export interface SheriffConfigurablePlugins {
    * Playwright support.
    */
   playwright: boolean;
+  /**
+   * Storybook support.
+   */
+  storybook: boolean;
   /**
    * Jest support. Select this or vitest, not both.
    */
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 134106f8..a0fcb2f8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -250,7 +250,7 @@ importers:
         version: 2.12.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@vitest/eslint-plugin':
         specifier: ^1.1.25
-        version: 1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))
+        version: 1.1.25(@typescript-eslint/utils@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))
       eslint:
         specifier: ^9.19.0
         version: 9.19.0(jiti@2.4.2)
@@ -268,10 +268,10 @@ importers:
         version: 1.3.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint-plugin-import:
         specifier: ^2.31.0
-        version: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
+        version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-jest:
         specifier: ^28.8.0
-        version: 28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
+        version: 28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
       eslint-plugin-jsdoc:
         specifier: ^50.4.3
         version: 50.6.1(eslint@9.19.0(jiti@2.4.2))
@@ -283,7 +283,7 @@ importers:
         version: 7.5.3(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-playwright:
         specifier: ^1.6.2
-        version: 1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))
+        version: 1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-react:
         specifier: ^7.36.1
         version: 7.37.2(eslint@9.19.0(jiti@2.4.2))
@@ -306,8 +306,8 @@ importers:
         specifier: ^1.0.4
         version: 1.0.4(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-storybook:
-        specifier: ^0.10.2
-        version: 0.10.2(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+        specifier: ^0.11.4
+        version: 0.11.4(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint-plugin-tsdoc:
         specifier: ^0.2.17
         version: 0.2.17
@@ -321,8 +321,8 @@ importers:
         specifier: ^4.17.21
         version: 4.17.21
       typescript-eslint:
-        specifier: ^8.22.0
-        version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+        specifier: ^8.26.0
+        version: 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
     devDependencies:
       '@sherifforg/types':
         specifier: workspace:*
@@ -368,7 +368,7 @@ importers:
         version: 2.12.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@vitest/eslint-plugin':
         specifier: ^1.1.25
-        version: 1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))
+        version: 1.1.25(@typescript-eslint/utils@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))
       confusing-browser-globals:
         specifier: ^1.0.11
         version: 1.0.11
@@ -392,10 +392,10 @@ importers:
         version: 1.3.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint-plugin-import:
         specifier: ^2.31.0
-        version: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
+        version: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-jest:
         specifier: ^28.8.0
-        version: 28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
+        version: 28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
       eslint-plugin-jsdoc:
         specifier: ^50.4.3
         version: 50.6.1(eslint@9.19.0(jiti@2.4.2))
@@ -407,7 +407,7 @@ importers:
         version: 7.5.3(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-playwright:
         specifier: ^1.6.2
-        version: 1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))
+        version: 1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-react:
         specifier: ^7.36.1
         version: 7.37.2(eslint@9.19.0(jiti@2.4.2))
@@ -430,8 +430,8 @@ importers:
         specifier: ^1.0.4
         version: 1.0.4(eslint@9.19.0(jiti@2.4.2))
       eslint-plugin-storybook:
-        specifier: ^0.10.2
-        version: 0.10.2(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+        specifier: ^0.11.4
+        version: 0.11.4(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint-plugin-tsdoc:
         specifier: ^0.2.17
         version: 0.2.17
@@ -445,8 +445,8 @@ importers:
         specifier: ^4.17.21
         version: 4.17.21
       typescript-eslint:
-        specifier: ^8.22.0
-        version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+        specifier: ^8.26.0
+        version: 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
     devDependencies:
       '@arethetypeswrong/cli':
         specifier: ^0.17.2
@@ -470,8 +470,8 @@ importers:
         specifier: ^22.10.3
         version: 22.10.3
       '@typescript-eslint/utils':
-        specifier: ^8.22.0
-        version: 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+        specifier: ^8.26.0
+        version: 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       dts-bundle-generator:
         specifier: ^9.5.1
         version: 9.5.1
@@ -497,8 +497,8 @@ importers:
   packages/sheriff-cli:
     dependencies:
       '@typescript-eslint/typescript-estree':
-        specifier: ^8.22.0
-        version: 8.22.0(typescript@5.7.2)
+        specifier: ^8.26.0
+        version: 8.26.0(typescript@5.7.2)
       consola:
         specifier: ^3.3.3
         version: 3.3.3
@@ -3407,8 +3407,8 @@ packages:
   '@storybook/core-events@7.6.20':
     resolution: {integrity: sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==}
 
-  '@storybook/csf@0.1.12':
-    resolution: {integrity: sha512-9/exVhabisyIVL0VxTCxo01Tdm8wefIXKXfltAPTSr8cbLn5JAxGQ6QV3mjdecLGEOucfoVhAKtJfVHxEK1iqw==}
+  '@storybook/csf@0.1.13':
+    resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==}
 
   '@storybook/docs-tools@7.6.20':
     resolution: {integrity: sha512-Bw2CcCKQ5xGLQgtexQsI1EGT6y5epoFzOINi0FSTGJ9Wm738nRp5LH3dLk1GZLlywIXcYwOEThb2pM+pZeRQxQ==}
@@ -3978,13 +3978,13 @@ packages:
   '@types/yargs@17.0.33':
     resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
 
-  '@typescript-eslint/eslint-plugin@8.22.0':
-    resolution: {integrity: sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==}
+  '@typescript-eslint/eslint-plugin@8.26.0':
+    resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   '@typescript-eslint/parser@6.21.0':
     resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
@@ -3996,12 +3996,12 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/parser@8.22.0':
-    resolution: {integrity: sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==}
+  '@typescript-eslint/parser@8.26.0':
+    resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   '@typescript-eslint/scope-manager@5.62.0':
     resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
@@ -4015,16 +4015,16 @@ packages:
     resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
     engines: {node: ^18.18.0 || >=20.0.0}
 
-  '@typescript-eslint/scope-manager@8.22.0':
-    resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==}
+  '@typescript-eslint/scope-manager@8.26.0':
+    resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/type-utils@8.22.0':
-    resolution: {integrity: sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==}
+  '@typescript-eslint/type-utils@8.26.0':
+    resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   '@typescript-eslint/types@5.62.0':
     resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
@@ -4038,8 +4038,8 @@ packages:
     resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
     engines: {node: ^18.18.0 || >=20.0.0}
 
-  '@typescript-eslint/types@8.22.0':
-    resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==}
+  '@typescript-eslint/types@8.26.0':
+    resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   '@typescript-eslint/typescript-estree@5.62.0':
@@ -4069,11 +4069,11 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/typescript-estree@8.22.0':
-    resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==}
+  '@typescript-eslint/typescript-estree@8.26.0':
+    resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   '@typescript-eslint/utils@5.62.0':
     resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
@@ -4093,12 +4093,12 @@ packages:
     peerDependencies:
       eslint: ^8.56.0
 
-  '@typescript-eslint/utils@8.22.0':
-    resolution: {integrity: sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==}
+  '@typescript-eslint/utils@8.26.0':
+    resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   '@typescript-eslint/visitor-keys@5.62.0':
     resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
@@ -4112,8 +4112,8 @@ packages:
     resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
     engines: {node: ^18.18.0 || >=20.0.0}
 
-  '@typescript-eslint/visitor-keys@8.22.0':
-    resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==}
+  '@typescript-eslint/visitor-keys@8.26.0':
+    resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   '@ungap/structured-clone@1.2.1':
@@ -5900,11 +5900,12 @@ packages:
     peerDependencies:
       eslint: ^8.0.0 || ^9.0.0
 
-  eslint-plugin-storybook@0.10.2:
-    resolution: {integrity: sha512-iOrFJfyLgRLIbWDLbbs3J4yrknvIB+uiZ8KGqGOEXTL7/BGuBMZLiIU9Q4Pm/VYJrHN4JqmMtwCSrAemHL2nFg==}
+  eslint-plugin-storybook@0.11.4:
+    resolution: {integrity: sha512-OvLf1ljpDQ6Y/U2kM7hT5hESn+hg0vq/nh62+YiPFWdRIEjuQM9ivmwoTP9nRBExH8fT2VPqM5t/RB68lqTWJw==}
     engines: {node: '>= 18'}
     peerDependencies:
-      eslint: '>=6'
+      eslint: '>=8'
+      typescript: '>=4.8.4 <5.8.0'
 
   eslint-plugin-tsdoc@0.2.17:
     resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==}
@@ -9633,8 +9634,8 @@ packages:
     engines: {node: '>=10'}
     hasBin: true
 
-  semver@7.7.0:
-    resolution: {integrity: sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==}
+  semver@7.7.1:
+    resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
     engines: {node: '>=10'}
     hasBin: true
 
@@ -10380,8 +10381,8 @@ packages:
     resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
     engines: {node: '>=14.16'}
 
-  type-fest@4.33.0:
-    resolution: {integrity: sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==}
+  type-fest@4.37.0:
+    resolution: {integrity: sha512-S/5/0kFftkq27FPNye0XM1e2NsnoD/3FS+pBmbjmmtLT6I+i344KoOf7pvXreaFsDamWeaJX55nczA1m5PsBDg==}
     engines: {node: '>=16'}
 
   type-is@1.6.18:
@@ -10410,12 +10411,12 @@ packages:
   typedarray@0.0.6:
     resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
 
-  typescript-eslint@8.22.0:
-    resolution: {integrity: sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw==}
+  typescript-eslint@8.26.0:
+    resolution: {integrity: sha512-PtVz9nAnuNJuAVeUFvwztjuUgSnJInODAUx47VDwWPXzd5vismPOtPtt83tzNXyOjVQbPRp786D6WFW/M2koIA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
   typescript@5.4.2:
     resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==}
@@ -11223,7 +11224,7 @@ snapshots:
       commander: 10.0.1
       marked: 9.1.6
       marked-terminal: 7.2.1(marked@9.1.6)
-      semver: 7.7.0
+      semver: 7.7.1
 
   '@arethetypeswrong/core@0.17.2':
     dependencies:
@@ -11231,7 +11232,7 @@ snapshots:
       cjs-module-lexer: 1.4.1
       fflate: 0.8.2
       lru-cache: 10.4.3
-      semver: 7.7.0
+      semver: 7.7.1
       typescript: 5.6.1-rc
       validate-npm-package-name: 5.0.1
 
@@ -12105,7 +12106,7 @@ snapshots:
       outdent: 0.5.0
       prettier: 2.8.8
       resolve-from: 5.0.0
-      semver: 7.7.0
+      semver: 7.7.1
 
   '@changesets/assemble-release-plan@6.0.5':
     dependencies:
@@ -12114,7 +12115,7 @@ snapshots:
       '@changesets/should-skip-package': 0.1.1
       '@changesets/types': 6.0.0
       '@manypkg/get-packages': 1.1.3
-      semver: 7.7.0
+      semver: 7.7.1
 
   '@changesets/changelog-git@0.2.0':
     dependencies:
@@ -12147,7 +12148,7 @@ snapshots:
       package-manager-detector: 0.2.8
       picocolors: 1.1.1
       resolve-from: 5.0.0
-      semver: 7.7.0
+      semver: 7.7.1
       spawndamnit: 3.0.1
       term-size: 2.2.1
 
@@ -12170,7 +12171,7 @@ snapshots:
       '@changesets/types': 6.0.0
       '@manypkg/get-packages': 1.1.3
       picocolors: 1.1.1
-      semver: 7.7.0
+      semver: 7.7.1
 
   '@changesets/get-release-plan@4.0.6':
     dependencies:
@@ -12624,7 +12625,7 @@ snapshots:
       react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1)
       react-router-dom: 5.3.4(react@18.3.1)
       rtl-detect: 1.1.2
-      semver: 7.7.0
+      semver: 7.7.1
       serve-handler: 6.1.6
       shelljs: 0.8.5
       tslib: 2.8.1
@@ -13680,9 +13681,9 @@ snapshots:
     dependencies:
       '@eslint-react/eff': 1.21.0
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.2)
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       birecord: 0.1.1
       string-ts: 2.2.0
       ts-pattern: 5.6.0
@@ -13699,10 +13700,10 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       birecord: 0.1.1
       short-unique-id: 5.2.0
       ts-pattern: 5.6.0
@@ -13718,10 +13719,10 @@ snapshots:
       '@eslint-react/eff': 1.21.0
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       eslint-plugin-react-debug: 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint-plugin-react-dom: 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
@@ -13740,9 +13741,9 @@ snapshots:
       '@eslint-react/eff': 1.21.0
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       birecord: 0.1.1
       ts-pattern: 5.6.0
     transitivePeerDependencies:
@@ -13753,7 +13754,7 @@ snapshots:
   '@eslint-react/shared@1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
       '@eslint-react/eff': 1.21.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       picomatch: 4.0.2
       ts-pattern: 5.6.0
     transitivePeerDependencies:
@@ -13764,8 +13765,8 @@ snapshots:
   '@eslint-react/types@1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
       '@eslint-react/eff': 1.21.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
     transitivePeerDependencies:
       - eslint
       - supports-color
@@ -13776,9 +13777,9 @@ snapshots:
       '@eslint-react/ast': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/eff': 1.21.0
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       ts-pattern: 5.6.0
     transitivePeerDependencies:
       - eslint
@@ -14385,14 +14386,14 @@ snapshots:
       ini: 4.1.3
       nopt: 7.2.1
       proc-log: 4.2.0
-      semver: 7.7.0
+      semver: 7.7.1
       walk-up-path: 3.0.1
     transitivePeerDependencies:
       - bluebird
 
   '@npmcli/fs@4.0.0':
     dependencies:
-      semver: 7.7.0
+      semver: 7.7.1
 
   '@npmcli/git@5.0.8':
     dependencies:
@@ -14403,7 +14404,7 @@ snapshots:
       proc-log: 4.2.0
       promise-inflight: 1.0.1
       promise-retry: 2.0.1
-      semver: 7.7.0
+      semver: 7.7.1
       which: 4.0.0
     transitivePeerDependencies:
       - bluebird
@@ -14425,7 +14426,7 @@ snapshots:
       json-parse-even-better-errors: 3.0.2
       normalize-package-data: 6.0.2
       proc-log: 4.2.0
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - bluebird
 
@@ -14729,7 +14730,7 @@ snapshots:
     dependencies:
       ts-dedent: 2.2.0
 
-  '@storybook/csf@0.1.12':
+  '@storybook/csf@0.1.13':
     dependencies:
       type-fest: 2.19.0
 
@@ -14755,7 +14756,7 @@ snapshots:
       '@storybook/channels': 7.6.20
       '@storybook/client-logger': 7.6.20
       '@storybook/core-events': 7.6.20
-      '@storybook/csf': 0.1.12
+      '@storybook/csf': 0.1.13
       '@storybook/global': 5.0.0
       '@storybook/types': 7.6.20
       '@types/qs': 6.9.17
@@ -14812,7 +14813,7 @@ snapshots:
 
   '@stylistic/eslint-plugin@2.12.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       eslint-visitor-keys: 4.2.0
       espree: 10.3.0
@@ -15377,14 +15378,14 @@ snapshots:
     dependencies:
       '@types/yargs-parser': 21.0.3
 
-  '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
+  '@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
       '@eslint-community/regexpp': 4.12.1
-      '@typescript-eslint/parser': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/visitor-keys': 8.22.0
+      '@typescript-eslint/parser': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/visitor-keys': 8.26.0
       eslint: 9.19.0(jiti@2.4.2)
       graphemer: 1.4.0
       ignore: 5.3.2
@@ -15407,12 +15408,12 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
+  '@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.2)
-      '@typescript-eslint/visitor-keys': 8.22.0
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.2)
+      '@typescript-eslint/visitor-keys': 8.26.0
       debug: 4.4.0
       eslint: 9.19.0(jiti@2.4.2)
       typescript: 5.7.2
@@ -15434,15 +15435,15 @@ snapshots:
       '@typescript-eslint/types': 7.18.0
       '@typescript-eslint/visitor-keys': 7.18.0
 
-  '@typescript-eslint/scope-manager@8.22.0':
+  '@typescript-eslint/scope-manager@8.26.0':
     dependencies:
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/visitor-keys': 8.22.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/visitor-keys': 8.26.0
 
-  '@typescript-eslint/type-utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
+  '@typescript-eslint/type-utils@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
-      '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.2)
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       debug: 4.4.0
       eslint: 9.19.0(jiti@2.4.2)
       ts-api-utils: 2.0.1(typescript@5.7.2)
@@ -15456,7 +15457,7 @@ snapshots:
 
   '@typescript-eslint/types@7.18.0': {}
 
-  '@typescript-eslint/types@8.22.0': {}
+  '@typescript-eslint/types@8.26.0': {}
 
   '@typescript-eslint/typescript-estree@5.62.0(typescript@5.7.2)':
     dependencies:
@@ -15465,7 +15466,7 @@ snapshots:
       debug: 4.4.0
       globby: 11.1.0
       is-glob: 4.0.3
-      semver: 7.7.0
+      semver: 7.7.1
       tsutils: 3.21.0(typescript@5.7.2)
     optionalDependencies:
       typescript: 5.7.2
@@ -15480,7 +15481,7 @@ snapshots:
       globby: 11.1.0
       is-glob: 4.0.3
       minimatch: 9.0.3
-      semver: 7.7.0
+      semver: 7.7.1
       ts-api-utils: 1.4.3(typescript@5.7.2)
     optionalDependencies:
       typescript: 5.7.2
@@ -15495,22 +15496,22 @@ snapshots:
       globby: 11.1.0
       is-glob: 4.0.3
       minimatch: 9.0.5
-      semver: 7.7.0
+      semver: 7.7.1
       ts-api-utils: 1.4.3(typescript@5.7.2)
     optionalDependencies:
       typescript: 5.7.2
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.2)':
+  '@typescript-eslint/typescript-estree@8.26.0(typescript@5.7.2)':
     dependencies:
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/visitor-keys': 8.22.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/visitor-keys': 8.26.0
       debug: 4.4.0
       fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
-      semver: 7.7.0
+      semver: 7.7.1
       ts-api-utils: 2.0.1(typescript@5.7.2)
       typescript: 5.7.2
     transitivePeerDependencies:
@@ -15526,7 +15527,7 @@ snapshots:
       '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       eslint-scope: 5.1.1
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -15540,7 +15541,7 @@ snapshots:
       '@typescript-eslint/types': 6.21.0
       '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -15556,12 +15557,12 @@ snapshots:
       - supports-color
       - typescript
 
-  '@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
+  '@typescript-eslint/utils@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)':
     dependencies:
       '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       typescript: 5.7.2
     transitivePeerDependencies:
@@ -15582,16 +15583,16 @@ snapshots:
       '@typescript-eslint/types': 7.18.0
       eslint-visitor-keys: 3.4.3
 
-  '@typescript-eslint/visitor-keys@8.22.0':
+  '@typescript-eslint/visitor-keys@8.26.0':
     dependencies:
-      '@typescript-eslint/types': 8.22.0
+      '@typescript-eslint/types': 8.26.0
       eslint-visitor-keys: 4.2.0
 
   '@ungap/structured-clone@1.2.1': {}
 
-  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))':
+  '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(lightningcss@1.28.2)(terser@5.37.0))':
     dependencies:
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
     optionalDependencies:
       typescript: 5.7.2
@@ -15989,9 +15990,9 @@ snapshots:
   astro-eslint-parser@1.1.0(typescript@5.7.2):
     dependencies:
       '@astrojs/compiler': 2.10.3
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.7.2)
       astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3)
       debug: 4.4.0
       entities: 4.5.0
@@ -16000,7 +16001,7 @@ snapshots:
       espree: 10.3.0
       globby: 11.1.0
       is-glob: 4.0.3
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -16055,7 +16056,7 @@ snapshots:
       preferred-pm: 4.0.0
       prompts: 2.4.2
       rehype: 13.0.2
-      semver: 7.7.0
+      semver: 7.7.1
       shiki: 1.24.3
       tinyexec: 0.3.1
       tsconfck: 3.1.4(typescript@5.7.2)
@@ -16293,7 +16294,7 @@ snapshots:
       chalk: 5.4.1
       cli-boxes: 3.0.0
       string-width: 7.2.0
-      type-fest: 4.33.0
+      type-fest: 4.37.0
       widest-line: 5.0.0
       wrap-ansi: 9.0.0
 
@@ -16850,7 +16851,7 @@ snapshots:
       postcss-modules-scope: 3.2.1(postcss@8.4.49)
       postcss-modules-values: 4.0.0(postcss@8.4.49)
       postcss-value-parser: 4.2.0
-      semver: 7.7.0
+      semver: 7.7.1
     optionalDependencies:
       '@rspack/core': 1.1.8(@swc/helpers@0.5.5)
       webpack: 5.97.1(@swc/core@1.10.1(@swc/helpers@0.5.5))
@@ -17526,7 +17527,7 @@ snapshots:
   eslint-compat-utils@0.6.4(eslint@9.19.0(jiti@2.4.2)):
     dependencies:
       eslint: 9.19.0(jiti@2.4.2)
-      semver: 7.7.0
+      semver: 7.7.1
 
   eslint-config-flat-gitignore@0.3.0(eslint@9.19.0(jiti@2.4.2)):
     dependencies:
@@ -17554,7 +17555,7 @@ snapshots:
       is-glob: 4.0.3
       stable-hash: 0.0.4
     optionalDependencies:
-      eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
+      eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
     transitivePeerDependencies:
       - supports-color
 
@@ -17579,11 +17580,11 @@ snapshots:
       - bluebird
       - supports-color
 
-  eslint-module-utils@2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2)):
+  eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2)):
     dependencies:
       debug: 3.2.7
     optionalDependencies:
-      '@typescript-eslint/parser': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/parser': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       eslint-import-resolver-node: 0.3.9
       eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.19.0(jiti@2.4.2))
@@ -17592,7 +17593,7 @@ snapshots:
 
   eslint-no-restricted@0.0.8(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
     dependencies:
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
     transitivePeerDependencies:
       - supports-color
@@ -17611,7 +17612,7 @@ snapshots:
     dependencies:
       '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2))
       '@jridgewell/sourcemap-codec': 1.5.0
-      '@typescript-eslint/types': 8.22.0
+      '@typescript-eslint/types': 8.26.0
       astro-eslint-parser: 1.1.0(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       eslint-compat-utils: 0.6.4(eslint@9.19.0(jiti@2.4.2))
@@ -17633,7 +17634,7 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2)):
+  eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2)):
     dependencies:
       '@rtsao/scc': 1.1.0
       array-includes: 3.1.8
@@ -17644,7 +17645,7 @@ snapshots:
       doctrine: 2.1.0
       eslint: 9.19.0(jiti@2.4.2)
       eslint-import-resolver-node: 0.3.9
-      eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
+      eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.19.0(jiti@2.4.2))
       hasown: 2.0.2
       is-core-module: 2.16.1
       is-glob: 4.0.3
@@ -17656,18 +17657,18 @@ snapshots:
       string.prototype.trimend: 1.0.9
       tsconfig-paths: 3.15.0
     optionalDependencies:
-      '@typescript-eslint/parser': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/parser': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
     transitivePeerDependencies:
       - eslint-import-resolver-typescript
       - eslint-import-resolver-webpack
       - supports-color
 
-  eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2):
+  eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2):
     dependencies:
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
     optionalDependencies:
-      '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       jest: 29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2))
     transitivePeerDependencies:
       - supports-color
@@ -17684,7 +17685,7 @@ snapshots:
       espree: 10.3.0
       esquery: 1.6.0
       parse-imports: 2.2.1
-      semver: 7.7.0
+      semver: 7.7.1
       spdx-expression-parse: 4.0.0
       synckit: 0.9.2
     transitivePeerDependencies:
@@ -17736,12 +17737,12 @@ snapshots:
       - bluebird
       - supports-color
 
-  eslint-plugin-playwright@1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2)):
+  eslint-plugin-playwright@1.8.3(eslint-plugin-jest@28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2)):
     dependencies:
       eslint: 9.19.0(jiti@2.4.2)
       globals: 13.24.0
     optionalDependencies:
-      eslint-plugin-jest: 28.10.0(@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
+      eslint-plugin-jest: 28.10.0(@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.10.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.10.1(@swc/helpers@0.5.5))(@types/node@22.10.3)(typescript@5.7.2)))(typescript@5.7.2)
 
   eslint-plugin-react-debug@1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
     dependencies:
@@ -17752,10 +17753,10 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       string-ts: 2.2.0
       ts-pattern: 5.6.0
@@ -17773,9 +17774,9 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       compare-versions: 6.1.1
       eslint: 9.19.0(jiti@2.4.2)
       ts-pattern: 5.6.0
@@ -17793,10 +17794,10 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       ts-pattern: 5.6.0
     optionalDependencies:
@@ -17816,10 +17817,10 @@ snapshots:
       '@eslint-react/jsx': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       ts-pattern: 5.6.0
     optionalDependencies:
@@ -17840,9 +17841,9 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       birecord: 0.1.1
       eslint: 9.19.0(jiti@2.4.2)
       ts-pattern: 5.6.0
@@ -17860,10 +17861,10 @@ snapshots:
       '@eslint-react/shared': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/types': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       '@eslint-react/var': 1.21.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/scope-manager': 8.22.0
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/types': 8.22.0
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/scope-manager': 8.26.0
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/types': 8.26.0
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       compare-versions: 6.1.1
       eslint: 9.19.0(jiti@2.4.2)
       is-immutable-type: 5.0.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
@@ -17919,15 +17920,15 @@ snapshots:
     dependencies:
       eslint: 9.19.0(jiti@2.4.2)
 
-  eslint-plugin-storybook@0.10.2(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
+  eslint-plugin-storybook@0.11.4(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
     dependencies:
-      '@storybook/csf': 0.1.12
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@storybook/csf': 0.1.13
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       ts-dedent: 2.2.0
+      typescript: 5.7.2
     transitivePeerDependencies:
       - supports-color
-      - typescript
 
   eslint-plugin-tsdoc@0.2.17:
     dependencies:
@@ -17951,7 +17952,7 @@ snapshots:
       read-pkg-up: 7.0.1
       regexp-tree: 0.1.27
       regjsparser: 0.10.0
-      semver: 7.7.0
+      semver: 7.7.1
       strip-indent: 3.0.0
 
   eslint-scope@5.1.1:
@@ -18326,7 +18327,7 @@ snapshots:
       memfs: 3.5.3
       minimatch: 3.1.2
       schema-utils: 2.7.0
-      semver: 7.7.0
+      semver: 7.7.1
       tapable: 1.1.3
       typescript: 5.7.2
       webpack: 5.97.1(@swc/core@1.10.1(@swc/helpers@0.5.5))
@@ -19098,7 +19099,7 @@ snapshots:
 
   is-bun-module@1.3.0:
     dependencies:
-      semver: 7.7.0
+      semver: 7.7.1
 
   is-callable@1.2.7: {}
 
@@ -19157,7 +19158,7 @@ snapshots:
 
   is-immutable-type@5.0.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
     dependencies:
-      '@typescript-eslint/type-utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/type-utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       ts-api-utils: 1.4.3(typescript@5.7.2)
       ts-declaration-location: 1.0.5(typescript@5.7.2)
@@ -19321,7 +19322,7 @@ snapshots:
       '@babel/parser': 7.26.3
       '@istanbuljs/schema': 0.1.3
       istanbul-lib-coverage: 3.2.2
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - supports-color
 
@@ -19616,7 +19617,7 @@ snapshots:
       jest-util: 29.7.0
       natural-compare: 1.4.0
       pretty-format: 29.7.0
-      semver: 7.7.0
+      semver: 7.7.1
     transitivePeerDependencies:
       - supports-color
 
@@ -19990,7 +19991,7 @@ snapshots:
 
   make-dir@4.0.0:
     dependencies:
-      semver: 7.7.0
+      semver: 7.7.1
 
   make-error@1.3.6: {}
 
@@ -20810,13 +20811,13 @@ snapshots:
     dependencies:
       hosted-git-info: 4.1.0
       is-core-module: 2.16.1
-      semver: 7.7.0
+      semver: 7.7.1
       validate-npm-package-license: 3.0.4
 
   normalize-package-data@6.0.2:
     dependencies:
       hosted-git-info: 7.0.2
-      semver: 7.7.0
+      semver: 7.7.1
       validate-npm-package-license: 3.0.4
 
   normalize-path@3.0.0: {}
@@ -20831,7 +20832,7 @@ snapshots:
 
   npm-install-checks@6.3.0:
     dependencies:
-      semver: 7.7.0
+      semver: 7.7.1
 
   npm-normalize-package-bin@2.0.0: {}
 
@@ -20841,14 +20842,14 @@ snapshots:
     dependencies:
       hosted-git-info: 7.0.2
       proc-log: 4.2.0
-      semver: 7.7.0
+      semver: 7.7.1
       validate-npm-package-name: 5.0.1
 
   npm-package-arg@12.0.0:
     dependencies:
       hosted-git-info: 8.0.2
       proc-log: 5.0.0
-      semver: 7.7.0
+      semver: 7.7.1
       validate-npm-package-name: 6.0.0
 
   npm-packlist@5.1.3:
@@ -20863,7 +20864,7 @@ snapshots:
       npm-install-checks: 6.3.0
       npm-normalize-package-bin: 3.0.1
       npm-package-arg: 11.0.3
-      semver: 7.7.0
+      semver: 7.7.1
 
   npm-registry-fetch@18.0.2:
     dependencies:
@@ -21122,7 +21123,7 @@ snapshots:
       got: 12.6.1
       registry-auth-token: 5.0.3
       registry-url: 6.0.1
-      semver: 7.7.0
+      semver: 7.7.1
 
   package-manager-detector@0.2.8: {}
 
@@ -21184,7 +21185,7 @@ snapshots:
     dependencies:
       '@babel/code-frame': 7.26.2
       index-to-position: 0.1.2
-      type-fest: 4.33.0
+      type-fest: 4.37.0
 
   parse-latin@7.0.0:
     dependencies:
@@ -21467,7 +21468,7 @@ snapshots:
       cosmiconfig: 8.3.6(typescript@5.7.2)
       jiti: 1.21.7
       postcss: 8.4.49
-      semver: 7.7.0
+      semver: 7.7.1
       webpack: 5.97.1(@swc/core@1.10.1(@swc/helpers@0.5.5))
     transitivePeerDependencies:
       - typescript
@@ -22072,7 +22073,7 @@ snapshots:
     dependencies:
       find-up-simple: 1.0.0
       read-pkg: 9.0.1
-      type-fest: 4.33.0
+      type-fest: 4.37.0
 
   read-pkg-up@7.0.1:
     dependencies:
@@ -22105,7 +22106,7 @@ snapshots:
       '@types/normalize-package-data': 2.4.4
       normalize-package-data: 6.0.2
       parse-json: 8.1.0
-      type-fest: 4.33.0
+      type-fest: 4.37.0
       unicorn-magic: 0.1.0
 
   read-yaml-file@1.1.0:
@@ -22375,7 +22376,7 @@ snapshots:
 
   remeda@2.19.0:
     dependencies:
-      type-fest: 4.33.0
+      type-fest: 4.37.0
 
   renderkid@3.0.0:
     dependencies:
@@ -22607,7 +22608,7 @@ snapshots:
 
   semver-diff@4.0.0:
     dependencies:
-      semver: 7.7.0
+      semver: 7.7.1
 
   semver@5.7.2: {}
 
@@ -22620,7 +22621,7 @@ snapshots:
 
   semver@7.6.2: {}
 
-  semver@7.7.0: {}
+  semver@7.7.1: {}
 
   send@0.19.0:
     dependencies:
@@ -22710,7 +22711,7 @@ snapshots:
     dependencies:
       color: 4.2.3
       detect-libc: 2.0.3
-      semver: 7.7.0
+      semver: 7.7.1
     optionalDependencies:
       '@img/sharp-darwin-arm64': 0.33.5
       '@img/sharp-darwin-x64': 0.33.5
@@ -23436,7 +23437,7 @@ snapshots:
 
   type-fest@3.13.1: {}
 
-  type-fest@4.33.0: {}
+  type-fest@4.37.0: {}
 
   type-is@1.6.18:
     dependencies:
@@ -23482,11 +23483,11 @@ snapshots:
 
   typedarray@0.0.6: {}
 
-  typescript-eslint@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
+  typescript-eslint@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2):
     dependencies:
-      '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/parser': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
-      '@typescript-eslint/utils': 8.22.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/parser': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
+      '@typescript-eslint/utils': 8.26.0(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.2)
       eslint: 9.19.0(jiti@2.4.2)
       typescript: 5.7.2
     transitivePeerDependencies:
@@ -23508,7 +23509,7 @@ snapshots:
       js-yaml: 4.1.0
       npm-registry-fetch: 18.0.2
       ora: 8.1.1
-      semver: 7.7.0
+      semver: 7.7.1
       tinyglobby: 0.2.10
     transitivePeerDependencies:
       - supports-color
@@ -23678,7 +23679,7 @@ snapshots:
       is-yarn-global: 0.4.1
       latest-version: 7.0.0
       pupa: 3.1.0
-      semver: 7.7.0
+      semver: 7.7.1
       semver-diff: 4.0.0
       xdg-basedir: 5.1.0
 


Reviews:
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T19:25:16Z
user: login: AndreaPontrandolfo
state: COMMENTED
author_association: OWNER
submitted_at: 2025-03-18T20:37:57Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T20:44:06Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T20:49:36Z
user: login: AndreaPontrandolfo
state: COMMENTED
author_association: OWNER
submitted_at: 2025-03-18T21:22:09Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T21:25:27Z
user: login: AndreaPontrandolfo
state: COMMENTED
author_association: OWNER
submitted_at: 2025-03-18T21:25:39Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T21:29:28Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T21:30:39Z
user: login: AndreaPontrandolfo
state: COMMENTED
author_association: OWNER
submitted_at: 2025-03-18T21:41:20Z
user: login: lishaduck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-18T21:54:22Z
user: login: AndreaPontrandolfo
state: COMMENTED
author_association: OWNER
submitted_at: 2025-03-18T22:07:34Z

Review comments:
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: @AndreaPontrandolfo, eslint-plugin-import is applied _after_ storybook, so this unfortunately doesn't do anything.
I don't see any harm in moving this to the end though.
created_at: 2025-03-18T19:25:16Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: AndreaPontrandolfo
body: > eslint-plugin-import is applied after storybook

Why do you say so? I'm pretty sure this is not the case.
created_at: 2025-03-18T20:37:57Z
author_association: OWNER
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: > > eslint-plugin-import is applied after storybook
> 
> Why do you say so? I'm pretty sure this is not the case.

Huh. Yeah, maybe not. It looked like it was behind it. Somehow though, that patch still doesn't get applied.
I'll go debug some more.
created_at: 2025-03-18T20:44:05Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: Oh, actually it's because the default is false. Based on this comment:

> it should always be checked on by default, we shouldn't even check the package.json

I'd assumed it would be on by default. Happy to see Sheriff get leaner though! (I only use storybook sometimes)
created_at: 2025-03-18T20:49:36Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: AndreaPontrandolfo
body: Yeah, Storybook support should always be `true` by default.
Is this not the case for you? Then it might be a bug.
created_at: 2025-03-18T21:22:09Z
author_association: OWNER
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: No, it's always `false` by default.
created_at: 2025-03-18T21:25:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: AndreaPontrandolfo
body: @lishaduck oh ok, i get it now.

```
  if (userConfigChoices.storybook) {
    exportableConfig.push(...getStorybookConfig());
  }
```

This should be:

```
  if (userConfigChoices.storybook !== false) {
    exportableConfig.push(...getStorybookConfig());
  }
```
created_at: 2025-03-18T21:25:38Z
author_association: OWNER
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: Yup!
created_at: 2025-03-18T21:29:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: (I still don't see why you wouldn't want it opt-in like everything else, but you do you :))
created_at: 2025-03-18T21:30:39Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: AndreaPontrandolfo
body: > (I still don't see why you wouldn't want it opt-in like everything else, but you do you :))

Because the Storybook plugin applies only to storybook files. I think it's more reasonable  to have it opt-out.
created_at: 2025-03-18T21:41:20Z
author_association: OWNER
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: lishaduck
body: Yeah, that's fair. I keep forgetting that ESLint filters down plugins like that. Still feels like it'd be slightly more performant with it off.
created_at: 2025-03-18T21:54:22Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,16 @@
+import storybook from 'eslint-plugin-storybook';
+import tseslint from 'typescript-eslint';
+import type { TSESLint } from '@typescript-eslint/utils';
+
+export const getStorybookConfig = (): TSESLint.FlatConfig.ConfigArray => {
+  return tseslint.config({
+    extends: [
+      storybook.configs['flat/recommended'],
+      storybook.configs['flat/csf'],
+    ],
+    rules: {
+      'import/no-default-export': 0,
path: packages/eslint-config-sheriff/src/getStorybookConfig.ts
user: login: AndreaPontrandolfo
body: > Still feels like it'd be slightly more performant with it off

I don't think so.
In non-storybook files, the storybook rules will just be skipped (like, not even read, actually).
created_at: 2025-03-18T22:07:34Z
author_association: OWNER

PR comments:
user: login: changeset-bot[bot]
created_at: 2025-03-09T14:57:03Z
body: ###  🦋  Changeset detected

Latest commit: 2067ed1658633a9fcc5a9fa458d7eeb172f7729f

**The changes in this PR will be included in the next version bump.**

<details><summary>This PR includes changesets to release 2 packages</summary>

  | Name                      | Type  |
| ------------------------- | ----- |
| eslint-config-sheriff     | Minor |
| @sherifforg/create-config | Minor |

</details>

Not sure what this means? [Click here  to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).

[Click here if you're a maintainer who wants to add another changeset to this PR](https://github.com/AndreaPontrandolfo/sheriff/new/AndreaPontrandolfo/issue355?filename=.changeset/fresh-spiders-impress.md&value=---%0A%22config-validation-playground%22%3A%20patch%0A%22docs-website%22%3A%20patch%0A%22sheriff-webservices%22%3A%20patch%0A%22eslint-config-sheriff%22%3A%20patch%0A%22%40sherifforg%2Fcli%22%3A%20patch%0A%22%40sherifforg%2Fconstants%22%3A%20patch%0A%22%40sherifforg%2Fcreate-config%22%3A%20patch%0A%22%40sherifforg%2Ftypes%22%3A%20patch%0A---%0A%0Afeat(config)%3A%20Move%20Storybook%20support%20behind%20an%20option%0A)


author_association: NONE
user: login: vercel[bot]
created_at: 2025-03-09T14:57:05Z
body: [vc]: #eePXmLhZVA8ogPLvblVwKGs5/e5b0/xdLdvOsevXPvw=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJzaGVyaWZmIiwiaW5zcGVjdG9yVXJsIjoiaHR0cHM6Ly92ZXJjZWwuY29tL2FuZHJlYXBvbnRyYW5kb2xmb3MtcHJvamVjdHMvc2hlcmlmZi84UkRzWm5BUVpTN1pRS0Jwd0pEeTFHd1hocEVwIiwicHJldmlld1VybCI6InNoZXJpZmYtZ2l0LWFuZHJlYXBvbnRyYW5kby0xNzY0NmQtYW5kcmVhcG9udHJhbmRvbGZvcy1wcm9qZWN0cy52ZXJjZWwuYXBwIiwibmV4dENvbW1pdFN0YXR1cyI6IkRFUExPWUVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6InNoZXJpZmYtZ2l0LWFuZHJlYXBvbnRyYW5kby0xNzY0NmQtYW5kcmVhcG9udHJhbmRvbGZvcy1wcm9qZWN0cy52ZXJjZWwuYXBwIn0sInJvb3REaXJlY3RvcnkiOiJhcHBzL2RvY3Mtd2Vic2l0ZSJ9XX0=
**The latest updates on your projects**. Learn more about [Vercel for Git ↗︎](https://vercel.link/github-learn-more)

| Name | Status | Preview | Comments | Updated (UTC) |
| :--- | :----- | :------ | :------- | :------ |
| **sheriff** | ✅ Ready ([Inspect](https://vercel.com/andreapontrandolfos-projects/sheriff/8RDsZnAQZS7ZQKBpwJDy1GwXhpEp)) | [Visit Preview](https://sheriff-git-andreapontrando-17646d-andreapontrandolfos-projects.vercel.app) | 💬 [**Add feedback**](https://vercel.live/open-feedback/sheriff-git-andreapontrando-17646d-andreapontrandolfos-projects.vercel.app?via=pr-comment-feedback-link) | Mar 9, 2025 3:29pm |


author_association: NONE