audit combobox

This commit is contained in:
2026-11-08 11:00:39 +07:00
parent 21d32736a8
commit abb56567e4
7 changed files with 315 additions and 257 deletions
+22 -1
View File
@@ -130,12 +130,33 @@ Gaps surfaced by the signed comparison; ordered by signed's usage.
`Theme::borders.overlays` (and dark mode), taking the surface color
where the platform paints none; it rides the popover elevation, so
dark mode's no-shadow rule applies to it too
- [x] Combobox platform chrome — the popup border behind
`Theme::borders.overlays` (and dark mode), taking the surface color
where the platform paints none, and riding the popover elevation for
the light-mode shadow; the trigger is a plain `Input`, so it
already carries the full field treatment, and the chevron recenters on
the field's full height, border included; the popup mounts on
`deferred(anchored().offset(...))` like the Popover — out of the
wrapper's layout, one spacing gap below, window-clamped — and always
matches the combobox's width; the combobox itself is no longer full
width: it takes a compact default and style refinements on the builder
(`.w(...)`) set the width; the empty field keeps its placeholder while
focused (`Input::placeholder_when_focused`) and clicking into it opens
the options right away, with no keystroke needed
- [x] Combobox platform chrome — the popup border behind
`Theme::borders.overlays` (and dark mode), taking the surface color
where the platform paints none; the trigger is a plain `Input`, so it
already carries the full field treatment, and the chevron recenters on
the field's full height, border included
- [x] Button, Checkbox, Switch, Radio + RadioGroup, Toggle, Link, Slider,
Progress, Avatar (image + seeded pixel-art fallback)
- [x] Spinner — painted ring + rotating-icon variant, indeterminate and
determinate; replaces `Tab::busy`'s placeholder
- [x] Input — single-line, password with reveal, multiline, undo/redo, actions
+ key context, caret blink
+ key context, caret blink (time-math driven: the focused field mounts a
repeating blink animation whose frames redraw the caret, the caret is
solid for one interval after each edit, and an idle unfocused page
schedules no frames)
- [x] ScrollArea, Popover, Menu, Tooltip, Dialog / AlertDialog, Toast,
Alert + alerts stack
- [x] Select, Segmented, ContextMenu, EmptyState, Badge