Tracks this family from #3134 . Experimental @vizejs/ui workstream.
Outcome
Ship list, select, combobox, and transfer collections on the existing collection, typeahead, and composite-navigation primitives.
Authoring contract
Public components are real .vue files. Handwritten render functions and JSX are not the public authoring model.
Generated compiler output stays an internal artifact.
Hover and completion must be enough to use the API without leaving the editor.
Keep runtime script small. Prefer native HTML, CSS, and platform APIs.
Extension is a first-class contract: parts, slots, CSS properties, and typed hooks.
Inventory
Listbox: single/multiple, sections, grouping, typeahead, async, virtualization
Select and Native Select
Combobox and Autocomplete with custom values, async filtering, creation, mobile
MultiSelect, Cascade Select, Tree Select
Transfer / Pick List and Order List
Grid List with Item, Section, Header, Separator, Empty, Loading
Filtering, highlighting, match ranges, and no-results recovery
Dependencies
Depends on #4890 , #4897 , and #4905 . Tree tables are #4908 .
Quality gates
This family is not done until it satisfies the parent definition of done in #3134 :
Canonical Vue SFCs with explicit <template>, <script setup lang="ts">, and scoped <style>
kebab-case filenames for every public source, test, story, and fixture
Every public prop, emit, slot, expose, CSS custom property, part, and data attribute documented; every option states @default
Literal types for props, emits, slots, expose, and useTemplateRef
Equivalent public contracts across DOM, SSR, and Vapor builds
WCAG 2.2 AA, WAI-ARIA APG, keyboard, pointer, touch, focus, and dismissal where applicable
LTR/RTL, locale, reduced motion, forced colors, and zoom
SSR, hydration, deterministic IDs, Teleport, Suspense, islands, and no request-global state
Colocated Vue Test Utils tests, Vitest browser-mode coverage, and Playwright visual regression
Musea stories covering states, slots, parts, and presets
Tree-shakable ESM subpath, exact sideEffects, and enforced bundle budgets
Headless by default; visual style arrives only through opt-in presets
Testbed notes
Roving focus, aria-activedescendant, virtual items, and portalled lists. Large collection SFCs for the compiler corpus.
Out of scope
Virtualizer primitive and form Field belong to their issues. Tree data display belongs in the data family.
Tracks this family from #3134. Experimental
@vizejs/uiworkstream.Outcome
Ship list, select, combobox, and transfer collections on the existing collection, typeahead, and composite-navigation primitives.
Authoring contract
.vuefiles. Handwritten render functions and JSX are not the public authoring model.Inventory
Dependencies
Depends on #4890, #4897, and #4905. Tree tables are #4908.
Quality gates
This family is not done until it satisfies the parent definition of done in #3134:
<template>,<script setup lang="ts">, and scoped<style>@defaultuseTemplateRefsideEffects, and enforced bundle budgetsTestbed notes
Roving focus,
aria-activedescendant, virtual items, and portalled lists. Large collection SFCs for the compiler corpus.Out of scope
Virtualizer primitive and form Field belong to their issues. Tree data display belongs in the data family.