From 120508659ddb1e88bd51e48712dee3e5b5266299 Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Fri, 24 Oct 2025 16:15:57 -0400 Subject: [PATCH] more polish --- .vscode/settings.json | 3 ++ main.ts | 101 +++++++++++++++++++++++------------------- main_test.ts | 10 ----- user-layout.ts | 6 +++ user-sheet.ts | 34 ++++++++++++++ 5 files changed, 98 insertions(+), 56 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 main_test.ts create mode 100644 user-layout.ts create mode 100644 user-sheet.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b943dbc --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "deno.enable": true +} \ No newline at end of file diff --git a/main.ts b/main.ts index c20fe6e..9511917 100644 --- a/main.ts +++ b/main.ts @@ -1,6 +1,6 @@ // tss.ts type PseudoKeys = ["hover"|"before"|"after"] | ["hover", "after"|"before"]; -type ValueSignature = (...args:number[])=>void +type ValueSignature = (...args:any[])=>string type EnumDefinition = [property:string, options:Record, values?:Signature]; type EnumBlock = Record>; type RecursiveObject> = @@ -25,31 +25,37 @@ function Block"[StyleProxy]"; @@ -88,16 +97,40 @@ function Blockamount +const funcUnitTRBL = (...args:[t:UnitString, r?:UnitString, b?:UnitString, l?:UnitString])=>args.join(" ") + const styles = Block( { - Pos:["position", { Abs:"absolute", Rel:"relative" }], - Display:[ "display", { Flex:"flex", Grid:"grid", None:"none", Block:"block", InlineBlock:"inline-block" }], - Left:[ "left", { Auto:"auto" }, (left)=>{}] + Pos:["position", { Abs:"absolute", Rel:"relative", Fix:"fixed", Pin:"sticky", No:"static" }], + Dis:["display", { Flex:"flex", Grid:"grid", None:"none", Block:"block", InlineBlock:"inline-block" }], + Box:["box-sizing", { Border:"border-box", Content:"content-box" }], + + L:[ "left", { Auto:"auto"}, funcUnitSingle], + R:[ "right", { Auto:"auto"}, funcUnitSingle], + T:[ "top", { Auto:"auto"}, funcUnitSingle], + B:[ "bottom", { Auto:"auto"}, funcUnitSingle], + + Pad: ["padding", {}, funcUnitTRBL ], + PadT:["padding-top", {}, funcUnitSingle], + PadR:["padding-right", {}, funcUnitSingle], + PadB:["padding-bottom", {}, funcUnitSingle], + PadL:["padding-left", {}, funcUnitSingle], + + Mar: ["margin", {}, funcUnitTRBL ], + MarT:["margin-top", {}, funcUnitSingle], + MarR:["margin-right", {}, funcUnitSingle], + MarB:["margin-bottom", {}, funcUnitSingle], + MarL:["margin-left", {}, funcUnitSingle] } ); let masterSheet = []; -export function Sheet)=>void >>(userClasses:UserClasses):{[Class in keyof UserClasses]:string} + +export function Sheet)=>void >>(userClasses:UserClasses):{[Class in keyof UserClasses]:string} { const hash = Math.floor(Math.random()*10000); return new Proxy(function(){}, {get(_target, className){ @@ -122,28 +155,4 @@ export function Sheet