Commit graph

229 commits

Author SHA1 Message Date
Jason Lee
e9d409a4b1
Add Link style Button (#97)
<img width="1305" alt="image"
src="https://github.com/user-attachments/assets/ee42d86f-e237-4544-aa2d-1414dabfb55e">

- Update `primary`, `danger`, `outline`, `ghost`, `link` methods to as a
builder method to just change style.
- Add `compact` used to reduce padding.

<img width="1279" alt="image"
src="https://github.com/user-attachments/assets/ccbd71c0-9157-4ef8-b164-b99ade24cf92">
2024-08-01 19:54:35 +08:00
Jason Lee
4a5b387b40 Fix mistake unwrap in PopupMenu. 2024-08-01 15:43:21 +08:00
Jason Lee
3dd149e711
Update PopupMenu to support checked style. (#96)
<img width="256" alt="image"
src="https://github.com/user-attachments/assets/87009870-e426-48e5-9860-ba91b4702ea4">
2024-08-01 15:41:00 +08:00
Michael Angerman
eb75df5d99
Update demo application to activate on startup (#92)
When I start up *gpui-component* its nice to be able to see that
application show up,
similar to the way zed editor works upon startup...
2024-08-01 11:03:40 +08:00
Jason Lee
0e3736e312
Update Dropdown title to use SharedString (#95) 2024-08-01 11:00:18 +08:00
Floyd Wang
c91f71ae21
Table support render_tr and stripe methods (#94) 2024-08-01 10:17:21 +08:00
Floyd Wang
35c3b13bdd Fix typo in table 2024-07-31 15:34:36 +08:00
Jason Lee
d1c19c5912
Add Link (#91) 2024-07-31 14:24:57 +08:00
Jason Lee
d659713555
Fix Label, Checkbox, Radio to support label text wrap. (#90)
<img width="1102" alt="image"
src="https://github.com/user-attachments/assets/1443378d-54e9-43a4-8bb8-0d0f4581169d">
2024-07-31 11:49:32 +08:00
Jason Lee
c94e9feae2 Fix to work with new GPUI. 2024-07-31 10:12:26 +08:00
Jason Lee
9766a0766b
Fix dropdown to avoid item text wrap. (#88) 2024-07-30 19:58:48 +08:00
Jason Lee
6465969c5a
Improve svg_img to use cached assets. (#87) 2024-07-30 19:54:27 +08:00
Floyd Wang
73121123f3
Add custom button demo (#86) 2024-07-30 11:24:29 +08:00
Floyd Wang
fc6423f22c
Add ButtonCustomStyle for customized color (#85) 2024-07-30 10:38:42 +08:00
Jason Lee
f496c241d7
button: Fix Button click prevent_default. (#84)
- Use icon in title_bar for switch theme, and add GitHub icon.
2024-07-30 00:28:18 +08:00
Jason Lee
8aaeb9383d
Fix dropdown click to lose focus. (#80) 2024-07-29 19:00:17 +08:00
尹吉峰
6e58edd349
input: Expose TextInput::disabled (#81) 2024-07-29 18:51:46 +08:00
Floyd Wang
97d139f9ec
Expose focus method for otp input (#83) 2024-07-29 16:20:58 +08:00
Floyd Wang
66698bfe27
Rename dropdown render_empty to empty (#82)
Also, `OTPInput` to `OtpInput`
2024-07-29 15:37:38 +08:00
Jason Lee
a3df086e79
theme: Fix list, table theme colors. (#79)
- Fix list, table theme colors.
- Fix table hover bg.
- Add avatar to table list.
- Update dropdown Size:Small style.
2024-07-29 13:52:45 +08:00
Jason Lee
01aa9401c5
resizable: Fix resizable handle to keep showing drag style on dragging. (#78)
https://github.com/user-attachments/assets/a8d2abcb-9122-4060-bfd6-2673903c18a1
2024-07-29 10:01:22 +08:00
Jason Lee
15e9804f08
table: Add sort button to table column. (#77)
https://github.com/user-attachments/assets/d6a3dc9b-758f-4108-8d1d-d8a3d2dc0dc2
2024-07-28 23:24:55 +08:00
Jason Lee
7bfdfcb2ec
table: Add drag to move col. (#76)
https://github.com/user-attachments/assets/9964f3da-0376-4b53-b64e-c9652c324aa3
2024-07-28 22:20:23 +08:00
Jason Lee
79958fc95c
Add to support Table column resizing. (#75)
https://github.com/user-attachments/assets/d56f2cd7-df08-437b-9eea-849d68094e1f
2024-07-28 00:51:37 +08:00
Floyd Wang
11034ec2ac Improve dropdown render_empty builder result from AnyElement to impl IntoElement for better usage 2024-07-26 17:26:58 +08:00
Floyd Wang
55822144c4
Rename InputOtp to OTPInput (#74) 2024-07-26 17:12:23 +08:00
Floyd Wang
d278d85058
Imporve dropdown (#73)
* Remove min-height
* Provide `render_empty` for custom empty view
* Fix crash when delegate is empty
2024-07-26 14:31:47 +08:00
Floyd Wang
81ecb1e11b
InputEvent support clone (#72) 2024-07-25 18:43:29 +08:00
Jason Lee
2396c918f2
Hide scrollbar when scroll are is small than container. (#71) 2024-07-25 15:53:57 +08:00
Floyd Wang
f02c2a82b1
Do not preset padding when input with affix (#70) 2024-07-25 11:02:04 +08:00
尹吉峰
7489a4ffdd
Update WebView to pass wry::WebView instance (#69)
It's much prefer to use `WebViewBuilder` instead of
[WebView::new](https://docs.rs/wry/latest/wry/struct.WebView.html#method.new)
2024-07-24 19:32:05 +08:00
Jason Lee
4c81977639 Fix Label text_align again. 2024-07-24 19:01:43 +08:00
Jason Lee
ed132ad55e Add more example to Label. 2024-07-24 18:56:32 +08:00
Jason Lee
c538a231c1 Fix Label text_align. 2024-07-24 18:39:13 +08:00
Jason Lee
6b019e3954 Impl InteractiveElement, StatefulInteractiveElement for Scrollable. 2024-07-24 17:59:44 +08:00
Jason Lee
030a706a4c
Refactor ScrollView into scrollable fluent method. (#68) 2024-07-24 17:50:50 +08:00
Jason Lee
7305967c09 Impl Scrollable for Focusable<E>, Stateful<E>. 2024-07-24 17:01:15 +08:00
Jason Lee
d63e256f19
Update Label masked char (#67) 2024-07-24 16:35:28 +08:00
Jason Lee
22a15c7dcc
Update scroll view (#66) 2024-07-24 15:41:20 +08:00
Jason Lee
4edf1e3427
Update ScrollView to let content is FnOnce. (#65) 2024-07-24 11:38:30 +08:00
Jason Lee
e0103d1d58
Add CI (#62) 2024-07-24 10:39:19 +08:00
Jason Lee
d60a1122d4
Scroll to top when list have searched. (#64) 2024-07-24 10:09:12 +08:00
Floyd Wang
764e7486e7 Set the default cleanable to false for new dropdown (#63) 2024-07-24 10:07:11 +08:00
Jason Lee
b4862082f1
Improve list item (#61) 2024-07-23 22:08:21 +08:00
Floyd Wang
1b715c431f
Fix new dropdown selected_index not work (#60) 2024-07-23 19:18:39 +08:00
Jason Lee
db14f0a2e5
Add pattern and validate to Input for limit input format. (#59) 2024-07-23 15:36:08 +08:00
Jason Lee
3ec35929ae
Add font-weight methods to styled: font_light, font_semibold, font_bold ... (#58)
https://tailwindcss.com/docs/font-weight
2024-07-23 14:57:16 +08:00
Jason Lee
30f34dc780
Fix button icon color support (#57) 2024-07-23 13:45:34 +08:00
Jason Lee
652efd187c Update list to save the task on the struct. 2024-07-23 10:51:11 +08:00
Jason Lee
80bdf20376 Export set_query and query method to List. 2024-07-23 10:15:38 +08:00
Jason Lee
8ff4658c96 Update Icon again, let new to support impl Into<Icon>. 2024-07-23 10:02:34 +08:00
Jason Lee
8609968ac2 Improve Icon::new to support impl Into<IconName> 2024-07-23 09:56:57 +08:00
Jason Lee
faa16fb660
Add ScrollView (#56) 2024-07-23 09:38:23 +08:00
Jason Lee
5034152f21
Improved Input prefix, suffix with a builder to support Element. (#54)
- Add loading to List query input and changed perform_search now return
a Task.
2024-07-22 15:30:07 +08:00
Jason Lee
4687a18ee4
Add to support Input history for undo & redo (#53)
https://github.com/user-attachments/assets/b898dc08-8e99-4247-8dc3-d5752d1bc2f3

Ref https://github.com/huacnlee/gpui-component/issues/27
2024-07-22 11:36:54 +08:00
Jason Lee
ca08be7038
Fix Popup modal mouse move crossed to back layer. (#51) 2024-07-20 02:39:27 +08:00
Jason Lee
e54d1f600b
Add to masked Label and support children to Button (#50)
https://github.com/user-attachments/assets/9583ce15-b801-45f9-aafb-54f0ecdf7dc9

- Add masked mode to Label.
- Add to support any children to Button.
- Fix Popover to support selected state style.
2024-07-19 18:54:16 +08:00
Jason Lee
a69d30be6a Add cx.theme auto import to support WindowContent. 2024-07-19 11:32:25 +08:00
Jason Lee
613cfebb65
Improve ActiveTheme trait to impl ViewContent and ModelContext to support auto import. (#49) 2024-07-19 11:20:45 +08:00
Jason Lee
e95971624e Fix windows build. 2024-07-18 23:29:22 +08:00
Floyd Wang
e4b9e008ba
Use cx.quit() instead of std::process::exit(0) (#47) 2024-07-18 19:02:39 +08:00
Floyd Wang
653222db73
dropdown: Use event instead of callback (#46)
* Rule: use event for `Render`, use callback for `RenderOnce`
2024-07-18 18:40:32 +08:00
Jason Lee
bac5392e0a
Refactor Slider, Input, InputOtp to use EventEmiter to emit change (#45) 2024-07-18 18:38:58 +08:00
Jason Lee
f6146220e4
Add WebView (#2)
- https://github.com/huacnlee/zed/pull/6
- https://github.com/zed-industries/zed/pull/13730
2024-07-18 18:00:23 +08:00
Floyd Wang
91e123e942 input: TextEvent Add Focus & Blur events 2024-07-18 17:48:57 +08:00
Floyd Wang
07a1f3099e dropdown: Add on change callback 2024-07-18 16:50:30 +08:00
尹吉峰
4ccbe9bd71
Update Dropdown (#42) 2024-07-18 16:12:12 +08:00
Jason Lee
683b22c4a4
Fix Resizable drag move position. #28 (#41) 2024-07-18 00:02:59 +08:00
Jason Lee
0fdf7be40d Fix table scrollbar display layer. 2024-07-17 23:19:03 +08:00
Jason Lee
b8a7d6a2dd Change InputOpt default masked: false and publish masked method. 2024-07-17 18:57:19 +08:00
Jason Lee
c7336fd5ea
Add InputOtp (#40)
https://github.com/user-attachments/assets/c92da4e7-21de-436f-968d-7cb47fa31aed
2024-07-17 18:49:41 +08:00
Jason Lee
d71b697f41
Add Slider (#39)
https://github.com/user-attachments/assets/a1799cd9-45af-413c-b32b-c60fb1b8d586
2024-07-17 16:01:27 +08:00
Jason Lee
3aaa348fbb Add label support to horizontal Divider. 2024-07-17 14:11:17 +08:00
Jason Lee
ac3d6760ed Fix vertical Divider 2024-07-17 13:59:20 +08:00
Jason Lee
3467522714
Add double click to select word support for Input. (#38)
Continue #27
2024-07-17 11:41:04 +08:00
Jason Lee
36411750ee Fix to limit change when Input is disabled.
Add clean button to List query input.
Add ButtonRouneded with px support.
2024-07-17 10:47:25 +08:00
Jason Lee
702863eb83
Add overflow scroll support to Input. (#37)
Continue #27

- Fix cut and paste invalid replace range.
- Add `Shift-Home`, `Shift-End` for select to home or end.

## Show case


https://github.com/user-attachments/assets/d99c56e3-5241-46e2-b3ac-f72ef962b0b5
2024-07-17 10:31:17 +08:00
Jason Lee
07e1296916
Add cleanable to Input (#36) 2024-07-16 19:44:16 +08:00
Jason Lee
ce7c1a3a34
Add Small, Large size support to Input and Dropdown and let them use same height. (#35)
- Add `Dropdown::string_list` to use `Vec<SharedString>` to create
dropdown for easy use.
- Add `input_px`, `input_py`, `input_h` trait methods to `Styled`
element.
2024-07-16 15:14:12 +08:00
Jason Lee
2b184ca8d5
New Scrollbar (#33)
https://github.com/user-attachments/assets/30d890bc-49cc-4abe-8652-387ddbb73198
2024-07-16 12:00:51 +08:00
Floyd Wang
b1bb22fd1d Fix clippy warning 2024-07-15 11:42:14 +08:00
Jason Lee
59603ab83b Add min_w, max_w to PopupMenu, and default min_w: 120, max_w: 500 2024-07-15 09:15:12 +08:00
Jason Lee
4ca98029dd
Fix placeholder style for Input (#32)
https://github.com/huacnlee/gpui-component/issues/27
2024-07-13 09:53:03 +08:00
Jason Lee
35cec4cf5c
Update to use better implementation of selection support for Input. (#31)
Co-authored-by: Conrad Irwin <conrad@zed.dev>
2024-07-13 09:40:42 +08:00
Jason Lee
41a83e6f6f
Improve Input (#29)
Continue #27 

- Fix selection color in dark mode.
- Allow to continue selection, even mouse is out of the input.
- Pause cursor blinking when keep typing.

https://github.com/user-attachments/assets/ce9e722c-5c47-4daa-b2ba-cbe1680c4932
2024-07-13 00:34:55 +08:00
Jason Lee
0d6d1c95d0 Fix ProgressBar example to avoid over the range. 2024-07-12 23:27:37 +08:00
Jason Lee
21f0e1c78a
Add mouse selection support to Input (#26)
Done reset mouse support of
https://github.com/zed-industries/zed/pull/13534


https://github.com/user-attachments/assets/71b1d4e4-eef7-4746-8400-b2e3812e5ad4
2024-07-12 22:41:18 +08:00
Floyd Wang
138fc9c7b5 Progress use positioning layout 2024-07-12 18:25:09 +08:00
Jason Lee
7c99584862
Add Indicator (#25)
https://github.com/user-attachments/assets/cd6410ca-e1c7-459e-8455-d76506b6d305
2024-07-12 17:33:05 +08:00
Floyd Wang
58dbf88af7
Add Radio (#24) 2024-07-12 16:37:31 +08:00
Jason Lee
2401d5d5a4
Add ResizablePanel (#22)
https://github.com/user-attachments/assets/b4067c1d-0ef0-4de4-bd7a-55f446d35ff0
2024-07-12 15:24:54 +08:00
Jason Lee
9e935bed56 Change switch use mouse_down to handle event fix Windows switch theme support. 2024-07-11 21:52:07 +08:00
Floyd Wang
e1aed0a03d
Add Progress (#21) 2024-07-11 19:10:46 +08:00
Jason Lee
56eb7147d9
Add a batch of color methods. (#20)
https://ui.shadcn.com/colors#colors
2024-07-11 18:16:57 +08:00
Jason Lee
eb43c78cea
Add to support open Popover as a child window. (#18)
## Goal

Change to let Popup elements open into a window, to make sure the Popup
windows, panels, menus render top than the WebView.

Then we can embed wry or other webview into GPUI.



https://github.com/huacnlee/gpui-component/assets/5518/ce005456-088f-4298-bf5d-2642cf96faff


----

This is also like other software, they are also used in child window to
render the menus, popups.

- https://github.com/huacnlee/gpui-component/pull/2
- https://github.com/zed-industries/zed/pull/13730

## Todos

- [x] Multiple display window position.
- [x] Windows transparent background. (No transparent, just render a
correct window border)
- [x] Disable window resize on Windows. 
- [ ] Handle Menu action.
- [x] Provided `popover` or `window` two mode to uses.
2024-07-11 16:20:26 +08:00
Floyd Wang
4d9077fe85 Rename ui::stock to ui::stack 2024-07-09 16:25:07 +08:00
Floyd Wang
75e4451764
Add text align property for Label (#19) 2024-07-09 15:56:41 +08:00
Jason Lee
310e5e3cde Avoid PickerStory clone vec. 2024-07-08 23:22:08 +08:00
Floyd Wang
cab6dc9f6e Update the drag split edge fraction 2024-07-08 16:46:54 +08:00
Floyd Wang
84de8a88a4 Fix resize dock not work 2024-07-08 11:19:20 +08:00