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
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
Jason Lee
59f4e26c7b
input: Fix Input panics when masked have non-ASCII characters. ( #1382 )
...
Close #1377
2025-10-15 07:15:50 +00:00
Jason Lee
97df4efd46
input: Fix set_value when Input is disabled. ( #1362 )
...
Close #1350
2025-10-13 11:15:32 +08:00
Jason Lee
5e504d10bb
chore: Refactor tab key to switch focus. ( #991 )
...
Wait https://github.com/zed-industries/zed/pull/33008 ,
https://github.com/zed-industries/zed/pull/34804 to merge.
https://github.com/user-attachments/assets/3c21ebc9-44a0-4311-bb0f-5f63fe8d4bb3
- Improved `focus_ring` to render like an outline.
- Added to support press `Enter`, `Space` key to trigger Checkbox,
Button, Radio.
## Break Changes
- The `FocusableExt` has been changed to only for crate internal.
- The `FocusableCycle` has been removed, now GPUI has it own tab stop
implementation.
2025-09-29 16:48:24 +08:00
Jason Lee
aab1321b70
input: Refactor InputEvent::Change to not include the text. ( #1246 )
...
Change this to avoid Rope `to_string` performance cost. Ref #1220
The listeners of `InputEvent::Change` may not be going to use entire of
text.
## Break Change
- The `InputEvent::Change(SharedString)` removed value.
```diff
- pub enum InputEvent {
- Change(SharedString),
+ pub enum InputEvent {
+ Change,
```
2025-09-15 20:50:30 +08:00
Floyd Wang
a2b91a7a2b
input(state): Provide context to the validate method ( #1082 )
2025-07-23 14:30:16 +08:00
Jason Lee
eca7949583
input: Update input behaviors to do not unselect on blur or press escape. ( #1065 )
...
- Also to pub `unselect` for manually use, and fix this method will
incorrect to move right 1 char.
2025-07-16 13:29:58 +08:00
Jason Lee
c9b5993472
story: Improve story case style. ( #1060 )
2025-07-15 11:56:07 +08:00
Jason Lee
6508927e7f
input: Add appearance option to NumberInput, Dropdown, DatePicker to render without style. ( #1054 )
...
<img width="1100" height="935" alt="image"
src="https://github.com/user-attachments/assets/b213c778-eef0-4d63-8d07-b68da9a078b1 "
/>
2025-07-14 19:57:56 +08:00
Jason Lee
deb1187c40
story: Fix #1017 duplicate action name error. ( #1020 )
2025-06-30 11:18:57 +08:00
Jason Lee
67f0ffbc9c
chore: Upgrade GPUI and fix action API changes. ( #1008 )
...
Ref https://github.com/zed-industries/zed/pull/33263
2025-06-25 11:06:12 +08:00
Jason Lee
de491a790c
input: Fix Input prefix, suffix position, and mask * in vertical center. ( #965 )
...
- Fix Input, NumberInput padding x with prefix, suffix.
- Fix Input mask char to render in vertical center.
<img width="498" alt="image"
src="https://github.com/user-attachments/assets/f7b34e17-2503-4a24-9e16-3a30b48bacb5 "
/>
- Fix to only use `Tab`, `Shift-Tab` to indent in multi-line mode.
- Improve blink cursor to render with 1.5px width and same as
line-height.
2025-06-17 13:59:02 +08:00
Jason Lee
bc398adbf3
input: Refactor Input, Picker as stateless mode. ( #858 )
2025-05-16 23:41:26 +08:00
Jason Lee
c0e0d82594
input: Add mask pattern to format display. ( #854 )
...
- Add `mask_pattern` to Input, NumberInput.
- Fix Input `set_text` to move cursor to end.
https://github.com/user-attachments/assets/2d7e362a-3f80-47a4-94e3-efd729bffcac
2025-05-14 22:27:46 +08:00
Jason Lee
5cacffcc06
chore: Fix cargo clippy.
2025-04-22 19:36:09 +08:00
Jason Lee
a195795978
input: Refactor window.focused_input by use better way to ensure update. ( #809 )
2025-04-22 19:34:41 +08:00
Jens Krause
f7be6a245a
input: Add Esc to clean. ( #803 )
2025-04-20 10:24:47 +08:00
Jason Lee
5b508d7219
gallery: Redesign the gallery. ( #797 )
...
Close #773
<img width="1712" alt="image"
src="https://github.com/user-attachments/assets/e27a28ca-cdd7-4970-8518-4fd0104bb3f8 "
/>
2025-04-17 17:12:48 +08:00
Jason Lee
73be54a0f7
input: Improve clear button position in Input. ( #782 )
...
| Before | After |
| -- | -- |
| <img width="529" alt="image"
src="https://github.com/user-attachments/assets/02fdba71-7e83-43b9-ba4c-476eb21dcf28 "
/> | <img width="530" alt="image"
src="https://github.com/user-attachments/assets/ad7b6378-c9ff-4ea4-943a-87af53a2ac79 "
/> |
2025-04-11 19:13:17 +08:00
Jason Lee
a60acd7e4d
list: Add secondary confirm support to list. ( #769 )
2025-04-02 16:45:27 +08:00
Jason Lee
c91dce3139
input: Add max_rows to support auto-grow. ( #768 )
...
Closes #762
https://github.com/user-attachments/assets/068a3f11-8498-4db6-a2ac-00cc043f16cf
2025-04-02 15:54:19 +08:00
Jason Lee
88b5e5c023
input: Add mask_toggle button to toggle masked state to Input. ( #758 )
2025-03-31 22:57:07 +08:00
Floyd Wang
26b59ea23e
story: Sync number input value when changed ( #748 )
...
Closed #741
https://github.com/user-attachments/assets/ec572918-a574-4adb-a8c0-c59010dc4d5e
2025-03-27 11:27:38 +08:00
Jason Lee
88325ea14b
input: Add insert and replace method to Input. ( #721 )
...
Close #719
https://github.com/user-attachments/assets/aed24aef-c69f-4512-81bb-bb7e4a6de14e
2025-03-17 22:40:09 +08:00
Jason Lee
00e5385878
input: Add h, h_full to Input for multi-line mode. ( #642 )
...
Close #641
<img width="1712" alt="image"
src="https://github.com/user-attachments/assets/9cbe090c-a5d7-4929-98db-5f71349fe559 "
/>
2025-02-25 16:17:39 +08:00
Floyd Wang
abb3de013e
Rename package from ui to gpui-component ( #606 )
...
## 🚨 Break Change
Update dependencies from `ui` to `gpui-component`.
2025-02-06 17:21:46 +08:00
Jason Lee
3e16c0d220
chore: Remove reexport prelude. ( #599 )
...
This is useless, we can just use `gpui::prelude`, so I removed it.
## Break changes
- The `ui::prelude` has been removed, you can replace by use
`gpui::prelude`.
2025-02-04 17:37:28 +08:00
Jason Lee
327d40e0e0
chore: Upgrade GPUI 3 ( #587 )
...
The pervious version has keep on
[gpui2](https://github.com/longbridge/gpui-component/tree/gpui2 ) branch,
if there need to use.
Ref https://github.com/zed-industries/zed/pull/22632
## Prepare
### Generate index.scip
```bash
rust-analyzer scip ./ > index.scip
```
### Get [refactor](https://github.com/zed-industries/refactor )
```bash
https://github.com/zed-industries/refactor.git
```
## Refactor exist code
```bash
cd refactor
cargo run -- ~/work/gpui-component
```
Then will get result if successed:
```
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s
Running `target/debug/refactor /Users/jason/work/gpui-component`
Loaded 115 SCIP documents
Processing files starting with focus path: ""
Changed 90 files
```
-------------
## Changes
```diff
- View<T>
- Model<T>
+ Entity<T>
- WeakView<T>
+ WeakEntity<T>
- FocusableView
+ Focusable
- cx.bounds()
+ window.bounds()
- cx.refresh()
+ window.refresh()
- cx.focused()
+ window.focused(cx)
- cx.with_optional_element_state
- window.with_optional_element_state
```
```diff
- &mut WindowContext
+ &mut Window, &mut App
- cx: &mut WindowContext
+ window: &mut Window, cx: &mut App
- &mut ViewContext<
+ &mut Window, &mut Context<
- cx: &mut ViewContext<
+ window: &mut Window, cx: &mut Context<
```
```diff
- cx.spawn(|_, mut cx| async move {
+ cx.spawn_in(window, |_, mut cx| async move {
- cx.dispatch_action(Box::new(...))
+ window.dispatch_action(Box::new(...), cx)
```
`cx.spawn`
```diff
- cx.spawn(|view, mut cx| async move {
+ cx.spawn_in(window, |view, mut window| async move {
+ _ = view.update_in(&mut window, move |view, window, cx| {
```
2025-01-27 03:58:48 +08:00
Jason Lee
649e765729
story: Add TitleBar to examples. ( #586 )
2025-01-26 15:07:34 +08:00
Jason Lee
cd613db6d6
number_input: Improve NumberInput to better handle mouse down position cursor and fix sizable API. ( #582 )
...
Close #579
- Leave some space before the Input to support mouse down to position
cursor at start of line.
- Fix to match with size appearance.
- Keep padding left and right to Input, even setup `appearance: false`.
## Break Changes
- The `xlarge`, `large`, `small`, `xsmall` ... method has been moved to
use `ui::Sizable` trait to same as other component.
2025-01-24 23:39:19 +08:00
Jason Lee
a89e2430d3
form: Add Form and FormField. ( #565 )
...
<img width="899" alt="image"
src="https://github.com/user-attachments/assets/842dac65-36c3-4f3a-b55a-59d204d9a93c "
/>
<img width="901" alt="image"
src="https://github.com/user-attachments/assets/616b7a3a-4a84-4d27-b554-63ebd5213ad7 "
/>
2025-01-23 16:09:50 +08:00
Floyd Wang
0312e47554
input: Move number input into input ( #549 )
2025-01-17 10:07:41 +08:00
Jason Lee
1a4ee348f8
dock: Add visible method to Panel trait to control panel visible. ( #503 )
...
Closes #502 #499
## Added
- Add `visible` method to `Panel` trait, if return false this panel will
disappear.
## Break changes
- Renamed `closeable` to `closable`.
- The `title_style`, `closable`, `zoomable` in `Panel` trait have been
change `cx: &WindowContext` to `cx: &AppContext`.
2024-12-20 10:21:21 +08:00
xda
5874c6974f
tiles: Add Tiles ( #435 )
...
## Break Changes
- Renamed `DockItemState` to `PanelState`.
- Renamed `DockItemInfo` to `PanelInfo`.
- Update `cx` type from `WindowContext` to `AppContext` for Panel trait
`panel_name` method.
## TODO
- [ ] Support merge panels into TabPanel.
- [ ] Support split panels into Tile.
---------
Co-authored-by: Jason Lee <huacnlee@gmail.com>
2024-12-16 20:33:14 +08:00
Jason Lee
9288dc91c2
input: Add to support multi-line Input. ( #463 )
2024-12-09 20:17:05 +08:00
Jason Lee
23f9352295
button: Rename ButtonStyle to ButtonVariant. ( #460 )
...
This is a breaking changes, we need refactor exist code by this:
- `ButtonStyled` -> `ButtonVariants`
- `.style` -> `.with_variant`
- `ButtonStyle` -> `ButtonVariant`
- `ButtonCustomStyle` -> `ButtonCustomVariant`
2024-12-03 19:22:28 +08:00
Floyd Wang
ea6ec8aa5d
ui: Add number_input ( #433 )
...
https://github.com/user-attachments/assets/ae6f4e48-b0fa-4f8c-bff5-809c70848b06
2024-11-25 19:32:56 +08:00
Jason Lee
33200aa685
webview: Blur WebView when clicked out to fix IME cannot input bug. ( #320 )
...
- Closes #316
- Ref https://github.com/tauri-apps/wry/pull/1385
## Before
https://github.com/user-attachments/assets/cc614334-47fe-4722-8745-aea783fbab4a
## After
On macOS, now the IME bug is gone.
https://github.com/user-attachments/assets/363bb016-229f-4766-84f7-6a4838e490bf
https://github.com/user-attachments/assets/320c5c1c-cfac-4165-af8a-bc9708952460
2024-10-08 17:01:52 +08:00
Floyd Wang
c5b4505560
feat(button): Remove track_focus ( #282 )
2024-09-27 14:39:48 +08:00
Jason Lee
ce87c3a001
modal: Improve Modal and Panel focus handle. ( #238 )
...
- modal: Improve modal focus take, when modal close, make sure focus
back.
- modal: Fix hover close button will cross to back modal on multiple
modal layer.
- panel: Add focus handle to Panel and TabPanel.
- panel: Update title method to return `AnyElement`.
2024-09-12 19:51:33 +08:00
Jason Lee
9baada4fb4
dock: Reduce dock item member ( #223 )
2024-09-06 17:51:21 +08:00
ihavecoke
acabaf32c8
Correcting shacn to shadcn to uniformly use shadcn ui names ( #210 )
...
* Fixed some color naming with shadcn style
* Input story support scroll y
2024-09-03 23:31:34 +08:00
Jason Lee
f5cae46e42
Improve ColorPicker to support input hex color. ( #201 )
...
https://github.com/user-attachments/assets/be5fc290-0464-4356-9f97-c35720e3e11d
2024-09-02 13:56:19 +08:00
Jason Lee
a049f606c0
Fix Checkbox, Radio label color. ( #200 )
2024-09-02 00:24:57 +08:00
Jason Lee
1f0e52da50
Add ColorPicker ( #199 )
...
<img width="262" alt="image"
src="https://github.com/user-attachments/assets/ad96859f-e6cb-47a6-bedb-fef02122b711 ">
2024-09-02 00:21:01 +08:00
Jason Lee
e86f90d309
Close Dropdown menu on blur. ( #157 )
...
Closes #156
2024-08-16 14:03:45 +08:00
Floyd Wang
a02a6ed6b8
Set default true for cleanable & trigger event when dropdown clean ( #152 )
2024-08-15 18:01:43 +08:00
Jason Lee
bb6d8d8f60
Cleanup first version impls ( #132 )
2024-08-11 14:46:55 +08:00
Jason Lee
340c5fef3d
Improve OtpInput to add more size, use Icon to render mask. ( #116 )
...
- Add `default_value`, `set_value`, `masked` method.
- Add `set_value`, `value` method to set/get from OptInput.
<img width="390" alt="image"
src="https://github.com/user-attachments/assets/ef5368e9-132d-4de6-8506-aeecc47a9189 ">
2024-08-07 11:39:02 +08:00