contextMenu.ts

 1import { ColorScheme } from "../theme/colorScheme"
 2import { background, border, borderColor, text } from "./components"
 3import { interactive } from "./interactive"
 4import { toggleable } from "./toggle"
 5
 6export default function contextMenu(colorScheme: ColorScheme) {
 7  let layer = colorScheme.middle
 8  return {
 9    background: background(layer),
10    cornerRadius: 10,
11    padding: 4,
12    shadow: colorScheme.popoverShadow,
13    border: border(layer),
14    keystrokeMargin: 30,
15    item: toggleable(interactive({
16      iconSpacing: 8,
17      iconWidth: 14,
18      padding: { left: 6, right: 6, top: 2, bottom: 2 },
19      cornerRadius: 6,
20      label: text(layer, "sans", { size: "sm" }),
21      keystroke: {
22        ...text(layer, "sans", "variant", {
23          size: "sm",
24          weight: "bold",
25        }),
26        padding: { left: 3, right: 3 },
27      }
28    }, {
29      hover: {
30        background: background(layer, "hovered"),
31        label: text(layer, "sans", "hovered", { size: "sm" }),
32        keystroke: {
33          ...text(layer, "sans", "hovered", {
34            size: "sm",
35            weight: "bold",
36          }),
37          padding: { left: 3, right: 3 },
38        },
39      }
40    }), {
41      default: {
42        background: background(layer, "active"),
43      },
44      hover: {
45        background: background(layer, "active"),
46      },
47    }),
48
49    separator: {
50      background: borderColor(layer),
51      margin: { top: 2, bottom: 2 },
52    },
53  }
54}