longbridge/gpui-component
 Watch   
 Star   
 Fork   
2025-12-08 10:54:12
gpui-component

v0.5.0

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

image

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

image

  • 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

SCR-20251126-puzm

image

Scrollbar

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

image

  • 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

Screenshot 2025-12-01 at 8 38 22 PM

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

2025-11-27 10:06:47
gpui-component

v0.4.2

  • menu: Use defer to avoid race conditions with click listeners by @zanmato in #1651
  • input: Fix scroll to offset to support soft wrap mode. by @huacnlee in #1671
  • editor: Improve scroll to support position at the edge of the editor on click. by @huacnlee in #1672
  • tab: Allow tab item to fill remaining space. by @obito in #1654
  • chore: Upgrade tracing-subscriber to fix CVE-2025-58160 @orbisai0security by in #1678
2025-11-20 17:26:14
gpui-component

v0.4.1

Button

  • button: Add dropdown_caret option to show a caret icon to end of button. by @huacnlee in #1637

Chart

  • chart: Add support to set stroke color on LineChart by @madcodelife in #1629

Dock

  • dock: Don't close tab via action when it can't be closed via context menu by @CherryWorm in #1581
  • dock: Add a way for Panels to track the tab bar they belong to by @CherryWorm in #1580

DropdownButton

  • dropdown_button: Add more button option methods to DropdownButton. by @huacnlee in #1633

Editor

  • editor: Fix may crash on render indent guides. by @huacnlee in #1619

Icon

  • icon: Rework icons to make use of the IconNamed trait by @andreaskrath in #1640

Input

  • input: Avoid blocking vertical scroll events in single-line mode (#1562) by @chulingera2025 in #1572
  • input: Fix x offset resetting for single line inputs by @zanmato in #1591

List

  • list: Fix incorrect selected item background color by @madcodelife in #1648

Menu

  • menu: Fix icon width to tidy indent in PopupMenuItem. by @madcodelife in #1620

Notification

  • notification: Fix close animation not working when closed from content by @Moulberry in #1578

NumberInput

  • number_input: Improve style details by @madcodelife in #1606
  • number_input: Use input border on the buttons by @madcodelife in #1634

Resizable

  • resizable: Improve to avoid panels from improperly resizing on container resizing. by @CherryWorm in #1560

Resizable & Dock

  • resizable, dock: Improve Panel adjust size logic on layout changed. by @CherryWorm in #1588

Root

  • root: Improve new method argument to use into <AnyView>. by @huacnlee in #1594

Select

  • select: Add render prop to customize item title display. by @obito-t in #1638

Sidebar

  • sidebar: Improve Sidebar to allows caret icon to expand submenu. by @huacnlee in #1642
  • sidebar: Add to support disable state to sidebar item. by @adriano-tumino in #1645

Slider

  • slider: Remove thumb tooltip by @CherryWorm in #1582

Table

  • table: Split TableState to state.rs by @huacnlee in #1599
  • table: Use click event instead of mouse down event by @madcodelife in #1622

Theme

  • theme: Use font_family for all elements. by @huacnlee in #1618
  • theme: Fix Flexoki Light focus color. by @huacnlee in #1647

Tiles

  • tiles: Add auto-snap support for tiles panel to top and left edges by @ihavecoke in #1577

New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v0.4.0...v0.4.1

2025-11-17 10:04:39
gpui-component

v0.4.0

Break Change

In this version we have make a lot of breaking changes to improve the overall API consistency and usability.

If you are upgrading from v0.3.x, please check the changelog carefully and adjust your code accordingly, the PR links are provided for more details of each change.

  • breadcrumb: Rename item to child and add children method. by @huacnlee in #1519
  • clipboard: Removed content method from Clipboard. by @huacnlee in #1520
  • dialog: Rename Modal to Dialog. by @huacnlee in #1538
  • form: Renamed column to columns. by @huacnlee in #1522
  • form: Rename FormField to Field. by @huacnlee in #1539
  • input, select, date_picker: Refactor cleanable to have argument and default to false. by @Moulberry in #1506
  • list, table: Refactor List, Table to have ListState, TableState. by @huacnlee in #1468
  • notification: Add &mut Self to content and action method. by @huacnlee in #1569
  • radio: Rename on_change to on_click for RadioGroup. by @huacnlee in #1517
  • resizable: Simplify Resizable API. by @huacnlee in #1459
  • select, list: Update searchable default to false. by @huacnlee in #1504
  • sheet: Rename Drawer to Sheet. by @huacnlee in #1527
  • spinner: Rename Indicator to Spinner. by @huacnlee in #1526
  • tab: Refactor creation to use builder pattern by @madcodelife in #1553
  • table: Change context_menu method in TableDelegate to mutable window and cx. by @huacnlee in #1487
  • toggle: Refactor Toggle, ToggleGroup API. by @huacnlee in #1515

What's New

Assets

Button

  • button: Remove duplicate disabled style by @madcodelife in #1529
  • button_group: Add vertical by @Moulberry in #1537
  • button_group: Fix overriding button click when no on_click by @Moulberry in #1546

Chart

  • chart(pie): Support dynamic inner and outer radius by @madcodelife in #1444
  • chart(bar): Fix the label is not centered by @madcodelife in #1448

Collapsible

  • collapsible: Add Collapsible. by @huacnlee in #1525

ContextMenu

  • context_menu: Fix ContextMenu to cover parent element area. by @huacnlee in #1566

Input & Editor

  • editor: Fix indent guides render position. by @huacnlee in #1524
  • input: Improve double-click for word selection by @FlyingYu-Z in #1491
  • input: Delete selected text with modifier keys by @Moulberry in #1497
  • input: Avoid blocking vertical scroll events in single-line mode by @chulingera2025 in #1572
  • input: Fix x offset resetting for single line inputs by @zanmato in #1591

Field

  • form(field): Fix label line break not working by @madcodelife in #1558

Label

  • label: Fix Label highlight may crash of not a char boundary. by @huacnlee in #1574

List

  • list: Fix incorrect next selection when select index is none by @madcodelife in #1498
  • list: Add searchable, search_placeholder option to List and Select. by @huacnlee in #1503
  • list: Avoid select item when selectable(false). by @huacnlee in #1508

Menu

  • menu: Add item and export PopupMenuItem with builder methods to PopupMenu. by @huacnlee in #1445
  • menu: Fix #1545 Popover change broken submenu click in dropdown menu. by @huacnlee in #1563

Modal

  • modal, drawer: Block background interaction when Modal, Drawer is active. by @FlyingYu-Z in #1483
  • modal: Adjust close button position. by @huacnlee in #1532

NumberInput

  • number_input: Improve style details by @madcodelife in #1606

Popover

  • popover: Renamed no_style to appearance like the Input. by @huacnlee in #1523
  • popover: Improve Popover API. by @huacnlee in #1545
  • popover: Fix #1545 incorrect to sync on_open_change to state. by @huacnlee in #1557
  • popover: Fix click trigger to close popover. by @huacnlee in #1559
  • popover: Revert defer_to focus on Popover open. by @huacnlee in #1571

Progress

  • progress: Fix incorrect border radius by @madcodelife in #1555

Select

  • select: Impl SelectItem for &'static str. by @huacnlee in #1451
  • select: Avoid reopen menu when clearing selection by @madcodelife in #1484
  • select: Restore the selection when canceling by @madcodelife in #1501

Slider

  • slider: Improve Slider interaction to click on bar to drag. by @CherryWorm in #1544
  • slider: Add option to choose between linear and logarithmic scale by @CherryWorm in #1543
  • slider: Remove thumb tooltip by @CherryWorm in #1582

Tab

  • tab: Use on_click instead of action for TabBar dropdown menu. by @huacnlee in #1454

Table

  • table: Keep scroll to item at bottom when move down. by @huacnlee in #1499
  • table: Fix Table stripe mode overflow scroll. by @huacnlee in #1530
  • table: fix row border missing on first frame by @Moulberry in #1505
  • table: Fix missing border on first frame by @Moulberry in #1533

Theme

  • theme: Export more theme options for schema. by @huacnlee in #1442
  • theme: Allows to use alpha color for active_border but at least 0.3. by @obito-t in #1531

Tiles

  • tiles: Add tile_radius theme option and default 0px. by @huacnlee in #1441
  • tiles: Add scrollbar_show option to Tiles by @ihavecoke in #1496
  • tiles: Add to support panel auto-snap while drag movement by @ihavecoke in #1552

WebView

  • webview: Add inspector feature to enable WebView developer tools by @ihavecoke in #1564

Other Changes

  • docs: Fix typo in README charting description by @gurjeet in #1434
  • docs: Remove incorrect Accessibility section. by @huacnlee in #1439
  • docs: Update chart by @madcodelife in #1446
  • docs: Improve docs add more details. by @huacnlee in #1447
  • docs: Add Context & ElementId doc. by @huacnlee in #1460
  • docs: Update docs website style. by @huacnlee in #1488
  • docs: Fix footer and add note to home page. by @huacnlee in #1511
  • docs: Update version to v0.4.0-preview1 in docs. by @huacnlee in #1534
  • chore: Rename Dropdown to Select, TextInput to Input. by @huacnlee in #1449
  • chore: Keep spawn task on it owner. by @huacnlee in #1456
  • chore: Update List, Tree, Kbd exports. by @huacnlee in #1467
  • chore: Move searchable to ListState and SelectState. by @huacnlee in #1507
  • chore: Remove unused image example. by @huacnlee in #1510
  • chore: Standardize the overall API and improve docs. by @huacnlee in #1516
  • chore: Dependency gpui-macros/inspector to inspector features by @ihavecoke in #1568

New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v0.3.1...v0.4.0

2025-10-27 13:52:29
gpui-component

v0.3.1

What's Changed

Input

Editor

List

Tiles

Theme

Example

Others

New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v0.3.0...v0.3.1

2025-10-24 10:46:34
gpui-component

v0.3.0

New features

  • menu: Add AppMenuBar. by @huacnlee in #1338

    image
  • tree: Add Tree by @huacnlee in #1373

    image

Button

  • button: Add support for on_hover event by @madcodelife in #1341
  • button: Fix the on_hover does not respond by @madcodelife in #1346
  • button: Support specified anchor to dropdown button by @madcodelife in #1367

Checkbox

  • checkbox: Do not stop propagation when click by @madcodelife in #1385

Dropdown

  • dropdown: Use display_title for item title if present by @stippi in #1410

Editor

  • editor: Fix code actions not display by @huacnlee in #1347
  • editor: Add delay to trigger hover popover by @huacnlee in #1361
  • editor: Improve hover popover delay by @huacnlee in #1389

Highlighter

  • highlighter: Make SyntaxHighlighter::styles method public for external use by @huacnlee in #1415

Input

  • input: impl Selectable for TextInput that allow it as trigger for popover by @richerfu in #1353
  • input: Fix set_value when Input is disabled by @huacnlee in #1362
  • input: Grouping input history to avoid IME placeholder by @huacnlee in #1375
  • input: Fix Input panics when masked have non-ASCII characters by @huacnlee in #1382
  • input: Stop propagation on scroll wheel by @huacnlee in #1406
  • input: Hide scrollbar when not overflow in auto grow mode by @huacnlee in #1407
  • input: Fix Input to prepare text wrapper by @huacnlee in #1417

Markdown

  • markdown: Use list for Markdown render and add scrollbar by @huacnlee in #1357

Menu

  • menu: Fix submenu item selection when multiple submenus exist by @ihavecoke in #1342
  • menu: Fix trigger action with context by @huacnlee in #1372

Plot

  • plot: Add StepAfter kind to StokeStrike by @itsmgo in #1356
  • plot: Add stroke style per each Y series by @itsmgo in #1364
  • plot(line_chart): Add missing natural stroke style by @madcodelife in #1366

Scrollbar

  • scrollbar: Fix scroll to show mode by @huacnlee in #1381
  • scrollbar: Update scrollbar background color to transparent for all themes by @huacnlee #1421

VirtualList

  • virtual_list: Fix VirtualList to limit only allow 1 direction scrollable by @huacnlee in #1386
  • virtual_list: Fix VirtualList by measure item to get correct content_size to avoid scroll overflow by @huacnlee in #1388

Docs

Documentation website is online: https://longbridge.github.io/gpui-component

Others

  • chore: Update GPUI v0.2.2 by @huacnlee in #1416

New Contributors

  • @richerfu made their first contribution in #1353
  • @itsmgo made their first contribution in #1356
  • @han1548772930 made their first contribution in #1370
  • @YougLin-dev made their first contribution in #1398
  • @vincenthz made their first contribution in #1404
  • @stippi made their first contribution in #1410
2025-10-09 15:21:10
gpui-component

v0.2.0

🚀 First release version to crates.io.

Improvements

  • Refactor tab key to switch focus by @huacnlee (#991)

Input & Text

  • Disable context menu item for disabled input by @huacnlee (#1280)
  • Use shape line for soft wrap lines by @huacnlee (#1293)
  • Fix RopeExt replace method may not on a char boundary by @huacnlee (#1295)
  • Update RopeExt to use LF style for line calc when \r present by @huacnlee (#1296)
  • Fix Input to unselect on blur by @huacnlee (#1303)
  • Avoid scroll on select all by @huacnlee (#1305)
  • Clean to reset selection and scroll offset by @huacnlee (#1326)
  • Implement styled for number input by @madcodelife (#1333)

Editor

  • Add document_colors LSP by @huacnlee (#1329)
  • Add to support move vertical for soft wrapped lines by @huacnlee (#1312)
  • Avoid trigger hover on selection by @huacnlee (#1287)
  • Improve slice_line method performance by @huacnlee (#1290)
  • Improve TextWrapper performance by @huacnlee (#1292)
  • Improve line number width by max lines by @huacnlee (#1291)
  • Improve enter indent level performance by @huacnlee (#1304)
  • Fix hover definition to hide immediately by @huacnlee (#1309)
  • Fix Editor crash when content is empty by @huacnlee (#1314)
  • Split Input and Editor background color by @huacnlee (#1323)

TextView & Highlight

  • Refactor TextView/SyntaxHighlighter with async parsing to improve performance by @sunli829 (#1299)
  • Support custom code block style by @huacnlee (#1288)

Theme & Style

  • Fix Ayu theme comment color by @huacnlee (#1316)
  • Update macos-classic dark theme color by @huacnlee (#1320)
  • Update theme schema: remove card, add group_box by @huacnlee (#1321)
  • Fix button label overflow by @huacnlee (#1322)
  • Bind element ID after button creation by @madcodelife (#1325)
  • Let normal/active tabs share border to prevent flash by @huacnlee (#1327)

Menu & Context

  • Better handle hover for menu item by @huacnlee (#1332)
  • Add flex property to custom popup menu items by @ihavecoke (#1335)
  • Improve MenuItem paddings by @huacnlee (#1339)

Bug Fixes

  • Fix input mark text render by @huacnlee (#1298)
  • Fix Editor crash when empty string triggers placeholder by @huacnlee (#1314)
  • Fix context menu subscription leak by @huacnlee (#1337)
  • Fix UTF-8 boundary in highlighter using clip_offset by @xudesheng (#1317)

Chores & Internal

  • use async-wry by @sunli829 (#1300)
  • Remove unnecessary RefCell by @sunli829 (#1301)
  • Remove Wef code (moved to external crate) by @Copilot (#1302)
  • Interpolate folder path via rust embed by @carlocorradini (#1318)
  • Implement styled for custom style by @madcodelife (#1319)

New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v20250925...v0.2.0

2025-09-25 11:12:56
gpui-component

v20250925

Improvements

Input & Editor

We have improve the text editor to as a code editor, use tree-sitter and ropey to improve the performance and add more features.

  • editor: Improve syntax highlighter and editing performance, now we can handle more than 150K lines file. by @huacnlee in #1208, #1284, #1230, #1237
  • editor: Add to support code completion and code actions. by @huacnlee in #1242
  • editor: Add to support hover popover. by @huacnlee in #1260
  • editor: Add hover definition and go to definition. by @huacnlee in #1261
  • editor: Add to support search and replace. by @huacnlee in #1252
  • input: Add context menu for cut, copy, paste. by @huacnlee in #1279
  • input: A lot of bug fixes and improvements for editing exprience. by @huacnlee in #1277, #1256, #1264, #1246, #1238, #1211

Theme & Style

Highlighter

Slider

Inspector

Chart

GroupBox

Bug Fixes

Other Changes

🌱 New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v20250611...v20250925

2025-06-11 16:52:51
gpui-component

v20250611

Release Notes

🚀 Features


🛠 Improvements

Dock & Layout

Input

NumberInput

UI & UX


🐞 Bug Fixes


🧹 Maintenance & Documentation


🌱 New Contributors

Full Changelog: https://github.com/longbridge/gpui-component/compare/v20250502...v20250611

2025-05-02 10:28:26
gpui-component

v20250502

What's Changed

Components

Input

  • Improve clear button position. #782
  • Add Esc key to clear input. #803
  • Fix Esc to propagate to parent element. #806
  • Update text method to return &SharedString type. #800
  • Clean focused_input on blur. #825
  • Refactor window.focused_input for better update. #809
  • Add Copy and Eq derives for StepAction. #812

Checkbox

  • Support sizable. #781
  • Make checked icon sizable. #785

Tooltip

  • Add KeyBinding to Tooltip and Button. #783
  • Add action, key_binding methods. #787

Modal

  • Respond confirm events only when on_ok or footer present. #786
  • Fix resetting focused_input when modal or drawer is closed. #807
  • Add alert method to create modal with OK button. #829

Sidebar

  • Add suffix for menu item. #792
  • Better active menu background. #793

Table

  • Add secondary click example. #780
  • Ensure row selection with prev/next. #805
  • Fix render_tr to apply h_flex. #810
  • Disable auto-scroll when resizing beyond right bound. #811

Dropdown

  • Avoid selected value text wrap. #808
  • Add display_title to support custom input title. #816
  • Support dynamic options update. #824

List

  • Export query_input to allow external updates. #794
  • Auto-select first item on search. #798

SvgImg

  • Fix memory leak. #818
  • Refactor to avoid size assignment & fix image drop error. #821
  • Avoid global image loader usage. #823
  • Fix first-load image issue. #828

Accordion

  • Add gap between title and icon. #813

Kbd

  • Fix key ordering and Windows compatibility. #788

DescriptionList

  • Wrap description value if too long. #779

Other UI

  • Use default cursor for disabled menu/button/dropdown, etc. #814
  • Improve Switch and Sidebar selected background color. #801

Storybook & Gallery

  • Redesign the gallery. #797
  • Add story search. #802
  • Add ClipboardStory. #799
  • Add DatePicker and Calendar. #815
  • Fix error panel display with search keywords. #817
  • Update Windows gallery download. #804