- Bump CI Node from 20 to 22 across all jobs. sass-loader@17 requires
Node >= 22.11, so Node 20 was unsupported (EBADENGINE).
- Regenerate package-lock.json from scratch to fix npm ci failing with
"Missing: @emnapi/runtime from lock file" — an npm optional-deps issue with
the oxc/wasm bindings pulled by typescript-eslint's resolver.
- Bump all dependencies to latest (React 19.2.7, Storybook 10.4.3, Webpack
5.107.2 + webpack-cli 7, Jest 30.4.2, Cypress 15.17.0, Babel 7.29.7,
sass-loader 17, css-minimizer-webpack-plugin 8, eslint-webpack-plugin 6).
- Migrate TypeScript 5.9 -> 6.0.3: set tsconfig rootDir, add
ignoreDeprecations "6.0", scope include to src/components + src/@types, and
declare *.scss/*.sass/*.css modules for stricter side-effect imports.
- Switch @babel/preset-react to the automatic JSX runtime and drop redundant
React imports in stories and tests.
- Migrate ESLint from the deprecated .eslintrc.js to flat config
(eslint.config.mjs) using typescript-eslint, @eslint/js, globals and the
React/Storybook plugins. Keep ESLint at v9 because eslint-plugin-react does
not support v10 yet. This fixes the previously broken lint (missing
@typescript-eslint parser/plugin) and normalizes formatting.
- Fix a latent bug in .storybook/main.js (comma instead of semicolon joining
two assignments via the comma operator).
- npm audit fix: 0 vulnerabilities.
- Bump package version to 1.4.0.