Remove unused code from storybook 2
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
This commit is contained in:
parent
a35d350cbd
commit
3f076eeda6
4 changed files with 0 additions and 693 deletions
|
@ -1,193 +0,0 @@
|
||||||
use gpui3::{
|
|
||||||
div, svg, view, Active, AppContext, Context, Element, ElementId, Hover, IntoAnyElement,
|
|
||||||
ParentElement, ScrollState, SharedString, Styled, View, ViewContext, WindowContext,
|
|
||||||
};
|
|
||||||
use ui::{theme, Theme};
|
|
||||||
|
|
||||||
pub struct CollabPanel {
|
|
||||||
scroll_state: ScrollState,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn collab_panel(cx: &mut WindowContext) -> View<CollabPanel> {
|
|
||||||
view(cx.entity(|cx| CollabPanel::new(cx)), CollabPanel::render)
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CollabPanel {
|
|
||||||
fn new(_: &mut AppContext) -> Self {
|
|
||||||
CollabPanel {
|
|
||||||
scroll_state: ScrollState::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl CollabPanel {
|
|
||||||
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl Element<ViewState = Self> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
|
|
||||||
// Panel
|
|
||||||
div()
|
|
||||||
.w_64()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.flex_col()
|
|
||||||
.font("Courier")
|
|
||||||
.text_color(theme.middle.base.default.foreground)
|
|
||||||
.border_color(theme.middle.base.default.border)
|
|
||||||
.border()
|
|
||||||
.bg(theme.middle.base.default.background)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_full()
|
|
||||||
.flex()
|
|
||||||
.flex_col()
|
|
||||||
.overflow_y_scroll(self.scroll_state.clone())
|
|
||||||
// List Container
|
|
||||||
// .child(
|
|
||||||
// div()
|
|
||||||
// .id(0)
|
|
||||||
// .on_click(|_, _, _| {
|
|
||||||
// dbg!("click!");
|
|
||||||
// })
|
|
||||||
// .fill(theme.lowest.base.default.background)
|
|
||||||
// .pb_1()
|
|
||||||
// .border_color(theme.lowest.base.default.border)
|
|
||||||
// .border_b()
|
|
||||||
// //:: https://tailwindcss.com/docs/hover-focus-and-other-states#styling-based-on-parent-state
|
|
||||||
// // .group()
|
|
||||||
// // List Section Header
|
|
||||||
// .child(self.list_section_header(0, "#CRDB 🗃️", true, theme))
|
|
||||||
// // List Item Large
|
|
||||||
// .child(self.list_item(
|
|
||||||
// "http://github.com/maxbrunsfeld.png?s=50",
|
|
||||||
// "maxbrunsfeld",
|
|
||||||
// theme,
|
|
||||||
// )),
|
|
||||||
// )
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.py_2()
|
|
||||||
.flex()
|
|
||||||
.flex_col()
|
|
||||||
.child(self.list_section_header(1, "CHANNELS", true, &theme)),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.py_2()
|
|
||||||
.flex()
|
|
||||||
.flex_col()
|
|
||||||
.child(self.list_section_header(2, "CONTACTS", true, &theme))
|
|
||||||
.children(
|
|
||||||
std::iter::repeat_with(|| {
|
|
||||||
vec![
|
|
||||||
self.list_item(
|
|
||||||
"http://github.com/as-cii.png?s=50",
|
|
||||||
"as-cii",
|
|
||||||
&theme,
|
|
||||||
),
|
|
||||||
// self.list_item(
|
|
||||||
// "http://github.com/nathansobo.png?s=50",
|
|
||||||
// "nathansobo",
|
|
||||||
// theme,
|
|
||||||
// ),
|
|
||||||
// self.list_item(
|
|
||||||
// "http://github.com/maxbrunsfeld.png?s=50",
|
|
||||||
// "maxbrunsfeld",
|
|
||||||
// theme,
|
|
||||||
// ),
|
|
||||||
]
|
|
||||||
})
|
|
||||||
.take(1)
|
|
||||||
.flatten(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.h_7()
|
|
||||||
.px_2()
|
|
||||||
.border_t()
|
|
||||||
.border_color(theme.middle.variant.default.border)
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.text_sm()
|
|
||||||
.text_color(theme.middle.variant.default.foreground)
|
|
||||||
.child("Find..."),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn list_section_header(
|
|
||||||
&self,
|
|
||||||
id: impl Into<ElementId>,
|
|
||||||
label: impl IntoAnyElement<Self>,
|
|
||||||
expanded: bool,
|
|
||||||
theme: &Theme,
|
|
||||||
) -> impl Element<ViewState = Self> {
|
|
||||||
div()
|
|
||||||
.id(id)
|
|
||||||
.h_7()
|
|
||||||
.px_2()
|
|
||||||
.flex()
|
|
||||||
.justify_between()
|
|
||||||
.items_center()
|
|
||||||
.active(|style| style.bg(theme.highest.accent.default.background))
|
|
||||||
.child(div().flex().gap_1().text_sm().child(label))
|
|
||||||
.child(
|
|
||||||
div().flex().h_full().gap_1().items_center().child(
|
|
||||||
svg()
|
|
||||||
.path(if expanded {
|
|
||||||
"icons/caret_down.svg"
|
|
||||||
} else {
|
|
||||||
"icons/caret_up.svg"
|
|
||||||
})
|
|
||||||
.w_3p5()
|
|
||||||
.h_3p5()
|
|
||||||
.text_color(theme.middle.variant.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn list_item(
|
|
||||||
&self,
|
|
||||||
avatar_uri: impl Into<SharedString>,
|
|
||||||
label: impl IntoAnyElement<Self>,
|
|
||||||
theme: &Theme,
|
|
||||||
) -> impl Element<ViewState = Self> {
|
|
||||||
div()
|
|
||||||
.group("")
|
|
||||||
.h_7()
|
|
||||||
.px_2()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.variant.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.variant.pressed.background)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_1()
|
|
||||||
.text_sm()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.id("avatar")
|
|
||||||
// .uri(avatar_uri)
|
|
||||||
.size_3p5()
|
|
||||||
.rounded_full()
|
|
||||||
.bg(theme.middle.positive.default.foreground)
|
|
||||||
.shadow()
|
|
||||||
.group_hover("", |style| {
|
|
||||||
style.bg(theme.middle.negative.default.foreground)
|
|
||||||
})
|
|
||||||
.hover(|style| style.bg(theme.middle.warning.default.foreground))
|
|
||||||
.group_active("", |style| {
|
|
||||||
style.bg(theme.middle.accent.default.foreground)
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
.child(label),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +1,10 @@
|
||||||
#![allow(dead_code, unused_variables)]
|
#![allow(dead_code, unused_variables)]
|
||||||
|
|
||||||
mod assets;
|
mod assets;
|
||||||
mod collab_panel;
|
|
||||||
mod stories;
|
mod stories;
|
||||||
mod story;
|
mod story;
|
||||||
mod story_selector;
|
mod story_selector;
|
||||||
mod themes;
|
mod themes;
|
||||||
mod workspace;
|
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
@ -23,7 +21,6 @@ use ui::themed;
|
||||||
|
|
||||||
use crate::assets::Assets;
|
use crate::assets::Assets;
|
||||||
use crate::story_selector::StorySelector;
|
use crate::story_selector::StorySelector;
|
||||||
use crate::workspace::workspace;
|
|
||||||
|
|
||||||
// gpui2::actions! {
|
// gpui2::actions! {
|
||||||
// storybook,
|
// storybook,
|
||||||
|
|
|
@ -1,496 +0,0 @@
|
||||||
use crate::{
|
|
||||||
collab_panel::{collab_panel, CollabPanel},
|
|
||||||
themes::rose_pine,
|
|
||||||
};
|
|
||||||
use gpui3::{
|
|
||||||
div, img, svg, view, Context, Element, Hover, ParentElement, Styled, View, ViewContext,
|
|
||||||
WindowContext,
|
|
||||||
};
|
|
||||||
use ui::{theme, themed};
|
|
||||||
|
|
||||||
pub struct Workspace {
|
|
||||||
left_panel: View<CollabPanel>,
|
|
||||||
right_panel: View<CollabPanel>,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn workspace(cx: &mut WindowContext) -> View<Workspace> {
|
|
||||||
view(cx.entity(|cx| Workspace::new(cx)), Workspace::render)
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Workspace {
|
|
||||||
fn new(cx: &mut ViewContext<Self>) -> Self {
|
|
||||||
Self {
|
|
||||||
left_panel: collab_panel(cx),
|
|
||||||
right_panel: collab_panel(cx),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn hover_test(&self, cx: &mut ViewContext<Self>) -> impl Element<ViewState = Self> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
|
|
||||||
div().size_full().child(
|
|
||||||
div()
|
|
||||||
.group("")
|
|
||||||
.w_full()
|
|
||||||
.h_5()
|
|
||||||
.mt_10()
|
|
||||||
.bg(theme.middle.warning.default.foreground)
|
|
||||||
.flex()
|
|
||||||
.flex_row()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.size_5()
|
|
||||||
.bg(theme.middle.negative.default.foreground)
|
|
||||||
.group_hover("", |style| {
|
|
||||||
style.bg(theme.middle.positive.default.foreground)
|
|
||||||
})
|
|
||||||
.hover(|style| style.bg(theme.middle.variant.default.foreground)),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn render(&mut self, cx: &mut ViewContext<Self>) -> impl Element<ViewState = Self> {
|
|
||||||
themed(rose_pine(), cx, |cx| {
|
|
||||||
// self.hover_test(cx)
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.size_full()
|
|
||||||
.flex()
|
|
||||||
.flex_col()
|
|
||||||
.font("Courier")
|
|
||||||
.gap_0()
|
|
||||||
.justify_start()
|
|
||||||
.items_start()
|
|
||||||
.text_color(theme.lowest.base.default.foreground)
|
|
||||||
.bg(theme.middle.base.default.background)
|
|
||||||
.child(titlebar(cx))
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex_1()
|
|
||||||
.w_full()
|
|
||||||
.flex()
|
|
||||||
.flex_row()
|
|
||||||
.overflow_hidden()
|
|
||||||
.child(self.left_panel.clone())
|
|
||||||
.child(div().h_full().flex_1()), // .child(self.right_panel.clone()),
|
|
||||||
)
|
|
||||||
.child(statusbar::statusbar(cx))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Titlebar;
|
|
||||||
|
|
||||||
pub fn titlebar<S: 'static + Send + Sync>(cx: &mut ViewContext<S>) -> impl Element<ViewState = S> {
|
|
||||||
let ref mut this = Titlebar;
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_between()
|
|
||||||
.w_full()
|
|
||||||
.h_8()
|
|
||||||
.bg(theme.lowest.base.default.background)
|
|
||||||
.child(this.left_group(cx))
|
|
||||||
.child(this.right_group(cx))
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Titlebar {
|
|
||||||
fn render<V: 'static + Send + Sync>(
|
|
||||||
&mut self,
|
|
||||||
cx: &mut ViewContext<V>,
|
|
||||||
) -> impl Element<ViewState = V> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_between()
|
|
||||||
.w_full()
|
|
||||||
.h_8()
|
|
||||||
.bg(theme.lowest.base.default.background)
|
|
||||||
.child(self.left_group(cx))
|
|
||||||
.child(self.right_group(cx))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn left_group<S: 'static + Send + Sync>(
|
|
||||||
&mut self,
|
|
||||||
cx: &mut ViewContext<S>,
|
|
||||||
) -> impl Element<ViewState = S> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.h_full()
|
|
||||||
.gap_4()
|
|
||||||
.px_2()
|
|
||||||
// === Traffic Lights === //
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_2()
|
|
||||||
.child(
|
|
||||||
div().w_3().h_3().rounded_full().bg(theme
|
|
||||||
.lowest
|
|
||||||
.positive
|
|
||||||
.default
|
|
||||||
.foreground),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div().w_3().h_3().rounded_full().bg(theme
|
|
||||||
.lowest
|
|
||||||
.warning
|
|
||||||
.default
|
|
||||||
.foreground),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div().w_3().h_3().rounded_full().bg(theme
|
|
||||||
.lowest
|
|
||||||
.negative
|
|
||||||
.default
|
|
||||||
.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
// === Project Info === //
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_1()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.px_2()
|
|
||||||
.rounded_md()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(div().text_sm().child("project")),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.px_2()
|
|
||||||
.rounded_md()
|
|
||||||
.text_color(theme.lowest.variant.default.foreground)
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.text_sm()
|
|
||||||
.text_decoration_1()
|
|
||||||
.text_decoration_wavy()
|
|
||||||
.child("branch"),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn right_group<S: 'static + Send + Sync>(
|
|
||||||
&mut self,
|
|
||||||
cx: &mut ViewContext<S>,
|
|
||||||
) -> impl Element<ViewState = S> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.h_full()
|
|
||||||
.gap_3()
|
|
||||||
.px_2()
|
|
||||||
// === Actions === //
|
|
||||||
.child(
|
|
||||||
div().child(
|
|
||||||
div().flex().items_center().gap_1().child(
|
|
||||||
div().size_4().flex().items_center().justify_center().child(
|
|
||||||
svg()
|
|
||||||
.path("icons/exit.svg")
|
|
||||||
.size_4()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(div().w_px().h_3().bg(theme.lowest.base.default.border))
|
|
||||||
// === Comms === //
|
|
||||||
.child(
|
|
||||||
div().child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_px()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.px_2()
|
|
||||||
.py_1()
|
|
||||||
.rounded_md()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/mic.svg")
|
|
||||||
.size_3p5()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.px_2()
|
|
||||||
.py_1()
|
|
||||||
.rounded_md()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/speaker-loud.svg")
|
|
||||||
.size_3p5()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.px_2()
|
|
||||||
.py_1()
|
|
||||||
.rounded_md()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/desktop.svg")
|
|
||||||
.size_3p5()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(div().w_px().h_3().bg(theme.lowest.base.default.border))
|
|
||||||
// User Group
|
|
||||||
.child(
|
|
||||||
div().child(
|
|
||||||
div()
|
|
||||||
.px_1()
|
|
||||||
.py_1()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.rounded_md()
|
|
||||||
.gap_0p5()
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
img()
|
|
||||||
.uri("https://avatars.githubusercontent.com/u/1714999?v=4")
|
|
||||||
.size_4()
|
|
||||||
.rounded_md()
|
|
||||||
.bg(theme.middle.on.default.foreground),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/caret_down.svg")
|
|
||||||
.w_2()
|
|
||||||
.h_2()
|
|
||||||
.text_color(theme.lowest.variant.default.foreground),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ================================================================================ //
|
|
||||||
|
|
||||||
mod statusbar {
|
|
||||||
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
pub fn statusbar<S: 'static + Send + Sync>(
|
|
||||||
cx: &mut ViewContext<S>,
|
|
||||||
) -> impl Element<ViewState = S> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_between()
|
|
||||||
.w_full()
|
|
||||||
.h_8()
|
|
||||||
.bg(theme.lowest.base.default.background)
|
|
||||||
// .child(left_group(cx))
|
|
||||||
// .child(right_group(cx))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn left_group<V: 'static + Send + Sync>(
|
|
||||||
cx: &mut ViewContext<V>,
|
|
||||||
) -> impl Element<ViewState = V> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.h_full()
|
|
||||||
.gap_4()
|
|
||||||
.px_2()
|
|
||||||
// === Tools === //
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_1()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_6()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/project.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_6()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/conversations.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_6()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/file_icons/notebook.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.accent.default.foreground),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
// === Diagnostics === //
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_2()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.gap_0p5()
|
|
||||||
.px_1()
|
|
||||||
.text_color(theme.lowest.variant.default.foreground)
|
|
||||||
// .hover()
|
|
||||||
// .fill(theme.lowest.base.hovered.background)
|
|
||||||
// .active()
|
|
||||||
// .fill(theme.lowest.base.pressed.background)
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/error.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.negative.default.foreground),
|
|
||||||
)
|
|
||||||
.child(div().text_sm().child("2")),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.text_sm()
|
|
||||||
.text_color(theme.lowest.variant.default.foreground)
|
|
||||||
.child("Something is wrong"),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn right_group<S: 'static + Send + Sync>(
|
|
||||||
cx: &mut ViewContext<S>,
|
|
||||||
) -> impl Element<ViewState = S> {
|
|
||||||
let theme = theme(cx);
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.h_full()
|
|
||||||
.gap_4()
|
|
||||||
.px_2()
|
|
||||||
// === Tools === //
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.gap_1()
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_6()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/check_circle.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.base.default.foreground),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.child(
|
|
||||||
div()
|
|
||||||
.w_6()
|
|
||||||
.h_full()
|
|
||||||
.flex()
|
|
||||||
.items_center()
|
|
||||||
.justify_center()
|
|
||||||
.child(
|
|
||||||
svg()
|
|
||||||
.path("icons/copilot.svg")
|
|
||||||
.w_4()
|
|
||||||
.h_4()
|
|
||||||
.text_color(theme.lowest.accent.default.foreground),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,6 @@
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use gpui3::rems;
|
|
||||||
use gpui3::{DefiniteLength, Hsla, Interactive, MouseButton, WindowContext};
|
use gpui3::{DefiniteLength, Hsla, Interactive, MouseButton, WindowContext};
|
||||||
|
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue