assistant.ts

 1import { ColorScheme } from "../themes/common/colorScheme"
 2import { text, border, background } from "./components"
 3import editor from "./editor"
 4
 5export default function assistant(colorScheme: ColorScheme) {
 6    const layer = colorScheme.highest;
 7    return {
 8      container: {
 9        background: editor(colorScheme).background,
10        padding: { left: 12 }
11      },
12      header: {
13        border: border(layer, "default", { bottom: true, top: true }),
14        margin: { bottom: 6, top: 6 },
15        background: editor(colorScheme).background
16      },
17      user_sender: {
18        ...text(layer, "sans", "default", { size: "sm", weight: "bold" }),
19      },
20      assistant_sender: {
21        ...text(layer, "sans", "accent", { size: "sm", weight: "bold" }),
22      },
23      sent_at: {
24        margin: { top: 2, left: 8 },
25        ...text(layer, "sans", "default", { size: "2xs" }),
26      },
27      model_info_container: {
28        margin: { right: 16, top: 4 },
29      },
30      model: {
31        background: background(layer, "on"),
32        border: border(layer, "on", { overlay: true }),
33        padding: 4,
34        cornerRadius: 4,
35        ...text(layer, "sans", "default", { size: "xs" }),
36        hover: {
37          background: background(layer, "on", "hovered"),
38        }
39      },
40      remaining_tokens: {
41        background: background(layer, "on"),
42        border: border(layer, "on", { overlay: true }),
43        padding: 4,
44        margin: { left: 4 },
45        cornerRadius: 4,
46        ...text(layer, "sans", "positive", { size: "xs" }),
47      },
48      no_remaining_tokens: {
49        background: background(layer, "on"),
50        border: border(layer, "on", { overlay: true }),
51        padding: 4,
52        margin: { left: 4 },
53        cornerRadius: 4,
54        ...text(layer, "sans", "negative", { size: "xs" }),
55      },
56      apiKeyEditor: {
57          background: background(layer, "on"),
58          cornerRadius: 6,
59          text: text(layer, "mono", "on"),
60          placeholderText: text(layer, "mono", "on", "disabled", {
61              size: "xs",
62          }),
63          selection: colorScheme.players[0],
64          border: border(layer, "on"),
65          padding: {
66              bottom: 4,
67              left: 8,
68              right: 8,
69              top: 4,
70          },
71      },
72      apiKeyPrompt: {
73        padding: 10,
74        ...text(layer, "sans", "default", { size: "xs" }),
75      }
76    }
77}