Skip to content

Releases: gfazioli/mantine-depth-select

2.0.6

16 Jun 10:44

Choose a tag to compare

⚡ Improvements

Mantine 9.3.0 → 9.3.1

@mantine/core and @mantine/hooks are aligned to 9.3.1 (latest 9.x patch) in the docs site. The package continues to satisfy its existing >=9.0.0 peer range — no API or behavior changes for consumers.

🛠️ Other

  • Dependency refresh (within existing semver ranges, no major upgrades):
    • @mantine/code-highlight, @mantine/core, @mantine/hooks 9.3.0 → 9.3.1 (docs)
    • @storybook/* 10.4.2 → 10.4.5
    • oxlint ^1.68.0 → ^1.70.0
    • rollup ^4.61.0 → ^4.62.0
    • esbuild ^0.28.0 → ^0.28.1
    • next, @next/mdx 16.2.7 → 16.2.9 (docs)
    • @types/node ^22.19.19 → ^22.19.21, @types/react ^19.2.16 → ^19.2.17

📝 Summary

Maintenance patch — no API or behavior changes for @gfazioli/mantine-depth-select. Aligns the docs site to Mantine 9.3.1 and refreshes dev tooling (Storybook 10.4.5, oxlint 1.70, Rollup 4.62) plus minor Next/type bumps.


What's Changed

  • chore(deps): update dependencies to latest minor (Mantine 9.3.1) by @gfazioli in #7

Full Changelog: 2.0.5...2.0.6

2.0.5

03 Jun 08:43

Choose a tag to compare

⚡ Improvements

Mantine 9.2.2 → 9.3.0

@mantine/core and @mantine/hooks are aligned to 9.3.0 (latest 9.x minor) in the docs site. The package continues to satisfy its existing >=9.0.0 peer range — no API or behavior changes for consumers.

🛠️ Other

  • Dependency refresh (within existing semver ranges, no major upgrades):
    • @mantine/code-highlight, @mantine/core, @mantine/hooks 9.2.2 → 9.3.0 (docs)
    • @storybook/* 10.4.1 → 10.4.2
    • oxlint ^1.67.0 → ^1.68.0
    • rollup ^4.60.4 → ^4.61.0
    • react, react-dom 19.2.6 → 19.2.7
    • next 16.2.6 → 16.2.7 (docs)
    • tsx ^4.22.3 → ^4.22.4
    • vite ^6.4.2 → ^6.4.3
    • @types/react ^19.2.15 → ^19.2.16
  • Yarn 4.15.0 → 4.16.0

📝 Summary

Maintenance patch — no API or behavior changes for @gfazioli/mantine-depth-select. Aligns the docs site to Mantine 9.3.0 and refreshes dev tooling (Storybook 10.4.2, oxlint 1.68, Rollup 4.61) plus minor React/Next/type bumps.


Full Changelog: 2.0.4...2.0.5

2.0.4

03 Jun 08:42

Choose a tag to compare

⚡ Improvements

Mantine 9.2.2 → 9.3.0

@mantine/core and @mantine/hooks are aligned to 9.3.0 (latest 9.x minor) in the docs site. The package continues to satisfy its existing >=9.0.0 peer range — no API or behavior changes for consumers.

🛠️ Other

  • Dependency refresh (within existing semver ranges, no major upgrades):
    • @mantine/code-highlight, @mantine/core, @mantine/hooks 9.2.2 → 9.3.0 (docs)
    • @storybook/* 10.4.1 → 10.4.2
    • oxlint ^1.67.0 → ^1.68.0
    • rollup ^4.60.4 → ^4.61.0
    • react, react-dom 19.2.6 → 19.2.7
    • next 16.2.6 → 16.2.7 (docs)
    • tsx ^4.22.3 → ^4.22.4
    • vite ^6.4.2 → ^6.4.3
    • @types/react ^19.2.15 → ^19.2.16
  • Yarn 4.15.0 → 4.16.0

📝 Summary

Maintenance patch — no API or behavior changes for @gfazioli/mantine-depth-select. Aligns the docs site to Mantine 9.3.0 and refreshes dev tooling (Storybook 10.4.2, oxlint 1.68, Rollup 4.61) plus minor React/Next/type bumps.


What's Changed

  • chore(deps): update dependencies to latest minor (Mantine 9.3.0) by @gfazioli in #6

Full Changelog: 2.0.3...2.0.4

2.0.3

28 May 09:56

Choose a tag to compare

⚡ Improvements

Mantine 9.2.1 → 9.2.2

@mantine/core and @mantine/hooks are aligned to 9.2.2 (latest 9.2 patch) in the docs site. The package continues to satisfy its existing >=9.0.0 peer range — no API or behavior changes for consumers.

🛠️ Other

  • Dependency refresh (within existing semver ranges, no major upgrades):
    • @mantine/code-highlight, @mantine/core, @mantine/hooks 9.2.1 → 9.2.2 (docs)
    • @storybook/* 10.4.0 → 10.4.1
    • oxfmt ^0.50.0 → ^0.52.0
    • oxlint ^1.65.0 → ^1.67.0
    • postcss ^8.5.14 → ^8.5.15
    • tsx ^4.22.1 → ^4.22.3
    • @types/react ^19.2.14 → ^19.2.15
  • Yarn 4.14.1 → 4.15.0
  • Apply oxfmt 0.52 formatting

📝 Summary

Maintenance patch — no API or behavior changes for @gfazioli/mantine-depth-select. Aligns to Mantine 9.2.2 and refreshes dev tooling (oxfmt 0.52, oxlint 1.67, Storybook 10.4.1) plus minor type/PostCSS/tsx bumps.


What's Changed

  • chore(deps): update dependencies to latest minor (Mantine 9.2.2) by @gfazioli in #5

Full Changelog: 2.0.2...2.0.3

2.0.2

17 May 10:35

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-depth-select: 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:36

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-depth-select: 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

04 Apr 20:24

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.


Bug Fixes

1. style prop specified twice on DepthSelectControls

The <Box> in DepthSelectControls had style={controlsVars} before {...others} spread, which could overwrite consumer styles. Reordered so controlsVars takes precedence.

2. TypeScript 6 strict mode fixes

  • Implicit any on justifyMap index access — added Record<string, string> type
  • Implicit any on items array — added explicit DepthSelectItem[] type
  • Factory callback (_props, ref)(_props) with explicit ref extraction (React 19 pattern)

Improvements

1. Memoized items array

items = data ?? [] was creating a new array reference every render, causing all useCallback hooks to be recreated. Now wrapped in useMemo — eliminates 4 lint warnings and improves render performance.

2. Dependencies aligned with workspace template

All devDependencies aligned with mantine-base-component. Legacy dependencies (eslint, prettier, storybook-dark-mode) removed. Stale scripts cleaned up.


Other Changes

  • New "Image gallery" demo and docs section showcasing 8 images with loop navigation
  • Storybook rewritten: 8 stories (was 4), fixed duplicate controls bug (built-in + children)
  • Upgraded TypeScript from 5.x to 6.0.2
  • Upgraded Storybook from 8.x to 10.3.4
  • CLAUDE.md updated for Mantine 9 and oxfmt/oxlint
  • README updated with Mantine 9.x and React 19 requirement
  • GitHub topics updated (mantine-v8 → mantine-v9)
  • Storybook layout changed to padded

Migration Guide

Update dependencies

yarn add @gfazioli/mantine-depth-select@latest @mantine/core@^9.0.0 @mantine/hooks@^9.0.0 react@^19.0.0 react-dom@^19.0.0

No API changes needed — all props and behavior are fully backward compatible.


Summary

This is a major release that upgrades Mantine Depth Select to Mantine 9 and React 19, fixes TypeScript strict mode issues, memoizes the items array for better performance, and modernizes the toolchain. 35 tests pass with 0 warnings.


What's Changed

New Contributors

Full Changelog: 1.0.0...2.0.0

  1. The peerDependencies range is kept wide to align with the workspace standard across all Mantine Extension components.

1.0.0

28 Mar 06:52

Choose a tag to compare

Changelog

1.0.0 (2026-03-28)

First public release

A 3D stack select component inspired by macOS Time Machine, built on Mantine UI. Navigate through stacked cards with perspective transforms, smooth transitions, and multiple interaction methods.

Features

Core

  • 3D Stack Effect — Cards stacked with configurable perspective transforms: scaleStep, translateYStep, opacityStep, blurStep
  • Controlled & Uncontrolled — Standard Mantine pattern with value, defaultValue, and onChange
  • Configurable visible cardsvisibleCards prop controls how many cards are visible in the stack
  • Transition durationtransitionDuration prop for smooth CSS transitions with ease easing
  • Exit animation — Cards animate out with scale-up and fade when navigating forward
  • Render window — Only cards within [activeIndex-1, activeIndex+visibleCards+1] are rendered in the DOM for performance

Navigation

  • KeyboardArrowUp/ArrowDown to navigate, Home/End to jump to first/last item
  • Mouse wheel / Trackpad — Scroll navigation with cooldown to prevent over-scrolling; page scroll is blocked while interacting. Disable with withScrollNavigation={false}
  • Touch swipe — Vertical swipe gestures for mobile (30px threshold)
  • Click on second card — Clicking the card at depth 1 navigates forward
  • Loop modeloop prop enables infinite navigation wrapping from last to first and vice versa

Controls

  • Built-in controls — Arrow buttons with optional label, shown by default (withControls={true})
  • PositionablecontrolsPosition prop: "right" (default) or "left"
  • Fully customizablecontrolsProps passes any prop to the built-in controls: w, labelFormatter, justify ("start" / "center" / "end"), upIcon, downIcon
  • Compound componentDepthSelect.Controls can be used as children with withControls={false} for full layout control
  • Custom controls — Use withControls={false} and manage navigation externally via value/onChange

Accessibility

  • WAI-ARIA listbox pattern with role="listbox" and role="option"
  • aria-selected, aria-hidden, aria-activedescendant attributes
  • Configurable ariaLabel prop (default: "Depth select")
  • focus-visible outlines on root and control buttons
  • prefers-reduced-motion media query disables transitions

Styles API

  • Selectors: root, stack, card, controls, controlUp, controlDown, controlLabel
  • Data attributes: data-active, data-depth, data-exited, data-disabled, data-controls-position
  • CSS variables: --ds-transition-duration, --ds-scale-step, --ds-translate-y-step, --ds-opacity-step, --ds-blur-step, --ds-visible-cards
  • GPU-optimized with targeted will-change on visible cards

Props

Prop Type Default Description
data DepthSelectItem[] [] Array of items (value + view)
value string | number Controlled value
defaultValue string | number first item Uncontrolled initial value
onChange (value) => void Change callback
w StyleProp Width of the stack area
h StyleProp Height of the stack area
visibleCards number 4 Visible cards in stack
withControls boolean true Show built-in controls
controlsPosition "right" | "left" "right" Controls placement
controlsProps DepthSelectControlsProps Props for built-in controls
loop boolean false Enable infinite navigation
withScrollNavigation boolean true Enable wheel/trackpad navigation
transitionDuration number 400 Transition duration (ms)
scaleStep number 0.1 Scale reduction per level
translateYStep number 30 Y offset per level (px)
opacityStep number 0.15 Opacity reduction per level
blurStep number 1 Blur increment per level (px)
ariaLabel string "Depth select" Accessible label

Dependencies

  • Mantine 8.x (peer dependency)
  • React 18/19 (peer dependency)
  • No additional runtime dependencies

Full Changelog: https://github.com/gfazioli/mantine-depth-select/commits/1.0.0