Skip to content

gpuicn v0.8.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 16:08
· 54 commits to main since this release
2c6042c

gpuicn v0.8.0

The runtime moves to GPUI Kit 0.9.0 on gpui-pre 0.3.11, with gpui-icons
0.6.0. This release also fixes the rendering and interaction problems found
while reviewing the 0.7 chat components in the catalog, most of them in dark
mode. Keep these pins together:

gpui_platform = { package = "gpui-pre-platform", version = "=0.3.11", features = ["font-kit"] }
gpui-icons = "=0.6.0"
gpui-kit = { version = "=0.9.0", default-features = false, features = ["component"] }

GPUI Kit 0.9 makes its public theme structs #[non_exhaustive], so struct
literals such as Theme { .., ..Default::default() } no longer compile.
Start from Default::default() and assign fields. See the GPUI Kit
release notes.

gpui-pre 0.3.11 no longer installs a Fetch client on the web. A browser app
that shows images from URLs must pass one in:

let platform = gpui_kit::web::WebPlatform::new_with_backend(true, backend);
let http_client = std::sync::Arc::new(platform.fetch_http_client());
Application::with_platform(std::rc::Rc::new(platform)).with_http_client(http_client)

Fixes

  • Rounded corners: GPUI clips children to a rectangle, so square content
    poked past rounded frames, most visibly in dark mode. Command and Emoji
    Picker paint their surface on the rounded root, Attachment and Markdown
    images take the frame's inner radius, and thumbnail images take the frame's
    aspect ratio so tall images no longer overflow.
  • Attachment: the upload bar stays clear of the rounded corners on file
    cards and image thumbnails.
  • Dialog: pressing the backdrop closes the dialog again, and the same for
    the mobile sidebar sheet. Alert dialogs still ignore it.
  • Dark theme: the modal scrim is 50% black, since GPUI has no backdrop
    blur to pair with shadcn's 10%. The Kit theme now starts from Kit's palette
    for the active mode, so colors gpuicn doesn't set, such as scrollbar
    tracks, no longer keep light values in dark mode.
  • Scroll Area: the scrollbar has no track in any state.
  • Kbd and Command: modifier and arrow symbols draw as icons, because the
    browser build has no fallback font for them. kbd::key_label draws the
    same inline.
  • Message: a continuation row's hover time floats in the gutter, so
    hovering no longer changes the row's height.

Emoji Picker

Recents set after a pick now wait for the next EmojiPickerState::open, so
picking several emoji doesn't shift the grid. Call open each time you show
the picker; it applies the held recents and focuses the search field.

Upgrading

Update the pins above together, then run gpuicn diff and
gpuicn add <component> --overwrite for the components you use. The theme,
dialog, command, kbd, emoji picker, attachment, markdown, message, scroll area
and sidebar sources changed.