import React from "react"; import { ChoiceGroup, ChoiceOption } from "../components/ChoiceGroup"; import { ColorPicker } from "../components/ColorPicker"; import { HighlightableField } from "../components/HighlightableField"; import { RangeSlider } from "../components/RangeSlider"; import { Toggle } from "../components/Toggle"; import type { BaseTabProps } from "../tabs/types"; import type { Settings } from "../types"; type ChipsExtrasSlotProps = BaseTabProps; const DROPDOWN_BORDER_TYPE_OPTIONS = [ { value: "solid", label: "Solid" }, { value: "dashed", label: "Dashed" }, { value: "dotted", label: "Dotted" }, { value: "double", label: "Double" }, ] as const; function BorderTypeIcon({ type, }: { type: "solid" | "dashed" | "dotted" | "double"; }) { const dashMap: Record<"solid" | "dashed" | "dotted", string | undefined> = { solid: undefined, dashed: "6 4", dotted: "1 4", }; const dashArray = type === "double" ? undefined : dashMap[type]; const lineCap = type === "dotted" ? "round" : "butt"; return ( {type === "double" ? ( <> ) : ( )} ); } export function ChipsTabExtras({ settings, setSettings, }: ChipsExtrasSlotProps): React.ReactElement | null { return (
setSettings({ ...settings, enable_dropdown_bg: checked }) } label="Container Background" description="Show a background and border behind the swatch options." /> {settings.enable_dropdown_bg !== false ? (
setSettings({ ...settings, dropdown_bg_color: value }) } /> setSettings({ ...settings, dropdown_border_color: value }) } />
setSettings({ ...settings, dropdown_bg_border_radius: val }) } /> setSettings({ ...settings, dropdown_border_width: val }) } />
o.value)} onChange={(next) => setSettings({ ...settings, dropdown_border_type: next as Settings["dropdown_border_type"], }) } className="b3-wvs-choice-grid b3-wvs-choice-grid--compact" > {DROPDOWN_BORDER_TYPE_OPTIONS.map((opt) => { const selected = (settings.dropdown_border_type || "solid") === opt.value; return (
{opt.label}
); })}
) : null}
); }