Skip to main content

systemprompt_provider_contracts/web_config/
mod.rs

1mod branding;
2mod error;
3mod paths;
4mod theme;
5
6pub use branding::{BrandingConfig, LogoConfig, LogoVariant};
7pub use error::WebConfigError;
8pub use paths::{ContentConfig, PathsConfig, ScriptConfig};
9pub use theme::{
10    AnimationConfig, CardConfig, CardGradient, CardPadding, CardRadius, ColorPalette, ColorsConfig,
11    FontConfig, FontFile, FontsConfig, LayoutConfig, MobileConfig, MobileLayout, MobileTypography,
12    PrimaryColor, RadiusConfig, ShadowSet, ShadowsConfig, SidebarConfig, SpacingConfig,
13    TouchTargetsConfig, TypographyConfig, TypographySizes, TypographyWeights, ZIndexConfig,
14};
15
16use serde::{Deserialize, Serialize};
17use std::collections::HashMap;
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct WebConfig {
21    pub paths: PathsConfig,
22    #[serde(default)]
23    pub scripts: Vec<ScriptConfig>,
24    #[serde(default)]
25    pub content: Option<ContentConfig>,
26    pub branding: BrandingConfig,
27    pub fonts: FontsConfig,
28    pub colors: ColorsConfig,
29    pub typography: TypographyConfig,
30    pub spacing: SpacingConfig,
31    pub radius: RadiusConfig,
32    pub shadows: ShadowsConfig,
33    pub animation: AnimationConfig,
34    #[serde(rename = "zIndex")]
35    pub z_index: ZIndexConfig,
36    pub layout: LayoutConfig,
37    pub card: CardConfig,
38    pub mobile: MobileConfig,
39    #[serde(rename = "touchTargets")]
40    pub touch_targets: TouchTargetsConfig,
41    #[serde(default)]
42    pub pages: HashMap<String, serde_json::Value>,
43}