Port · Parity: every page matches gpui 0.2.2's; the rules re-tested
Every page and scripted state was shot with gpui 0.2.2 and with the port, light and dark, full width and at 280px, judged pair by pair by agents with skeptics, and every page's log diffed. What differed is fixed, each with a test that fails without it where the test platform can show it: - The gallery's harness takes posted mouse moves (gpui_macos listens to a tracking area), posts each drag move twice (it no longer replays a held drag), and waits three frames before each shot. - Rolling digits: a block column, so taffy 0.13 lends the cell no baseline, and a line of whole device pixels, since gpui snaps each length on its own. DescriptionList's row aligns ends. - Margins that taffy 0.13 collapses through a plain block: the drawer's pull and snap, the stagger and transition rise, the dialog and palette rises, the fullscreen dialog's slide. - An Input keeps room to type in a squeezed row; the field rows drop w_full, whose reason was taffy 0.9's. AGENTS.md's rules that named gpui 0.2.2 or taffy 0.9 were re-tested against both sources and rewritten, and new ones say what the port changed. TASKS.md's tags follow: what the new gpui makes possible is prove. Captions, doc comments and README say what holds now.
This commit is contained in:
1 parent
3189df013f
commit
3f1597fa28
44 files changed
+535
-138
No files matched your search
+3
-3
@@ -17,7 +17,7 @@
|
||||
- [x] Show / When — native `.when()` / `.when_some()`
|
||||
- [x] For / Each — native `.children(iter)`
|
||||
- [x] Fragment — native: children take iterators
|
||||
- [x] VisuallyHidden — blocked: gpui 0.2.2 has no accessibility tree
|
||||
- [ ] VisuallyHidden — prove: gpui builds an AccessKit tree on macOS, Windows and Linux, not the web, from elements with an id and a `role`; a box that draws nothing, with an `aria_label`, must reach the macOS tree with its label
|
||||
- [x] FocusRing
|
||||
- [x] FocusScope / FocusTrap
|
||||
- [x] ClickOutside — native `on_mouse_down_out`
|
||||
@@ -129,7 +129,7 @@
|
||||
- [x] TrayIcon / TrayMenu — macOS `NSStatusItem`; other systems get an error
|
||||
- [x] DockBadge — macOS dock tile; other systems get an error
|
||||
- [x] JumpList — native `cx.set_dock_menu()`
|
||||
- [x] SystemNotification — blocked: an unbundled app has no notification center; gpui 0.2.2 has no API
|
||||
- [ ] SystemNotification — prove: on macOS `cx.show_system_notification` posts only from an app bundle; unbundled, as `cargo run` starts it, gpui logs and drops the call, so Ely must check the bundle identifier and fail loud. A bundled gallery must post one and hand its response to the owner through `on_system_notification_response`
|
||||
- [x] MultiWindow Manager
|
||||
- [x] WindowSwitcher
|
||||
- [x] QuickLauncher → `navigation::QuickLauncher` (T07c): a SearchPalette in an always-on-top window
|
||||
@@ -205,7 +205,7 @@
|
||||
- [x] RadioCard
|
||||
- [x] Switch / Toggle
|
||||
- [x] Select
|
||||
- [x] NativeSelect — blocked: gpui 0.2.2 has no native popup menu
|
||||
- [x] NativeSelect — blocked: gpui has no native popup menu
|
||||
- [x] Combobox
|
||||
- [x] Autocomplete → `forms::Combobox::free`
|
||||
- [x] MultiSelect
|
||||
|
||||
+2
-2
@@ -27,7 +27,7 @@
|
||||
|
||||
## T11c Motion · Presence & order — `src/motion`
|
||||
|
||||
- [x] Transition — fade, slide, scale, collapse → `motion::Transition` fades, rises and slides; collapse is `layout::Collapsible`; scale is blocked: gpui 0.2.2 transforms only icons
|
||||
- [x] Transition — fade, slide, scale, collapse → `motion::Transition` fades, rises and slides; collapse is `layout::Collapsible`; scale is blocked: gpui transforms only svgs
|
||||
- [x] AnimatePresence → `motion::AnimatePresence`
|
||||
- [x] Motion → gpui's `with_animation`, timed by `motion::duration` and eased by the curves in `motion`
|
||||
- [x] Spring → `motion::spring`
|
||||
@@ -46,7 +46,7 @@
|
||||
- [x] Shake → `motion::Shake`
|
||||
- [x] ParticleBackground → `motion::ParticleBackground`
|
||||
- [x] AnimatedGradient — slow tonal drift → `motion::AnimatedGradient`
|
||||
- [x] Lottie Player — blocked: gpui 0.2.2 paints paths without the clip masks, mattes, blend modes and radial gradients Lottie files lean on, so frames would come out wrong
|
||||
- [x] Lottie Player — blocked: gpui paints paths without the clip masks, mattes, blend modes and radial gradients Lottie files lean on, so frames would come out wrong
|
||||
|
||||
## T12a Data Display · People & numbers — `src/data_display`
|
||||
|
||||
|
||||
+8
-8
@@ -225,12 +225,12 @@
|
||||
- [x] DragGhost → DragPreview (native)
|
||||
- [x] Sortable / SortableContext → `motion::Reorder`
|
||||
- [x] Resizable
|
||||
- [x] Rotatable — an svg: gpui 0.2.2 turns no other element
|
||||
- [x] Rotatable — an svg: gpui turns no other element
|
||||
- [x] Selectable / SelectionArea
|
||||
- [x] RubberBandSelection → `interaction::SelectionArea`
|
||||
- [x] LongPress → `primitives::Pressable`
|
||||
- [x] DoubleClick — native `ClickEvent::click_count`
|
||||
- [x] Gesture — prove: wheel zoom through `layout::Viewport`, two-finger swipe through `lists::SwipeableListItem`; pinch blocked, gpui 0.2.2 forwards no magnify event
|
||||
- [ ] Gesture — prove: wheel zoom through `layout::Viewport`, two-finger swipe through `lists::SwipeableListItem`; pinch is not yet shown: gpui hands a trackpad magnify to `on_pinch` as a `PinchEvent`, and `layout::Viewport` must zoom about the pointer on one
|
||||
- [x] PanZoom → `layout::Viewport`
|
||||
|
||||
## T38b Interaction · Keys, scroll and focus
|
||||
@@ -269,7 +269,7 @@
|
||||
- [x] IconThemeProvider → `primitives::IconTheme`, an owner's rules by name and extension over `file_icon`
|
||||
- [x] Platform Style → `theme::Platform`, the theme's `platform`: the window buttons Ely draws, the title bar, key caps
|
||||
- [x] VibrancyBackground / Acrylic → `shell::Vibrancy` in a window opened `WindowBackgroundAppearance::Blurred`
|
||||
- [ ] Mica — blocked: gpui 0.2.2's one blur, `Blurred`, is acrylic on Windows
|
||||
- [ ] Mica — prove: a window opened `WindowBackgroundAppearance::MicaBackdrop` or `MicaAltBackdrop` gets a DWM backdrop from Windows 11 build 22621, none on older builds, in silence, and plain transparency on macOS; `shell::Vibrancy` must show Mica through its `glass` on Windows 11, where the capture harness does not run
|
||||
|
||||
## T40a i18n — `src/i18n`
|
||||
|
||||
@@ -280,12 +280,12 @@
|
||||
|
||||
## T40b a11y — `src/i18n`
|
||||
|
||||
- [ ] LiveRegion / Announcer — blocked: gpui 0.2.2 has no accessibility tree; AppKit's announcement request needs none, but no process here is trusted to observe VoiceOver take it
|
||||
- [ ] LiveRegion / Announcer — prove: gpui has no live setter, but `a11y_synthetic_children` hands over the element's own AccessKit node, which takes `set_live`; on macOS AccessKit then posts an announcement of the node's value when it appears and each time the value changes. A box with an id, a `role` and its words in `aria_value` must show each new value in the macOS tree. Neither that tree nor `Window::debug_a11y_tree_json` shows the live flag, and no process here is trusted to observe VoiceOver take the announcement
|
||||
- [x] SkipLink → `i18n::SkipLink`: a Tab stop in flow that shows only while focused, raised over the page, and hands focus to its target
|
||||
- [ ] AccessibleIcon — blocked: no accessibility tree
|
||||
- [ ] AriaLabel helper — blocked: no accessibility tree
|
||||
- [ ] AccessibleIcon — prove: an svg makes no node, so an `Icon` takes its name from a box around it with an id, `role(Role::Image)` and an `aria_label`; that box must reach the macOS tree with its name
|
||||
- [ ] AriaLabel helper — prove: gpui's own `aria_label`, on an element with an id and a `role`; plain strings make no node, so a control's name goes on its box. A labeled button must reach the macOS tree with its name
|
||||
- [x] KeyboardNavigationHelper → `interaction::RovingFocus`
|
||||
- [ ] ScreenReaderOnly — blocked: no accessibility tree
|
||||
- [ ] ScreenReaderOnly → VisuallyHidden (prove)
|
||||
- [x] ColorBlindSafe Palette → `Theme::set_color_blind_safe`: chart hues fitted to stay apart under Machado's simulated protanopia, deuteranopia and tritanopia, each 3:1 on its page
|
||||
|
||||
## T41a Maps · View — `src/maps`
|
||||
@@ -343,7 +343,7 @@
|
||||
- [x] WebView — proven: `wry` 0.57 lays a child WKWebView over the window → `misc::WebView`, an address or the owner's HTML, following its box each frame and hidden out of view; it draws above gpui and ignores its clipping, and a press anywhere gpui draws, or the view leaving, hands the keyboard back. macOS only
|
||||
- [x] IframeEmbed / EmbedCard → `misc::IframeEmbed`, a page in a frame of its own under its address, with Open in browser; EmbedCard is `chat::LinkPreviewCard`
|
||||
- [x] HTMLPreview → `misc::WebView`
|
||||
- [x] PrintButton — blocked: gpui 0.2.2 has no print API
|
||||
- [x] PrintButton — blocked: gpui has no print API
|
||||
- [x] ShareSheet → `buttons::ShareButton`
|
||||
|
||||
## T42g Misc · Export and import
|
||||
|
||||
Reference in new issue
Block a user