muddle/views/language.ts
2026-10-23 08:53:07 -04:00

24 lines
2.1 KiB
TypeScript

export interface LanguageCompletion { label: string; detail: string; insertText: string }
export const SPUG_COMPLETIONS: LanguageCompletion[] = [
{ label: "props", detail: "Typed component props", insertText: "props\n ${1:name}: ${2:string}" },
{ label: "javascript!", detail: "Embedded TypeScript block", insertText: "javascript!\n ${1:const value = true;}\nend" },
{ label: "component", detail: "SPUG component", insertText: "component ${1:Name}" },
{ label: "portal", detail: "Named view-transition boundary", insertText: "portal ${1:main}\n ${0}" },
{ label: "anchor", detail: "Relation identity", insertText: "${1:li}@${2:item}() ${3:content}" },
];
export const STCSS_COMPLETIONS: LanguageCompletion[] = [
{ label: "@responsive", detail: "Mobile-first breakpoint", insertText: "@responsive ${1:md} {\n ${2}\n}" },
{ label: "@concentric", detail: "Inherited child radius", insertText: "@concentric ${1:1rem};" },
{ label: "border-radius: concentric", detail: "Concentric radii for children", insertText: "border-radius: concentric ${1:1rem};" },
{ label: "freeform-gradient", detail: "Stacked radial gradients", insertText: "background-image: freeform-gradient(${1:#7c3aed} ${2:10%} ${3:50%}, ${4:f00} ${5:70%} ${6:40%});" },
{ label: "$center", detail: "Center a known size", insertText: "$center(${1:30rem})" },
{ label: "$offset", detail: "Compose positional offsets", insertText: "$offset(${1:$center(30rem)}, ${2:$pad})" },
{ label: "$pad", detail: "Shared spacing token", insertText: "$pad(${1:1})" },
{ label: "position: fixed-center", detail: "Fixed viewport center", insertText: "position: fixed-center;" },
{ label: "position: page-center", detail: "Absolute containing-block center", insertText: "position: page-center;" },
{ label: "@predict", detail: "Prerendered geometry", insertText: "@predict max-width max-height transform;" },
{ label: "$relate", detail: "Predicted anchor metric", insertText: "$relate[${1:width}](d\"@${2:item}\")" },
{ label: "javascript!", detail: "Compile-time values", insertText: "javascript!\n const ${1:space} = ${2:'1rem'};\nend" },
];