@@ -289,6 +289,16 @@ Rules:
289289 filter element style (Airtable's Elements choice). If a view configures
290290 both ` tabs ` and ` userFilters ` , tabs win and the dropdowns never render.
291291 Want both demos? Put them on different views.
292+ - ** On an object list view (` *.view.ts ` ` list ` / ` listViews ` ), only
293+ ` element: 'dropdown' ` (value chips) is allowed — ` tabs ` is page-only**
294+ (ADR-0047 amendment, framework #2679 / objectui #2338 ). An object view's
295+ saved-view ` ViewTabBar ` already owns the tab-bar role, so a ` tabs `
296+ user-filter would render a second, colliding tab bar. The spec narrows it
297+ (` ObjectUserFiltersSchema ` — a ` tabs ` element is untypable at author time
298+ and dropped at parse) and the ` validate ` list-view-mode lint reports it.
299+ Need named presets on an object? Add a ` listViews ` entry instead. The full
300+ ` dropdown | tabs | toggle ` range applies only to ** page lists** /
301+ ` interfaceConfig.userFilters ` (the block above).
292302- ** Omit ` userFilters ` when unsure — omission means a clean toolbar.** Filter
293303 elements render only when explicitly configured; nothing is auto-derived.
294304 In data mode the saved-views switcher already covers the preset use case,
@@ -585,7 +595,7 @@ Object list UI has **three run modes**, selected by the navigation item shape:
585595| What renders | ALL list views as switcher tabs | The URL-defined slice, no saved-view tabs | One curated page referencing ONE view |
586596| Anchored to | Saved views | ** The URL itself** (` /:objectName/data?filter[...] ` ) | Page config |
587597| User-created views | Allowed | "Save as view" exit only | Never |
588- | Quick filters | Auto-derived (or view ` userFilters ` ) | Auto-derived + removable URL chips | Only what the author enabled |
598+ | Quick filters | Auto-derived (or view ` userFilters ` — ` dropdown ` only ) | Auto-derived + removable URL chips | Only what the author enabled |
589599| Visualization | Switchable (whitelist) | Switchable (URL filter state survives) | Locked unless whitelisted |
590600
591601** Decision rule — default to data mode.** Generate ONLY objects + list views +
0 commit comments