[package] name = "gpui-kit" version = "0.9.1" description = "GPUI Kit: one dependency for building desktop applications with GPUI, GPUI Base, GPUI Component and default assets." keywords = ["desktop", "gpui", "shadcn", "ui", "uikit"] categories = ["gui"] license = "Apache-2.0" documentation = "https://docs.rs/gpui-kit" homepage = "https://gpui-kit.com" repository = "https://github.com/longbridge/gpui-kit" readme = "README.md" publish = true edition.workspace = true [lints] workspace = true [features] default = ["component", "assets"] # Select GPUI Fast across the core, platforms, and already-enabled layers. gpui-fast = ["dep:gpui-fast", "dep:gpui-fast-platform", "dep:gpui-fast-web", "gpui-base/gpui-fast", "gpui-component?/gpui-fast", "gpui-kit-assets?/gpui-fast"] # The styled component library, `gpui_kit::component`. Initializes `gpui-base` too. component = ["dep:gpui-component"] # The default icon set for `gpui-component`, `gpui_kit::assets`. assets = ["dep:gpui-kit-assets"] # GPUI's test harness, native-platform rendering, and Kit UI test helpers. test-support = ["gpui/test-support", "gpui_platform/test-support", "gpui-base/test-support", "gpui-component?/test-support", "gpui-fast?/test-support", "gpui-fast-platform?/test-support"] # Frame-event instrumentation remains opt-in for performance builds. profiler = ["gpui/profiler", "gpui-fast?/profiler"] inspector = ["gpui/inspector", "gpui-base/inspector", "gpui-component?/inspector", "gpui-fast?/inspector"] decimal = ["component", "gpui-component/decimal"] # Speech input: microphone capture and the system speech recognizer. speech = ["component", "gpui-component/speech"] # Syntax highlighting from a tree-sitter syntax tree, which also drives folding # and syntax-aware editing. Each language is a `tree-sitter-*` grammar feature. tree-sitter = ["component", "gpui-component/tree-sitter"] # Lighter syntax highlighting: about 200 languages from syntect for a few # megabytes, with no syntax tree. With both enabled, tree-sitter is used. syntect = ["component", "gpui-component/syntect"] tree-sitter-languages = ["component", "gpui-component/tree-sitter-languages"] tree-sitter-astro = ["component", "gpui-component/tree-sitter-astro"] tree-sitter-bash = ["component", "gpui-component/tree-sitter-bash"] tree-sitter-c = ["component", "gpui-component/tree-sitter-c"] tree-sitter-cmake = ["component", "gpui-component/tree-sitter-cmake"] tree-sitter-cpp = ["component", "gpui-component/tree-sitter-cpp"] tree-sitter-csharp = ["component", "gpui-component/tree-sitter-csharp"] tree-sitter-css = ["component", "gpui-component/tree-sitter-css"] tree-sitter-diff = ["component", "gpui-component/tree-sitter-diff"] tree-sitter-ejs = ["component", "gpui-component/tree-sitter-ejs"] tree-sitter-elixir = ["component", "gpui-component/tree-sitter-elixir"] tree-sitter-erb = ["component", "gpui-component/tree-sitter-erb"] tree-sitter-go = ["component", "gpui-component/tree-sitter-go"] tree-sitter-graphql = ["component", "gpui-component/tree-sitter-graphql"] tree-sitter-html = ["component", "gpui-component/tree-sitter-html"] tree-sitter-java = ["component", "gpui-component/tree-sitter-java"] tree-sitter-javascript = ["component", "gpui-component/tree-sitter-javascript"] tree-sitter-jsdoc = ["component", "gpui-component/tree-sitter-jsdoc"] tree-sitter-kotlin = ["component", "gpui-component/tree-sitter-kotlin"] tree-sitter-lua = ["component", "gpui-component/tree-sitter-lua"] tree-sitter-make = ["component", "gpui-component/tree-sitter-make"] tree-sitter-markdown = ["component", "gpui-component/tree-sitter-markdown"] tree-sitter-markdown-inline = ["component", "gpui-component/tree-sitter-markdown-inline"] tree-sitter-php = ["component", "gpui-component/tree-sitter-php"] tree-sitter-proto = ["component", "gpui-component/tree-sitter-proto"] tree-sitter-python = ["component", "gpui-component/tree-sitter-python"] tree-sitter-ruby = ["component", "gpui-component/tree-sitter-ruby"] tree-sitter-rust = ["component", "gpui-component/tree-sitter-rust"] tree-sitter-scala = ["component", "gpui-component/tree-sitter-scala"] tree-sitter-sql = ["component", "gpui-component/tree-sitter-sql"] tree-sitter-svelte = ["component", "gpui-component/tree-sitter-svelte"] tree-sitter-swift = ["component", "gpui-component/tree-sitter-swift"] tree-sitter-toml = ["component", "gpui-component/tree-sitter-toml"] tree-sitter-tsx = ["component", "gpui-component/tree-sitter-tsx"] tree-sitter-typescript = ["component", "gpui-component/tree-sitter-typescript"] tree-sitter-yaml = ["component", "gpui-component/tree-sitter-yaml"] tree-sitter-zig = ["component", "gpui-component/tree-sitter-zig"] [dependencies] gpui_macros.workspace = true gpui.workspace = true gpui-fast = { workspace = true, optional = true } gpui-base.workspace = true gpui-component = { workspace = true, optional = true } gpui-kit-assets = { workspace = true, optional = true } [target.'cfg(not(any(target_os = "ios", target_os = "android")))'.dependencies] gpui_platform.workspace = true gpui-fast-platform = { workspace = true, optional = true } [target.'cfg(target_family = "wasm")'.dependencies] gpui_web.workspace = true gpui-fast-web = { workspace = true, optional = true } [dev-dependencies] chrono = "0.4.38" gpui = { workspace = true, features = ["test-support"] } gpui-fast = { workspace = true, features = ["test-support"] } lsp-types.workspace = true [[test]] name = "ui" required-features = ["test-support", "component"] [[test]] name = "rendering" # Requires Metal (macOS) or WGPU (Linux); select explicitly with --test rendering. test = false harness = false required-features = ["test-support", "component", "assets"] [[test]] name = "native_shutdown" # Uses the native event loop and a hidden window; requires a desktop session. # Run explicitly with `cargo test -p gpui-kit --test native_shutdown`. test = false harness = false