Skip to main content

adk_ui/kit/
spec.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
5pub struct KitSpec {
6    pub name: String,
7    pub version: String,
8    pub brand: KitBrand,
9    pub colors: KitColors,
10    pub typography: KitTypography,
11    #[serde(default)]
12    pub density: KitDensity,
13    #[serde(default)]
14    pub radius: KitRadius,
15    #[serde(default)]
16    pub components: KitComponents,
17    #[serde(default)]
18    pub templates: Vec<String>,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
22pub struct KitBrand {
23    pub vibe: String,
24    #[serde(default)]
25    pub industry: Option<String>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
29pub struct KitColors {
30    pub primary: String,
31    #[serde(default)]
32    pub accent: Option<String>,
33    #[serde(default)]
34    pub surface: Option<String>,
35    #[serde(default)]
36    pub background: Option<String>,
37    #[serde(default)]
38    pub text: Option<String>,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
42pub struct KitTypography {
43    pub family: String,
44    #[serde(default)]
45    pub scale: Option<String>,
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, Default)]
49#[serde(rename_all = "snake_case")]
50pub enum KitDensity {
51    Compact,
52    #[default]
53    Comfortable,
54    Spacious,
55}
56
57#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, Default)]
58#[serde(rename_all = "snake_case")]
59pub enum KitRadius {
60    None,
61    Sm,
62    #[default]
63    Md,
64    Lg,
65    Xl,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, Default)]
69pub struct KitComponents {
70    #[serde(default)]
71    pub button: Option<KitComponentButton>,
72    #[serde(default)]
73    pub card: Option<KitComponentCard>,
74    #[serde(default)]
75    pub input: Option<KitComponentInput>,
76    #[serde(default)]
77    pub table: Option<KitComponentTable>,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
81pub struct KitComponentButton {
82    #[serde(default)]
83    pub variants: Vec<String>,
84}
85
86#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
87pub struct KitComponentCard {
88    #[serde(default)]
89    pub elevation: Option<String>,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
93pub struct KitComponentInput {
94    #[serde(default)]
95    pub style: Option<String>,
96}
97
98#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
99pub struct KitComponentTable {
100    #[serde(default)]
101    pub striped: Option<bool>,
102}