feat: studio-theme-solarized v0.1.0 — skeleton
First Studio plugin in the new `studio.*` capability namespace.
SKELETON — does not yet compile.
Why ship the skeleton now:
* Pins Ethan Schoonover's Solarized palette as two const
Material 3 ColorScheme arrays so the in-tree reference
doesn't bike-shed at SDK-integration time.
* Gives the future fai-studio-plugin-sdk author a concrete
consumer to validate the generated `#[plugin(theme)]`
macro output against.
* Validates that the WIT in fai/platform parses by being a
real crate that references it.
What it does NOT yet do:
* Compile. The `fai-studio-plugin-sdk` dependency it points
at doesn't exist. Tracked in
`fai/platform/docs/advanced/studio-plugin-sdk.md`.
* Plug into Studio. The plugin-host module that would
discover and invoke this component lives in the same
deferred-Phase-1 work.
What it ships:
* module.yaml declaring `provides: studio.theme.solarized`
and `studio_extension.hooks: [theme]`.
* Cargo.toml with the future SDK dependency commented out,
crate-type=cdylib, component metadata.
* src/lib.rs with both Solarized colour palettes
(SOLARIZED_LIGHT and SOLARIZED_DARK), 14 ARGB tokens
each in Material 3 order, plus the future `#[plugin]`
function body commented out and two sanity tests on the
palette constants.
* README.md explaining the status and the steps to finish
the plugin once the SDK ships.
Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
commit
a1f8412205
5 changed files with 228 additions and 0 deletions
48
Cargo.toml
Normal file
48
Cargo.toml
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# SKELETON — does not yet compile.
|
||||
#
|
||||
# This crate targets the studio-plugin world declared in
|
||||
# `wit/studio-plugin.wit`. It cannot be built until two
|
||||
# upstream pieces ship:
|
||||
#
|
||||
# 1. The `fai-studio-plugin-sdk` crate that wraps the WIT
|
||||
# bindings with an ergonomic Rust API (the `#[plugin(theme)]`
|
||||
# attribute referenced in `src/lib.rs`).
|
||||
# 2. Studio's plugin-host module that discovers, loads, and
|
||||
# invokes plugin components at GUI startup.
|
||||
#
|
||||
# Both are documented in `docs/advanced/studio-plugin-sdk.md`.
|
||||
# Until they exist, this directory serves three purposes:
|
||||
#
|
||||
# - Validates the WIT-file structure by being a real crate that
|
||||
# references it (parse-only path).
|
||||
# - Locks in the exact Solarized colour palette so the
|
||||
# in-tree first plugin doesn't bike-shed at integration time.
|
||||
# - Gives the SDK author a concrete consumer to test against.
|
||||
|
||||
[package]
|
||||
name = "studio_theme_solarized"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
authors = ["Dr. Stefan Flemming <platform@flemming.ai>"]
|
||||
license = "Apache-2.0"
|
||||
publish = false
|
||||
description = "F∆I Studio plugin — Solarized Light and Dark theme"
|
||||
repository = "https://git.flemming.ai/fai-modules/studio-theme-solarized"
|
||||
rust-version = "1.85"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib"]
|
||||
|
||||
[dependencies]
|
||||
# Forward-reference: this crate doesn't yet exist. Tracked in
|
||||
# docs/advanced/studio-plugin-sdk.md.
|
||||
# fai-studio-plugin-sdk = { git = "https://git.flemming.ai/fai/studio-plugin-sdk", branch = "main" }
|
||||
|
||||
[package.metadata.component]
|
||||
package = "fai:studio-plugin"
|
||||
|
||||
[profile.release]
|
||||
opt-level = "s"
|
||||
lto = true
|
||||
codegen-units = 1
|
||||
strip = true
|
||||
Loading…
Add table
Add a link
Reference in a new issue