Changelog
WIPRelease history for @gentleduck/motion. Newest releases at the top.
1.0.1
Patch Changes
- 2f92193:
AnimVariantstransitions only opacity and transforms instead oftransition-all, so a theme switch no longer fades components while the rest of the page changes instantly.tweenExitis now 150ms to match the CSS exit duration, andcheckersStylePatterndrops the duplicated padding and border radius on checkbox, radio, and switch.
1.0.0
Major Changes
95638de: Audit-driven refactor across all 15 public packages. Closes type holes, hardens security boundaries, eliminates dead code, and dedups duplicated patterns.
Highlights
duck-docs— CompiledMdxBody branded type gatesnew Function(body); sanitizeSvg covers SMIL, unquoted javascript: URIs, nested script, CSS url(), bare iframe; code-preview tag + attr allowlistsduck-registry-build— safe-path containment at every fs sink; per-phase Zod cache schemas; JSON.stringify in generated TSX; cache manifest rejection on tamperduck-cli— install pipeline path containment unified across add/init/update; env-var allowlist contract reconciled with one-time warning; aliases.ui regex validationduck-primitives—observe-element-rectrAF loop guard (no leak when empty);compose-refuseCallback memo fix; popper forwardRef restored for R18 peer compatduck-hooks—useDebounceis now a real hook (stable identity, unmount cleanup);useStableIddelegates to React.useId (SSR-safe);scheduleTransitionTimeoutrename strips twouseHookAtTopLevellint suppressionsduck-lazy— spread order fix restores the lazy swap;next/imagemoved behind/lazy-image-nextsubpath so non-Next consumers don't pull the peerduck-vim— single document listener fans out to chord matcher + sequence manager; canonical modifier order;requireResetauto-clears for chord bindings; all three hook dep arrays correctedduck-variants—Props<T, D>makes defaulted variant keys optional and non-defaulted required; boundedpreludeCacheLRU; second-layerfilter2set eliminates last clone in hot pathduck-ttest—predictates/renamed topredicates/, twin dirs deleted, type-utility duplicates reconciled to canonical sources,IsVoidactually distinguishes void from undefined nowduck-calendar—./*wildcard export removed; falsy-zeroweekStartDay: 0(Sunday) bug fixed; Gregorian helpers extracted; HebrewaddMonthsuses Metonic cycleduck-libs—cnMemobounded LRU;filteredObjectrejects typo keys at compile time;parseDaterejects ambiguous one-token inputsduck-query— single AnyReq boundary cast replaces 14as any; param regex escape; throws on unresolved:tokensregisters— schema tightened (z.any()removed); ~1000 LoC of identical block-registry boilerplate replaced with buildersregistry-ui—_audio/_upload(~1.1K LoC) deleted;motion-shellHOC +withMotioncollapses simple motion clones;toDirection()narrower replaces 52as IDirection.Kindcasts; chartCSS_NAMED_COLORSfinite allowlistduck-motion— refcounted bodypointer-eventsownership; easing/blur/duration token dedup; half of public exports were unused and removed
Tests: 3133+ across the monorepo, all green. Type-checks clean across every project. No commits skipped hooks.
Patch Changes
- Updated dependencies [95638de]
- @gentleduck/variants@1.0.0
0.3.4
Patch Changes
- 95dbbce: Standardize README headers across all packages: centered logo, h1, tagline, nav links, and npm badges (matching the @duck-md template). Replace per-repo
*.gentleduck.orgsubdomain refs with path-basedgentleduck.org/duck-<name>URLs. No runtime code changes. - Updated dependencies [95dbbce]
- @gentleduck/variants@0.1.24
0.3.3
Patch Changes
- 918b34c: Strip
workspace:*andcatalog:protocol tokens fromdevDependencies/dependencies/peerDependenciesof every public package beforechangeset publish. Previously published artifacts leaked these tokens into npm metadata, which broke strict resolvers (bun, deno) for downstream consumers. Addsscripts/clean-publish.tsand wires it into the rootreleasescript with agit checkoutrestore step so source remains workspace-friendly. - Updated dependencies [918b34c]
- @gentleduck/variants@0.1.23
0.3.2
Patch Changes
- 553e2ea: Fix
filesfield to includesrc/css/index.cssinstead of stalesrc/index.css. The./cssexport pointed to a path that wasn't shipped in the tarball, breakingimport '@gentleduck/motion/css'in consumer apps.
0.3.1
Patch Changes
- b4706d3: Replace
workspace:*deps in publisheddependenciesandpeerDependencieswith explicit semver. Previous publishes leakedworkspace:*to the npm tarball, breakingbun installfor downstream consumers (error: Workspace dependency "@gentleduck/calendar" not found).
0.3.0
Minor Changes
- 7d6fb7b: Motion: export IDuckMotion namespace, add token presets, stagger utility, and exit-transition context. Shortcut and registry-ui gain motion library integration with dialog animations and MotionBadge preset.
Patch Changes
- Updated dependencies [7d6fb7b]
- @gentleduck/variants@0.1.22
0.2.0
Minor Changes
0f4f2e2: Performance and tree-shaking improvements for the motion library.
useMotionPreset now accepts either a preset name string or a preset object directly. The object form enables tree-shaking since unused presets are never imported. Exported MotionProvider from the barrel. Removed deprecated motion-tokens module. Extracted shared preset utilities into presets/_utils.ts. Moved TAP_SCALE_TRANSITION and standardEase to transitions/tweens.ts as shared constants. Added sideEffects false to enable bundler tree-shaking.
0.1.18
Patch Changes
- 6f0e067: Standardize package exports to use explicit named exports, add
sideEffectsfield andtypesexport entries to package.json, and annotate internal APIs with@internalJSDoc tags. - Updated dependencies [6f0e067]
- @gentleduck/variants@0.1.21
0.1.17
Patch Changes
- 2b6e8d0: Resolve all biome lint warnings, improve type safety, and add test coverage across the monorepo.
- Updated dependencies [2b6e8d0]
- @gentleduck/variants@0.1.20
0.1.16
Patch Changes
- 7c2aa88: Update dependencies and publish unpublished packages
- Updated dependencies [7c2aa88]
- @gentleduck/variants@0.1.19
0.1.15
Patch Changes
- c9bbef8: Documentation and style updates.
- Updated dependencies [c9bbef8]
- @gentleduck/variants@0.1.18
0.1.14
Patch Changes
ad86755: Add motion design tokens and reduced-motion accessibility support.
Features:
Add motion design tokens for consistent animation duration, easing, and spring values
Add reduced-motion helper utilities for prefers-reduced-motion media query support
Centralize reduced-motion styles via shared @gentleduck/motion helpers
Integrate duck-motion helpers into block-wrapper and inline reduced-motion styles
Maintenance:
Refactor motion utilities for cleaner API surface
Remove unused AnimPopoverArrowVariants
Update README and add react peer dependency
Align biome and tsconfig build info exclusions
Updated dependencies [ad86755]
- @gentleduck/variants@0.1.17
0.1.12
Patch Changes
- Improve animation variants with smoother easing curves and consistent timing across popover, dialog, and tooltip transitions.