Skip to content

Components: Missing components #4273

Open
1 of 32 issues completed
Open

Description

@JasonVMo

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