No rows to display.
)} > {[]}| , allowsSorting, etc.) │ │ └── Table.ColumnResizer (optional) │ └── Table.Body ( | , items, renderEmptyState) │ ├── Table.Row (
|---|
| ) │ └── Table.LoadMore (optional, infinite scroll) │ └── Table.LoadMoreContent └── Table.Footer (optional, pagination, etc.) ``` ## Item Identity **v2:** React's `key` was used for both list reconciliation and selection state. **v3:** Use `id` on `Table.Row` and `Table.Column` for selection/sort state; keep React's `key` for lists. ## Summary 1. **Imports**: Separate named imports → single `Table` import with dot notation 2. **New Wrappers**: `Table.ScrollContainer` and `Table.Content` wrap the table structure 3. **Props Moved**: `aria-label`, `selectionMode`, `sortDescriptor`, etc. moved from `Table` to `Table.Content` 4. **Bottom Content**: `bottomContent` prop → `Table.Footer` compound component 5. **Top Content**: `topContent` prop → place content inside `Table` before `Table.ScrollContainer` 6. **Selection Checkboxes**: Auto-rendered → explicit `Checkbox` with `slot="selection"` 7. **Empty State**: `emptyContent` prop → `renderEmptyState` on `Table.Body` 8. **Loading**: `loadingState`/`loadingContent` → `Table.LoadMore` for infinite scroll 9. **Column Resizing**: New `Table.ResizableContainer` and `Table.ColumnResizer` 10. **Item Identity**: `key` → `id` on rows and columns 11. **Styling Props Removed**: `color`, `radius`, `shadow`, `isStriped`, `isCompact` → use Tailwind CSS 12. **ClassNames Removed**: Use `className` on individual compound components |