Skip to content

Base UI 1.8.0 differences in Select, Tooltip, Combobox, Dialog and AlertDialog #841

Open

Description

@Ernxst

This tracking issue records consumer-visible differences found while comparing GPU-IX with Base UI 1.8.0. The comparison used the v1.8.0 source tag.

Differences found

Tooltip

The Tooltip parity suite and behaviour fixes were merged in PR #871 as commit 072594aa7781afa33c1d1fbea7bab8bc173c7ede. The PR fixes 24 of 47 baseline failures. Twenty-three nested-Trigger cases remain unresolved under #859: the attempted implementation failed the Windows React shard 2/3 focus test, so those changes and tests were withdrawn from the PR. The other 109 Tooltip parity tests pass locally after withdrawal. Nineteen additional cases need native renderer support and are listed in the PR. Tooltip.Viewport transition behaviour remains tracked separately in #879 because the native renderer cannot retain a previous rendered subtree or observe animation completion.

  1. #845 — Tooltip.Popup renders without its required Positioner: now throws when Popup is outside Positioner.
  2. #846 — Tooltip change event details lack cancel and allowPropagation: event details expose both methods; canceled changes and Escape propagation match Base UI.
  3. #847 — Tooltip emits controlled no-op changes and mounts closed content: controlled roots ignore no-op state notifications and closed content stays unmounted.
  4. #848 — Tooltip.Arrow is not hidden from assistive technology: the decorative Arrow defaults to aria-hidden="true".
  5. #849 — Tooltip handles silently ignore unregistered trigger IDs: unknown trigger IDs throw a descriptive error.
  6. #851 — Tooltip.Positioner offsets do not use resolved placement, related to closed #776 — Floating Popup props omit Base UI anchor positioning options: Tooltip.Positioner defaults collisionAvoidance.align to flip, so the ten sideOffset and alignOffset checks report Base UI’s resolved end alignment.
  7. #852 — Tooltip handles omit warnings for missing or duplicate Roots: missing and duplicate Root attachment warnings match Base UI.
  8. #853 — Tooltip Positioner ignores disableHoverablePopup: the Positioner applies pointer-events: none when requested.
  9. #856 — Tooltip handle does not switch payload while open: open handoffs update the active trigger payload while retaining the popup and Positioner.
  10. #857 — Tooltip stays open after its active detached trigger unmounts: removing the active trigger closes the Tooltip.
  11. #859 — Tooltip.Trigger drops nested children when rendering a custom element remains open. The attempted nested-Trigger fix left the outer Tooltip mounted when focus moved to the nested Trigger on Windows React shard 2/3; PR fix(react): match Base UI Tooltip behaviour #871 withdraws that implementation and its tests. The CI evidence is run 37064016778.
  12. #862 — Tooltip handle loses its active Root during an overlapping handoff: an overlapping Root handoff keeps the handle attached to the incoming Root.
  13. Existing #834 — Focus-opened tooltips remain visible after Tab moves on was not refiled. The copied Satisfactory wrapper test passes against the packed PR build and is recorded with its exact command and output in the Tooltip table.
  14. #885 — Tooltip.Positioner renders outside Tooltip.Portal without reporting the missing Portal: Positioner now reports the missing Portal composition error.
  15. #879 — Tooltip.Viewport drops previous content during animated trigger changes: GPU-IX replaces current content but cannot retain the previous rendered subtree or observe animation completion; ten related transition and direction cases remain out of the parity suite for missing native renderer support.

Combobox

  1. #839 — Combobox.List function children receive unknown instead of the Root item type. Base UI's object-values, item-IDs, and memoized-list examples infer the item type from Root.items. GPU-IX emits TS18046 or TS2322 for the same examples. Reproductions are packages/react/type-tests/base-ui-check-docs/combobox-02.tsx, combobox-04.tsx, and combobox-12.tsx on branch base-ui-check.
  2. #840 — Combobox.Value function children receive unknown instead of the selected value type. A typed selected-value callback in Base UI's “Limiting visible chips” example fails against GPU-IX with TS2322. Reproduction: packages/react/type-tests/base-ui-check-docs/combobox-07.tsx on branch base-ui-check.

Inventory counts

Counts include source test cases after expanding parameterised variants, documentation examples, and both CSS Modules and Tailwind sources for each documentation demo. Tooltip has 108 applicable rows passing after the 24 fixes and 23 applicable nested-Trigger rows still failing under #859. Eight rows do not apply, and nineteen rows need native test support that the renderer does not provide.

Component Applies and passes Applies and fails Does not apply Not ported Total rows
Select 9 0 0 295 304
Tooltip 108 23 8 19 158
Combobox 10 4 7 648 669
Dialog 9 0 0 163 172
AlertDialog 6 0 0 42 48
Total 142 27 15 1,167 1,351

The Tooltip table is stored at $BB_THREAD_STORAGE/base-ui-check-tooltip.md. Tooltip documentation code samples and CSS Modules/Tailwind demos typecheck against both Base UI and GPU-IX with exactOptionalPropertyTypes. The latest native Tooltip parity run after withdrawing nested-Trigger tests has 109 tests: 109 passed, 0 failed, and none skipped. The 19 cases that remain out name their required missing renderer support in the table and PR #871. Pull-request CI run 37066776451 passed on macOS, Linux and Windows. The nested-trigger behaviour in #859 remains unverified because its failing tests and attempted fix were withdrawn from the PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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