You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`DataTable.Filters`| Auto-generated filter chips from column filter configs. Requires `control` from `useCollectionVariables`. |
151
+
|`DataTable.Footer`| Footer container for pagination and other footer content. Optional. |
152
+
|`DataTable.Pagination`| Pre-built pagination controls with optional row count and selection info. Requires `control` from `useCollectionVariables`. Place inside `DataTable.Footer`. |
|`pageSizeOptions`|`number[]`| — | Available page-size options. When provided, a page-size switcher is rendered. First/Last buttons are shown only when the backend returns a `total` count. |
167
167
168
+
`DataTable.Pagination` automatically displays a row count and selection info text on the left side of the pagination bar based on context state:
|`data`|`DataTableData<TRow> \| undefined`| Fetched data. Pass `undefined` while loading. |
187
-
|`loading`|`boolean`| When `true`, renders a loading skeleton. |
188
-
|`error`|`Error \| null`| When set, renders an error message in the table body. |
189
-
|`control`|`CollectionControl`| Collection control from `useCollectionVariables()`. Required for `DataTable.Pagination` and `DataTable.Filters`. |
190
-
|`onClickRow`|`(row: TRow) => void`| Called when the user clicks a row. Adds a pointer cursor to rows. |
191
-
|`rowActions`|`RowAction<TRow>[]`| Per-row action items rendered in a kebab-menu column. The column is omitted when empty or not provided. |
192
-
|`onSelectionChange`|`(ids: string[]) => void`| Called with selected row IDs on change. Providing this enables the checkbox column. Rows must have a string `id`. |
|`data`|`DataTableData<TRow> \| undefined`| Fetched data. Pass `undefined` while loading. |
198
+
|`loading`|`boolean`| When `true`, renders a loading skeleton. |
199
+
|`error`|`Error \| null`| When set, renders an error message in the table body. |
200
+
|`control`|`CollectionControl`| Collection control from `useCollectionVariables()`. Required for `DataTable.Pagination` and `DataTable.Filters`. |
201
+
|`onClickRow`|`(row: TRow) => void`| Called when the user clicks a row. Adds a pointer cursor to rows. |
202
+
|`rowActions`|`RowAction<TRow>[]`| Per-row action items rendered in a kebab-menu column. The column is omitted when empty or not provided. |
203
+
|`onSelectionChange`|`(ids: string[]) => void`| Called with selected row IDs on change. Providing this enables the checkbox column. Rows must have a string `id`. |
Copy file name to clipboardExpand all lines: docs/app-shell/components/default-sidebar.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ function Layout() {
78
78
79
79
## Features
80
80
81
-
-**Auto-Navigation**: Automatically renders all modules and resources from AppShell
81
+
-**Auto-Navigation**: Automatically renders all modules and resources from AppShell, including the root module (path `""` or `"/"`) when defined. When a `rootComponent` is passed to `AppShell` without an explicit root module, a synthetic root entry is injected with a localized `"Home"` title.
82
82
-**Search Entry**: Always renders a **Search** button at the top of the navigation menu that opens the CommandPalette (equivalent to `Cmd+K` / `Ctrl+K`). This is available regardless of whether `searchSources` are configured on `AppShell`.
83
83
-**Active State**: Highlights the current route
84
84
-**Collapsible Groups**: Supports nested resource groups
|`fetcher`|`SelectAsyncFetcher<T>`| - | Fetcher called each time the dropdown is opened |
132
+
|`loadingText`|`string`|`"Loading..."`| Text shown while loading |
133
+
|`modal`|`boolean`|`false`| Whether the select traps focus (modal behavior). Set to `true` when rendering inside a `Dialog` or `Sheet` to preserve focus-trap. |
134
+
|`alignItemWithTrigger`|`boolean`|`false`| Whether to align the selected item with the trigger when the dropdown opens. |
133
135
134
136
> **Note:**`Select.Async` does not support `ItemGroup<T>[]` — the fetcher must return a flat array.
135
137
138
+
> **Limitation:**`Select.Async` defaults to `modal={false}` and `alignItemWithTrigger={false}` to work around a Base UI scroll-lock bug with dynamically loaded items. As a result, it may not function correctly inside focus-trapping containers such as `Dialog` or `Sheet` — the focus trap can block interaction with the dropdown, or the portal may render outside the modal's visible area. If you need an async dropdown inside a `Dialog` or `Sheet`, prefer [`Combobox.Async`](combobox) which uses Popover-based positioning and does not have this constraint.
0 commit comments