# CHANGELOG All notable changes to this project will be documented in this file. > For v0.x changelog, see the [v0 branch](https://github.com/chakra-ui/zag/blob/v0/CHANGELOG.md) ## [1.41.2](./#1.41.2) - 2026-06-05 ### Fixed - **Date Input**: Fix date segment placeholders for locales with explicit script subtags. - **Drawer** - Fix controlled drawer flickering when swiped or backdrop-closed while the `open` setter is asynchronous (e.g. history API or a delayed state update). - Keep nested-drawer layout metrics in machine state so swipe and backdrop-close transitions stay visually stable. - **Image Cropper**: Fix `getCroppedImage` and `getCropData` returning the wrong region when the image is displayed at a size different from its natural resolution (e.g. `width/height: 100%`). - **Pin Input**: Fix issue where `data-filled` was incorrectly set on every input on first render. - **Signature Pad**: Fix issue where the `dir` prop was accepted but never forwarded to the DOM. ## [1.41.1](./#1.41.1) - 2026-05-26 ### Fixed - **Dismissable**: Fix layer `pointer-events` being wiped by frameworks (Svelte, Vue) whose spread updates rewrite the entire `style` attribute. - **Drawer** - Fix controlled drawers snapping back to open before the close animation when dismissed via swipe. - Fix indent and indent-background snapping back into place after the close animation instead of transitioning in sync. - Fix `--drawer-swipe-progress` jumping to `1` at the start of a dismiss swipe; it now goes smoothly from `0` (at rest) to `1` (fully dismissed). - Fix drawer freezing mid-drag on release when its content mounts lazily which left snap points unmeasured. ## [1.41.0](./#1.41.0) - 2026-05-22 ### Added - **Floating Components**: Add `data-side` to placement-aware parts based on the current placement. > Affected Components: Cascade Select, Color Picker, Combobox, Date Picker, Hover Card, Menu, Popover, Select, > Tooltip, Tour. - **Date Input** - Add `hideTimeZone` prop. The `timeZoneName` segment now renders automatically when the value is a `ZonedDateTime`, and can be hidden via `hideTimeZone: true`. - Arrow navigation and auto-advance after typing now reach read-only focusable segments (e.g. `timeZoneName`). Typing the final editable segment (e.g. "P" on `dayPeriod`) advances focus to the trailing read-only segment instead of staying put. - **Splitter** - Add CSS unit support for `defaultSize`, `minSize`, and `maxSize`. The splitter now accepts `px`, `em`, `rem`, `vh`, and `vw` in addition to percentages, and resolves them to percentages after hydration. ```tsx const service = useMachine(splitter.machine, { panels: [ { id: "nav", minSize: "240px", maxSize: "480px" }, { id: "main", minSize: 30 }, ], defaultSize: ["240px", "60vw"], }) ``` - Add `resizeBehavior` per panel. Set to `"preserve-pixel-size"` to keep a panel's pixel size constant when the parent splitter group resizes. Leave at least one panel as `"preserve-relative-size"` (the default) so the layout can absorb the change. ```tsx panels: [ { id: "nav", minSize: 20 }, { id: "main", minSize: "240px", maxSize: "480px", resizeBehavior: "preserve-pixel-size", }, { id: "aside", minSize: 20 }, ] ``` - Allow non-panel children inside the splitter root for fixed toolbars, rails, or status areas that should not be managed as panels. Use partial trigger ids (`"left:"`, `":right"`) to bind handles around the fixed element. ```tsx
Left
Fixed sized element
Right
``` - **TOC**: Add `api.scrollTo(value, details?)` for programmatically scrolling to a heading. The optional `details.behavior` controls the scroll behavior; when omitted, the platform default applies. ```tsx api.scrollTo("installation", { behavior: "smooth" }) ``` ### Fixed - **Accordion**: Remove redundant `aria-disabled` from accordion item triggers. - **Color Picker**: Invoke `onValueChangeEnd` when the user picks a color with the EyeDropper API, consistent with ending a drag on the area or channel sliders. - **Combobox**: Fix `Enter` no longer submits the form when an item is highlighted (regardless of `allowCustomValue`), or when the typed value will be rejected by `allowCustomValue: false`. - **Date Input** - Fix min/max handling to preserve entered segments while editing. Values are now clamped segment-by-segment on blur, so `06/15/1999` with min `2000-01-01` becomes `06/15/2000` instead of snapping to `01/01/2000`. - Fix range mode keyboard navigation so `ArrowRight` moves from the last segment of the start date to the first segment of the end date. - Fix time-only formatters (no `year` segment) never firing `onValueChange` — `era` is now only required when `year` is present. - Fix `setSegmentValue` reading stale `displayValues`. `updateSegmentValue` returns the new `IncompleteDate` directly so the commit check uses the fresh value. - Fix `dayPeriod` (AM/PM) arrow up/down not updating the visible segment when `hourCycle` changes at runtime — `displayValues` now re-sync to the new hour cycle while preserving in-progress edits. - Fix typing "A" / "P" on the `dayPeriod` segment not updating the visible AM/PM. The typing path was writing `12` for PM while every other code path uses `1`, so the display silently stayed on AM. - **Date Picker** - Fix `VALUE.CLEAR` not resetting `activeIndex` and `hoveredValue` in range mode when `getInputProps` inputs are not rendered. - Fix issue where the date input was not writable in locales whose date format separator contains more than one character (e.g. `cs-CZ`, `sk-SK`, `hu-HU`, `ko-KR` which use `". "`). - Fix issue in Firefox where native month/year `