import { Layer } from "../common" import { interactive, toggleable } from "../element" import { Border, text } from "../style_tree/components" type TabProps = { layer: Layer } export const tab = ({ layer }: TabProps) => { const active_color = text(layer, "sans", "base").color const inactive_border: Border = { color: "#FFFFFF00", width: 1, bottom: true, left: false, right: false, top: false, } const active_border: Border = { ...inactive_border, color: active_color, } const base = { ...text(layer, "sans", "variant"), padding: { top: 8, left: 8, right: 8, bottom: 6, }, border: inactive_border, } const i = interactive({ state: { default: { ...base, }, hovered: { ...base, ...text(layer, "sans", "base", "hovered"), }, clicked: { ...base, ...text(layer, "sans", "base", "pressed"), }, }, }) return toggleable({ base: i, state: { active: { default: { ...i, ...text(layer, "sans", "base"), border: active_border, }, hovered: { ...i, ...text(layer, "sans", "base", "hovered"), border: active_border, }, clicked: { ...i, ...text(layer, "sans", "base", "pressed"), border: active_border, }, }, }, }) }