The stored `colors` key names a palette — rhema (the default, Jadeite), aquamarine, black-and-white, or dracula — and the Appearance page of /settings cycles it live, like the theme and icon toggles beside it. Each palette carries a dark and a light appearance under the existing `theme` key; dracula's light side is derived, the official palette ships only dark. The appearance decision moves off token comparison: Theme now answers is_dark() from the ground/text luminance, so palettes beyond the original two get the right per-profile fallback tones.
38 lines
1.4 KiB
TOML
38 lines
1.4 KiB
TOML
[package]
|
|
name = "rhema-calendar-integration"
|
|
description = "The calendar integration: ICS/webcal feeds, CalDAV collections, and the Google Calendar API normalized into one occurrence vocabulary for reminder-style dispatch"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
# The resident tier is still indev: `cargo publish --workspace` skips
|
|
# it until the claw ships.
|
|
publish = false
|
|
|
|
[dependencies]
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
# HTTP against the three feed kinds: one bounded request per poll, no
|
|
# streaming
|
|
reqwest = { version = "0.12", features = ["json"] }
|
|
# The CalDAV adapter reads 207 multistatus bodies; the element set it
|
|
# cares about is small enough that a pull parser beats a DOM
|
|
quick-xml = "0.41"
|
|
# Every wire time (RFC 3339, iCalendar's compact `YYYYMMDDTHHMMSS[Z]`,
|
|
# `VALUE=DATE` all-days) normalizes to an OffsetDateTime, and the
|
|
# vocabulary's instants round-trip as RFC 3339.
|
|
time = { version = "0.3", default-features = false, features = [
|
|
"parsing",
|
|
"formatting",
|
|
"serde-well-known",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
tokio = { workspace = true, features = ["rt-multi-thread", "macros", "sync", "time"] }
|
|
# In-process HTTP mocks for offline tests
|
|
wiremock = "0.6"
|