v0.4.0
mantinedev/mantinev0.4.0Nov 17, 2025by huacnlee
AI Summary
Major API consistency overhaul with significant breaking changes including renaming components and refactoring APIs.
Key Highlights
- Rename Modal to Dialog
- Rename Drawer to Sheet
- Rename FormField to Field
- Refactor Toggle API
- Refactor List/Table to use State classes
Breaking Changes
- Rename `item` to `child` in breadcrumb
- Remove `content` method from Clipboard
- Rename Modal to Dialog
- Rename `column` to `columns` in form
- Rename FormField to `Field`
- Refactor `cleanable` prop
- Rename `on_change` to `on_click` in RadioGroup
- Rename Drawer to `Sheet`
- Rename Indicator to `Spinner`
- Refactor Tab creation to builder pattern
New Features
- New Collapsible component
- Dynamic inner/outer radius for pie charts
- WebView inspector feature
- Auto-snap support for Tiles panels
Full Release Notes
## 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
- Add [gpui-component-assets](https://crates.io/crates/gpui-component-assets) crate by @huacnlee in #1601
See [Icon & Assets](https://longbridge.github.io/gpui-component/docs/assets#use-default-bundled-assets) for how to use.
### 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
* @gurjeet made their first contribution in https://github.com/longbridge/gpui-component/pull/1434
* @FlyingYu-Z made their first contribution in https://github.com/longbridge/gpui-component/pull/1483
* @Moulberry made their first contribution in https://github.com/longbridge/gpui-component/pull/1497
* @CherryWorm made their first contribution in https://github.com/longbridge/gpui-component/pull/1544
* @chulingera2025 made their first contribution in https://github.com/longbridge/gpui-component/pull/1572
* @zanmato made their first contribution in https://github.com/longbridge/gpui-component/pull/1591
**Full Changelog**: https://github.com/longbridge/gpui-component/compare/v0.3.1...v0.4.0