Skip to content

Components: Missing components #4273

Open
5 of 32 issues completed
Open

Description

@JasonVMo

Goal

Deliver the reviewed agentic component catalog in dependency order, distinguishing
admitted source entries, implemented components, candidate-only source additions,
and evidence-backed readiness.

Status - 2026-11-09

Audited against main 666e32983.

32 generation children: 5 completed and 27 open. TabList #4243 was already
complete. This reconciliation closes Dropdown #4224, MenuButton #4231, Menu #4232,
and Popover #4236 because #4386 merged their reviewed implementations, public
exports, tests, and desktop delivery evidence. Their broad readiness and
qualification work remains in #4274's dedicated issues.

The package has 24 implemented local contracts / public higher-order components:
23 admitted Flex components plus local-foundation Text. The admitted release
has 49 entries, leaving 26 admitted entries unimplemented. The 27 open
generation issues
are those 26 plus candidate-only Toast. The checked-in
52-entry candidate list is a dated drift snapshot, not a fresh upstream scan;
Persona and PresenceBadge are also candidate-only, with no automatic admission.

Current backlog

Status Issue Assessment and next action
Open #4218 Avatar Group Ready for contract review. Avatar is implemented; define grouping, overflow, naming, and layout without waiting on the completed contract-ingestion work.
Open #4219 Breadcrumb Tooltip and local contract. Popover and Menu are delivered by #4386. Tooltip #4249 is still missing; review truncation/overflow, link semantics, and native navigation.
Open #4220 Combobox Ready for editable-combobox contract review. Popover and Dropdown are delivered by #4386; Input and ListboxItem also exist. Define editable filtering, active versus selected option, editor focus/IME, and actual native announcements rather than inheriting browser virtual-focus assumptions.
Open #4221 Destructive Button Local identity/API decision. Button exists. Decide a separate component versus an approved destructive presentation without changing the existing Button API by inference.
Open #4222 Dialog Modal foundation. The delivered nonmodal popup stack is not a focus trap. Review Dialog with shared modal focus, scrim/input containment, and background accessibility isolation in #4379.
Open #4223 Drawer Inline contract can proceed; modal mode gated. Inline layout can be reviewed independently. Overlay/modal behavior depends on #4379 with Dialog #4222; Popover is now available but does not satisfy modal isolation.
Done #4224 Dropdown Delivered by #4386. Reviewed contract, implementation, exports, runtime/type tests, and native story evidence are merged. Retain broader readiness/accessibility gates and owner-relative continuation in #4377.
Open #4225 Field Label and status-icon decisions. Label #4228 and the canonical status-icon contract in MessageBar #4233 remain. InfoLabel #4226 is optional composition, not a blocker for basic Field.
Open #4226 InfoLabel Label and local help semantics. Popover is delivered. Label #4228 remains; review help-trigger naming, association, dismissal, and native accessibility rather than waiting on an absent overlay.
Open #4227 Interaction Tag Ready for contract review. Tag, Avatar, Icon, and public export wiring exist. Define the composite action and dismiss behavior under the native contract.
Open #4228 Label Native association decision. Text and the contract workflow exist. Decide supported native association or an explicitly visual-only label; HTML label/control association is not automatic.
Open #4229 Link Native navigation/appearance decision. Text, Icon, activation, and focus foundations exist. Review native link semantics and underline/navigation differences; no missing Fabric or ingestion prerequisite.
Open #4230 List Ready for collection contract review. ListItem, Checkbox, Radio, Divider, and ref-backed/TabList focus prior art exist. Win32 ListItem remains excluded in the app catalog under #4344; qualify it before claiming that endpoint ready.
Done #4231 MenuButton Delivered by #4386. Reviewed trigger/Menu composition, public export, tests, and four-endpoint story evidence are merged. #4405 subsequently repaired native trigger naming.
Done #4232 Menu Delivered by #4386. Reviewed command collections, bounded nested submenus, hover/type-ahead, disabled discoverability, exports, and native stories are merged. Context-menu input remains #4383; owner-relative continuation and hardening remain #4377.
Open #4233 MessageBar Canonical status-icon decision. Button, Text, and Icon exist. Establish the reviewed cross-platform status-icon asset contract and status announcements; do not treat generic glyph examples as approved Fluent status assets.
Open #4234 NavItem Ready for contract review. CompoundItemLayout, Icon, Avatar, Badge, and focus/ref foundations exist; define navigation semantics and the selected/expanded ownership boundary.
Open #4235 Nav NavItem and collection policy. NavItem #4234 remains missing. Accordion and native/ref-backed focus foundations exist; there is no blanket overlay-wave prerequisite.
Done #4236 Popover Delivered by #4386. Reviewed nonmodal trigger/surface contract, exports, tests, and four-endpoint native stories are merged. Modal scope, text anchors, and natural owner-relative continuation remain separate work.
Open #4237 RadioGroup Group labeling/navigation contract. Radio and ref-backed/native focus foundations exist; Label #4228 remains. Decide group naming, selection ownership, and navigation; no overlay dependency.
Open #4238 Scrollbar Scroll-source/native-host contract. Define scroll metrics, thumb/track control, drag/capture, and host capability. Original Fabric FocusZone #4217 is complete and is not the blocker.
Open #4239 Search box Ready for contract review. Input, Button, Icon, and native editor ref/focus support exist. Review search semantics, clear action, and controlled/uncontrolled query behavior.
Open #4240 Select Native picker versus composed product decision. Dropdown is now available as composition prior art, not proof of browser-native select parity. Choose the supported native picker/composed contract and platform semantics.
Open #4241 Simple Nav NavItem and Tooltip. NavItem #4234 and Tooltip #4249 remain. Popover is delivered; do not retain it as an unimplemented transitive blocker.
Open #4242 SplitButton Ready for two-region contract review. Menu and MenuButton are delivered, and Button/ref/focus foundations exist. Define the primary action, menu region, focus model, and shared accessible naming.
Done #4243 TabList Already complete. Original delivery is complete; #4422 subsequently expanded dynamic recovery and shortcut ownership coverage.
Open #4244 TeachingPopover Ready for contract review. Popover is delivered. Review instructional content, steps, close/action ownership, and accessibility; do not recreate popup hosting.
Open #4245 Textarea Native no-resize/growth product decision. Input/TextInput and focus foundations exist. Decide native multiline/no-CSS-resize behavior versus a different target; do not promise a web resize handle.
Open #4246 Toast Source admission plus host/icons decisions. Toast remains outside the admitted 49-entry lock and appears only in the dated 52-entry candidate snapshot. Review source admission, notification host/lifetime, status icons #4233, and Link #4229.
Open #4247 Toggle Button Ownership settled; contract review can proceed. Button retains externally supplied selected presentation, now with checked/Toggle semantics (#4403). ToggleButton must own real controlled/uncontrolled transitions. #4215 is source-disposition/contract follow-through, not an unanswered ownership decision.
Open #4248 Toolbar Collection contract; toggle members depend on ToggleButton. Button refs, Divider, and collection-focus prior art exist. Define toolbar navigation and child eligibility; actual self-toggling members need ToggleButton #4247 rather than selected-looking Buttons.
Open #4249 Tooltip Ready for nonmodal tooltip contract review. Popover and native Callout are delivered. Define tooltip timing, noninteractive content, trigger accessibility, and dismissal. Inline text anchoring, if required, remains #4378; an ordinary view-anchored contract need not wait for it.

Ownership and ordering

Closure and readiness

Close a generation issue only for a merged reviewed implementation or an explicit
approved nonimplementation disposition. The four #4386 closures do not assert
VoiceOver/Narrator, the complete visual/geometry matrix, every Office host, or
consumer-visible readiness. Those gates remain #4214/#4216/#4251 and the native/
infrastructure issues in #4274/#4275. The old all-skipped reporting blocker #4342
is fixed; report input-lane exclusions and quarantines accurately instead.

Evidence

Validation limits: Source and committed-test inspection only; package/build/native tests were not run in this reconciliation. Earlier native results remain revision-specific; skips, unsupported outcomes, and input-lane exclusions are not passes.

Historical workstream scope and acceptance (retained; the reconciled status above is current)

Summary

Track delivery of the named agentic component backlog, with current source admission, implementation, issue state, and consumer prerequisites kept separate. Parent readiness workstream: #4274.

Current state - 2026-10-02 (UTC)

Observed: Audited the clean repository and the full 32-child issue hierarchy against GitHub main at 75c55923873124201d2ffbf3b3e67960047bd481.

Set Current result Meaning
Admitted Flex release catalog 49 entries spec-source-lock.json, lock flex-1.5.0-206c4996; immutable source identity, not the historical 50-entry research snapshot.
Implemented admitted entries on main 19 Reviewed colocated contracts and root exports exist.
Admitted implementation gap 30 Named release entries still absent from main.
Local-foundation higher-order component text (1) Not an additional Flex catalog entry. Total implemented higher-order components: 20.
Existing tracked child issues 32 total: 1 completed, 31 open #4243 (TabList) is delivered. The open set is the 30 admitted gaps plus candidate Toast #4246.
Checked-in candidate snapshot 52 entries, dated 2026-08-31 Adds persona, presence-badge, toast; proposed implementation gap 33. This is not a fresh upstream query or source admission.

The old 50 catalog / 18 generated / 32 missing, staged-spec counts, and fixed waves are superseded by these named sets. Keep the existing 32-task hierarchy rather than confusing historical task count with today's admitted gap.

Observed: #4308 added nine components on a branch, but was closed without merging on 2026-10-01. AvatarGroup, DestructiveButton, InteractionTag, Label, Link, NavItem, Popover, SearchBox, and Tooltip therefore remain open and absent from main. Branch head cbe9a74a44b5467c2b142fecdc2d5d554c083577 is useful prior work, not delivered readiness.

Confirmed Button / ToggleButton ownership

Confirmed (owner, 2026-10-01 PDT / 2026-10-02 UTC): Button can show selected or not-selected presentation, but real toggle behavior belongs to a distinct ToggleButton.

  • Button retains externally driven selected presentation and reports an action through onPress; it never changes that value during activation and does not acquire defaultSelected or onSelectedChange.
  • ToggleButton owns controlled/uncontrolled selected / defaultSelected / onSelectedChange, using Framework Base useToggleState. Controlled activation requests a next value without mutating the supplied value; explicit false must stay controlled.
  • Pointer, keyboard, and native toggle accessibility actions must reach that same state owner exactly once. Disabled activation is inert.
  • Preserve existing Button presentation compatibility. Shape vocabulary and leading/trailing-icon changes are separate contract-review decisions, not implicitly approved breaking changes.

This resolves the ownership gate for #4247. #4215 tracks applying the decision to reviewed contracts/source dispositions; it is no longer an unanswered state-ownership blocker. Posting the decision does not claim ToggleButton or a source migration has shipped.

Delivered shared foundations

Foundation Delivered evidence Remaining consumer responsibility
Original native contract authoring and provenance #4296 / #4252; current schema-version-2 sources[] lifecycle Draft/review each missing local contract; do not promote old web/staged specs mechanically.
Native Callout placement/platform support #4292 / #4291; packages/native/Callout/SPEC.md; declared production dependency Popover open state, appearance, naming, anchor policy, native capability differences, initial/return focus, and a reviewed source-boundary exception.
Fabric FocusZone #4199 / #4217, with Shift+Tab fix #4320 / #4317 Collection selection, active-item semantics, ref registration, type-ahead, and platform qualification. Directional navigation is not a generic modal trap.
Ref-backed focus, keyboard activation, accessibility actions #4314; Framework Base focus targets and shared action-name resolver Reuse the existing target/activation path; do not reopen Toolbar's old missing-Button-ref blocker.
Native Storybook tests/assertions and pipelines #4255, #4256 Author executable wdio cases, inspect native results/skips, and meet each component's acceptance criteria. Existing infrastructure does not prove a new component's readiness.
Public unstyled primitive boundary #4250 / #4288 Respect explicit root versus primitives exports and package source boundaries.

Observed current qualification follow-ups: Delivered milestones do not mean complete native/required coverage. #4342 tracks all-skipped WDIO selections reported as passed; #4343 covers complete accessibility; #4346 covers native state projection; #4347 restores focus-regression parity; #4349 qualifies/promotes required CI. #4344 tracks the currently excluded Windows Fabric Accordion/standalone Callout and Win32 Accordion/ListItem stories. Preserve these endpoint gates in consuming tasks instead of counting excluded modules or capability skips as successful validation.

Component-by-component backlog

Statuses describe readiness to author or implement, not completed product behavior. Every unchecked task still requires a reviewed local contract, implementation, exports, and acceptance evidence.

Done Issue Component Current assessment and prerequisites
[ ] #4218 avatar-group Ready for contract review; Avatar is implemented; no missing shared infrastructure.
[ ] #4219 breadcrumb Downstream component dependencies; Popover #4236, Menu #4232, and Tooltip #4249 remain missing on main.
[ ] #4220 combobox Overlay and native virtual-focus contract; Popover #4236 and shared Dropdown #4224 behavior; Input and ListboxItem already exist.
[ ] #4221 destructive-button Ready for contract review; Button is implemented; identity versus a Button appearance is a local contract decision, not an ingestion infrastructure blocker.
[ ] #4222 dialog Modal host and focus-containment decision; Callout/FocusZone foundations are delivered, but neither proves a cross-platform modal trap or scrim contract. Coordinate shared modal behavior with Drawer #4223.
[ ] #4223 drawer Inline authoring ready; overlay modal policy unresolved; Inline layout can start independently. Overlay mode needs shared host/scrim and focus policy coordinated with Dialog #4222; Popover #4236 is reusable infrastructure, not proof of a modal trap.
[ ] #4224 dropdown Popover and virtual-focus contract; Popover #4236 remains missing. Input and ListboxItem are implemented; Fabric FocusZone delivery does not settle active-option accessibility.
[ ] #4225 field Label and shared status-icon dependencies; Label #4228 and the status-icon asset contract owned by MessageBar #4233. InfoLabel #4226 is optional help composition, not a prerequisite for a basic Field.
[ ] #4226 info-label Label and Popover dependencies; Label #4228 and Popover #4236; Button and Icon are already implemented.
[ ] #4227 interaction-tag Ready for contract review; Tag, Avatar, Icon, and normal package export wiring are available.
[ ] #4228 label Ready for native contract review; Text and the contract-authoring workflow are available. HTML association must be adapted in this task, not deferred to the completed #4252.
[ ] #4229 link Ready for native contract review; Text, Icon, and native activation/focus foundations are available; web-only behavior is a local adaptation decision.
[ ] #4230 list Ready for collection contract review; ListItem, Checkbox, Radio, Divider, ref-backed focus helpers, and TabList roving-focus prior art are implemented. #4217 is completed. Win32 ListItem catalog coverage is currently excluded for a native crash (#4344), so qualify that child host before claiming endpoint readiness.
[ ] #4231 menu-button Menu dependency; Menu #4232, transitively Popover #4236. Button and MenuItem already exist.
[ ] #4232 menu Popover plus collection behavior; Popover #4236 is missing; MenuItem, Divider, Fabric FocusZone, and shared native focus targets are delivered.
[ ] #4233 message-bar Shared canonical status-icon asset decision; Button, Text, and Icon exist. semanticIconSources has generic glyphs but not a verified canonical four-status Fluent asset set.
[ ] #4234 nav-item Ready for contract review; CompoundItemLayout, Icon, Avatar, Badge, and ref/focus foundations are available.
[ ] #4235 nav NavItem dependency and collection policy; NavItem #4234 is missing. Accordion and delivered native/ref-backed focus foundations are available; there is no blanket overlay-wave prerequisite.
[ ] #4236 popover Ready for higher-order overlay contract review; Native Callout is a declared production dependency and its placement/platform work is merged (#4292 / #4291). Popover itself remains absent on main. Standalone Windows Fabric Callout stories are currently excluded for a native crash (#4344); qualify the actual consumer, commands, and focus behavior.
[ ] #4237 radio-group Label dependency and group behavior; Radio and native/ref-backed focus foundations are delivered. Label #4228 remains missing; no overlay dependency.
[ ] #4238 scrollbar Native-host and scroll-source decision; The missing contract is scroll metrics, thumb control, drag/capture, and hosting. Fabric registration/build prior art is delivered; #4217 is not a remaining blocker.
[ ] #4239 search-box Ready for contract review; Input, Button, Icon, and native editor ref/focus support are implemented.
[ ] #4240 select Native picker versus composed adaptation decision; Browser-native select has no equivalent contract in the agentic package. Fabric host prior art exists; no remaining #4217 or #4252 prerequisite.
[ ] #4241 simple-nav NavItem and Tooltip dependencies; NavItem #4234 and Tooltip #4249 (transitively Popover #4236). Native/ref-backed focus foundations exist.
[ ] #4242 split-button Menu dependency and two-region focus contract; Menu #4232, transitively Popover #4236. Button/ref/focus foundations already exist.
[x] #4243 tablist Completed on main; Delivered in #4296; subsequent ref-backed focus/accessibility work landed in #4314. Keep this generation issue closed.
[ ] #4244 teaching-popover Popover dependency; Popover #4236; content/layout and step-state contract authoring can proceed now.
[ ] #4245 textarea Native no-resize/growth contract decision; Input/TextInput and focus foundations exist. CSS drag-resize parity is not supplied by the current native contract; #4252 is completed.
[ ] #4246 toast Candidate source admission plus host/icons decisions; Toast is not in the 49-entry admitted source lock. It appears in the checked-in 2026-08-31 candidate snapshot; source admission is required for Flex-backed authoring. Status icons #4233 and Link #4229 remain dependencies.
[ ] #4247 toggle-button State-ownership decision confirmed; contract review can start; Button and useToggleState are implemented. The ownership gate in #4215 is resolved; remaining source/spec alignment is follow-through, not an undecided behavior prerequisite.
[ ] #4248 toolbar Collection review ready; ToggleButton for toggle members; Button already forwards its native root ref, Divider exists, and ref-backed/TabList focus foundations are delivered. ToggleButton #4247 is required for actual toggle members, not selected-looking Buttons.
[ ] #4249 tooltip Popover dependency; reusable unmerged implementation; Popover #4236 remains missing on main. Native Callout hosting exists, but Tooltip's trigger relationship, timing, and noninteractive behavior remain consumer work.

Ordering and remaining decisions

  1. Start/review the foundation-available contracts and reuse unmerged work only after reconciling it with current main. ToggleButton can now start its contract review under the confirmed ownership boundary.
  2. Prioritize Popover Components: Generate Popover #4236 as the anchored-popup owner, then Menu Components: Generate Menu #4232, Dropdown Components: Generate Dropdown #4224, and Tooltip Components: Generate Tooltip #4249. Their downstream tasks name their actual dependencies; List, RadioGroup, Nav, and Toolbar are not blanket-blocked on an overlay wave.
  3. Run collection/navigation authoring in parallel with popup work. TabList is existing ref-backed roving-focus prior art. Any direct production FocusZone dependency must explicitly resolve the current dev-dependency/source-boundary policy; do not silently import it.
  4. Resolve canonical status icons once in MessageBar Components: Generate MessageBar #4233 for Field and Toast. Resolve modal host/scrim/trap policy in Dialog/Drawer, native virtual-focus policy in Dropdown/Combobox, native-host versus reduced/declined contracts in Scrollbar/Select, and no-resize/growth policy in Textarea.
  5. Admit or explicitly adapt Toast's source before Flex-backed generation. Persona and PresenceBadge are untracked candidate additions, not admitted release gaps; source admission and separate task creation are follow-ups, not invented completions in this hierarchy.

Scope and closure rules

  • Catalog membership is defined by the checked-in admitted source lock. Candidate additions and local foundations are separate named sets.
  • First-class catalog components keep their own tasks. A deliberate alias, reduced contract, or decline must be reviewed and recorded in both the task and catalog reconciliation; none is silently dropped.
  • Subparts belong to their parent task unless separately cataloged. Public unstyled primitives do not count as missing higher-order Flex entries.
  • Target Windows/macOS, with desktop V1 Win32 compatibility evidence. Do not treat mobile companions as the cross-platform canonical contract.
  • Components: Component tests for the agentic component library #4216 (coverage) and Components: Component readiness model and initial assessment #4251 (readiness) remain delivery gates, not reasons to defer all contract authoring. Record actual native qualification and capability gaps rather than inferring production readiness from unit tests or bundling.
  • Close a generation task only after its reviewed implementation is merged, or after an explicitly approved nonimplementation disposition. Keep this rollup open while the admitted gap and tracked decisions remain.

Evidence

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions