Commit Graph
109 Commits
Author SHA1 Message Date
Marshall Bowers 0dcbc47e15 Remove duplicate module declaration 2023-10-07 11:42:50 -04:00
Marshall Bowers b8b8fe6120 Add Button component 2023-10-07 11:41:48 -04:00
Marshall Bowers 8e94f3902b Merge branch 'marshall/merge-main-into-gpui2' into marshall/gpui2-playground 2023-10-06 16:47:40 -04:00
Marshall Bowers b369a6dc2a Merge branch 'main' into marshall/merge-main-into-gpui2 2023-10-06 15:41:18 -04:00
Marshall Bowers ad8187b151 Merge branch 'main' into marshall/gpui2-playground 2023-10-06 13:33:04 -04:00
456baaa112 Mainline GPUI2 UI work (#3099)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Included in this is a performance improvement to make use of the
`TextLayoutCache` when calling `layout` for `Text` elements.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2023-10-06 13:18:56 -04:00
Nathan Sobo c57e19c8fa Checkpoint: Glyphs rendering how I'd like 2023-10-03 17:29:36 -06:00
Nathan Sobo 4208ac2958 WIP 2023-10-03 15:17:45 -06:00
Nathan Sobo 45429b5400 WIP 2023-10-03 14:25:29 -06:00
Marshall Bowers d14dc35efe Merge branch 'gpui2' into marshall/gpui2-playground 2023-10-02 18:36:22 -04:00
9e1f7c4c18 Mainline GPUI2 UI work (#3079)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Nate <nate@zed.dev>
2023-10-02 18:20:47 -04:00
Marshall Bowers 247c7eff14 storybook: Fix kitchen sink story (#3064)
This PR fixes the kitchen sink story in the storybook.

Included are some additional changes that make it so the kitchen sink is
automatically populated by all of the defined stories.

Release Notes:

- N/A
2023-09-28 21:22:50 -04:00
f26ca0866c Mainline GPUI2 UI work (#3062)
This PR mainlines the current state of new GPUI2-based UI from the
`gpui2-ui` branch.

Release Notes:

- N/A

---------

Co-authored-by: Nate Butler <iamnbutler@gmail.com>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-authored-by: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Co-authored-by: Nate <nate@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-09-28 19:36:21 -04:00
Marshall Bowers ad62a966a6 Display available stories in storybook CLI (#3021)
This PR updates the storybook CLI to support displaying all of the
available stories.

The `--help` flag will now show a list of all the available stories:

<img width="1435" alt="Screenshot 2023-09-22 at 6 11 00 PM"
src="https://github.com/zed-industries/zed/assets/1486634/284e1a24-46ec-462e-9709-0f9b6e94931f">

Inputting an invalid story name will also show the list of available
stories:

<img width="1435" alt="Screenshot 2023-09-22 at 6 10 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/1ce3ae3f-ab03-4976-a06a-5a2b5f61eae3">

Release Notes:

- N/A
2023-09-22 18:16:16 -04:00
Marshall Bowers fe4248cf34 Scaffold Toolbar and Breadcrumb components (#3020)
This PR scaffolds the `Toolbar` and `Breadcrumb` components.

Right now they both just consist of hardcoded data.

<img width="846" alt="Screenshot 2023-09-22 at 4 54 00 PM"
src="https://github.com/zed-industries/zed/assets/1486634/70578df2-7216-42d2-97ef-d38b83fb4a25">

<img width="799" alt="Screenshot 2023-09-22 at 4 46 04 PM"
src="https://github.com/zed-industries/zed/assets/1486634/73ca3d8a-baf9-4ed4-b4c4-279c674672a3">

Release Notes:

- N/A
2023-09-22 16:57:33 -04:00
Marshall Bowers 27e3e09bb9 Label component states in stories (#3019)
This PR updates the UI component stories to label the various states
that they are in.

Release Notes:

- N/A
2023-09-22 15:48:32 -04:00
Marshall Bowers 8b6e982495 Remove manual mapping in FromStr implementation for StorySelector (#3018)
This PR removes the need for writing manual mappings in the `FromStr`
implementation for the `StorySelector` enum used in the storybook CLI.

We are now using the
[`EnumString`](https://docs.rs/strum/0.25.0/strum/derive.EnumString.html)
trait from `strum` to automatically derive snake_cased names for the
enums.

This will cut down on some of the manual work needed to wire up more
stories to the storybook.

Release Notes:

- N/A
2023-09-22 14:06:09 -04:00
Marshall BowersandPiotr Osiewicz 71c1e36d1e Put Theme behind an Arc (#3017)
This PR puts the `Theme` returned from the `theme` function behind an
`Arc`.

### Motivation

While working on wiring up window focus events for the `TitleBar`
component we ran into issues where `theme` was holding an immutable
borrow to the `ViewContext` for the entirety of the `render` scope,
which prevented having mutable borrows in the same scope.

### Explanation

To avoid this, we can make `theme` return an `Arc<Theme>` to allow for
cheap clones and avoiding the issues with the borrow checker.

Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-09-22 13:35:30 -04:00
Marshall Bowers d8c6adf338 Factor story boilerplate out into separate components (#3016)
This PR factors out the bulk of the boilerplate required to setup a
story in the storybook out into separate components.

The pattern we're using here is adapted from the "[associated
component](https://maxdeviant.com/posts/2021/react-associated-components/)"
pattern in React.

Release Notes:

- N/A
2023-09-22 11:38:01 -04:00
Marshall Bowers 5083ab7694 Add TrafficLights component (#3011)
This PR adds a `TrafficLights` component for GPUI2.

<img width="861" alt="Screenshot 2023-09-21 at 11 32 10 PM"
src="https://github.com/zed-industries/zed/assets/1486634/0fe0e847-49b3-44dc-bd4c-64f12f0051c1">

Release Notes:

- N/A
2023-09-21 23:42:18 -04:00
Marshall Bowers 66358f2900 Update storybook to support stories for individual components (#3010)
This PR updates the `storybook` with support for adding stories for
individual components.

### Motivation

Right now we just have one story in the storybook that renders an entire
`WorkspaceElement`.

While iterating on the various UI components, it will be helpful to be
able to create stories of those components just by themselves.

This is especially true for components that have a number of different
states, as we can render the components in all of the various states in
a single layout.

### Explanation

We achieve this by adding a simple CLI to the storybook.

The `storybook` binary now accepts an optional `[STORY]` parameter that
can be used to indicate which story should be loaded. If this parameter
is not provided, it will load the workspace story as it currently does.

Passing a story name will load the corresponding story, if it exists.

For example:

```
cargo run -- elements/avatar
```

<img width="723" alt="Screenshot 2023-09-21 at 10 29 52 PM"
src="https://github.com/zed-industries/zed/assets/1486634/5df489ed-8607-4024-9c19-c5f4541f97c9">

```
cargo run -- components/facepile
```

<img width="785" alt="Screenshot 2023-09-21 at 10 30 07 PM"
src="https://github.com/zed-industries/zed/assets/1486634/e04a4577-7403-405d-b23c-e765b7a06229">



Release Notes:

- N/A
2023-09-21 22:41:53 -04:00
Marshall Bowers baa07e935e Extract UI elements from storybook into new ui crate (#3008)
This PR extracts the various UI elements from the `storybook` crate into
a new `ui` library crate.

Release Notes:

- N/A
2023-09-21 19:25:35 -04:00
Marshall Bowers c252eae32e Reorganize ui module exports (#3007)
This PR reorganizes the exports for the `ui` module in the `storybook`
crate.

### Motivation

Currently we expose each of the various elements/components/modules in
two places:

- Through the module itself (e.g., `ui::element::Avatar`)
- Through the `ui` module's re-exports (e.g., `ui::Avatar`)

This means it's possible to import any given item from two spots, which
can lead to inconsistencies in the consumers. Additionally, it also
means we're shipping the exact module structure underneath `ui` as part
of the public API.

### Explanation

To avoid this, we can avoid exposing each of the individual modules
underneath `ui::{element, component, module}` and instead export just
the module contents themselves.

This makes the `ui` module namespace flat.

Release Notes:

- N/A
2023-09-21 17:46:37 -04:00
Nate Butler be6690bf0b Update tracker.md 2023-09-20 13:08:20 -04:00
Nate Butler 6dcb0bafb0 WIP Project Tracker 2023-09-20 12:53:08 -04:00
Nathan Sobo 83dae46ec6 Checkpoint 2023-09-20 10:17:29 -06:00
Nate Butler 2699f170ca Checkpoint - Details 2023-09-19 19:18:23 -04:00
Nathan Sobo e762f7f3c0 Checkpoint 2023-09-19 13:09:00 -06:00
Nate ButlerandJulia 65aa4d5642 Draw indent guides using indent_level
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 12:38:46 -04:00
Nate ButlerandJulia 3a9f5d6ddc use u32 as indent_level
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 11:59:55 -04:00
Nate ButlerandJulia 748ad5f05a Make list_item toggleable, improve optional left_icon on list item
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
2023-09-19 11:52:35 -04:00
Nathan Sobo 89519b1521 WIP 2023-09-19 08:46:02 -06:00
Nate Butler 7e300079ce WIP 2023-09-19 08:31:22 -04:00
Nate Butler 8aa4fbea83 Add icon, list_item, work on project panel 2023-09-19 00:25:46 -04:00
Nathan Sobo 2701be91e3 Add negative style helpers 2023-09-18 20:47:40 -06:00
Nathan Sobo f2e87a3429 Add Element::when method 2023-09-18 20:25:12 -06:00
Nathan Sobo c7a3186d08 Checkpoint 2023-09-18 20:17:27 -06:00
Nathan Sobo a5e4ceb735 Checkpoint: Add methods for setting arbitrary lengths 2023-09-18 19:48:22 -06:00
Nate Butler b725cadf48 Checkpoint 2023-09-18 19:59:01 -04:00
Nathan Sobo df9a05ba92 Checkpoint 2023-09-18 17:40:47 -06:00
Nate Butler db1dacde5d Add facepile, indicator, follow_group 2023-09-15 22:10:51 -04:00
Nate Butler 9f2a9d43b1 Organize design system under ui 2023-09-15 16:34:56 -04:00
Nate Butler d6f24feb4a WIP 2023-09-15 14:14:28 -04:00
Nate Butler 40e785fdff Merge branch 'main' into nate/gpui2-ui-components 2023-09-15 13:57:15 -04:00
Nate Butler 24974ee2fa Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
Nate Butler 70a91c5426 Checkpoint 2023-09-15 11:41:21 -04:00
Nathan Sobo 0a2a5be71c Checkpoint 2023-09-14 21:42:56 -06:00
Nathan Sobo 4fd4f44bb7 Checkpoint 2023-09-14 18:51:03 -06:00
Nathan Sobo 378b2fbd9e WIP 2023-09-14 16:52:04 -06:00
Nathan Sobo 1f9b52d5e1 Checkpoint 2023-09-14 16:19:48 -06:00