## 0.6.0

### Minor Changes

* a157bae: Add styled arrow components for overlay components: `TooltipArrow`, `PopoverArrow`, `HoverCardArrow`, and `DropdownMenuArrow`. Arrows use a bezier curve SVG shape that seamlessly joins the content border, with border stroke on curved sides only via a two-path technique. Border color is customizable via `--tooltip-border-color`, `--popover-border-color`, `--hover-card-border-color`, and `--dropdown-menu-border-color` CSS custom properties on the respective content elements. Also fixes `overflow-hidden` removal from content containers so arrows are not clipped, adds `relative` positioning for correct arrow animation, and restructures `DropdownMenuContent` with an inner scrollable wrapper to decouple overflow from the arrow's containing block.

## 0.5.0

### Minor 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 gates `new Function(body)`; sanitizeSvg covers SMIL, unquoted javascript: URIs, nested script, CSS url(), bare iframe; code-preview tag + attr allowlists
  * `duck-registry-build` — safe-path containment at every fs sink; per-phase Zod cache schemas; JSON.stringify in generated TSX; cache manifest rejection on tamper
  * `duck-cli` — install pipeline path containment unified across add/init/update; env-var allowlist contract reconciled with one-time warning; aliases.ui regex validation
  * `duck-primitives` — `observe-element-rect` rAF loop guard (no leak when empty); `compose-ref` useCallback memo fix; popper forwardRef restored for R18 peer compat
  * `duck-hooks` — `useDebounce` is now a real hook (stable identity, unmount cleanup); `useStableId` delegates to React.useId (SSR-safe); `scheduleTransitionTimeout` rename strips two `useHookAtTopLevel` lint suppressions
  * `duck-lazy` — spread order fix restores the lazy swap; `next/image` moved behind `/lazy-image-next` subpath so non-Next consumers don't pull the peer
  * `duck-vim` — single document listener fans out to chord matcher + sequence manager; canonical modifier order; `requireReset` auto-clears for chord bindings; all three hook dep arrays corrected
  * `duck-variants` — `Props<T, D>` makes defaulted variant keys optional and non-defaulted required; bounded `preludeCache` LRU; second-layer `filter2` set eliminates last clone in hot path
  * `duck-ttest` — `predictates/` renamed to `predicates/`, twin dirs deleted, type-utility duplicates reconciled to canonical sources, `IsVoid` actually distinguishes void from undefined now
  * `duck-calendar` — `./*` wildcard export removed; falsy-zero `weekStartDay: 0` (Sunday) bug fixed; Gregorian helpers extracted; Hebrew `addMonths` uses Metonic cycle
  * `duck-libs` — `cnMemo` bounded LRU; `filteredObject` rejects typo keys at compile time; `parseDate` rejects ambiguous one-token inputs
  * `duck-query` — single AnyReq boundary cast replaces 14 `as any`; param regex escape; throws on unresolved `:tokens`
  * `registers` — schema tightened (`z.any()` removed); ~1000 LoC of identical block-registry boilerplate replaced with builders
  * `registry-ui` — `_audio` / `_upload` (~1.1K LoC) deleted; `motion-shell` HOC + `withMotion` collapses simple motion clones; `toDirection()` narrower replaces 52 `as IDirection.Kind` casts; chart `CSS_NAMED_COLORS` finite allowlist
  * `duck-motion` — refcounted body `pointer-events` ownership; 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/libs@1.0.0
  * @gentleduck/variants@1.0.0
  * @gentleduck/motion@1.0.0
  * @gentleduck/primitives@0.3.0
  * @gentleduck/hooks@1.0.0
  * @gentleduck/vim@0.3.0
  * @gentleduck/calendar@0.4.0

## 0.4.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.org` subdomain refs with path-based `gentleduck.org/duck-<name>` URLs. No runtime code changes.

## 0.4.3

### Patch Changes

* 918b34c: Strip `workspace:*` and `catalog:` protocol tokens from `devDependencies`/`dependencies`/`peerDependencies` of every public package before `changeset publish`. Previously published artifacts leaked these tokens into npm metadata, which broke strict resolvers (bun, deno) for downstream consumers. Adds `scripts/clean-publish.ts` and wires it into the root `release` script with a `git checkout` restore step so source remains workspace-friendly.

## 0.4.2

### Patch Changes

* b4706d3: Replace `workspace:*` deps in published `dependencies` and `peerDependencies` with explicit semver. Previous publishes leaked `workspace:*` to the npm tarball, breaking `bun install` for downstream consumers (`error: Workspace dependency "@gentleduck/calendar" not found`).

## 0.4.1

### Patch Changes

* Updated dependencies \[df57671]
  * @gentleduck/primitives@0.2.11

## 0.4.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]
* Updated dependencies \[7d6fb7b]
* Updated dependencies \[7d6fb7b]
  * @gentleduck/motion@0.3.0
  * @gentleduck/calendar@0.3.0
  * @gentleduck/hooks@0.2.0
  * @gentleduck/libs@0.2.0
  * @gentleduck/vim@0.2.0
  * @gentleduck/primitives@0.2.10
  * @gentleduck/variants@0.1.22

## 0.3.3

### Patch Changes

* 0f4f2e2: Performance pass across all Motion components. Extracted inline useMotionPreset option objects to module-level constants. Memoized context provider values in Accordion, Tabs, ToggleGroup, and Collapsible. Extracted inline animate and transition literals to constants in Switch, Tabs, and Progress. Memoized event handlers with useCallback. Converted 47 wildcard barrel exports to named exports for tree-shaking. Migrated all 41 component files from string-based preset lookups to direct preset object imports. Fixed stale event handler closure in CollapsibleTrigger. Fixed MotionSelectTrigger to use LazyMotion plus m.div instead of the heavy motion.div root import. Added sideEffects false to package.json.
* Updated dependencies \[0f4f2e2]
  * @gentleduck/motion@0.2.0

## 0.3.2

### Patch Changes

* Updated dependencies \[32d0136]
  * @gentleduck/calendar@0.2.1

## 0.3.1

### Patch Changes

* Updated dependencies \[58d1c61]
  * @gentleduck/calendar@0.2.0

## 0.3.0

### Minor Changes

* 3ee8b3a: feat: add AI documentation chat and command menu enhancements

  @gentleduck/docs:

  * Add useAIChat hook for streaming AI chat with rAF-batched updates
  * Add AIChatPanel component with markdown rendering, shiki syntax highlighting, and dynamic props
  * Add AI toggle mode to CommandMenu with auto-switch on empty search results
  * Add react-markdown and shiki as optional peer dependencies

  @gentleduck/registry-ui:

  * Add hideClose prop to DialogContent to conditionally hide the close button
  * Add children prop to CommandInput for rendering extra elements in the input wrapper
  * Add contentClassName prop to CommandDialog for dynamic dialog sizing

## 0.2.12

### Patch Changes

* 0fd319f: Update carousel, pagination, and sidebar components with tests and fixes.

## 0.2.11

### Patch Changes

* 3b33efe: Remove select-none from accordion content so users can select and copy text inside accordion panels.

## 0.2.10

### Patch Changes

* 74f5628: Remove whitespace-nowrap from accordion trigger to allow text wrapping on smaller screens.

## 0.2.9

### Patch Changes

* 80f8c4c: Fix declaration output for shared docs and registry UI components so consumer apps keep valid props during production typechecking.

## 0.2.8

### Patch Changes

* e7ee580: fix(registry-ui): replace workspace:\* dependencies with published npm versions

  The published package had `workspace:*` references that broke any consumer's install.

## 0.2.6

### Patch Changes

* 2b6e8d0: Resolve all biome lint warnings, improve type safety, and add test coverage across the monorepo.
* Updated dependencies \[2b6e8d0]
  * @gentleduck/primitives@0.2.5
  * @gentleduck/variants@0.1.20
  * @gentleduck/hooks@0.1.12
  * @gentleduck/motion@0.1.17
  * @gentleduck/libs@0.1.15
  * @gentleduck/vim@0.1.16

## 0.2.5

### Patch Changes

* fix(search): disable primitive's built-in filter when using custom lunr search

  The command menu had two competing filtering systems: lunr-based search and the primitive's
  substring filter. The primitive's filter was hiding items via `el.hidden = true` even when
  lunr correctly found them, causing search results to not appear. Added `shouldFilter` prop
  to the Command primitive to allow disabling the built-in filter.

* Updated dependencies
  * @gentleduck/primitives@0.2.4

## 0.2.4

### Patch Changes

* ba8a6f3: fix: update resizable components to react-resizable-panels v4 API

  Replace deprecated ref with panelRef across resizable component and
  examples to align with react-resizable-panels v4.

## 0.2.3

### Patch Changes

* 7c2aa88: Update dependencies and publish unpublished packages
* Updated dependencies \[7c2aa88]
  * @gentleduck/hooks@0.1.11
  * @gentleduck/libs@0.1.14
  * @gentleduck/motion@0.1.16
  * @gentleduck/primitives@0.2.3
  * @gentleduck/variants@0.1.19
  * @gentleduck/vim@0.1.15

## 0.2.2

### Patch Changes

* c9bbef8: Documentation and style updates.
* Updated dependencies \[c9bbef8]
  * @gentleduck/hooks@0.1.10
  * @gentleduck/libs@0.1.13
  * @gentleduck/motion@0.1.15
  * @gentleduck/primitives@0.2.2
  * @gentleduck/variants@0.1.18
  * @gentleduck/vim@0.1.14

## 0.2.1

### Patch Changes

* ad86755: Migrate all UI components to new duck-primitives, add RTL support, and update component styles.

  **Features:**

  * Migrate all registry-ui components to new duck-primitives module
  * Add RTL support with CSS logical properties across components
  * Add AnimVariants for consistent animation behavior
  * Rewrite alert-dialog to use new primitives
  * Rewrite sheet to use new dialog-based primitives
  * Rewrite menubar to use new menubar primitives
  * Switch preview index to next/dynamic SSR entries

  **Fixes:**

  * Fix dialog and popover styles for Tailwind CSS v4 compatibility
  * Fix select to manage its own open state
  * Fix popover width and update calendar/date-picker examples
  * Disable SSR for dynamic preview components

* Updated dependencies \[ad86755]
  * @gentleduck/primitives@0.2.1
  * @gentleduck/hooks@0.1.9
  * @gentleduck/libs@0.1.12
  * @gentleduck/variants@0.1.17
  * @gentleduck/motion@0.1.14
  * @gentleduck/vim@0.1.13

## 0.2.0

### Minor Changes

* 36f9364: Add json-editor component with inline, sheet, and popover editing modes for JSON data with validation. Includes registry entries and three example demos.

### Patch Changes

* d46534e: Upgrade recharts peer dependency from v2 to v3.7.0 with updated chart component types.
* Updated dependencies \[36f9364]
  * @gentleduck/primitives@0.2.0

## 0.1.17

### Patch Changes

* Updated dependencies \[4f93768]
  * @gentleduck/primitives@0.1.45

## 0.1.16

### Patch Changes

* Updated dependencies \[d0a2c1d]
* Updated dependencies \[d0a2c1d]
  * @gentleduck/primitives@0.1.44

## 0.1.15

### Patch Changes

* Updated dependencies \[45ec82f]
  * @gentleduck/primitives@0.1.43

## 0.1.14

### Patch Changes

* Updated dependencies \[cd47e32]
  * @gentleduck/primitives@0.1.42

## 0.1.13

### Patch Changes

* df94032: Initial public release of styled UI component wrappers for duck-primitives with Tailwind CSS styling and registry infrastructure.