Skip to content

chore: upgrade devDependencies and migrate Storybook styling addon#551

Merged
ze-flo merged 7 commits intomainfrom
ze-flo/dev-deps-upgrades
Dec 19, 2025
Merged

chore: upgrade devDependencies and migrate Storybook styling addon#551
ze-flo merged 7 commits intomainfrom
ze-flo/dev-deps-upgrades

Conversation

@ze-flo
Copy link
Copy Markdown
Contributor

@ze-flo ze-flo commented Dec 19, 2025

Description

This PR updates core development dependencies to their latest versions, including a major upgrade to React 19 and migration from the deprecated @storybook/addon-styling to @storybook/addon-styling-webpack.

Details

This PR addresses these Dependabot and Renovate PRs and more:

Changes:

  • React 19 upgrade: Updated react, react-dom, and react-is from 18.3.1 to 19.2.3
  • Storybook styling migration: Replaced deprecated @storybook/addon-styling (1.3.7) with @storybook/addon-styling-webpack (1.0.1 is compatible with Storybook v8)
    • Added explicit webpack loaders: style-loader, css-loader, and postcss-loader. These are required to configure @storybook/addon-styling-webpack
    • Updated .storybook/main.js configuration to use new addon with proper PostCSS loader chain
  • Zendesk Garden dependencies: Updated to latest versions
    • @zendeskgarden/eslint-config: 44.0.1 → 47.1.0
    • @zendeskgarden/stylelint-config: 22.0.0 → 23.0.0
    • @zendeskgarden/svg-icons: 7.6.0 → 8.1.0
    • @zendeskgarden/react-grid and @zendeskgarden/react-theming: 9.12.5 → 9.12.6
  • Linting tools: Updated eslint-config-prettier (9.1.2 → 10.1.8) and stylelint-order (6.0.4 → 7.0.0)
  • Variables package: @zendeskgarden/eslint-config@47.1.0 ignores paths defined in .gitignore. Added --no-ignore flag to ESLint command to ensure dist files are linted
  • Dependabot configuration: Added .github/dependabot.yml with lockfile-only versioning strategy to minimize conflicts with Renovate bot PRs

Checklist

  • 👌 style updates are Garden Designer approved (add the designer as a reviewer)
  • 🌐 component demo is up-to-date and working properly (npm start)
  • ✅ all component states are represented (:hover, :focus-visible, etc.)
  • ⚫ renders as expected in dark mode
  • 🤘 renders as expected sans Bedrock (?bedrock=false)
  • 📝 tested in Chrome, Firefox, Safari, Edge, and IE11

"lint": "npm run lint:css && npm run lint:js && npm run lint:json && npm run lint:sass",
"lint:css": "stylelint dist/index.css",
"lint:js": "eslint scripts/*.js src/*.js dist/*.js --max-warnings 0",
"lint:js": "eslint scripts/*.js src/*.js dist/*.js --max-warnings 0 --no-ignore",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the affect of not adding --no-ignore?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ESLint throws an error.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this due to the gitignore update to eslint-config. I wonder if we should config more like this (or is that what the plugin is actually doing?)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried updating eslint-config following the docs recommendation. A couple of takeaways:

  • The suggested method for handling .gitignore is fairly basic. It doesn’t cover the more complex use cases you'd find in a monorepo like properly resolving the .gitignore file. The plugin handles that very well.
  • Also, explicitly linting a file that’s included in .gitignore still errors out unless the user explicitly adds the --no-ignore flag.

For now, I think it makes sense to stick with the plugin. It’s more reliable and saves us from having to build and maintain our own solution for those edge cases.
Screenshot 2025-12-19 at 12 12 17 PM

package.json Outdated
Comment on lines +55 to +57
"react": "19.2.3",
"react-dom": "19.2.3",
"react-is": "19.2.3",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure we should be bumping anything to React v19 until the Garden dependencies open up the peer dependency range.

package.json Outdated
"styled-components": "6.1.19",
"stylelint": "16.26.1",
"stylelint-order": "6.0.4",
"stylelint-order": "7.0.0",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be removed entirely as it is now included as a direct dependency of @zendeskgarden/stylelint-config

@ze-flo ze-flo merged commit db4b1ed into main Dec 19, 2025
3 checks passed
@ze-flo ze-flo deleted the ze-flo/dev-deps-upgrades branch December 19, 2025 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants