Commit graph

1445 commits

Author SHA1 Message Date
Jason Lee
34c589d45b Bump v0.4.0-preview1. 2025-11-06 22:27:26 +08:00
obito
80cdf6a44c
theme: Allows to use alpha color for active_border but at least 0.3. (#1531)
Co-authored-by: Jason Lee <huacnlee@gmail.com>
2025-11-06 22:23:55 +08:00
Moulberry
7f8eb28cfa
table: Fix missing border on first frame (#1533)
After all the adjustments, the original issue that
https://github.com/longbridge/gpui-component/pull/1505 was trying to fix
reappeared.

The fix is simple: don't consider the table to be filled if the height
is zero.
2025-11-06 22:01:55 +08:00
Moulberry
faee91eda4
table: fix row border missing on first frame (#1505)
Currently, the bounds are zero on the first frame.
Therefore, the extra_rows_count will always be zero on the first frame.
This causes rendering issues for row border & row stripes.

Unfortunately, I don't know how to get the correct height on the first
frame to fix the row stripes.

However, an easy fix for the row border rendering issue is to disable
the table_is_filled check. The check is problematic anyways since the
border affects the height of the element.

I attached a video showing the issue, the border doesn't render on the
first frame and the height of the element also shifts due to the border:


https://github.com/user-attachments/assets/b154c686-cd9c-4b6b-8ba6-c79640297abc

---------

Co-authored-by: Jason Lee <huacnlee@gmail.com>
2025-11-06 21:15:13 +08:00
Jason Lee
97ba18fce9
modal: Adjust close button position. (#1532) 2025-11-06 13:10:49 +00:00
Jason Lee
34aa68ad35
table: Fix Table stripe mode overflow scroll. (#1530)
Ref #1505
2025-11-06 19:11:28 +08:00
Floyd Wang
f33d112819
button: Remove duplicate disabled style (#1529) 2025-11-06 18:47:59 +08:00
Jason Lee
80689264e2
sheet: Rename Drawer to Sheet. (#1527)
## Break Change

- Renamed `Drawer` to `Sheet`, also renamed relative method contains
`drawer` to `sheet`.
- Renamed `ContextModal` to `WindowExt`.

```diff
- use gpui_component::drawer::Drawer
+ use gpui_component::sheet::Sheet

- use gpui_component::ContextModal
+ use gpui_component::WindowExt
```
2025-11-06 07:19:10 +00:00
Jason Lee
4dc10165fb
spinner: Rename Indicator to Spinner. (#1526)
## Break Change

- Renamed `Indicator` to `Spinner`.

```diff
- use gpui_component::indicator::Indicator;
+ use gpui_component::spinner::Spinner;
```
2025-11-06 11:36:39 +08:00
Jason Lee
c06e91101e
collapsible: Add Collapsible. (#1525)
Close #1479 

<img width="1171" height="791" alt="image"
src="https://github.com/user-attachments/assets/eac5cd9f-ef8c-4eb4-b93d-f63c9302c99a"
/>
2025-11-06 10:57:18 +08:00
Jason Lee
4b3fb51fb8
editor: Fix indent guides render position. (#1524) 2025-11-05 13:17:32 +00:00
Jason Lee
998a5fd922
chore: Standardize the overall API and improve docs. (#1516) 2025-11-05 19:10:30 +08:00
Jason Lee
2ba0dfbb96
popover: Renamed no_style to appearance like the Input. (#1523)
## Break Change

- The `no_style` method has been removed, use `appearance` instead.
2025-11-05 08:01:27 +00:00
Jason Lee
469b53178b
form: Renamed column to columns. (#1522)
## Break Change

- Renamed `column` to `columns` and receive `usize` type.
2025-11-05 07:32:15 +00:00
Jason Lee
aea8223637
description_list: Renamed child to item, and add child to add DescriptionItem. (#1521)
## Break Change

- The original `child` method has been renamed to `item`.
- Now the add new `child` to accept a `DescriptionItem` type like the
`children` method.
2025-11-05 07:26:17 +00:00
Jason Lee
2093046942
clipboard: Removed content method from Clipboard. (#1520)
## Break Change

- The `content` method has been removed from `Clipboard`, if you want
display something, you can wrap it in a h_flex.
2025-11-05 07:17:58 +00:00
Jason Lee
d3ec1f29f8
breadcrumb: Rename item to child and add children method. (#1519) 2025-11-05 15:13:29 +08:00
Jason Lee
b08f5be97c
radio: Rename on_change to on_click for RadioGroup. (#1517)
## Break Change

- Renamed `on_change` to `on_click` for RadioGroup.
 
```diff
- RadioGroup::horizontal("radio_group_1").on_change(...)
+ RadioGroup::horizontal("radio_group_1").on_click(...)
```
2025-11-05 02:53:22 +00:00
Jason Lee
0524c51b3e
toggle: Refactor Toggle, ToggleGroup API. (#1515)
## Break Changes

- Refactor `Toggle` new API to require a `id`, and renamed `on_change`
to `on_click.
- Renamed `on_change` method to `on_click` for `ToggleGroup`.

```diff
- Toggle::label("Hello").id("hello").on_change(..)
+ Toggle::new("hello).label("Hello").on_click(..)

- ToggleGroup::new("group1).on_change(..)
+ ToggleGroup::new("group1).on_click(..)
```
2025-11-05 10:47:55 +08:00
Moulberry
a4e93132f1
input, select, date_picker: Refactor cleanable to have argument and default to false. (#1506)
https://github.com/longbridge/gpui-component/pull/1502#issuecomment-3485354324

## Break Change

- The `DatePicker` and `Select` has changed `cleanable` default from
`true` to `false`.
- Updated `Input`, `DatePicker` and `Select` the `cleanable` to have a
argument.

```diff
- pub fn cleanable(mut self)
+ pub fn cleanable(mut self, cleanable: bool)
```

---------

Co-authored-by: Jason Lee <huacnlee@gmail.com>
2025-11-05 09:33:31 +08:00
Jason Lee
522f3ced43
docs: Fix footer and add note to home page. (#1511)
Ref https://github.com/longbridge/gpui-component/discussions/1509
2025-11-04 23:07:33 +08:00
Jason Lee
4b8775f7d3
chore: Remove unused image example. (#1510)
Close #1494
2025-11-04 14:55:02 +00:00
Jason Lee
5f39b99fe4
list: Avoid select item when selectable(false). (#1508)
Close #1500
2025-11-04 14:12:31 +00:00
Jason Lee
d037f074dc
chore: Move searchable to ListState and SelectState. (#1507) 2025-11-04 21:26:11 +08:00
Jason Lee
087cb70d00
select, list: Update searchable default to false. (#1504)
Continue #1503 to update the `searchable` default to `false`.
2025-11-04 20:59:38 +08:00
Jason Lee
2870bc6e36
list: Add searchable, search_placeholder option to List and Select. (#1503)
## Break Change

- Removed `set_query_input`, `query_input` and `no_query` method from
List. Now use `List::new(&state).searchable(false)` to intead of
`no_query`.
- Removed `searchable` method from `SelectDelegate`, use
`Select::searchable` instead.
2025-11-04 19:06:50 +08:00
Floyd Wang
27f1f960a0
select: Restore the selection when canceling (#1501)
Fix #1495
2025-11-04 10:22:00 +00:00
Jason Lee
3a9198b5de chore: Hard link crates/ui/LICENSE-APACHE. 2025-11-04 17:54:14 +08:00
ihavecoke
fbaddbe9e3
tiles: Add scrollbar_show option to Tiles (#1496) 2025-11-04 17:42:46 +08:00
Jason Lee
b7815ed6ec
table: Keep scroll to item at bottom when move down. (#1499) 2025-11-04 09:28:37 +00:00
Floyd Wang
2e5bdd0c3a
list: Fix incorrect next selection when select index is none (#1498)
Previously, pressing next would select the second item.
2025-11-04 17:17:17 +08:00
Moulberry
e7aa8983dc
input: Delete selected text with modifier keys (#1497)
In most applications, when text is selected and backspace/delete is
pressed, the selection is simply deleted.

Currently, gpui-component will ignore the selected text and delete the
previous/next word when Ctrl is pressed.

This can be very confusing especially if you do ctrl+a then
ctrl+backspace, expecting the input to be cleared.

This PR makes it so that if there is an active selection, the active
selection is deleted before doing any extra processing.
2025-11-04 16:54:31 +08:00
Jason Lee
893e323692
Fix state internal update to refresh for List, Tree, Table and Select. (#1492)
This to fix #1468, #1449 changes broken the state (e.g.: `SelectState`
to call `cx.notify()`) update not notify parent element (e.g.: `Select`)
to rerender.
2025-11-04 16:25:37 +08:00
Jason Lee
f6bbef0082
docs: Update docs website style. (#1488) 2025-11-03 22:18:18 +08:00
Jason Lee
faee23eef8
table: Change context_menu method in TableDelegate to mutable window and cx. (#1487)
## Break Change

- The `window`, `cx` has changed from `&Window`, `&App` to `&mut
Window`, `&mut App`.

```diff
- fn context_menu(&self, row_ix: usize, menu: PopupMenu, window: &Window, cx: &App)
+ fn context_menu(&self, row_ix: usize, menu: PopupMenu, window: &mut Window, cx: &mut App)
```
2025-11-03 18:06:29 +08:00
FlyingYu
be460dcbed
modal, drawer: Block background interaction when Modal, Drawer is active. (#1483)
Co-authored-by: Jason Lee <huacnlee@gmail.com>
2025-11-03 16:51:38 +08:00
Floyd Wang
3d606a6909
select: Avoid reopen menu when clearing selection (#1484) 2025-11-03 08:24:54 +00:00
Jason Lee
9fa2669ff4
list, table: Refactor List, Table to have ListState, TableState. (#1468)
## Break Change

- Like Select, Input API design, now `List`, `Table` also has ListState
and TableState.

```diff
- let table = cx.new(|_| Table::new(delegate, window, cx).stripe(true).border(true))
+ let table = cx.new(|_| TableState::new(delegate, window, cx))
+ Table::new(&table).stripe(true).border(true) // for render

- let list = cx.new(|_| List::new(delegate, window, cx))
+ let list = cx.new(|_| ListState::new(delegate, window, cx))
+ List::new(&list) // for render
```

- ListDelegate, TableDelegate methods has changed some argument type:
  
- If first argument is `&mut self`, the `cx` has been changed to `&mut
Context<ListState<Self>>` or `&mut Context<TableState<Self>>`.
  

    ```diff
- fn confirm(&mut self, _secondary: bool, _: &mut Window, cx: &mut
Context<List<Self>>)
+ fn confirm(&mut self, _secondary: bool, _: &mut Window, cx: &mut
Context<ListState<Self>>)
    ```

- If first argument is `&self`, the `cx` has been changed to `&mut App`.

    ```diff
- fn render_item(&self, ix: IndexPath, _: &mut Window, _: &mut
Context<List<Self>>)
    + fn render_item(&self, ix: IndexPath, _: &mut Window, _: &mut App)
    ```
2025-11-02 12:59:37 +00:00
Floyd Wang
123934237a Bump v0.4.0-preview0 2025-10-30 15:50:45 +08:00
Jason Lee
e75c37a1ac
chore: Update List, Tree, Kbd exports. (#1467)
## Break Change

- Removed `Kbd` from root export, use `gpui_component::kbd::Kbd`
instead.
- Removed `List` from root export, use `gpui_component::list::*`
instead.
- Removed `Tree` from root export, use `gpui_component::tree:*` instead.
2025-10-30 07:19:39 +00:00
Jason Lee
ed11282782
docs: Add Context & ElementId doc. (#1460)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-29 23:37:26 +08:00
Jason Lee
2727a65494
resizable: Simplify Resizable API. (#1459)
- Added `on_resize` callback method to `ResizabelPanelGroup`.

## Break Changes

- Remove `state` argument from `h_resizable`, `v_resizable` method.

```diff
- v_resizable("resizable-1", state)
+ v_resizable("resizable-1")
```

- Removed `group` method from `ResizabelPanelGroup`, use `child`
instead.

```diff
- v_resizable(..).group(..)
+ v_resizable(..).child(..)
```
2025-10-29 23:01:05 +08:00
Jason Lee
a1ca8624af
example: Add file tree to Editor example. (#1457)
<img width="1205" height="861" alt="image"
src="https://github.com/user-attachments/assets/4b3814cd-7dc0-4fc1-8f0f-d98d7cc29294"
/>
2025-10-29 12:58:40 +00:00
Jason Lee
7036415662
chore: Keep spawn task on it owner. (#1456) 2025-10-29 19:11:49 +08:00
Jason Lee
d34ea6640a
docs: Improve docs add more details. (#1447)
- Also update "Compare to others", close #1452
2025-10-29 02:41:28 +00:00
Jason Lee
4eb1ed2cfd
tab: Use on_click instead of action for TabBar dropdown menu. (#1454)
Close #1453
2025-10-29 01:04:14 +00:00
Jason Lee
55db53a46d
select: Impl SelectItem for &'static str. (#1451) 2025-10-28 13:37:00 +00:00
Jason Lee
34ef0ff6d0
chore: Rename Dropdown to Select, TextInput to Input. (#1449)
## Break Change

- The `Dropdown` has been renamed to `Select`.
- The `TextInput` has been renamed to `Input`.

| Before | After |
| --- | --- |
| TextInput | Input |
| Dropdown | Select |
| DropdownItem | SelectItem |
| DropdownItemGroup | SelectGroup |
| DropdownState | SelectState |
| DropdownEvent | SelectEvent |
| DropdownDelegate | SelectDelegate |
| dropdown::ListEvent | ~~Removed~~ |

- Renamed `PopupMenuExt` to `DropdownMenu`.
- Removed pub mod `menu::popup_menu`, `menu::context_menu`, they are
moved into `menu` mod.
- Renamed `popup_menu` method to `dropdown_menu` for `DropdownMenu`,
`Panel`, `PanelView` and `DropdownButton`.

| Before | After |
| --- | --- |
| popup_menu::PopupMenuExt | menu::DropdownMenu |
| popup_menu | dropdown_menu |
| popup_menu_with_anchor | dropdown_menu_with_anchor |
2025-10-28 21:22:31 +08:00
Floyd Wang
0e2397cf15
chart(bar): Fix the label is not centered (#1448) 2025-10-28 16:53:42 +08:00
Floyd Wang
e005bd0f46
docs: Update chart (#1446) 2025-10-28 14:46:13 +08:00