Repository navigation
v0.14.0
Highlights
- Radix 型境界 (anti-corruption layer) の確立 — Radix ベース lv1 (Select / Tooltip / Popover / DropdownMenu / Tabs / Radio / Checkbox / Switch / Separator / Avatar) の公開 Props 型から Radix 継承を全廃し、「native 要素の props + curated 再宣言」に移行 (#448)。公開型サーフェスが consumer の lockfile の Radix 解決に依存しなくなり、v1.0 の API 安定契約の前提が整った。
- 区分 C/D コンポーネント (Select / Dialog / Tooltip) に実ブラウザの非スクリーンショット interaction テストを追加 (#450) — jsdom + 静的 VRT では捕捉できない「ブラウザでは壊れている」class の欠陥を CI でブロック。
⚠️ Breaking Changes
Radix 継承の全廃により、Radix が型上公開していた未使用 prop は型エラーになる (pre-1.0 のため minor で出荷):
| Before | After |
|---|---|
Props が ComponentPropsWithoutRef<typeof XPrimitive.Y> を継承 — Radix の全 prop が型上通る |
native 要素の props + curated 再宣言のみ。dir / forceMount / onEscapeKeyDown / onPointerDownOutside / onInteractOutside / collision 系は公開から除外 (実需が出たら additive に再公開) |
<PopoverClose asChild><Button/></PopoverClose> |
<PopoverClose><Button/></PopoverClose> (element child → 内部 asChild、描画結果は同一) |
PopoverAnchor の element child は <div> ラッパ付き |
ラッパが消え child へ直接マージ — data-testid 等の属性は child 側に載る |
TooltipProviderProps = Radix 型の全面 re-export |
delayDuration / skipDelayDuration / disableHoverableContent / children の 4 prop に縮小 |
新規 export: SelectProps / SelectValueProps / SelectItemProps / TooltipProps / PopoverProps / PopoverAnchorProps / PopoverCloseProps / DropdownMenuProps / DropdownMenuSubProps / DropdownMenuRadioGroupProps / DropdownMenuCheckboxItemProps / DropdownMenuRadioItemProps / DropdownMenuSubContentProps / TabsListProps / TabsContentProps
方針の詳細: api-stability.md §Radix type boundary
What's Changed
Minor Changes
- #448: BREAKING: Radix ベース lv1 の公開 Props 型から Radix 継承を全廃 (closes #156)。境界は
radix-type-boundary.test.tsx(drift ガード +@ts-expect-errorpin) と curated props の spread 実装の typecheck で機械的に維持される。
Tests
- #450: 区分 C/D の実ブラウザ interaction テストを Select / Dialog / Tooltip に追加 (closes #447)。
pnpm audit:coverageのinteraction列で presence を機械検査。
Full Changelog: v0.13.0...v0.14.0