[package]
edition = "2024"
name = "gpui-component"
version = "0.6.0"
build = "build.rs"
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GPUI Component: the styled component library of GPUI Kit, with 60+ desktop UI components for GPUI."
homepage = "https://gpui-kit.com"
documentation = "https://docs.rs/gpui-component"
readme = "README.md"
keywords = [
"desktop",
"gpui",
"shadcn",
"ui",
"uikit",
]
license = "Apache-2.0"
repository = "https://github.com/longbridge/gpui-kit"
resolver = "2"
[package.metadata.cargo-machete]
ignored = ["gpui_macros"]
[features]
decimal = ["dep:rust_decimal"]
inspector = [
"gpui_macros/inspector",
"gpui/inspector",
"gpui-base/inspector",
]
tree-sitter = [
"dep:tree-sitter",
"dep:tree-sitter-json",
]
tree-sitter-astro = [
"tree-sitter",
"dep:tree-sitter-astro-next",
]
tree-sitter-bash = [
"tree-sitter",
"dep:tree-sitter-bash",
]
tree-sitter-c = [
"tree-sitter",
"dep:tree-sitter-c",
]
tree-sitter-cmake = [
"tree-sitter",
"dep:tree-sitter-cmake",
]
tree-sitter-cpp = [
"tree-sitter",
"dep:tree-sitter-cpp",
]
tree-sitter-csharp = [
"tree-sitter",
"dep:tree-sitter-c-sharp",
]
tree-sitter-css = [
"tree-sitter",
"dep:tree-sitter-css",
]
tree-sitter-diff = [
"tree-sitter",
"dep:tree-sitter-diff",
]
tree-sitter-ejs = [
"tree-sitter",
"dep:tree-sitter-embedded-template",
]
tree-sitter-elixir = [
"tree-sitter",
"dep:tree-sitter-elixir",
]
tree-sitter-erb = [
"tree-sitter",
"dep:tree-sitter-embedded-template",
]
tree-sitter-go = [
"tree-sitter",
"dep:tree-sitter-go",
]
tree-sitter-graphql = [
"tree-sitter",
"dep:tree-sitter-graphql",
]
tree-sitter-html = [
"tree-sitter",
"dep:tree-sitter-html",
]
tree-sitter-java = [
"tree-sitter",
"dep:tree-sitter-java",
]
tree-sitter-javascript = [
"tree-sitter",
"dep:tree-sitter-javascript",
]
tree-sitter-jsdoc = [
"tree-sitter",
"dep:tree-sitter-jsdoc",
]
tree-sitter-kotlin = [
"tree-sitter",
"dep:tree-sitter-kotlin-sg",
]
tree-sitter-languages = [
"tree-sitter-astro",
"tree-sitter-bash",
"tree-sitter-c",
"tree-sitter-cmake",
"tree-sitter-cpp",
"tree-sitter-csharp",
"tree-sitter-css",
"tree-sitter-diff",
"tree-sitter-ejs",
"tree-sitter-elixir",
"tree-sitter-erb",
"tree-sitter-go",
"tree-sitter-graphql",
"tree-sitter-html",
"tree-sitter-java",
"tree-sitter-javascript",
"tree-sitter-jsdoc",
"tree-sitter-kotlin",
"tree-sitter-lua",
"tree-sitter-make",
"tree-sitter-markdown",
"tree-sitter-php",
"tree-sitter-proto",
"tree-sitter-python",
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-scala",
"tree-sitter-sql",
"tree-sitter-svelte",
"tree-sitter-swift",
"tree-sitter-toml",
"tree-sitter-tsx",
"tree-sitter-typescript",
"tree-sitter-yaml",
"tree-sitter-zig",
]
tree-sitter-lua = [
"tree-sitter",
"dep:tree-sitter-lua",
]
tree-sitter-make = [
"tree-sitter",
"dep:tree-sitter-make",
]
tree-sitter-markdown = [
"tree-sitter",
"dep:tree-sitter-md",
]
tree-sitter-markdown-inline = ["tree-sitter-markdown"]
tree-sitter-php = [
"tree-sitter",
"dep:tree-sitter-php",
]
tree-sitter-proto = [
"tree-sitter",
"dep:tree-sitter-proto",
]
tree-sitter-python = [
"tree-sitter",
"dep:tree-sitter-python",
]
tree-sitter-ruby = [
"tree-sitter",
"dep:tree-sitter-ruby",
]
tree-sitter-rust = [
"tree-sitter",
"dep:tree-sitter-rust",
]
tree-sitter-scala = [
"tree-sitter",
"dep:tree-sitter-scala",
]
tree-sitter-sql = [
"tree-sitter",
"dep:tree-sitter-sequel",
]
tree-sitter-svelte = [
"tree-sitter",
"dep:tree-sitter-svelte-next",
]
tree-sitter-swift = [
"tree-sitter",
"dep:tree-sitter-swift",
]
tree-sitter-toml = [
"tree-sitter",
"dep:tree-sitter-toml-ng",
]
tree-sitter-tsx = [
"tree-sitter",
"dep:tree-sitter-typescript",
]
tree-sitter-typescript = [
"tree-sitter",
"dep:tree-sitter-typescript",
]
tree-sitter-yaml = [
"tree-sitter",
"dep:tree-sitter-yaml",
]
tree-sitter-zig = [
"tree-sitter",
"dep:tree-sitter-zig",
]
[lib]
name = "gpui_component"
path = "src/lib.rs"
doctest = false
[[test]]
name = "base_compat"
path = "tests/base_compat.rs"
[[test]]
name = "legacy_button_compat"
path = "tests/legacy_button_compat.rs"
[[test]]
name = "legacy_controls_compat"
path = "tests/legacy_controls_compat.rs"
[[test]]
name = "table_dump_range"
path = "tests/table_dump_range.rs"
[[test]]
name = "theme_compat"
path = "tests/theme_compat.rs"
[dependencies.anyhow]
version = "1"
[dependencies.chrono]
version = "0.4.38"
[dependencies.enum-iterator]
version = "2.1.0"
[dependencies.gpui]
version = "0.3.1"
package = "gpui-pre"
[dependencies.gpui-base]
version = "0.6.0"
[dependencies.gpui-component-macros]
version = "0.6.0"
[dependencies.gpui-kit-assets]
version = "0.6.0"
[dependencies.gpui_macros]
version = "0.3.1"
package = "gpui-pre-macros"
[dependencies.instant]
version = "0.1"
features = ["wasm-bindgen"]
[dependencies.itertools]
version = "0.13.0"
[dependencies.log]
version = "0.4"
[dependencies.lsp-types]
version = "0.97.0"
features = ["proposed"]
[dependencies.markdown]
version = "1.0.0"
features = ["serde"]
[dependencies.notify]
version = "7.0.0"
[dependencies.num-traits]
version = "0.2"
[dependencies.once_cell]
version = "1.19.0"
[dependencies.paste]
version = "1"
[dependencies.ropey]
version = "=2.0.0-beta.1"
features = [
"metric_chars",
"metric_lines_lf",
"metric_utf16",
]
[dependencies.rust-i18n]
version = "4.2.0"
[dependencies.rust_decimal]
version = "1.37.0"
optional = true
[dependencies.schemars]
version = "1"
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_repr]
version = "0.1"
[dependencies.smallvec]
version = "1"
[dependencies.sum-tree]
version = "0.3.1"
package = "gpui-pre-sum-tree"
[dependencies.tracing]
version = "0.1.41"
[dependencies.uuid]
version = "1.10"
[dev-dependencies.gpui]
version = "0.3.1"
features = ["test-support"]
package = "gpui-pre"
[dev-dependencies.indoc]
version = "2"
[target.'cfg(not(target_family = "wasm"))'.dependencies.smol]
version = "2"
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter]
version = "0.26"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-astro-next]
version = "0.1.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-bash]
version = "0.23.3"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-c]
version = "0.24.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-c-sharp]
version = "0.23.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-cmake]
version = "0.7.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-cpp]
version = "0.23.4"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-css]
version = "0.23.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-diff]
version = "0.1.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-elixir]
version = "0.3"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-embedded-template]
version = "0.23.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-go]
version = "0.23.4"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-graphql]
version = "0.1.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-html]
version = "0.23.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-java]
version = "0.23.5"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-javascript]
version = "0.23.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-jsdoc]
version = "0.23.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-json]
version = "0.24.8"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-kotlin-sg]
version = "0.4.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-lua]
version = "0.4.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-make]
version = "1.1.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-md]
version = "0.5.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-php]
version = "0.24.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-proto]
version = "0.2.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-python]
version = "0.23.6"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-ruby]
version = "0.23.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-rust]
version = "0.24.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-scala]
version = "0.23.4"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-sequel]
version = "0.3.8"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-svelte-next]
version = "0.1.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-swift]
version = "0.7.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-toml-ng]
version = "0.7.0"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-typescript]
version = "0.23.2"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-yaml]
version = "0.7.1"
optional = true
[target.'cfg(not(target_family = "wasm"))'.dependencies.tree-sitter-zig]
version = "1.1.2"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.core-text]
version = "=21.0.0"
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6"
[target.'cfg(target_os = "macos")'.dependencies.objc2-app-kit]
version = "0.3"
features = [
"NSMenu",
"NSMenuItem",
"NSView",
"NSWindow",
"NSResponder",
"NSEvent",
"NSImage",
]
[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3"
features = [
"NSData",
"NSString",
"NSGeometry",
]
[target.'cfg(target_os = "macos")'.dependencies.raw-window-handle]
version = "0.6.2"
[target.'cfg(target_os = "windows")'.dependencies.raw-window-handle]
version = "0.6.2"
[target.'cfg(target_os = "windows")'.dependencies.resvg]
version = "0.45.1"
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.58.0"
features = [
"Wdk",
"Wdk_System",
"Wdk_System_SystemServices",
"Win32_Foundation",
"Win32_Graphics_Gdi",
"Win32_Graphics_GdiPlus",
"Win32_System_Com",
"Win32_System_Com_StructuredStorage",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_WindowsAndMessaging",
]
[lints.clippy]
almost_complete_range = "allow"
arc_with_non_send_sync = "allow"
borrowed_box = "allow"
dbg_macro = "deny"
let_underscore_future = "allow"
manual_is_multiple_of = "allow"
map_entry = "allow"
module_inception = "allow"
non_canonical_partial_ord_impl = "allow"
reversed_empty_ranges = "allow"
single_range_in_vec_init = "allow"
todo = "deny"
type_complexity = "allow"
useless_conversion = "allow"
[lints.clippy.style]
level = "allow"
priority = -1