Skip to content

Releases: gfazioli/mantine-qr-code

2.0.2

17 May 10:49

Choose a tag to compare

⚡ Improvements

1. Documentation site moved to Next.js 16

The docs/ workspace has been upgraded from Next.js 15.5 to Next.js 16.2.6 (@next/mdx aligned to ^16.2.6). The build now runs under Turbopack by default, which is faster on cold builds and noticeably snappier in dev mode. No change for consumers of the npm package — Next.js is a docs-only dependency.

2. Storybook stories anchored to the top

.storybook/preview.tsx now uses layout: 'padded' instead of 'centered'. Demos are no longer vertically centered and are pinned at the top with consistent padding. Affects local Storybook only.

🛠️ Other Changes

  • Dependency refresh (within existing semver ranges, no major upgrades): @mantine/* to 9.2.0, React / React DOM to 19.2.6, plus tooling patch bumps (oxfmt, oxlint, postcss, rollup, @types/node, @tabler/icons-react, …).
  • docs/next.config.mjs: remarkPlugins: [remarkSlug]remarkPlugins: ['remark-slug'] so loader options stay serializable under Turbopack (mandatory in Next 16).
  • docs/next.config.mjs: removed the eslint.ignoreDuringBuilds override that Next 16 no longer accepts.
  • docs/tsconfig.json: jsx set to react-jsx (mandatory under Next 16).
  • Header Undolog icon and footer Undolog anchor now point to https://gfazioli.github.io/.
  • scripts/release.ts rewritten: parses CHANGELOG.md, fetches GitHub's auto-generated notes, and creates the release via gh release create. The browser form step is gone, and open + new-github-release-url have been dropped from the toolchain.

📝 Summary

A maintenance release with no changes to the public API of @gfazioli/mantine-qr-code: no new props, no removed exports, no behavioral changes. The release brings the docs site to Next.js 16, refreshes dependencies to their latest minor/patch versions, polishes Storybook ergonomics, and automates the GitHub release step so multi-component release sessions no longer require manual copy/paste into the GitHub release form.


What's Changed

  • chore(deps): bump dependencies to latest minor/patch versions by @gfazioli in #4

Full Changelog: 2.0.1...2.0.2

2.0.1

12 May 14:50

Choose a tag to compare

⚡ Improvements

1. Documentation site moved to Next.js 16

The docs/ workspace has been upgraded from Next.js 15.5 to Next.js 16.2.6 (@next/mdx aligned to ^16.2.6). The build now runs under Turbopack by default, which is faster on cold builds and noticeably snappier in dev mode. No change for consumers of the npm package — Next.js is a docs-only dependency.

2. Storybook stories anchored to the top

.storybook/preview.tsx now uses layout: 'padded' instead of 'centered'. Demos are no longer vertically centered and are pinned at the top with consistent padding. Affects local Storybook only.

🛠️ Other Changes

  • Dependency refresh (within existing semver ranges, no major upgrades): @mantine/* to 9.2.0, React / React DOM to 19.2.6, plus tooling patch bumps (oxfmt, oxlint, postcss, rollup, @types/node, @tabler/icons-react, …).
  • docs/next.config.mjs: remarkPlugins: [remarkSlug]remarkPlugins: ['remark-slug'] so loader options stay serializable under Turbopack (mandatory in Next 16).
  • docs/next.config.mjs: removed the eslint.ignoreDuringBuilds override that Next 16 no longer accepts.
  • docs/tsconfig.json: jsx set to react-jsx (mandatory under Next 16).
  • Header Undolog icon and footer Undolog anchor now point to https://gfazioli.github.io/.
  • scripts/release.ts rewritten: parses CHANGELOG.md, fetches GitHub's auto-generated notes, and creates the release via gh release create. The browser form step is gone, and open + new-github-release-url have been dropped from the toolchain.

📝 Summary

A maintenance release with no changes to the public API of @gfazioli/mantine-qr-code: no new props, no removed exports, no behavioral changes. The release brings the docs site to Next.js 16, refreshes dependencies to their latest minor/patch versions, polishes Storybook ergonomics, and automates the GitHub release step so multi-component release sessions no longer require manual copy/paste into the GitHub release form.


What's Changed

  • chore(template-sync): Next 16, Mantine 9.2, padded storybook, automated release by @gfazioli in #3

Full Changelog: 2.0.0...2.0.1

2.0.0

03 Apr 15:15

Choose a tag to compare

Caution

This release contains breaking changes. The component now requires Mantine 9.x and React 19.


Breaking Changes

1. Mantine 9 and React 19 required

The component has been upgraded to Mantine 9 and React 19. Mantine 7/8 and React 18 are no longer supported at runtime, even though peerDependencies still allows them for workspace alignment1.

2. Toolchain migration: prettier → oxfmt, eslint → oxlint

The project now uses oxfmt for formatting and oxlint for linting. If you contributed to the project:

  • .prettierrc.mjs.oxfmtrc.json
  • eslint.config.mjsoxlint.config.ts
  • Run yarn format:write instead of yarn prettier:write

Bug Fixes

1. React 19 RefObject type compatibility

The useQRCodeDownload hook's ref type has been updated from React.RefObject<HTMLDivElement> to React.RefObject<HTMLDivElement | null> to match React 19's useRef return type. Without this fix, TypeScript 6 would report a TS2322 error when using the hook.

2. Jest tests failing with qrcode CJS module

The qrcode npm package is a CommonJS module whose default export was not resolved correctly by esbuild-jest. A minimal jest mock (__mocks__/qrcode.ts) has been added that provides a valid 21×21 QR matrix, enabling all 12 tests to pass. The real library works correctly at runtime — the issue was limited to the test environment.


Improvements

1. Ref forwarding simplified

In Mantine 9 with React 19, polymorphicFactory handles ref forwarding automatically — the ref is passed through {...others} to the root <Box>. No manual ref extraction or useMergedRef is needed.

2. Dependencies aligned with workspace template

All devDependencies have been aligned with the mantine-base-component template:

  • Storybook 10.3.4
  • @mantine-tests/core 2.1.0
  • Rollup 4.60.1
  • Next.js 15.5.14
  • @tabler/icons-react 3.41.1

Other Changes

  • Upgraded TypeScript from 5.x to 6.0.2
  • Upgraded Yarn from 4.12.0 to 4.13.0
  • Upgraded Storybook from 8.x to 10.3.4
  • CLAUDE.md updated with Mantine 9 reference and oxfmt/oxlint tooling
  • package.json description and keywords updated (mantine-v9, qr-code-generator, svg, download)
  • GitHub repo description and topics updated

Migration Guide

Step 1: Update dependencies

yarn add @gfazioli/mantine-qr-code@latest @mantine/core@^9.0.0 @mantine/hooks@^9.0.0 react@^19.0.0 react-dom@^19.0.0

Step 2: Update useQRCodeDownload ref type (if typed explicitly)

If you explicitly typed the ref from useQRCodeDownload:

Before:

const { ref, download } = useQRCodeDownload();
// ref was React.RefObject<HTMLDivElement>

After:

const { ref, download } = useQRCodeDownload();
// ref is now React.RefObject<HTMLDivElement | null>

Tip

In most cases no code change is needed — the hook's return type is inferred automatically.


Summary

This is a major release that upgrades Mantine QR Code to Mantine 9 and React 19, fixes React 19 type compatibility for the download hook, and modernizes the toolchain. The API surface is fully backward compatible — the only breaking change is the runtime requirement for Mantine 9 and React 19.


What's Changed

    • 📦 build: upgrade to Mantine 9, TypeScript 6, and modern tooling by @gfazioli in #2

New Contributors

Full Changelog: 1.0.0...2.0.0

  1. The peerDependencies range (>=7.0.0 for Mantine, ^18.x || ^19.x for React) is kept wide to align with the workspace standard across all Mantine Extension components.

1.0.0

17 Mar 13:16

Choose a tag to compare