v0.5.0

longbridge/gpui-kitv0.5.0Dec 8, 2025by huacnlee

AI Summary

A major feature release with significant improvements across multiple components including ColorPicker, ContextMenu, Divider, Dock, Editor, Input, List, Menu, Chart, Scrollbar, Settings, Sidebar, Table, Tab, TextView, Theme, TitleBar, and Webview.

Key Highlights

  • Added new Settings component
  • Added candlestick chart and stacked chart support
  • Major scrollbar API refactor
  • Added InlineCompletion LSP support for Editor
  • Added dashed divider support

New Features

  • ColorPicker: Add radius on focus border
  • ColorPicker: Only change value when confirmed
  • ContextMenu: Prevent mouse events when menu popped out
  • Divider: Add support for dashed divider
  • Dock: Render title bar based on visible panels
  • Dock: Use visible_panels method
  • Dock: Refactor Panel trait with &mut self and &mut Context<Self>
  • Dock: Simplify DockItem API
  • Editor: Add InlineCompletion LSP support
  • Editor: Improve scroll to support position at edge of editor
  • Input: Fix scroll to offset for soft wrap mode
  • Input: Change input text size to smaller
  • Input: Adjust blink cursor height
  • Input: Support CodeEditor as single line mode
  • List: Refactor ListDelegate for easier delegate access
  • List: Fix list item overflow
  • Menu: Use defer to avoid race conditions
  • Menu: Add check_side to PopupMenu
  • Chart: Add support for stacked chart
  • Chart: Add candlestick chart
  • Scrollbar: Remove uniform_scroll, use vertical instead
  • Scrollbar: Manage ScrollbarState internally
  • Scrollbar: Introduce overflow_scrollbar
  • Setting: Add Settings component
  • Sidebar: Refactor to support Styled
  • Sidebar: Fix group and items gap
  • Table: Refactor TableDelegate for easier access
  • Table: Add render_header method for custom table header
  • Tab: Allow tab item to fill remaining space
  • TextView: Adding optional code block actions
  • Theme: Update macos-classic theme colors
  • Theme: Add switch.thumb.background theme config
  • TitleBar: Improve Styled support
  • TitleBar: Fix drag area on macOS
  • Webview: Public raw wry webview handle

Full Release Notes

## ColorPicker
- color_picker: Add radius on focus border by @madcodelife in #1652
- color_picker: Only change value when it's confirmed by @madcodelife in #1682

## ContextMenu
- context_menu: Prevent mouse events when menu popped out by @madcodelife in #1750

## Divider
- divider: Add support for dashed divider by @madcodelife in #1730

<img width="454" height="198" alt="image" src="https://github.com/user-attachments/assets/8a280c21-8004-4eea-8706-85b4fcebba6f" />

## Dock
- dock: Render title bar based on visible panels by @madcodelife in #1697
- dock: Use `visible_panels` method by @madcodelife in #1698
- dock: Refactor Panel trait to has `&mut self` and `&mut Context<Self>` by @huacnlee in #1716
- dock: Fix title method missed thing in PR #1716 by @huacnlee in #1718
- dock: Improve Panel trait changed `title` to return `impl IntoElement` by @huacnlee in #1719
- dock: Fix tab panel first tab left border overlap issue by @madcodelife in #1734
- dock: Simplify DockItem API by @huacnlee in #1732

## Editor
- editor: Add InlineCompletion LSP support by @duanebester in #1736

https://github.com/user-attachments/assets/8e437f1e-9792-4417-b070-0a1dd8de6024

- editor: Improve scroll to support position at the edge of the editor on click by @huacnlee in #1672
- editor: Fix cursor direction not resetting after mouseup by @FlyingYu-Z in #1708

## Input
- input: Fix scroll to offset to support soft wrap mode by @huacnlee in #1671
- input: Change to input text size to smaller by @huacnlee in #1703
- input: Adjust blink cursor height by @huacnlee in #1704
- input: Add to support CodeEditor as single line mode by @zanmato in #1696

<img width="451" height="106" alt="image" src="https://github.com/user-attachments/assets/f466083f-1e16-4c6a-9492-a7b73b8f5043" />

- input: Fix resetting highlighting for single line code editor by @zanmato in #1742
- input: Fix wrong font being used in Input by @zanmato in #1706

## List
- list: Refactor ListDelegate to easy access delegate by @huacnlee in #1713
- list: Fix list item may overflow by @huacnlee in #1726

## Menu
- menu: Use defer to avoid race conditions with click listeners by @zanmato in #1651
- menu: Add `check_side` to PopupMenu to support display check at right side by @huacnlee in #1677

## Chat
- plot: Add support for stacked chart by @madcodelife in #1681
- chart: Add candlestick chart by @amiyzku in #1749

<img width="337" height="424" alt="SCR-20251126-puzm" src="https://github.com/user-attachments/assets/eff9e2d0-c13a-449a-b717-9568e0c2f88d" />

<img width="330" height="410" alt="image" src="https://github.com/user-attachments/assets/7b48079f-cb84-4c77-b495-2f1bbb449112" />

## Scrollbar

Refactor Scrollbar API to easy to use, and tidy scrollbar position in entire of components.

<img width="1181" height="911" alt="image" src="https://github.com/user-attachments/assets/8b02cd54-d527-4f22-b9be-f762ede22122" />

- scrollbar: Remove `Scrollbar::uniform_scroll`, use `Scrollbar::vertical` instead by @huacnlee in #1659
- scrollbar: Manage ScrollbarState in Scrollbar internal by @huacnlee in #1690
- scrollbar: Introduce `overflow_scrollbar` to adds Scrollbars to elements by @huacnlee in #1694

## Setting
- setting: Add Settings component by @huacnlee in #1632

https://github.com/user-attachments/assets/3c6315d9-1183-419c-bb17-a8f7ac0cf25c

## Sidebar
- sidebar: Refactor Sidebar to support `Styled` by @huacnlee in #1658
- sidebar: Fix Sidebar group and items gap by @huacnlee in #1705

## Table
- table: Refactor TableDelegate to easy to access delegate by @huacnlee in #1712
- table: Add `render_header` method to support custom table header by @huacnlee in #1746

## Tab
- tab: Allow tab item to fill remaining space by @obito-t in #1654

## TextView
- text_view: Adding optional code block actions to the TextView by @duanebester in #1725
<img width="627" height="535" alt="Screenshot 2025-12-01 at 8 38 22 PM" src="https://github.com/user-attachments/assets/cae67b43-bba8-4834-a060-4bd63d34aefd" />

## Theme
- theme: Update macos-classic list even color and improved details by @obito-t in #1679, #1699, #1702
- theme: Add `switch.thumb.background` theme config support by @han1548772930 in #1685
- theme: Use difference color like the window background for TitleBar by @huacnlee in #1686

## TitleBar
- title_bar: Improve Styled support to TitleBar by @huacnlee in #1693
- title_bar: Fix TitleBar drag area on macOS, and only handle show window menu when it supports by @huacnlee in #1710
- title_bar: Remove window control bg color in normal mode by @huacnlee in #1720

## Webview
- webview: Public the raw wry webview handle by @madcodelife in #1739

## Others
- chore: Update to use Rust edition 2024 by @huacnlee in #1669
- chore: Fix dialog scroll by #1694 change by @huacnlee in #1695
- docs: Fix minor docs issues by @zanmato in #1656
- docs: Remove outdated note on README by @huacnlee in #1700
- docs: Add icons for page background to website by @huacnlee in #1701
- docs: Fix typo in notifications doc by @huacnlee in #1747

**Full Changelog**: https://github.com/longbridge/gpui-component/compare/v0.4.2...v0.5.0