React Aria Components 1.17.0
React Aria Components 1.17.0 は、Table に treeColumn とセル内のシェブロンを組み合わせた展開行、Virtualizer の可視矩形をウィンドウのビューポートへ自動バインドするページスクロール追随、GridList と ListBox の水平方向仮想化などを加えたマイナー更新である。
個別 npm パッケージだった @react-aria/* と @react-stately/* を react-aria と react-stately のモノパッケージへ吸収し、React Aria Components が引き受ける依存数をおよそ 9 割削減した。各コンポーネントは react-aria-components/Menu のように名前付きサブパスからも import でき、ツリーシェイクに頼らず利用分だけをバンドルしやすくなった。
diff
-import {Menu, MenuItem, Popover} from 'react-aria-components';
+import {Menu, MenuItem, Popover} from 'react-aria-components/Menu';- 既存の
@react-aria/buttonのようなスコープ付きパッケージは当面も動作するがモノパッケージからの再エクスポートとなり、新規エクスポートは追加されない。モノパッケージの transitive 依存として個別パッケージが暗黙に入る前提は崩れるため、依存は自前のpackage.jsonで宣言するかモノパッケージ import に寄せる必要がある。 npx @react-spectrum/codemods use-monopackagesとuse-subpathsが案内され、前者はメインエントリへの集約、後者はサブパス import への置換を支援する。- webpack 4 や Jest 28 未満のように
package.jsonのexportsや.mjsに弱いツール向けの互換は維持しているが、将来のメジャーでは切り捨てる方針が述べられている。意図的に非公開だった型が露出していた TypeScript の挙動差もあり、非公開型に依存していたコードは修正が必要になる。