|
7 | 7 |
|
8 | 8 | ### Added |
9 | 9 |
|
10 | | -- **Floating Components**: Add `data-side` to placement-aware parts so you can style them based on the current placement (`top`, `bottom`, `left`, `right`). |
| 10 | +- **Floating Components**: Add `data-side` to placement-aware parts so you can style them based on the current placement |
| 11 | + (`top`, `bottom`, `left`, `right`). |
11 | 12 |
|
12 | 13 | > Affects Color Picker, Combobox, Date Picker, Hover Card, Menu, Popover, Select, Tooltip, and Tour. |
13 | 14 |
|
14 | | -- **Date Input**: Add `hideTimeZone` prop. When the value is a `ZonedDateTime`, the `timeZoneName` segment now renders automatically — set `hideTimeZone` to hide it. Arrow navigation and auto-advance after typing now reach read-only focusable segments too. |
| 15 | +- **Date Input**: Add `hideTimeZone` prop. When the value is a `ZonedDateTime`, the `timeZoneName` segment now renders |
| 16 | + automatically — set `hideTimeZone` to hide it. Arrow navigation and auto-advance after typing now reach read-only |
| 17 | + focusable segments too. |
15 | 18 |
|
16 | 19 | - **Splitter** |
17 | | - - Accept CSS units (`px`, `em`, `rem`, `vh`, `vw`) for `defaultSize`, `minSize`, and `maxSize` in addition to percentages. |
| 20 | + - Accept CSS units (`px`, `em`, `rem`, `vh`, `vw`) for `defaultSize`, `minSize`, and `maxSize` in addition to |
| 21 | + percentages. |
18 | 22 |
|
19 | 23 | ```jsx |
20 | 24 | <Splitter.Root |
21 | 25 | panels={[ |
22 | | - { id: "nav", minSize: "240px", maxSize: "480px" }, |
23 | | - { id: "main", minSize: 30 }, |
| 26 | + { id: 'nav', minSize: '240px', maxSize: '480px' }, |
| 27 | + { id: 'main', minSize: 30 }, |
24 | 28 | ]} |
25 | | - defaultSize={["240px", "60vw"]} |
| 29 | + defaultSize={['240px', '60vw']} |
26 | 30 | /> |
27 | 31 | ``` |
28 | 32 |
|
29 | | - - Add `resizeBehavior` per panel. Set to `"preserve-pixel-size"` to keep a panel's pixel size constant when the parent splitter group resizes. |
| 33 | + - Add `resizeBehavior` per panel. Set to `"preserve-pixel-size"` to keep a panel's pixel size constant when the parent |
| 34 | + splitter group resizes. |
30 | 35 |
|
31 | | - - Allow non-panel children (toolbars, rails, status bars) inside the splitter root. Use partial trigger ids (`"left:"`, `":right"`) to bind handles around the fixed element. |
| 36 | + - Allow non-panel children (toolbars, rails, status bars) inside the splitter root. Use partial trigger ids |
| 37 | + (`"left:"`, `":right"`) to bind handles around the fixed element. |
32 | 38 |
|
33 | 39 | ### Fixed |
34 | 40 |
|
35 | 41 | - **Accordion**: Remove redundant `aria-disabled` from item triggers. |
36 | 42 |
|
37 | | -- **Color Picker**: Fire `onValueChangeEnd` when you pick a color with the EyeDropper API — matches the behavior when ending a drag on the area or channel sliders. |
| 43 | +- **Color Picker**: Fire `onValueChangeEnd` when you pick a color with the EyeDropper API — matches the behavior when |
| 44 | + ending a drag on the area or channel sliders. |
38 | 45 |
|
39 | | -- **Combobox**: Stop `Enter` from submitting the form when an item is highlighted, or when the typed value will be rejected by `allowCustomValue: false`. |
| 46 | +- **Combobox**: Stop `Enter` from submitting the form when an item is highlighted, or when the typed value will be |
| 47 | + rejected by `allowCustomValue: false`. |
40 | 48 |
|
41 | 49 | - **Date Input** |
42 | | - - Preserve entered segments when applying min/max. Values clamp 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`. |
43 | | - - Fix range mode keyboard navigation so `ArrowRight` moves from the last segment of the start date to the first segment of the end date. |
| 50 | + - Preserve entered segments when applying min/max. Values clamp segment-by-segment on blur, so `06/15/1999` with min |
| 51 | + `2000-01-01` becomes `06/15/2000` instead of snapping to `01/01/2000`. |
| 52 | + - Fix range mode keyboard navigation so `ArrowRight` moves from the last segment of the start date to the first |
| 53 | + segment of the end date. |
44 | 54 | - Fix time-only formatters (no `year` segment) never firing `onValueChange`. |
45 | 55 | - Fix `setSegmentValue` reading stale display values. |
46 | 56 | - Fix `dayPeriod` (AM/PM) arrow up/down not updating the visible segment when `hourCycle` changes at runtime. |
47 | 57 | - Fix typing "A" / "P" on the `dayPeriod` segment not updating the visible AM/PM. |
48 | 58 |
|
49 | 59 | - **Date Picker** |
50 | | - - Fix clearing the value not resetting `activeIndex` and `hoveredValue` in range mode when input parts are not rendered. |
51 | | - - Fix date input not being writable in locales with multi-character separators (e.g. `cs-CZ`, `sk-SK`, `hu-HU`, `ko-KR`). |
52 | | - - Fix Firefox issue where the native month/year `<select>` was not interactive when the picker is inside a modal dialog. |
53 | | - - Fix range selection with `outsideDaySelectable`: hovering outside-month days no longer changes the visible month; hover preview for the end date still updates. |
54 | | -
|
55 | | -- **Dialog, Drawer, Hover Card, Menu, Popover, Tooltip**: Fix custom trigger elements (via `ids.trigger`) being ignored when shared across components — e.g. wrapping a `Popover.Trigger` in a `Tooltip` with the same id no longer breaks positioning. Also fix trigger lookups in shadow root. |
56 | | -
|
57 | | -- **React 19 Strict Mode**: Fix dialog, drawer, and popover leaving `<body>` uninteractive (`data-scroll-lock`, `data-inert`, `overflow: hidden`, `pointer-events: none`) after closing. |
| 60 | + - Fix clearing the value not resetting `activeIndex` and `hoveredValue` in range mode when input parts are not |
| 61 | + rendered. |
| 62 | + - Fix date input not being writable in locales with multi-character separators (e.g. `cs-CZ`, `sk-SK`, `hu-HU`, |
| 63 | + `ko-KR`). |
| 64 | + - Fix Firefox issue where the native month/year `<select>` was not interactive when the picker is inside a modal |
| 65 | + dialog. |
| 66 | + - Fix range selection with `outsideDaySelectable`: hovering outside-month days no longer changes the visible month; |
| 67 | + hover preview for the end date still updates. |
| 68 | +
|
| 69 | +- **Dialog, Drawer, Hover Card, Menu, Popover, Tooltip**: Fix custom trigger elements (via `ids.trigger`) being ignored |
| 70 | + when shared across components — e.g. wrapping a `Popover.Trigger` in a `Tooltip` with the same id no longer breaks |
| 71 | + positioning. Also fix trigger lookups in shadow root. |
| 72 | +
|
| 73 | +- **Dialog, Drawer, Popover**: Fix dismissable layers losing their `pointer-events` in Svelte and Vue, where a spread |
| 74 | + update could rewrite the whole `style` attribute and wipe the value. |
| 75 | +
|
| 76 | +- **Drawer** |
| 77 | + - Fix controlled drawers snapping back open before the close animation when dismissed by swipe. |
| 78 | + - Fix the indent and indent background snapping into place after the close animation instead of transitioning in sync. |
| 79 | + - Fix `--drawer-swipe-progress` jumping straight to `1` at the start of a dismiss swipe — it now moves smoothly from |
| 80 | + `0` (at rest) to `1` (fully dismissed). |
| 81 | + - Fix the drawer freezing mid-drag on release when its content mounts lazily, which left snap points unmeasured. |
| 82 | +
|
| 83 | +- **React 19 Strict Mode**: Fix dialog, drawer, and popover leaving `<body>` uninteractive (`data-scroll-lock`, |
| 84 | + `data-inert`, `overflow: hidden`, `pointer-events: none`) after closing. |
58 | 85 |
|
59 | 86 | - **Number Input**: Fix inconsistent blur behavior when the input is cleared and `min` is greater than `0`. |
60 | 87 |
|
61 | 88 | - **Splitter** |
62 | | - - Fix clicking a resize trigger not moving focus to it, which prevented arrow keys from resizing the splitter until it was tab-focused (notably on Safari). |
| 89 | + - Fix clicking a resize trigger not moving focus to it, which prevented arrow keys from resizing the splitter until it |
| 90 | + was tab-focused (notably on Safari). |
63 | 91 | - Fix `data-focus` being applied on hover — it now only sets when the trigger is actually focused. |
64 | 92 |
|
65 | | -- **Tabs**: Observe the tab list with `ResizeObserver` so the indicator updates when the list resizes without individual tab triggers changing size (e.g. responsive grid reflow). |
| 93 | +- **Tabs**: Observe the tab list with `ResizeObserver` so the indicator updates when the list resizes without individual |
| 94 | + tab triggers changing size (e.g. responsive grid reflow). |
0 commit comments