diff --git a/Cargo.lock b/Cargo.lock
index 8c0f51e2893f53c3e6ef78dbd5ef711f8d9dc95c..85d3f9ac3a68aa8a420910dfa61102f03c9812ef 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3418,19 +3418,6 @@ dependencies = [
"crossbeam-utils",
]
-[[package]]
-name = "console"
-version = "0.15.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
-dependencies = [
- "encode_unicode",
- "libc",
- "once_cell",
- "unicode-width",
- "windows-sys 0.59.0",
-]
-
[[package]]
name = "console_error_panic_hook"
version = "0.1.7"
@@ -4851,20 +4838,6 @@ dependencies = [
"zlog",
]
-[[package]]
-name = "dialoguer"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
-dependencies = [
- "console",
- "fuzzy-matcher",
- "shell-words",
- "tempfile",
- "thiserror 1.0.69",
- "zeroize",
-]
-
[[package]]
name = "diff"
version = "0.1.13"
@@ -5546,12 +5519,6 @@ dependencies = [
"phf 0.11.3",
]
-[[package]]
-name = "encode_unicode"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
-
[[package]]
name = "encoding_rs"
version = "0.8.35"
@@ -6747,15 +6714,6 @@ dependencies = [
"util",
]
-[[package]]
-name = "fuzzy-matcher"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
-dependencies = [
- "thread_local",
-]
-
[[package]]
name = "fuzzy_nucleo"
version = "0.1.0"
@@ -16745,44 +16703,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-[[package]]
-name = "story"
-version = "0.1.0"
-dependencies = [
- "gpui",
- "itertools 0.14.0",
- "smallvec",
-]
-
-[[package]]
-name = "storybook"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "clap",
- "ctrlc",
- "dialoguer",
- "editor",
- "fuzzy",
- "gpui",
- "gpui_platform",
- "indoc",
- "language",
- "log",
- "menu",
- "picker",
- "reqwest_client",
- "rust-embed",
- "settings",
- "simplelog",
- "story",
- "strum 0.27.2",
- "theme",
- "theme_settings",
- "title_bar",
- "ui",
-]
-
[[package]]
name = "streaming-iterator"
version = "0.1.9"
@@ -17704,7 +17624,6 @@ version = "0.1.0"
dependencies = [
"anyhow",
"collections",
- "derive_more",
"gpui",
"palette",
"parking_lot",
@@ -18027,7 +17946,6 @@ dependencies = [
"serde",
"settings",
"smallvec",
- "story",
"telemetry",
"theme",
"ui",
@@ -18926,7 +18844,6 @@ dependencies = [
"schemars",
"serde",
"smallvec",
- "story",
"strum 0.27.2",
"theme",
"ui_macros",
diff --git a/Cargo.toml b/Cargo.toml
index 59f8e265694f060c9f65b30143b79e324de1f08c..b9e99a5a87020a7eda8c8a2983bcf7b07fabc82c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -183,8 +183,6 @@ members = [
"crates/snippets_ui",
"crates/sqlez",
"crates/sqlez_macros",
- "crates/story",
- "crates/storybook",
"crates/streaming_diff",
"crates/sum_tree",
"crates/svg_preview",
@@ -437,7 +435,6 @@ snippet_provider = { path = "crates/snippet_provider" }
snippets_ui = { path = "crates/snippets_ui" }
sqlez = { path = "crates/sqlez" }
sqlez_macros = { path = "crates/sqlez_macros" }
-story = { path = "crates/story" }
streaming_diff = { path = "crates/streaming_diff" }
sum_tree = { path = "crates/sum_tree" }
codestral = { path = "crates/codestral" }
@@ -935,7 +932,6 @@ session = { codegen-units = 1 }
sidebar = { codegen-units = 1 }
snippet = { codegen-units = 1 }
snippets_ui = { codegen-units = 1 }
-story = { codegen-units = 1 }
telemetry_events = { codegen-units = 1 }
theme_selector = { codegen-units = 1 }
time_format = { codegen-units = 1 }
diff --git a/crates/story/Cargo.toml b/crates/story/Cargo.toml
deleted file mode 100644
index 798461402de00c102af9325c091eb9edfdf89b09..0000000000000000000000000000000000000000
--- a/crates/story/Cargo.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-[package]
-name = "story"
-version = "0.1.0"
-edition.workspace = true
-publish.workspace = true
-license = "GPL-3.0-or-later"
-
-[lib]
-path = "src/story.rs"
-
-[lints]
-workspace = true
-
-[dependencies]
-gpui.workspace = true
-itertools.workspace = true
-smallvec.workspace = true
diff --git a/crates/story/LICENSE-GPL b/crates/story/LICENSE-GPL
deleted file mode 120000
index 89e542f750cd3860a0598eff0dc34b56d7336dc4..0000000000000000000000000000000000000000
--- a/crates/story/LICENSE-GPL
+++ /dev/null
@@ -1 +0,0 @@
-../../LICENSE-GPL
\ No newline at end of file
diff --git a/crates/story/src/story.rs b/crates/story/src/story.rs
deleted file mode 100644
index b59cb6fb99086de7eb22ab2645dc01dbe15fb959..0000000000000000000000000000000000000000
--- a/crates/story/src/story.rs
+++ /dev/null
@@ -1,209 +0,0 @@
-use gpui::{
- AnyElement, App, Div, SharedString, Window, colors::DefaultColors, div, prelude::*, px, rems,
-};
-use itertools::Itertools;
-use smallvec::SmallVec;
-
-pub struct Story {}
-
-impl Story {
- pub fn container(cx: &App) -> gpui::Stateful
{
- div()
- .id("story_container")
- .overflow_y_scroll()
- .w_full()
- .min_h_full()
- .flex()
- .flex_col()
- .text_color(cx.default_colors().text)
- .bg(cx.default_colors().background)
- }
-
- pub fn title(title: impl Into
, cx: &App) -> impl Element {
- div()
- .text_xs()
- .text_color(cx.default_colors().text)
- .child(title.into())
- }
-
- pub fn title_for(cx: &App) -> impl Element {
- Self::title(std::any::type_name::(), cx)
- }
-
- pub fn section(cx: &App) -> Div {
- div()
- .p_4()
- .m_4()
- .border_1()
- .border_color(cx.default_colors().separator)
- }
-
- pub fn section_title(cx: &App) -> Div {
- div().text_lg().text_color(cx.default_colors().text)
- }
-
- pub fn group(cx: &App) -> Div {
- div().my_2().bg(cx.default_colors().container)
- }
-
- pub fn code_block(code: impl Into, cx: &App) -> Div {
- div()
- .size_full()
- .p_2()
- .max_w(rems(36.))
- .bg(cx.default_colors().container)
- .rounded_sm()
- .text_sm()
- .text_color(cx.default_colors().text)
- .overflow_hidden()
- .child(code.into())
- }
-
- pub fn divider(cx: &App) -> Div {
- div().my_2().h(px(1.)).bg(cx.default_colors().separator)
- }
-
- pub fn description(description: impl Into, cx: &App) -> impl Element {
- div()
- .text_sm()
- .text_color(cx.default_colors().text)
- .min_w_96()
- .child(description.into())
- }
-
- pub fn label(label: impl Into, cx: &App) -> impl Element {
- div()
- .text_xs()
- .text_color(cx.default_colors().text)
- .child(label.into())
- }
-
- /// Note: Not `ui::v_flex` as the `story` crate doesn't depend on the `ui` crate.
- pub fn v_flex() -> Div {
- div().flex().flex_col().gap_1()
- }
-}
-
-#[derive(IntoElement)]
-pub struct StoryItem {
- label: SharedString,
- item: AnyElement,
- description: Option,
- usage: Option,
-}
-
-impl StoryItem {
- pub fn new(label: impl Into, item: impl IntoElement) -> Self {
- Self {
- label: label.into(),
- item: item.into_any_element(),
- description: None,
- usage: None,
- }
- }
-
- pub fn description(mut self, description: impl Into) -> Self {
- self.description = Some(description.into());
- self
- }
-
- pub fn usage(mut self, code: impl Into) -> Self {
- self.usage = Some(code.into());
- self
- }
-}
-
-impl RenderOnce for StoryItem {
- fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement {
- let colors = cx.default_colors();
-
- div()
- .my_2()
- .flex()
- .gap_4()
- .w_full()
- .child(
- Story::v_flex()
- .px_2()
- .w_1_2()
- .min_h_px()
- .child(Story::label(self.label, cx))
- .child(
- div()
- .rounded_sm()
- .bg(colors.background)
- .border_1()
- .border_color(colors.border)
- .py_1()
- .px_2()
- .overflow_hidden()
- .child(self.item),
- )
- .when_some(self.description, |this, description| {
- this.child(Story::description(description, cx))
- }),
- )
- .child(
- Story::v_flex()
- .px_2()
- .flex_none()
- .w_1_2()
- .min_h_px()
- .when_some(self.usage, |this, usage| {
- this.child(Story::label("Example Usage", cx))
- .child(Story::code_block(usage, cx))
- }),
- )
- }
-}
-
-#[derive(IntoElement)]
-pub struct StorySection {
- description: Option,
- children: SmallVec<[AnyElement; 2]>,
-}
-
-impl Default for StorySection {
- fn default() -> Self {
- Self::new()
- }
-}
-
-impl StorySection {
- pub fn new() -> Self {
- Self {
- description: None,
- children: SmallVec::new(),
- }
- }
-
- pub fn description(mut self, description: impl Into) -> Self {
- self.description = Some(description.into());
- self
- }
-}
-
-impl RenderOnce for StorySection {
- fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement {
- let children: SmallVec<[AnyElement; 2]> = SmallVec::from_iter(Itertools::intersperse_with(
- self.children.into_iter(),
- || Story::divider(cx).into_any_element(),
- ));
-
- Story::section(cx)
- // Section title
- .py_2()
- // Section description
- .when_some(self.description, |section, description| {
- section.child(Story::description(description, cx))
- })
- .child(div().flex().flex_col().gap_2().children(children))
- .child(Story::divider(cx))
- }
-}
-
-impl ParentElement for StorySection {
- fn extend(&mut self, elements: impl IntoIterator- ) {
- self.children.extend(elements)
- }
-}
diff --git a/crates/storybook/Cargo.toml b/crates/storybook/Cargo.toml
deleted file mode 100644
index b641e5cbd8b5ce5e66f9fb082e74ea42124f8993..0000000000000000000000000000000000000000
--- a/crates/storybook/Cargo.toml
+++ /dev/null
@@ -1,41 +0,0 @@
-[package]
-name = "storybook"
-version = "0.1.0"
-edition.workspace = true
-publish.workspace = true
-license = "GPL-3.0-or-later"
-
-[lints]
-workspace = true
-
-[[bin]]
-name = "storybook"
-path = "src/storybook.rs"
-
-[dependencies]
-anyhow.workspace = true
-clap = { workspace = true, features = ["derive", "string"] }
-ctrlc = "3.4"
-dialoguer = { version = "0.11.0", features = ["fuzzy-select"] }
-editor.workspace = true
-fuzzy.workspace = true
-gpui = { workspace = true, default-features = true }
-gpui_platform.workspace = true
-indoc.workspace = true
-language.workspace = true
-log.workspace = true
-menu.workspace = true
-picker.workspace = true
-reqwest_client.workspace = true
-rust-embed.workspace = true
-settings.workspace = true
-theme_settings.workspace = true
-simplelog.workspace = true
-story.workspace = true
-strum = { workspace = true, features = ["derive"] }
-theme.workspace = true
-title_bar = { workspace = true, features = ["stories"] }
-ui = { workspace = true, features = ["stories"] }
-
-[dev-dependencies]
-gpui = { workspace = true, features = ["test-support"] }
diff --git a/crates/storybook/LICENSE-GPL b/crates/storybook/LICENSE-GPL
deleted file mode 120000
index 89e542f750cd3860a0598eff0dc34b56d7336dc4..0000000000000000000000000000000000000000
--- a/crates/storybook/LICENSE-GPL
+++ /dev/null
@@ -1 +0,0 @@
-../../LICENSE-GPL
\ No newline at end of file
diff --git a/crates/storybook/build.rs b/crates/storybook/build.rs
deleted file mode 100644
index 66791cae4218e34d6d1fa5e156fc900eb6cf8c59..0000000000000000000000000000000000000000
--- a/crates/storybook/build.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-fn main() {
- #[cfg(target_os = "windows")]
- {
- #[cfg(target_env = "msvc")]
- {
- println!("cargo:rustc-link-arg=/stack:{}", 8 * 1024 * 1024);
- }
- }
-}
diff --git a/crates/storybook/docs/thoughts.md b/crates/storybook/docs/thoughts.md
deleted file mode 100644
index cdeef621f362f4ff0deff7551af894b314ed96d4..0000000000000000000000000000000000000000
--- a/crates/storybook/docs/thoughts.md
+++ /dev/null
@@ -1,57 +0,0 @@
-Much of element styling is now handled by an external engine.
-
-How do I make an element hover.
-
-There's a hover style.
-
-Hoverable needs to wrap another element. That element can be styled.
-
-```rs
-struct Hoverable {
-
-}
-
-impl Element for Hoverable {
-
-}
-```
-
-```rs
-#[derive(Styled, Interactive)]
-pub struct Div {
- declared_style: StyleRefinement,
- interactions: Interactions
-}
-
-pub trait Styled {
- fn declared_style(&mut self) -> &mut StyleRefinement;
- fn compute_style(&mut self) -> Style {
- Style::default().refine(self.declared_style())
- }
-
- // All the tailwind classes, modifying self.declared_style()
-}
-
-impl Style {
- pub fn paint_background(layout: Layout, cx: &mut PaintContext);
- pub fn paint_foreground(layout: Layout, cx: &mut PaintContext);
-}
-
-pub trait Interactive {
- fn interactions(&mut self) -> &mut Interactions;
-
- fn on_click(self, )
-}
-
-struct Interactions {
- click: SmallVec<[; 1]>,
-}
-```
-
-```rs
-trait Stylable {
- type Style;
-
- fn with_style(self, style: Self::Style) -> Self;
-}
-```
diff --git a/crates/storybook/src/actions.rs b/crates/storybook/src/actions.rs
deleted file mode 100644
index 03ee5b580c55d8ffbbc745214f1298d2dd0a19be..0000000000000000000000000000000000000000
--- a/crates/storybook/src/actions.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-use gpui::actions;
-actions!(storybook, [Quit]);
diff --git a/crates/storybook/src/app_menus.rs b/crates/storybook/src/app_menus.rs
deleted file mode 100644
index c3045cf7999b851245a2f540c6318b7d0ef57b4f..0000000000000000000000000000000000000000
--- a/crates/storybook/src/app_menus.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-use gpui::{Menu, MenuItem};
-
-pub fn app_menus() -> Vec