1use std::collections::HashMap;
2
3use gpui2::Rgba;
4
5use crate::scale::{ColorScaleName, ColorScaleSet, ColorScales};
6
7struct DefaultColorScaleSet {
8 scale: ColorScaleName,
9 light: [&'static str; 12],
10 light_alpha: [&'static str; 12],
11 dark: [&'static str; 12],
12 dark_alpha: [&'static str; 12],
13}
14
15impl From<DefaultColorScaleSet> for ColorScaleSet {
16 fn from(default: DefaultColorScaleSet) -> Self {
17 Self::new(
18 default.scale,
19 default
20 .light
21 .map(|color| Rgba::try_from(color).unwrap().into()),
22 default
23 .light_alpha
24 .map(|color| Rgba::try_from(color).unwrap().into()),
25 default
26 .dark
27 .map(|color| Rgba::try_from(color).unwrap().into()),
28 default
29 .dark_alpha
30 .map(|color| Rgba::try_from(color).unwrap().into()),
31 )
32 }
33}
34
35pub fn default_color_scales() -> ColorScales {
36 use ColorScaleName::*;
37
38 HashMap::from_iter([(Red, red().into())])
39}
40
41fn red() -> DefaultColorScaleSet {
42 DefaultColorScaleSet {
43 scale: ColorScaleName::Red,
44 light: [
45 "#fffcfc00",
46 "#fff7f700",
47 "#feebec00",
48 "#ffdbdc00",
49 "#ffcdce00",
50 "#fdbdbe00",
51 "#f4a9aa00",
52 "#eb8e9000",
53 "#e5484d00",
54 "#dc3e4200",
55 "#ce2c3100",
56 "#64172300",
57 ],
58 light_alpha: [
59 "#ff000003",
60 "#ff000008",
61 "#f3000d14",
62 "#ff000824",
63 "#ff000632",
64 "#f8000442",
65 "#df000356",
66 "#d2000571",
67 "#db0007b7",
68 "#d10005c1",
69 "#c40006d3",
70 "#55000de8",
71 ],
72 dark: [
73 "#19111100",
74 "#20131400",
75 "#3b121900",
76 "#500f1c00",
77 "#61162300",
78 "#72232d00",
79 "#8c333a00",
80 "#b5454800",
81 "#e5484d00",
82 "#ec5d5e00",
83 "#ff959200",
84 "#ffd1d900",
85 ],
86 dark_alpha: [
87 "#f4121209",
88 "#f22f3e11",
89 "#ff173f2d",
90 "#fe0a3b44",
91 "#ff204756",
92 "#ff3e5668",
93 "#ff536184",
94 "#ff5d61b0",
95 "#fe4e54e4",
96 "#ff6465eb",
97 "#ff959200",
98 "#ffd1d900",
99 ],
100 }
101}