{"main":"apps/homepage/homepage.declare","kind":"run","props":{"render":"dom"},"programJson":{"classes":[{"name":"CodeField","base":"TextInput","body":{"tag":"CodeField","attrs":[{"name":"multiline","value":{"kind":"value","value":true}},{"name":"spellcheck","value":{"kind":"value","value":false}},{"name":"accessibilityLabel","value":{"kind":"code","src":" \"Source of the \" + this.editName + \" example\" ","deps":["this.editName"]}},{"name":"fontFamily","value":{"kind":"value","value":"ui-monospace, monospace"}},{"name":"fontSize","value":{"kind":"value","value":11}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").lead ","deps":["this.$provided(\"theme\")"]}},{"name":"initial","value":{"kind":"code","src":" this.src ","deps":["this.src"],"expr":"L0"}}],"decls":[{"name":"editName","type":"string","def":{"kind":"value","value":""}},{"name":"src","type":"string","def":{"kind":"value","value":""}}],"methods":[{"name":"onInput","body":"this.$root.liveCard=this.editName;this.$root.liveSource=this.text"}]}},{"name":"SourcePanel","base":"View","body":{"tag":"SourcePanel","attrs":[{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").panel ","deps":["this.$provided(\"theme\")"]}},{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"stroke","value":{"kind":"code","src":" stroke(1, this.$provided(\"theme\").panelLine) ","deps":["this.$provided(\"theme\")"]}},{"name":"selectable","value":{"kind":"value","value":false},"route":"provision"},{"name":"height","value":{"kind":"code","src":" this.field.y + this.field.height + 8 + (this.err.visible ? this.err.height : 0) ","deps":["this.field.y","this.field.height","this.err.visible","this.err.height"],"expr":"L0 L1 + K8 + L2 L3 K0 ? +"}}],"decls":[{"name":"editName","type":"string","def":{"kind":"value","value":""}},{"name":"src","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"View","name":"live","attrs":[{"name":"x","value":{"kind":"value","value":12}},{"name":"y","value":{"kind":"value","value":7}},{"name":"height","value":{"kind":"value","value":18}},{"name":"cornerRadius","value":{"kind":"value","value":5}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").accent ","deps":["this.$provided(\"theme\")"]}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":4},{"kind":"number","value":7},{"kind":"number","value":4},{"kind":"number","value":7}]},"route":"corners"},{"name":"width","value":{"kind":"code","src":" this.contentWidth ","deps":["this.contentWidth"],"expr":"L0"}}],"children":[{"tag":"Text","name":"t","attrs":[{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":9}},{"name":"fontWeight","value":{"kind":"value","value":"bold"}},{"name":"letterSpacing","value":{"kind":"value","value":0.8}},{"name":"wrap","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"LIVE · EDITABLE"}}]}]},{"tag":"View","name":"revert","attrs":[{"name":"y","value":{"kind":"value","value":5}},{"name":"height","value":{"kind":"value","value":20}},{"name":"cornerRadius","value":{"kind":"value","value":6}},{"name":"stroke","value":{"kind":"code","src":" stroke(1, this.$provided(\"theme\").revertLine) ","deps":["this.$provided(\"theme\")"]}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":3},{"kind":"number","value":8},{"kind":"number","value":3},{"kind":"number","value":8}]},"route":"corners"},{"name":"x","value":{"kind":"code","src":" parent.width - this.width - 10 ","deps":["parent.width","this.width"],"expr":"L0 L1 - K10 -"}},{"name":"width","value":{"kind":"code","src":" this.contentWidth ","deps":["this.contentWidth"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.hovered ? this.$provided(\"theme\").hover : null ","deps":["this.hovered","this.$provided(\"theme\")"]}}],"methods":[{"name":"onClick","body":"classroot.field.text=classroot.src;this.$root.liveCard=classroot.editName;this.$root.liveSource=classroot.src"}],"children":[{"tag":"Text","name":"rlbl","attrs":[{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":11}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"textColor","value":{"kind":"code","src":" parent.hovered ? this.$provided(\"theme\").text : this.$provided(\"theme\").lead ","deps":["parent.hovered","this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"Revert"}}]}]},{"tag":"Divider","name":"hairline","attrs":[{"name":"y","value":{"kind":"value","value":31}},{"name":"color","value":{"kind":"code","src":" this.$provided(\"theme\").panelLine ","deps":["this.$provided(\"theme\")"]}}]},{"tag":"CodeField","name":"field","attrs":[{"name":"x","value":{"kind":"value","value":12}},{"name":"y","value":{"kind":"value","value":40}},{"name":"width","value":{"kind":"code","src":" parent.width - 24 ","deps":["parent.width"],"expr":"L0 K24 -"}},{"name":"editName","value":{"kind":"code","src":" classroot.editName ","deps":["classroot.editName"],"expr":"L0"}},{"name":"src","value":{"kind":"code","src":" classroot.src ","deps":["classroot.src"],"expr":"L0"}}]},{"tag":"View","name":"err","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").errBg ","deps":["this.$provided(\"theme\")"]}},{"name":"visible","value":{"kind":"code","src":" this.$root.liveCard == classroot.editName && this.$root.liveReport != \"\" ","deps":["this.$root.liveCard","classroot.editName","this.$root.liveReport"]}},{"name":"y","value":{"kind":"code","src":" parent.height - this.height ","deps":["parent.height","this.height"],"expr":"L0 L1 -"}},{"name":"height","value":{"kind":"code","src":" this.msg.height + 16 ","deps":["this.msg.height"],"expr":"L0 K16 +"}}],"children":[{"tag":"View","name":"bar","attrs":[{"name":"width","value":{"kind":"value","value":3}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").errBar ","deps":["this.$provided(\"theme\")"]}}]},{"tag":"Text","name":"msg","attrs":[{"name":"x","value":{"kind":"value","value":14}},{"name":"y","value":{"kind":"value","value":8}},{"name":"width","value":{"kind":"code","src":" parent.width - 28 ","deps":["parent.width"],"expr":"L0 K28 -"}},{"name":"wrap","value":{"kind":"value","value":true}},{"name":"fontFamily","value":{"kind":"value","value":"ui-monospace, monospace"}},{"name":"fontSize","value":{"kind":"value","value":11}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").errText ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" this.$root.liveReport ","deps":["this.$root.liveReport"],"expr":"L0"}}]}]}]}},{"name":"PreviewFrame","base":"View","body":{"tag":"PreviewFrame","attrs":[{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"clip","value":{"kind":"value","value":true}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").stage ","deps":["this.$provided(\"theme\")"]}},{"name":"stroke","value":{"kind":"code","src":" stroke(1, this.$provided(\"theme\").line) ","deps":["this.$provided(\"theme\")"]}}],"decls":[{"name":"runName","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"AppIsland","name":"run","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"program","value":{"kind":"code","src":" classroot.runName ","deps":["classroot.runName"],"expr":"L0"}},{"name":"focusable","value":{"kind":"value","value":true}}],"methods":[{"name":"onPointerDown","body":"Focus.focus(this)"}]}]}},{"name":"DemoSection","base":"View","body":{"tag":"DemoSection","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"decls":[{"name":"num","type":"string","def":{"kind":"value","value":""}},{"name":"head","type":"string","def":{"kind":"value","value":""}},{"name":"lead","type":"string","def":{"kind":"value","value":""}},{"name":"caption","type":"string","def":{"kind":"value","value":""}},{"name":"demo","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"DataSource","name":"code","attrs":[{"name":"url","value":{"kind":"code","src":" classroot.demo + \".declare\" ","deps":["classroot.demo"]}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":36}}],"classSlot":"Layout"},{"tag":"SectionHead","attrs":[{"name":"num","value":{"kind":"code","src":" classroot.num ","deps":["classroot.num"],"expr":"L0"}},{"name":"head","value":{"kind":"code","src":" classroot.head ","deps":["classroot.head"],"expr":"L0"}},{"name":"lead","value":{"kind":"code","src":" classroot.lead ","deps":["classroot.lead"],"expr":"L0"}}]},{"tag":"View","name":"demoBody","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":14}}],"classSlot":"Layout"},{"tag":"Body","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" classroot.caption ","deps":["classroot.caption"],"expr":"L0"}}]},{"tag":"View","name":"cards","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 760, flow: \"row\", gap: 20, share: ({ src: 58, prev: 42 }) }), ({ from: 0, flow: \"stack\", gap: 20, share: ({ src: 100, prev: 100 }) })] "}}],"classSlot":"Layout"},{"tag":"SourcePanel","name":"src","attrs":[{"name":"editName","value":{"kind":"code","src":" classroot.demo ","deps":["classroot.demo"],"expr":"L0"}},{"name":"src","value":{"kind":"code","src":" classroot.code.value || \"\" ","deps":["classroot.code.value"]}}]},{"tag":"PreviewFrame","name":"prev","attrs":[{"name":"runName","value":{"kind":"code","src":" classroot.demo ","deps":["classroot.demo"],"expr":"L0"}},{"name":"height","value":{"kind":"code","src":" parent.src.height "}}]}]}]}]}},{"name":"SimpleLayout","base":"Layout","body":{"tag":"SimpleLayout","decls":[{"name":"axis","type":"Axis","def":{"kind":"value","value":"y"}},{"name":"spacing","type":"number","def":{"kind":"value","value":0}},{"name":"align","type":"CrossAlign","def":{"kind":"value","value":"none"}}],"methods":[{"name":"place","body":"const axis=this.axis;const size=axis==\"x\"?\"width\":\"height\";const kids=this.laid();const flexing=c=>c.flexes===true;let each=0;let flexN=0;for(const c of kids)if(c.visible&&flexing(c))flexN=flexN+1;if(flexN>0){let content=0;let visN=0;for(const c of kids){if(!c.visible)continue;visN=visN+1;if(!flexing(c))content=content+c.footprint()[size]}const extent=this.contentExtent(size);each=Math.max(0,(extent-content-this.spacing*Math.max(0,visN-1))/flexN)}const al=this.align;const cross=axis==\"x\"?\"y\":\"x\";const crossSize=axis==\"x\"?\"height\":\"width\";const crossOf=c=>{if(flexing(c))return{lead:0,extent:c[crossSize]};const fc=c.footprint();return{lead:axis==\"x\"?fc.y:fc.x,extent:fc[crossSize]}};let line=0;let lineBase=0;if(al!=\"none\"){if(al==\"baseline\"&&axis!=\"x\")this.refuseStackBaseline();for(const c of kids){if(!c.visible)continue;line=Math.max(line,crossOf(c).extent);const b=c.baseline;if(al==\"baseline\"&&typeof b==\"number\")lineBase=Math.max(lineBase,b)}if(al==\"center\"||al==\"end\")line=Math.max(line,this.viewExtent(crossSize))}let pos=0;return kids.map(c=>{const flex=c.visible&&flexing(c);const f=flex?null:c.footprint();const lead=f==null?0:axis==\"x\"?f.x:f.y;const box=axis==\"x\"?{x:pos-lead}:{y:pos-lead};if(flex)box[axis==\"x\"?\"w\":\"h\"]=each;if(al!=\"none\"){const co=crossOf(c);const leadC=co.lead;let off=0;if(al==\"center\")off=(line-co.extent)/2;else if(al==\"end\")off=line-co.extent;else if(al==\"baseline\"&&axis==\"x\"){const b=c.baseline;if(typeof b==\"number\")off=lineBase-b;else if(c.visible)this.refuseBaseline(c)}box[cross]=off-(al==\"baseline\"?0:leadC)}if(c.visible)pos=pos+(flex?each:f[size])+this.spacing;return box})"}]}},{"name":"ResponsiveLayout","base":"Layout","body":{"tag":"ResponsiveLayout","decls":[{"name":"plan","type":"array","def":{"kind":"code","src":" [] "}},{"name":"gap","type":"number","def":{"kind":"value","value":10}},{"name":"align","type":"CrossAlign","def":{"kind":"value","value":"start"}}],"methods":[{"name":"place","body":"const view=this.view;const W=this.contentExtent(\"width\");const kids=this.laid();const plans=Array.isArray(this.plan)?this.plan:[];let tier=null;for(const t of plans){const f=t.from??0;if(W>=f&&(tier==null||f>(tier.from??0)))tier=t}if(tier==null)for(const t of plans){if(tier==null||(t.from??0)<(tier.from??0))tier=t}if(tier==null)tier={flow:\"row\"};const stack=tier.flow==\"stack\";const gap=typeof tier.gap==\"number\"?tier.gap:this.gap;const share=tier.share!=null&&typeof tier.share==\"object\"?tier.share:{};const where=\" (the plan from \"+(tier.from??0)+\", on \"+view.constructor.name+\")\";const al=tier.align!=null?tier.align:this.align;if(al!=\"start\"&&al!=\"center\"&&al!=\"end\"&&al!=\"baseline\"){throw new Error(\"align is \"+JSON.stringify(al)+where+' \\u2014 a ResponsiveLayout places both axes of its children, so it always says where they sit across the flow: \"start\", \"center\", \"end\" or \"baseline\"')}const shares=new Map;let total=0;for(const name of Object.keys(share)){const c=view[name];if(c==null||kids.indexOf(c)<0){throw new Error(\"the plan names '\"+name+\"', but \"+view.constructor.name+\" has no laid child named '\"+name+\"'\")}const v=share[name];if(v===\"auto\")continue;if(typeof v!=\"number\"||!isFinite(v)||v<0||v>100){throw new Error(\"the share for '\"+name+\"' is \"+JSON.stringify(v)+where+' \\u2014 a share is a number from 0 to 100 (and 0 drops the child), or the word \"auto\" to keep the child at its natural size')}shares.set(c,v);total=total+v}if(!stack&&total>100+1e-6){throw new Error(\"the row's shares add up to \"+Math.round(total*100)/100+\"%\"+where+' \\u2014 the shares of a row divide one run and cannot claim more than 100% of it; a child that should keep its natural size is named \"auto\" or left out of the share')}const offsets=new Map;const offset=tier.offset!=null&&typeof tier.offset==\"object\"?tier.offset:{};for(const name of Object.keys(offset)){const c=view[name];if(c==null||kids.indexOf(c)<0){throw new Error(\"the plan's offset names '\"+name+\"', but \"+view.constructor.name+\" has no laid child named '\"+name+\"'\")}const v=offset[name];if(typeof v!=\"number\"||!isFinite(v)){throw new Error(\"the offset for '\"+name+\"' is \"+JSON.stringify(v)+where+\" \\u2014 an offset is a number of pixels across the flow, from where align places the child\")}offsets.set(c,v)}const hidden=c=>shares.get(c)===0;const flexing=c=>c.flexes===true&&!hidden(c);let visN=0;for(const c of kids)if(c.visible&&!hidden(c))visN=visN+1;const avail=W-gap*Math.max(0,visN-1);let naturalRun=0;if(!stack){for(const c of kids){if(!c.visible||hidden(c)||flexing(c)||shares.has(c))continue;naturalRun=naturalRun+c.footprint().width}}const base=Math.max(0,avail-naturalRun);const shareW=c=>(stack?W:base)*shares.get(c)/100;let rigid=0;let flexN=0;for(const c of kids){if(!c.visible||hidden(c))continue;if(flexing(c)){flexN=flexN+1;continue}rigid=rigid+(stack?c.footprint().height:shares.has(c)?shareW(c):c.footprint().width)}const room=stack?this.contentExtent(\"height\")-gap*Math.max(0,visN-1):avail;const each=flexN>0?Math.max(0,room-rigid)/flexN:0;const cross=stack?\"x\":\"y\";const crossSize=stack?\"width\":\"height\";const allocated=c=>flexing(c)||shares.has(c);const crossExt=c=>!allocated(c)?c.footprint()[crossSize]:stack?shares.has(c)?shareW(c):c.width:c.height;const crossLead=c=>allocated(c)?0:stack?c.footprint().x:c.footprint().y;if(al==\"baseline\"&&stack)this.refuseStackBaseline();const onBaseline=al==\"baseline\"&&!stack;let line=0;let lineBase=0;for(const c of kids){if(!c.visible||hidden(c))continue;line=Math.max(line,crossExt(c));const b=c.baseline;if(onBaseline&&typeof b==\"number\")lineBase=Math.max(lineBase,b)}if(al==\"center\"||al==\"end\")line=Math.max(line,this.viewExtent(crossSize));const across=c=>{let o=0;if(al==\"center\")o=(line-crossExt(c))/2;else if(al==\"end\")o=line-crossExt(c);else if(onBaseline){const b=c.baseline;if(typeof b==\"number\")o=lineBase-b;else if(c.visible)this.refuseBaseline(c)}return o-(onBaseline?0:crossLead(c))+(offsets.has(c)?offsets.get(c):0)};let pos=0;return kids.map(c=>{if(hidden(c)){return stack?{x:0,y:pos,vis:false}:{x:pos,y:0,vis:false}}const natural=!flexing(c)&&!(stack?false:shares.has(c));const f=natural?c.footprint():null;const lead=f==null?0:stack?f.y:f.x;const box=stack?{y:pos-lead}:{x:pos-lead};box[cross]=across(c);if(shares.has(c))box.w=shareW(c);if(flexing(c))box[stack?\"h\":\"w\"]=each;const adv=flexing(c)?each:stack?f.height:shares.has(c)?shareW(c):f.width;if(c.visible)pos=pos+adv+gap;return box})"}]}},{"name":"Divider","base":"View","body":{"tag":"Divider","attrs":[{"name":"width","value":{"kind":"code","src":" this.axis == \"x\" ? this.span() : this.thickness "}},{"name":"height","value":{"kind":"code","src":" this.axis == \"x\" ? this.thickness : this.span() "}}],"decls":[{"name":"axis","type":"Axis","def":{"kind":"value","value":"x"}},{"name":"thickness","type":"number","def":{"kind":"value","value":1}},{"name":"inset","type":"number","def":{"kind":"value","value":0}},{"name":"color","type":"Color","def":{"kind":"code","src":" this.$provided(\"theme\").line ","deps":["this.$provided(\"theme\")"]}}],"methods":[{"name":"span","body":"const p=this.parent;if(p==null)return 0;return p.contentBox(this.axis==\"x\"?\"width\":\"height\")"}],"children":[{"tag":"View","name":"rule","attrs":[{"name":"x","value":{"kind":"code","src":" classroot.axis == \"x\" ? classroot.inset : 0 ","deps":["classroot.axis","classroot.inset"]}},{"name":"y","value":{"kind":"code","src":" classroot.axis == \"x\" ? 0 : classroot.inset ","deps":["classroot.axis","classroot.inset"]}},{"name":"width","value":{"kind":"code","src":" classroot.axis == \"x\" ? Math.max(0, parent.width - classroot.inset) : classroot.thickness ","deps":["classroot.axis","parent.width","classroot.inset","classroot.thickness"]}},{"name":"height","value":{"kind":"code","src":" classroot.axis == \"x\" ? classroot.thickness : Math.max(0, parent.height - classroot.inset) ","deps":["classroot.axis","classroot.thickness","parent.height","classroot.inset"]}},{"name":"fill","value":{"kind":"code","src":" classroot.color ","deps":["classroot.color","classroot.$provided(\"theme\")"],"expr":"L0"}}]}]}},{"name":"AppIsland","base":"DOMIsland","body":{"tag":"AppIsland","attrs":[{"name":"slot","value":{"kind":"code","src":" this.program == \"\" ? \"\" : \"run:\" + this.program ","deps":["this.program"]}}],"decls":[{"name":"program","type":"string","def":{"kind":"value","value":""}},{"name":"containOverlays","type":"boolean","def":{"kind":"value","value":false}},{"name":"location","type":"string","def":{"kind":"value","value":""}},{"name":"place","type":"string","def":{"kind":"value","value":""}},{"name":"departedPlace","type":"string","def":{"kind":"value","value":""}}]}},{"name":"Spacer","base":"View","body":{"tag":"Spacer","attrs":[{"name":"flexes","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"value","value":0}},{"name":"height","value":{"kind":"value","value":0}}],"decls":[{"name":"baseline","type":"number","def":{"kind":"value","value":0}}]}},{"name":"Control","base":"View","body":{"tag":"Control","attrs":[{"name":"selectable","value":{"kind":"value","value":false},"route":"provision"},{"name":"focusable","value":{"kind":"code","src":" !this.disabled ","deps":["this.disabled"],"expr":"L0 n"}},{"name":"accessibilityRole","value":{"kind":"value","value":"button"}},{"name":"accessibilityExpanded","value":{"kind":"code","src":" this.menu != null ? this.menuOpen : null "}}],"decls":[{"name":"disabled","type":"boolean","def":{"kind":"value","value":false}},{"name":"focusVisible","type":"boolean","def":{"kind":"value","value":false}},{"name":"iconLeft","type":"string","def":{"kind":"value","value":""}},{"name":"iconRight","type":"string","def":{"kind":"value","value":""}},{"name":"menu","type":"View?","def":{"kind":"value","value":null}},{"name":"menuOpen","type":"boolean","def":{"kind":"code","src":" this.menu != null\n                       && (this.menu).shown === true\n                       && (this.menu).opener === this "}},{"name":"rightIcon","type":"string","def":{"kind":"code","src":" this.iconRight != \"\" ? this.iconRight : this.menu != null ? \"ChevronIcon\" : \"\" ","deps":["this.iconRight","this.menu"]}},{"name":"flash","type":"boolean","def":{"kind":"value","value":false}},{"name":"flashMs","type":"number","def":{"kind":"value","value":220}}],"methods":[{"name":"openMenu","body":"if(this.menu==null||this.disabled)return;this.menu.openFor(this)"},{"name":"press","body":"if(this.menu!=null)this.openMenu()"},{"name":"focusShape","body":"return null"},{"name":"flashPress","body":"this.flash=true;this.$afterDelay(this.flashMs,()=>{this.flash=false})"},{"name":"onFocus","body":"this.focusVisible=Focus.byKeyboard()"},{"name":"onBlur","body":"this.focusVisible=false"},{"name":"onPointerDown","body":"if(this.disabled)return;this.focusVisible=false;Focus.focus(this);if(this.menu!=null)this.openMenu()"},{"name":"onKeyDown","params":[{"name":"e","type":"KeyEvent"}],"body":"if(!this.disabled&&!e.repeat&&(e.key==\"Enter\"||e.key==\" \"))this.press();else if(!this.disabled&&!e.repeat&&e.key==\"ArrowDown\"&&this.menu!=null)this.openMenu();else if(!this.disabled&&this.accessibilityRole==\"slider\"&&e.key.startsWith(\"Arrow\"))this[e.key==\"ArrowRight\"||e.key==\"ArrowUp\"?\"accessibilityIncrement\":\"accessibilityDecrement\"]();else if(!this.disabled&&this.accessibilityRole==\"spinButton\"&&(e.key==\"ArrowUp\"||e.key==\"ArrowDown\"))this[e.key==\"ArrowUp\"?\"accessibilityIncrement\":\"accessibilityDecrement\"]();else $base.onKeyDown(e)","usesSuper":true},{"name":"onClick","body":"if(!this.disabled)this.press()"}]}},{"name":"IconHost","base":"View","body":{"tag":"IconHost","attrs":[{"name":"width","value":{"kind":"code","src":" classroot.kind == \"\" ? 0 : this.iconSize ","deps":["classroot.kind","this.iconSize","this.$provided(\"iconSize\")"]}},{"name":"height","value":{"kind":"code","src":" this.iconSize ","deps":["this.iconSize","this.$provided(\"iconSize\")"],"expr":"L0"}},{"name":"visible","value":{"kind":"code","src":" classroot.kind != \"\" ","deps":["classroot.kind"]}},{"name":"textColor","value":{"kind":"code","src":" classroot.ink ","deps":["classroot.ink","classroot.$provided(\"theme\")"],"expr":"L0"},"route":"provision"}],"decls":[{"name":"kind","type":"string","def":{"kind":"value","value":""}},{"name":"iconSize","type":"number","def":{"kind":"code","src":" this.$provided(\"iconSize\", 16) ","deps":["this.$provided(\"iconSize\")"]}},{"name":"ink","type":"Color","def":{"kind":"code","src":" this.$provided(\"theme\", SanFrancisco).text ","deps":["this.$provided(\"theme\")"]}}],"methods":[{"name":"onInit","body":"if(this.kind!=\"\")this.createView(this.kind,{})"}]}},{"name":"Icon","base":"View","body":{"tag":"Icon","attrs":[{"name":"width","value":{"kind":"code","src":" this.iconSize ","deps":["this.iconSize","this.$provided(\"iconSize\")"],"expr":"L0"}},{"name":"height","value":{"kind":"code","src":" this.width ","deps":["this.width"],"expr":"L0"}}],"decls":[{"name":"_isIcon","type":"boolean","def":{"kind":"value","value":true}},{"name":"iconSize","type":"number","def":{"kind":"code","src":" this.$provided(\"iconSize\", 16) ","deps":["this.$provided(\"iconSize\")"]}},{"name":"textColor","type":"Color","def":{"kind":"code","src":" this.$provided(\"textColor\", 0x000000) ","deps":["this.$provided(\"textColor\")"]}},{"name":"ink","type":"Color","def":{"kind":"code","src":" this.textColor ","deps":["this.textColor","this.$provided(\"textColor\")"],"expr":"L0"}},{"name":"weight","type":"number","def":{"kind":"value","value":1.6}},{"name":"unit","type":"number","def":{"kind":"code","src":" this.width / 16 ","deps":["this.width"],"expr":"L0 K16 /"}}]}},{"name":"SunIcon","base":"Icon","body":{"tag":"SunIcon","decls":[{"name":"rays","type":"number","def":{"kind":"value","value":8}},{"name":"solid","type":"boolean","def":{"kind":"value","value":false}}],"methods":[{"name":"draw","params":[{"name":"d","type":"DrawContext"}],"body":"d.scale(this.unit,this.unit);d.fillStyle=this.ink;d.strokeStyle=this.ink;d.lineWidth=this.weight/this.unit;d.lineCap=\"round\";d.beginPath();d.arc(8,8,classroot.solid?3.5:3.15,0,Math.PI*2,false);if(classroot.solid)d.fill();else d.stroke();for(let i=0;i<classroot.rays;i++){const a=i/classroot.rays*Math.PI*2;const c=Math.cos(a),s=Math.sin(a);d.beginPath();d.moveTo(8+c*5.3,8+s*5.3);d.lineTo(8+c*6.9,8+s*6.9);d.stroke()}"}]}},{"name":"MoonIcon","base":"Icon","body":{"tag":"MoonIcon","decls":[{"name":"solid","type":"boolean","def":{"kind":"value","value":false}}],"methods":[{"name":"draw","params":[{"name":"d","type":"DrawContext"}],"body":"d.scale(this.unit,this.unit);d.beginPath();d.arc(8,8,5.5,.389,4.323,false);d.arc(11,5,5.5,3.531,1.181,true);d.closePath();if(classroot.solid){d.fillStyle=this.ink;d.fill()}else{d.strokeStyle=this.ink;d.lineWidth=this.weight/this.unit;d.lineJoin=\"round\";d.stroke()}"}]}},{"name":"AutoIcon","base":"Icon","body":{"tag":"AutoIcon","methods":[{"name":"draw","params":[{"name":"d","type":"DrawContext"}],"body":"d.scale(this.unit,this.unit);d.strokeStyle=this.ink;d.fillStyle=this.ink;d.lineWidth=this.weight/this.unit;d.beginPath();d.arc(8,8,5.4,Math.PI*.5,Math.PI*1.5,false);d.closePath();d.fill();d.beginPath();d.arc(8,8,5.4,0,Math.PI*2,false);d.stroke()"}]}},{"name":"Floating","base":"View","body":{"tag":"Floating","attrs":[{"name":"ignoreLayout","value":{"kind":"value","value":true}},{"name":"visible","value":{"kind":"code","src":" this.present ","deps":["this.present"],"expr":"L0"}},{"name":"paintsIn","value":{"kind":"code","src":" this.host ","deps":["this.host"],"expr":"L0"},"route":"class"},{"name":"scale","value":{"kind":"code","src":" this._baseScale ","deps":["this._baseScale"],"expr":"L0"}},{"name":"rotation","value":{"kind":"code","src":" this._baseRotation ","deps":["this._baseRotation"],"expr":"L0"}},{"name":"outsidePress","value":{"kind":"code","src":" this.shown ? this.pressPolicy : \"none\" ","deps":["this.shown","this.pressPolicy"]}},{"name":"scrollBelow","value":{"kind":"code","src":" this.shown ? this.scrollPolicy : \"none\" ","deps":["this.shown","this.scrollPolicy"]}}],"decls":[{"name":"_form","type":"any","def":{"kind":"value","value":null}},{"name":"_field","type":"any","def":{"kind":"value","value":null}},{"name":"kind","type":"string","def":{"kind":"value","value":"floating"}},{"name":"shown","type":"boolean","def":{"kind":"value","value":false}},{"name":"present","type":"boolean","def":{"kind":"value","value":false}},{"name":"openT","type":"number","def":{"kind":"value","value":0}},{"name":"host","type":"View?","def":{"kind":"value","value":null}},{"name":"opener","type":"View?","def":{"kind":"value","value":null}},{"name":"pressPolicy","type":"\"dismiss\" | \"dismissAndDeliver\" | \"block\" | \"ignore\"","def":{"kind":"value","value":"dismiss"}},{"name":"scrollPolicy","type":"\"block\" | \"allow\" | \"dismiss\"","def":{"kind":"value","value":"block"}},{"name":"takesFocus","type":"boolean","def":{"kind":"value","value":false}},{"name":"_savedFocus","type":"View?","def":{"kind":"value","value":null}},{"name":"_savedParent","type":"View?","def":{"kind":"value","value":null}},{"name":"_savedAt","type":"number","def":{"kind":"value","value":-1}},{"name":"_hostedLayer","type":"boolean","def":{"kind":"value","value":false}},{"name":"sharesProgram","type":"boolean","def":{"kind":"value","value":true}},{"name":"_baseScale","type":"number","def":{"kind":"value","value":1}},{"name":"_baseRotation","type":"number","def":{"kind":"value","value":0}},{"name":"_live","type":"boolean","def":{"kind":"value","value":false}}],"methods":[{"name":"_strata","returns":"OverlayStrata","returnsNullable":false,"body":"let s=null;for(const c of this.$root.children){if(c._isOverlayStrata===true)s=c}if(s==null)return this.$root.createView(\"OverlayStrata\",{});s.raise();return s"},{"name":"_layerFor","params":[{"name":"s","type":"OverlayStrata"}],"returns":"View","returnsNullable":false,"body":"if(this.kind==\"notice\")return s.notice;const own=this.$provided(\"overlays\",null);this._hostedLayer=false;if(own!=null)return own;const hosts=this.$hostProvided(\"overlays\",null);if(hosts==null)return s.overlays;this._hostedLayer=true;return hosts"},{"name":"_takeProgramTransform","body":"if(!this._hostedLayer||!this.sharesProgram||this.host==null){this._baseScale=1;this._baseRotation=0;return}const t=this.$root.transformTo(this.host);this._baseScale=t.scale;this._baseRotation=t.rotation*180/Math.PI"},{"name":"input","params":[{"name":"open","type":"boolean"}],"body":"this.shown=open"},{"name":"_sync","body":"if(this.shown&&!this._live){this._live=true;this._opening()}else if(!this.shown&&this._live){this._live=false;this._closing()}"},{"name":"show","body":"if(!this.shown)this.input(true);this._sync()"},{"name":"_opening","body":"const s=this._strata();this.host=this._layerFor(s);this._takeProgramTransform();this.present=true;s.opened(this);if(this.pressPolicy!=\"ignore\")Keys.navClaim(this,true);if(this.takesFocus){this._savedFocus=Focus.getFocus();this._savedParent=this._savedFocus!=null?this._savedFocus.parent:null;this._savedAt=this._savedParent!=null?this._savedParent.childViews.indexOf(this._savedFocus):-1;this.$afterSettle(()=>this.focusFirst())}"},{"name":"showFor","params":[{"name":"v","type":"View"}],"body":"this.opener=v;this.show()"},{"name":"focusFirst","body":"if(!Focus.focusIn(this))this._holdFocusItself()"},{"name":"_holdFocusItself","body":"this.focusable=true;Focus.focus(this)"},{"name":"close","body":"if(this.shown)this.input(false);this._sync()"},{"name":"_closing","body":"this._strata().closedIt(this);Keys.navClaim(this,false);if(this._savedFocus!=null||this.restoresFocusTo!=null)this.$afterDelay(0,()=>{const f=Focus.getFocus();if(f==null||f==this||Focus.holds(this))Focus._giveBack(this);else{this._savedFocus=null;this._savedParent=null}});this.closed()"},{"name":"closed","body":""},{"name":"isTop","returns":"boolean","returnsNullable":false,"body":"return this._strata().top()==this"},{"name":"anchorBox","params":[{"name":"v","type":"View","nullable":true}],"returns":"object","returnsNullable":false,"body":"if(v==null)return{x:0,y:0,w:0,h:0};const o=this.toLayer(v,0,0);const k=this.host!=null?v.transformTo(this.host).scale:1;return{x:o.x,y:o.y,w:v.width*k,h:v.height*k}"},{"name":"toLayer","params":[{"name":"v","type":"View"},{"name":"px","type":"number"},{"name":"py","type":"number"}],"returns":"object","returnsNullable":false,"body":"return this._through(v.transformTo(this.host!=null?this.host:this.screen()),px,py)"},{"name":"screen","returns":"View","returnsNullable":false,"body":"if(this.host==null)return this.$root;let n=this.host;while(n.parent!=null)n=n.parent;return n"},{"name":"toScreen","params":[{"name":"v","type":"View"},{"name":"px","type":"number"},{"name":"py","type":"number"}],"returns":"object","returnsNullable":false,"body":"return this._through(v.transformTo(this.screen()),px,py)"},{"name":"_through","params":[{"name":"t","type":"object"},{"name":"px","type":"number"},{"name":"py","type":"number"}],"returns":"object","returnsNullable":false,"body":"const a=t.rotation;return{x:t.x+t.scale*(px*Math.cos(a)-py*Math.sin(a)),y:t.y+t.scale*(px*Math.sin(a)+py*Math.cos(a))}"},{"name":"keepOnApp","params":[{"name":"x","type":"number"},{"name":"y","type":"number"},{"name":"w","type":"number"},{"name":"h","type":"number"}],"returns":"object","returnsNullable":false,"body":"const scr=this.screen();if(this.host==null)return{x:Math.max(4,Math.min(scr.width-w-4,x)),y:Math.max(4,Math.min(scr.height-h-4,y))};const out=this.host.transformTo(scr);const cs=[this._through(out,x,y),this._through(out,x+w,y),this._through(out,x,y+h),this._through(out,x+w,y+h)];const minX=Math.min(...cs.map(c=>c.x));const maxX=Math.max(...cs.map(c=>c.x));const minY=Math.min(...cs.map(c=>c.y));const maxY=Math.max(...cs.map(c=>c.y));const dx=maxX>scr.width-4?scr.width-4-maxX:0;const dy=maxY>scr.height-4?scr.height-4-maxY:0;const sx=minX+dx<4?4-minX:dx;const sy=minY+dy<4?4-minY:dy;if(sx==0&&sy==0)return{x,y};const back=scr.transformTo(this.host);const p0=this._through(back,cs[0].x,cs[0].y);const p1=this._through(back,cs[0].x+sx,cs[0].y+sy);return{x:x+p1.x-p0.x,y:y+p1.y-p0.y}"},{"name":"onOutsidePress","body":"this.close()"},{"name":"escape","body":"this.close()"}],"children":[{"tag":"Spring","name":"motion","attrs":[{"name":"attribute","value":{"kind":"value","value":"openT"}},{"name":"to","value":{"kind":"code","src":" classroot.shown ? 1 : 0 ","deps":["classroot.shown"],"expr":"L0 K1 K0 ?"}},{"name":"stiffness","value":{"kind":"value","value":520}},{"name":"damping","value":{"kind":"value","value":40}},{"name":"epsilon","value":{"kind":"value","value":0.01}}],"methods":[{"name":"onStop","body":"if(!classroot.shown)classroot.present=false"}]},{"tag":"Node","name":"_watch","attrs":[{"name":"trackChanges","value":{"kind":"list","items":[{"kind":"string","value":"open"}]},"route":"list"}],"decls":[{"name":"open","type":"boolean","def":{"kind":"code","src":" classroot.shown ","deps":["classroot.shown"],"expr":"L0"}}],"methods":[{"name":"onInit","body":"if(this.open)this.$afterSettle(()=>classroot._sync())"},{"name":"onChange","body":"classroot._sync()"}]},{"tag":"Keys","name":"escKeys","methods":[{"name":"onKeyDown","params":[{"name":"e","type":"KeyEvent"}],"body":"if(e.key!=\"Escape\"||!classroot.shown)return;const s=classroot._strata();if(s.handled===e||s.top()!=classroot)return;s.handled=e;classroot.escape()"}]}]}},{"name":"TextLabel","base":"Text","body":{"tag":"TextLabel","attrs":[{"name":"y","value":{"kind":"code","src":" parent.height / 2 - this.baseline + this.capHeight / 2 ","deps":["parent.height","this.baseline","this.capHeight"],"expr":"L0 K2 / L1 - L2 K2 / +"}}]}},{"name":"Button","base":"Control","body":{"tag":"Button","attrs":[{"name":"accessibilityRole","value":{"kind":"value","value":"button"}},{"name":"height","value":{"kind":"code","src":" this.$root.touchFirst ? Math.max(44, this.$provided(\"theme\").buttonHeight) : this.$provided(\"theme\").buttonHeight ","deps":["this.$root.touchFirst","this.$provided(\"theme\")"]}},{"name":"cornerRadius","value":{"kind":"code","src":" this.$provided(\"theme\").buttonCornerRadius != null ? Math.min(this.$provided(\"theme\").buttonCornerRadius, this.height / 2) : this.$provided(\"theme\").controlCornerRadius ","deps":["this.$provided(\"theme\")","this.height"]}},{"name":"iconSize","value":{"kind":"value","value":18},"route":"provision"},{"name":"textColor","value":{"kind":"code","src":" this.inkColor ","deps":["this.inkColor","this.primary","this.$provided(\"theme\")"],"expr":"L0"},"route":"provision"},{"name":"width","value":{"kind":"code","src":" this.run.width + this.padH * 2 ","deps":["this.run.width","this.padH"],"expr":"L0 L1 K2 * +"}},{"name":"opacity","value":{"kind":"code","src":" this.disabled ? (this.$provided(\"theme\").disabledOpacity) : 1 ","deps":["this.disabled","this.$provided(\"theme\")"]}},{"name":"fill","value":{"kind":"code","src":" this.primary ? this.primaryFill : this.menuOpen ? this.$provided(\"theme\").controlSelected : this.plainFill "}},{"name":"stroke","value":{"kind":"code","src":" !this.primary && this.$provided(\"theme\").buttonStrokeColor != null ? stroke(1, this.$provided(\"theme\").buttonStrokeColor) : null ","deps":["this.primary","this.$provided(\"theme\")"]}}],"decls":[{"name":"baseline","type":"number","def":{"kind":"code","src":" this.run.y + this.run.cap.y + this.run.cap.baseline ","deps":["this.run.y","this.run.cap.y","this.run.cap.baseline"],"expr":"L0 L1 + L2 +"}},{"name":"label","type":"string","def":{"kind":"value","value":""}},{"name":"primary","type":"boolean","def":{"kind":"value","value":false}},{"name":"gap","type":"number","def":{"kind":"value","value":8}},{"name":"padH","type":"number","def":{"kind":"value","value":16}},{"name":"inkColor","type":"Color","def":{"kind":"code","src":" this.primary ? this.$provided(\"theme\").accentTextColor : this.$provided(\"theme\").text ","deps":["this.primary","this.$provided(\"theme\")"]}},{"name":"primaryFill","type":"Color","def":{"kind":"code","src":" this.pressed || this.menuOpen ? this.$provided(\"theme\").accentPressed : this.hovered ? this.$provided(\"theme\").accentHovered : this.$provided(\"theme\").accent "}},{"name":"plainFill","type":"Color","def":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").controlPressed : this.hovered ? this.$provided(\"theme\").controlHovered : this.$provided(\"theme\").control ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}}],"methods":[{"name":"onClick","body":""},{"name":"press","body":"this.flashPress();$base.press();this.onClick()","usesSuper":true}],"children":[{"tag":"View","name":"run","attrs":[{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"width","value":{"kind":"code","src":" this.contentWidth ","deps":["this.contentWidth"],"expr":"L0"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"x"}},{"name":"spacing","value":{"kind":"code","src":" classroot.gap ","deps":["classroot.gap"],"expr":"L0"}}],"classSlot":"Layout"},{"tag":"IconHost","name":"ico","attrs":[{"name":"y","value":{"kind":"value","value":{"align":"center"}}},{"name":"kind","value":{"kind":"code","src":" classroot.iconLeft ","deps":["classroot.iconLeft"],"expr":"L0"}},{"name":"ink","value":{"kind":"code","src":" classroot.inkColor ","deps":["classroot.inkColor","classroot.primary","classroot.$provided(\"theme\")"],"expr":"L0"}}]},{"tag":"TextLabel","name":"cap","attrs":[{"name":"wrap","value":{"kind":"value","value":false}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"visible","value":{"kind":"code","src":" classroot.label != \"\" ","deps":["classroot.label"]}},{"name":"text","value":{"kind":"code","src":" classroot.label ","deps":["classroot.label"],"expr":"L0"}}]},{"tag":"IconHost","name":"trail","attrs":[{"name":"y","value":{"kind":"value","value":{"align":"center"}}},{"name":"kind","value":{"kind":"code","src":" classroot.rightIcon ","deps":["classroot.rightIcon","classroot.iconRight","classroot.menu"],"expr":"L0"}},{"name":"ink","value":{"kind":"code","src":" classroot.inkColor ","deps":["classroot.inkColor","classroot.primary","classroot.$provided(\"theme\")"],"expr":"L0"}}]}]}]}},{"name":"WrappingLayout","base":"Layout","body":{"tag":"WrappingLayout","decls":[{"name":"spacing","type":"number","def":{"kind":"value","value":0}},{"name":"rowSpacing","type":"number","def":{"kind":"value","value":0}},{"name":"justify","type":"Justify","def":{"kind":"value","value":"start"}},{"name":"align","type":"CrossAlign","def":{"kind":"value","value":"start"}},{"name":"indent","type":"number","def":{"kind":"value","value":0}},{"name":"hangingIndent","type":"number","def":{"kind":"value","value":0}},{"name":"columns","type":"number","def":{"kind":"value","value":0}}],"methods":[{"name":"place","body":"const w=this.contentExtent(\"width\");const sp=this.spacing;const ls=this.rowSpacing;const jf=this.justify;const al=this.align;const ind0=Math.max(0,this.indent);const indN=Math.max(0,this.hangingIndent);const kids=this.laid();const out=[];const heights=[];const bases=[];const natural=[];let cx=ind0;let cy=0;let rowH=0;let rowBase=0;let firstInRow=true;let rowStart=0;const cols=Math.max(0,Math.floor(this.columns));const cellOf=inset=>cols>0?Math.max(0,(w-inset-(cols-1)*sp)/cols):0;let inRow=0;const finish=(end,rowW,last)=>{const slack=Math.max(0,w-rowW);let flexN=0;for(let j=rowStart;j<end;j++)if(kids[j].visible&&natural[j]!=null)flexN=flexN+1;if(flexN>0){const share=(w-rowW)/flexN;let shift=0;for(let j=rowStart;j<end;j++){if(!kids[j].visible)continue;out[j].x=out[j].x+shift;if(natural[j]!=null){const grown=Math.max(0,natural[j]+share);out[j].w=grown;shift=shift+grown-natural[j]}}}else if(slack>0&&(jf==\"center\"||jf==\"end\")){const off=jf==\"center\"?slack/2:slack;for(let j=rowStart;j<end;j++)out[j].x=out[j].x+off}else if(slack>0&&jf==\"fill\"&&!last){let n=0;for(let j=rowStart;j<end;j++)if(kids[j].visible)n=n+1;if(n>1){const share=slack/(n-1);let k=0;for(let j=rowStart;j<end;j++){if(!kids[j].visible)continue;out[j].x=out[j].x+share*k;k=k+1}}}let lineH=rowH;if(al==\"baseline\"){lineH=0;for(let j=rowStart;j<end;j++){if(!kids[j].visible)continue;const top=bases[j]==null?0:rowBase-bases[j];lineH=Math.max(lineH,top+heights[j])}}if(rowStart==0&&last&&(al==\"center\"||al==\"end\"))lineH=Math.max(lineH,this.viewExtent(\"height\"));for(let j=rowStart;j<end;j++){if(!kids[j].visible)continue;let off=0;if(al==\"center\")off=(lineH-heights[j])/2;else if(al==\"end\")off=lineH-heights[j];else if(al==\"baseline\"){if(bases[j]!=null)off=rowBase-bases[j];else this.refuseBaseline(kids[j])}out[j].y=out[j].y+off}return lineH};for(let i=0;i<kids.length;i++){const c=kids[i];if(!c.visible){out.push({x:cx,y:cy});heights.push(0);bases.push(null);natural.push(null);continue}const flex=c.flexes===true;const f=flex?null:c.footprint();const ch=flex?c.height:f.height;const leadX=flex?0:f.x;const leadY=flex?0:f.y;let cw=cols>0?0:flex?c.contentWidth:f.width;natural.push(flex&&cols==0?cw:null);if(!firstInRow&&(cols>0?inRow>=cols:cx+sp+cw>w)){const lh=finish(i,cx,false);cx=indN;cy=cy+lh+ls;rowH=0;rowBase=0;firstInRow=true;rowStart=i;inRow=0}const cell=cols>0?cellOf(rowStart==0?ind0:indN):0;if(cols>0)cw=cell;if(!firstInRow)cx=cx+sp;out.push(cols>0&&flex?{x:cx,y:cy,w:cell}:{x:cx-leadX,y:cy-leadY});inRow=inRow+1;heights.push(ch);const b=c.baseline;bases.push(typeof b==\"number\"?b:null);if(al==\"baseline\"&&typeof b==\"number\")rowBase=Math.max(rowBase,b);cx=cx+cw;rowH=Math.max(rowH,ch);firstInRow=false}finish(kids.length,cx,true);return out"}]}},{"name":"OverlayStrata","base":"View","body":{"tag":"OverlayStrata","attrs":[{"name":"ignoreLayout","value":{"kind":"value","value":true}},{"name":"ignoreScroll","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"code","src":" this.parent == this.$root && this.$root.hostWidth > 0 ? Math.min(this.$root.width, this.$root.hostWidth) : (this.parent).width ","deps":["this.parent","this.$root.hostWidth","this.$root.width","this.parent.width"],"expr":"L0 L%this.$root = L1 K0 > & L2 L1 m L3 ?"}},{"name":"height","value":{"kind":"code","src":" this.parent == this.$root && this.$root.hostHeight > 0 ? Math.min(this.$root.height, this.$root.hostHeight) : (this.parent).height ","deps":["this.parent","this.$root.hostHeight","this.$root.height","this.parent.height"],"expr":"L0 L%this.$root = L1 K0 > & L2 L1 m L3 ?"}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}}],"decls":[{"name":"_isOverlayStrata","type":"boolean","def":{"kind":"value","value":true}},{"name":"stack","type":"array","def":{"kind":"list","items":[]},"route":"list"},{"name":"handled","type":"object","def":{"kind":"value","value":null}}],"methods":[{"name":"opened","params":[{"name":"v","type":"View"}],"body":"this.stack=this.stack.filter(s=>s!=v).concat([v])"},{"name":"closedIt","params":[{"name":"v","type":"View"}],"body":"this.stack=this.stack.filter(s=>s!=v)"},{"name":"top","returns":"View","returnsNullable":true,"body":"const c=Keys.claimant();return this.stack.indexOf(c)>=0?c:null"}],"children":[{"tag":"View","name":"overlays","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}}]},{"tag":"View","name":"notice","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}}]}]}},{"name":"FocusRing","base":"View","body":{"tag":"FocusRing","attrs":[{"name":"opacity","value":{"kind":"value","value":0}},{"name":"ignoreLayout","value":{"kind":"value","value":true}},{"name":"visible","value":{"kind":"code","src":" this.opacity > 0.02 && (!this.overlayUp || this._focusInOverlay) ","deps":["this.opacity","this.overlayUp","this._focusInOverlay"],"expr":"L0 K0.02 > L1 n L1 n L2 ? L0 K0.02 > ?"}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}},{"name":"selectable","value":{"kind":"value","value":false},"route":"provision"}],"decls":[{"name":"overlayUp","type":"boolean","def":{"kind":"value","value":false}},{"name":"_focusInOverlay","type":"boolean","def":{"kind":"value","value":false}},{"name":"_tx","type":"number","def":{"kind":"value","value":0}},{"name":"_ty","type":"number","def":{"kind":"value","value":0}},{"name":"_tw","type":"number","def":{"kind":"value","value":0}},{"name":"_th","type":"number","def":{"kind":"value","value":0}},{"name":"_trad","type":"number","def":{"kind":"value","value":8}},{"name":"_trot","type":"number","def":{"kind":"value","value":0}},{"name":"_rad","type":"number","def":{"kind":"value","value":8}},{"name":"shown","type":"boolean","def":{"kind":"value","value":false}},{"name":"placed","type":"boolean","def":{"kind":"value","value":false}},{"name":"_theme","type":"any","def":{"kind":"value","value":null}},{"name":"idle","type":"boolean","def":{"kind":"value","value":false}},{"name":"_gen","type":"number","def":{"kind":"value","value":0}}],"methods":[{"name":"ringTheme","returns":"any","returnsNullable":false,"body":"return this._theme??this.$provided(\"theme\")"},{"name":"ringRole","body":"const r=this.$provided(\"theme\").focusRingStyle;return r==false?\"off\":r==true||r==null?\"both\":r"},{"name":"restRole","body":"const r=this.ringRole();return r==\"both\"||r==\"rest\""},{"name":"travelRole","body":"const r=this.ringRole();return r==\"both\"||r==\"travel\""},{"name":"snapTo","body":"this.x=this._tx;this.y=this._ty;this.width=this._tw;this.height=this._th;this._rad=this._trad;this.rotation=this._trot"},{"name":"_restack","params":[{"name":"v","type":"View"}],"body":"if(classroot.paintsIn!=null)return;let top=null;let pinned=false;for(let n=v;n!=null&&n!=this.$root;n=n.paintsIn!=null?n.paintsIn:n.parent){if(n.ignoreScroll)pinned=true;top=n}let chrome=null;if(!pinned&&!this.overlayUp&&top!=null){let after=false;for(const k of this.$root.childViews){if(k==top){after=true;continue}if(after&&k!=classroot&&k.ignoreScroll&&k.visible&&k.pointerEvents!=\"none\"&&k.height<this.$root.height/2){chrome=k;break}}}classroot.raise(chrome)"},{"name":"_noteOverlayFocus","body":"const c=Keys.claimant();const f=Focus.getFocus();let n=f;while(n!=null&&n!=c)n=n.parent;this._focusInOverlay=c!=null&&n==c&&f!=c"},{"name":"draw","params":[{"name":"d","type":"DrawContext"}],"body":"const Q=Math.PI/2;const dist=Math.abs(this.x-this._tx)+Math.abs(this.y-this._ty)+Math.abs(this.width-this._tw)+Math.abs(this.height-this._th);const lw=this.$provided(\"theme\").focusRingWidth;let L=0,T=0,R=this.width,B=this.height;if(Math.abs(this.rotation)<.01){const sc=classroot.paintsIn!=null?classroot.paintsIn:this.$root;const m=lw/2;L=Math.max(0,Math.min(sc.scrollX+m,this._tx)-this.x);T=Math.max(0,Math.min(sc.scrollY+m,this._ty)-this.y);R=Math.min(this.width,Math.max(sc.scrollX+sc.width-m,this._tx+this._tw)-this.x);B=Math.min(this.height,Math.max(sc.scrollY+sc.height-m,this._ty+this._th)-this.y);if(R-L<1||B-T<1)return}const w=R-L,h=B-T;const small=Math.min(w,h)<40;const cov=this.$provided(\"theme\").focusSights==true&&!small?Math.max(.22,1-dist/16):1;const iw=this.$provided(\"theme\").focusRingInnerWidth;const pass=(ins,lwp,color)=>{const r=Math.max(1,Math.min(this._rad-ins,Math.min(w,h)/2-ins));const ax=Math.max(0,((w-2*ins)/2-r)*cov);const ay=Math.max(0,((h-2*ins)/2-r)*cov);d.strokeStyle=color;d.lineWidth=lwp;d.beginPath();const x0=L+ins,y0=T+ins,x1=R-ins,y1=B-ins;d.moveTo(x0+r+ax,y0);d.lineTo(x0+r,y0);d.arc(x0+r,y0+r,r,-Q,Math.PI,true);d.lineTo(x0,y0+r+ay);d.moveTo(x1-r-ax,y0);d.lineTo(x1-r,y0);d.arc(x1-r,y0+r,r,-Q,0);d.lineTo(x1,y0+r+ay);d.moveTo(x1,y1-r-ay);d.lineTo(x1,y1-r);d.arc(x1-r,y1-r,r,0,Q);d.lineTo(x1-r-ax,y1);d.moveTo(x0+r+ax,y1);d.lineTo(x0+r,y1);d.arc(x0+r,y1-r,r,Q,Math.PI);d.lineTo(x0,y1-r-ay);d.stroke()};const t=this.ringTheme();pass(0,lw,t.focusRingColor??t.accent);if(iw>0)pass((lw+iw)/2,iw,t.focusRingInnerColor??t.surface)"}],"children":[{"tag":"Keys","name":"claims","methods":[{"name":"onNavClaim","params":[{"name":"on","type":"boolean"}],"body":"classroot.overlayUp=on;classroot._noteOverlayFocus()"}]},{"tag":"Focus","name":"focus","methods":[{"name":"onGeometry","params":[{"name":"g","type":"FocusGeometry"}],"body":"if(g.root!=this.$root)return;const prev=this._lastTarget;const prevHome=this._lastHome;const hadHome=this._hasHome===true;const px=classroot.x;const py=classroot.y;classroot.paintsIn=g.scroller==this.$root?null:g.scroller;const homed=g.scroller!=this.$root;const gx=g.homeX;const gy=g.homeY;if(hadHome&&prevHome!=g.scroller){const toRoot=prevHome==null||prevHome==this.$root?{x:px,y:py}:(()=>{const o=prevHome.rootOrigin();return{x:o.x+px-prevHome.scrollX,y:o.y+py-prevHome.scrollY}})();const dst=!homed||g.scroller==this.$root?toRoot:(()=>{const o=g.scroller.rootOrigin();return{x:toRoot.x-o.x+g.scroller.scrollX,y:toRoot.y-o.y+g.scroller.scrollY}})();classroot.x=dst.x;classroot.y=dst.y}const gap=this.$provided(\"theme\").focusRingGap;const lw=this.$provided(\"theme\").focusRingWidth;const iw=this.$provided(\"theme\").focusRingInnerWidth;const outside=gap+iw+lw/2;const sc=homed&&g.scroller!=this.$root?g.scroller:null;const gw=g.homeW;const gh=g.homeH;const turned=g.homeRot!=0;const cutY=!turned&&sc!=null&&sc.scrolls!=\"y\"&&(gy-outside<0||gy+gh+outside>sc.height);const cutX=!turned&&sc!=null&&sc.scrolls!=\"x\"&&(gx-outside<0||gx+gw+outside>sc.width);const off=cutX||cutY?-(lw/2+1):outside;const ca=Math.cos(g.homeRot*Math.PI/180),sa=Math.sin(g.homeRot*Math.PI/180);const nx=gx-off*ca+off*sa,ny=gy-off*sa-off*ca;const moved=Math.abs(nx-classroot._tx)+Math.abs(ny-classroot._ty)+Math.abs(gw+2*off-classroot._tw)+Math.abs(gh+2*off-classroot._th)>.5;classroot._tx=nx;classroot._ty=ny;classroot._tw=gw+2*off;classroot._th=gh+2*off;classroot._trad=g.homeRad+off;classroot._trot=g.homeRot;classroot._theme=g.theme;this._lastTarget=g.view;this._lastHome=g.scroller;this._hasHome=true;if(classroot.shown)classroot._restack(g.view);if(prev==g.view&&moved)classroot.snapTo()"},{"name":"onFocusChange","params":[{"name":"v","type":"View"}],"body":"classroot._noteOverlayFocus();if(v==null){classroot.shown=false;return}let n=v;for(;n!=null&&n.parent!=null;n=n.parent){}if(n!=this.$root){classroot.shown=false;return}if(v.focusable==\"quiet\"){classroot.shown=false;classroot.placed=false;return}if(!Focus.byKeyboard()){classroot.shown=false;classroot.snapTo();classroot.placed=true;return}if(classroot.ringRole()==\"off\"){classroot.shown=false;return}if(!classroot.placed||this.$provided(\"theme\").focusAnimate==false||!classroot.travelRole())classroot.snapTo();classroot.placed=true;classroot.shown=true;classroot._restack(v);if(classroot.restRole()){classroot.idle=false;return}classroot._gen=classroot._gen+1;const g2=classroot._gen;classroot.idle=false;this.$afterDelay(1e3,()=>{if(classroot._gen==g2)classroot.idle=true})"}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"x"}},{"name":"to","value":{"kind":"code","src":" classroot._tx ","deps":["classroot._tx"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":16}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"y"}},{"name":"to","value":{"kind":"code","src":" classroot._ty ","deps":["classroot._ty"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":16}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"width"}},{"name":"to","value":{"kind":"code","src":" classroot._tw ","deps":["classroot._tw"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":18}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"height"}},{"name":"to","value":{"kind":"code","src":" classroot._th ","deps":["classroot._th"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":18}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"_rad"}},{"name":"to","value":{"kind":"code","src":" classroot._trad ","deps":["classroot._trad"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":20}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"rotation"}},{"name":"to","value":{"kind":"code","src":" classroot._trot ","deps":["classroot._trot"],"expr":"L0"}},{"name":"stiffness","value":{"kind":"value","value":220}},{"name":"damping","value":{"kind":"value","value":20}}]},{"tag":"Spring","attrs":[{"name":"attribute","value":{"kind":"value","value":"opacity"}},{"name":"to","value":{"kind":"code","src":" classroot.shown && !classroot.idle ? 0.9 : 0 ","deps":["classroot.shown","classroot.idle"],"expr":"L0 L1 n & K0.9 K0 ?"}},{"name":"stiffness","value":{"kind":"value","value":90}},{"name":"damping","value":{"kind":"value","value":20}}]}]}},{"name":"Tooltip","base":"Floating","body":{"tag":"Tooltip","attrs":[{"name":"kind","value":{"kind":"value","value":"floating"}},{"name":"pressPolicy","value":{"kind":"value","value":"ignore"}},{"name":"scrollPolicy","value":{"kind":"value","value":"dismiss"}},{"name":"visible","value":{"kind":"code","src":" this.shown && this.label != \"\" ","deps":["this.shown","this.label"]}},{"name":"width","value":{"kind":"code","src":" this.t.width + 16 ","deps":["this.t.width"],"expr":"L0 K16 +"}},{"name":"height","value":{"kind":"code","src":" this.t.height + 10 ","deps":["this.t.height"],"expr":"L0 K10 +"}},{"name":"x","value":{"kind":"code","src":" Math.max(4, Math.min(this.$root.width - this.width - 4,\n            this.placement == \"pointer\" ? this._px + 10 : this._ex + (this._ew - this.width) / 2)) ","deps":["this.$root.width","this.width","this.placement","this._px","this._ex","this._ew","this.$provided(\"theme\")"]}},{"name":"y","value":{"kind":"code","src":" this.placement == \"pointer\" ? this.pointerY : this.placement == \"above\" ? this.aboveY : this.belowY ","deps":["this.placement","this.pointerY","this.aboveY","this.belowY","this.$provided(\"theme\")","this._py","this.height","this.$root.height","this._ey","this._eh"]}},{"name":"cornerRadius","value":{"kind":"code","src":" this.$provided(\"theme\").tooltipCornerRadius ","deps":["this.$provided(\"theme\")"]}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").tooltipFill ","deps":["this.$provided(\"theme\")"]}},{"name":"stroke","value":{"kind":"code","src":" this.$provided(\"theme\").tooltipStrokeColor != null ? stroke(1, this.$provided(\"theme\").tooltipStrokeColor) : null ","deps":["this.$provided(\"theme\")"]}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}},{"name":"selectable","value":{"kind":"value","value":false},"route":"provision"}],"decls":[{"name":"label","type":"string","def":{"kind":"value","value":""}},{"name":"_ex","type":"number","def":{"kind":"value","value":0}},{"name":"_ey","type":"number","def":{"kind":"value","value":0}},{"name":"_ew","type":"number","def":{"kind":"value","value":0}},{"name":"_eh","type":"number","def":{"kind":"value","value":0}},{"name":"_px","type":"number","def":{"kind":"value","value":0}},{"name":"_py","type":"number","def":{"kind":"value","value":0}},{"name":"placement","type":"string","def":{"kind":"code","src":" this.$provided(\"theme\").tooltipPlacement ","deps":["this.$provided(\"theme\")"]}},{"name":"pointerY","type":"number","def":{"kind":"code","src":" this._py + 18 + this.height > this.$root.height ? this._py - this.height - 8 : this._py + 18 ","deps":["this._py","this.height","this.$root.height"],"expr":"L0 K18 + L1 + L2 > L0 L1 - K8 - L0 K18 + ?"}},{"name":"aboveY","type":"number","def":{"kind":"code","src":" this._ey - this.height - 7 < 0 ? this._ey + this._eh + 7 : this._ey - this.height - 7 ","deps":["this._ey","this.height","this._eh"],"expr":"L0 L1 - K7 - K0 < L0 L2 + K7 + L0 L1 - K7 - ?"}},{"name":"belowY","type":"number","def":{"kind":"code","src":" this._ey + this._eh + 7 + this.height > this.$root.height ? this._ey - this.height - 7 : this._ey + this._eh + 7 ","deps":["this._ey","this._eh","this.height","this.$root.height"],"expr":"L0 L1 + K7 + L2 + L3 > L0 L2 - K7 - L0 L1 + K7 + ?"}}],"children":[{"tag":"Tooltips","name":"tips","methods":[{"name":"onTooltip","params":[{"name":"e","type":"TooltipEvent"}],"body":"if(e==null||e.root!=this.$root){classroot.close();return}classroot._ex=e.x;classroot._ey=e.y;classroot._ew=e.w;classroot._eh=e.h;classroot._px=this.$root.pointerX;classroot._py=this.$root.pointerY;classroot.label=e.text;classroot.show()"}]},{"tag":"Text","name":"t","attrs":[{"name":"pointerEvents","value":{"kind":"value","value":"none"}},{"name":"x","value":{"kind":"value","value":8}},{"name":"y","value":{"kind":"value","value":5}},{"name":"fontSize","value":{"kind":"code","src":" this.$provided(\"theme\").tooltipFontSize ","deps":["this.$provided(\"theme\")"]}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").tooltipTextColor ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.label ","deps":["classroot.label"],"expr":"L0"}}]}]}},{"name":"Heading","base":"Text","body":{"tag":"Heading","attrs":[{"name":"fontWeight","value":{"kind":"code","src":" this.$root.headWeight ","deps":["this.$root.headWeight"],"expr":"L0"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").text ","deps":["this.$provided(\"theme\")"]}},{"name":"letterSpacing","value":{"kind":"code","src":" this.$root.headTrack * this.fontSize ","deps":["this.$root.headTrack","this.fontSize"],"expr":"L0 L1 *"}}]}},{"name":"Display","base":"Heading","body":{"tag":"Display"}},{"name":"Eyebrow","base":"Text","body":{"tag":"Eyebrow","attrs":[{"name":"fontFamily","value":{"kind":"value","value":"ui-monospace, monospace"}},{"name":"fontSize","value":{"kind":"value","value":13}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"letterSpacing","value":{"kind":"value","value":1.6}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").muted ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"Marker","base":"Eyebrow","body":{"tag":"Marker","attrs":[{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").accent ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"FootLabel","base":"Text","body":{"tag":"FootLabel","attrs":[{"name":"fontSize","value":{"kind":"value","value":13}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").muted ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"Lead","base":"Text","body":{"tag":"Lead","attrs":[{"name":"fontSize","value":{"kind":"value","value":19}},{"name":"fontWeight","value":{"kind":"value","value":"normal"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").lead ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"Body","base":"Text","body":{"tag":"Body","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"fontWeight","value":{"kind":"value","value":"normal"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").muted ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"BannerHead","base":"Heading","body":{"tag":"BannerHead","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(this.measure, parent.width) ","deps":["this.measure","parent.width"],"expr":"L0 L1 m"}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"textAlign","value":{"kind":"value","value":"center"}}],"decls":[{"name":"measure","type":"number","def":{"kind":"value","value":880}}]}},{"name":"BannerLead","base":"Lead","body":{"tag":"BannerLead","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(this.measure, parent.width) ","deps":["this.measure","parent.width"],"expr":"L0 L1 m"}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"textAlign","value":{"kind":"value","value":"center"}}],"decls":[{"name":"measure","type":"number","def":{"kind":"value","value":620}}]}},{"name":"BandRule","base":"View","body":{"tag":"BandRule","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"width","value":{"kind":"value","value":140}},{"name":"height","value":{"kind":"value","value":2}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").accent ","deps":["this.$provided(\"theme\")"]}}]}},{"name":"NavLink","base":"Control","body":{"tag":"NavLink","attrs":[{"name":"height","value":{"kind":"value","value":33}},{"name":"cornerRadius","value":{"kind":"value","value":8}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":0},{"kind":"number","value":12},{"kind":"number","value":0},{"kind":"number","value":12}]},"route":"corners"},{"name":"accessibilityRole","value":{"kind":"value","value":"link"}},{"name":"accessibilityHint","value":{"kind":"code","src":" this.dropdown ? \"opens a menu\" : \"\" ","deps":["this.dropdown"]}},{"name":"fill","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").pillPress : this.hovered ? this.$provided(\"theme\").pillHover : null ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}},{"name":"width","value":{"kind":"code","src":" this.contentWidth ","deps":["this.contentWidth"],"expr":"L0"}}],"decls":[{"name":"label","type":"string","def":{"kind":"value","value":""}},{"name":"dropdown","type":"boolean","def":{"kind":"value","value":false}}],"methods":[{"name":"press","body":"if(!this.dropdown)return;const o=this.rootOrigin();this.$root.appsX=o.x-this.$root.scrollX;this.$root.appsY=o.y-this.$root.scrollY+this.height+6;this.$root.appsOpen=!this.$root.appsOpen"}],"children":[{"tag":"Text","name":"lbl","attrs":[{"name":"y","value":{"kind":"value","value":8}},{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":14}},{"name":"text","value":{"kind":"code","src":" classroot.label ","deps":["classroot.label"],"expr":"L0"}},{"name":"textColor","value":{"kind":"code","src":" classroot.hovered || classroot.pressed ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["classroot.hovered","classroot.pressed","this.$provided(\"theme\")"]}}]}]}},{"name":"MobileNavRow","base":"View","body":{"tag":"MobileNavRow","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":44}},{"name":"cornerRadius","value":{"kind":"value","value":8}},{"name":"fill","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").pillPress : this.hovered ? this.$provided(\"theme\").pillHover : null ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}}],"decls":[{"name":"label","type":"string","def":{"kind":"value","value":""}},{"name":"sub","type":"boolean","def":{"kind":"value","value":false}}],"methods":[{"name":"onClick","body":"this.$root.menuOpen=false;this.$root.appsOpen=false"}],"children":[{"tag":"Text","name":"lbl","attrs":[{"name":"x","value":{"kind":"code","src":" classroot.sub ? 30 : 14 ","deps":["classroot.sub"],"expr":"L0 K30 K14 ?"}},{"name":"y","value":{"kind":"value","value":{"align":"center"}}},{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":16}},{"name":"fontWeight","value":{"kind":"value","value":"medium"}},{"name":"text","value":{"kind":"code","src":" classroot.label ","deps":["classroot.label"],"expr":"L0"}},{"name":"textColor","value":{"kind":"code","src":" classroot.hovered || classroot.pressed ? this.$provided(\"theme\").text : classroot.sub ? this.$provided(\"theme\").muted : this.$provided(\"theme\").lead ","deps":["classroot.hovered","classroot.pressed","this.$provided(\"theme\")","classroot.sub"]}}]}]}},{"name":"MobileNavGroup","base":"View","body":{"tag":"MobileNavGroup","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"code","src":" this.contentHeight ","deps":["this.contentHeight"],"expr":"L0"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":0}}],"classSlot":"Layout"},{"tag":"MobileNavRow","attrs":[{"name":"label","value":{"kind":"code","src":" this.$data([\"label\"]) ","deps":[":label"],"expr":"L0"}},{"name":"link","value":{"kind":"code","src":" this.$data([\"link\"]) ","deps":[":link"],"expr":"L0"}}]},{"tag":"MobileNavRow","attrs":[{"name":"datapath","value":{"kind":"path","path":"children","many":true},"route":"cursor"},{"name":"sub","value":{"kind":"value","value":true}},{"name":"label","value":{"kind":"code","src":" this.$data([\"label\"]) ","deps":[":label"],"expr":"L0"}},{"name":"link","value":{"kind":"code","src":" this.$data([\"link\"]) ","deps":[":link"],"expr":"L0"}}]}]}},{"name":"Shot","base":"View","body":{"tag":"Shot","attrs":[{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"clip","value":{"kind":"value","value":true}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").stage ","deps":["this.$provided(\"theme\")"]}},{"name":"height","value":{"kind":"code","src":" this.width / 1.6 ","deps":["this.width"],"expr":"L0 K1.6 /"}},{"name":"shadow","value":{"kind":"code","src":" this.$root.isDark ? shadow(0, 0, 26, this.hovered || this.hot ? colorWithAlpha(0xbfd8ea, 0x8c) : colorWithAlpha(0xbfd8ea, 0x4d)) : shadow(0, this.hovered || this.hot ? 12 : 6, this.hovered || this.hot ? 30 : 20, this.hovered || this.hot ? colorWithAlpha(0x14202a, 0x40) : colorWithAlpha(0x14202a, 0x2e)) ","deps":["this.$root.isDark","this.hovered","this.hot","this.$root.appearance"]}}],"decls":[{"name":"src","type":"string","def":{"kind":"value","value":""}},{"name":"motion","type":"string","def":{"kind":"value","value":""}},{"name":"live","type":"boolean","def":{"kind":"value","value":true}},{"name":"hot","type":"boolean","def":{"kind":"value","value":false}}],"children":[{"tag":"Image","name":"pic","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"stretches","value":{"kind":"value","value":"both"}},{"name":"source","value":{"kind":"code","src":" classroot.src ","deps":["classroot.src"],"expr":"L0"}},{"name":"visible","value":{"kind":"code","src":" classroot.motion == \"\" || !this.parent.reel.loaded ","deps":["classroot.motion","this.parent.reel.loaded"]}}]},{"tag":"Video","name":"reel","attrs":[{"name":"visible","value":{"kind":"code","src":" classroot.motion != \"\" ","deps":["classroot.motion"]}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"stretches","value":{"kind":"value","value":"both"}},{"name":"loop","value":{"kind":"value","value":true}},{"name":"source","value":{"kind":"code","src":" classroot.motion ","deps":["classroot.motion"],"expr":"L0"}},{"name":"playing","value":{"kind":"code","src":" classroot.live && classroot.motion != \"\" ","deps":["classroot.live","classroot.motion"]}}]},{"tag":"View","name":"edge","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":{"percent":100}}},{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}},{"name":"stroke","value":{"kind":"code","src":" stroke(1, classroot.hovered || classroot.hot ? this.$provided(\"theme\").pointRule : this.$provided(\"theme\").plateEdge) ","deps":["classroot.hovered","classroot.hot","this.$provided(\"theme\")"]}}]}]}},{"name":"SmallLink","base":"Text","body":{"tag":"SmallLink","attrs":[{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":14}},{"name":"fontWeight","value":{"kind":"value","value":"medium"}},{"name":"wrap","value":{"kind":"value","value":false}},{"name":"selectable","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").linkPress : this.hovered ? this.$provided(\"theme\").linkHover : this.$provided(\"theme\").accent ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}}]}},{"name":"MiniMetric","base":"View","body":{"tag":"MiniMetric","attrs":[{"name":"width","value":{"kind":"code","src":" (parent.width - 40) / 3 ","deps":["parent.width"],"expr":"L0 K40 - K3 /"}}],"decls":[{"name":"value","type":"string","def":{"kind":"value","value":""}},{"name":"note","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":4}}],"classSlot":"Layout"},{"tag":"Display","attrs":[{"name":"fontSize","value":{"kind":"value","value":34}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"textFill","value":{"kind":"code","src":" this.$provided(\"theme\").brand ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.value ","deps":["classroot.value"],"expr":"L0"}}]},{"tag":"Body","attrs":[{"name":"fontSize","value":{"kind":"value","value":12}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" classroot.note ","deps":["classroot.note"],"expr":"L0"}}]}]}},{"name":"AppNum","base":"View","body":{"tag":"AppNum","attrs":[{"name":"width","value":{"kind":"value","value":30}},{"name":"visible","value":{"kind":"code","src":" this.n != \"\" ","deps":["this.n"]}},{"name":"height","value":{"kind":"code","src":" this.num.height ","deps":["this.num.height"],"expr":"L0"}}],"decls":[{"name":"n","type":"string","def":{"kind":"value","value":""}},{"name":"hot","type":"boolean","def":{"kind":"value","value":false}}],"children":[{"tag":"View","name":"disc","attrs":[{"name":"width","value":{"kind":"value","value":30}},{"name":"height","value":{"kind":"value","value":30}},{"name":"cornerRadius","value":{"kind":"value","value":15}},{"name":"fill","value":{"kind":"code","src":" classroot.hot || classroot.pressed ? this.$provided(\"theme\").accent : this.$provided(\"theme\").badge ","deps":["classroot.hot","classroot.pressed","this.$provided(\"theme\")"]}},{"name":"y","value":{"kind":"value","value":{"align":"center"}}}]},{"tag":"Display","name":"num","attrs":[{"name":"fontSize","value":{"kind":"value","value":22}},{"name":"wrap","value":{"kind":"value","value":false}},{"name":"selectable","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"text","value":{"kind":"code","src":" classroot.n ","deps":["classroot.n"],"expr":"L0"}}]}]}},{"name":"CardHead","base":"View","body":{"tag":"CardHead","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"code","src":" this.contentHeight ","deps":["this.contentHeight"],"expr":"L0"}},{"name":"link","value":{"kind":"code","src":" this.url ","deps":["this.url"],"expr":"L0"}}],"decls":[{"name":"num","type":"string","def":{"kind":"value","value":""}},{"name":"title","type":"string","def":{"kind":"value","value":""}},{"name":"url","type":"string","def":{"kind":"value","value":""}},{"name":"hot","type":"boolean","def":{"kind":"value","value":false}},{"name":"arrow","type":"boolean","def":{"kind":"value","value":false}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"x"}},{"name":"spacing","value":{"kind":"value","value":10}}],"classSlot":"Layout"},{"tag":"AppNum","name":"seq","attrs":[{"name":"n","value":{"kind":"code","src":" classroot.num ","deps":["classroot.num"],"expr":"L0"}},{"name":"hot","value":{"kind":"code","src":" classroot.hot ","deps":["classroot.hot"],"expr":"L0"}}]},{"tag":"Heading","name":"name","attrs":[{"name":"fontSize","value":{"kind":"value","value":22}},{"name":"wrap","value":{"kind":"value","value":false}},{"name":"selectable","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" classroot.hot ? this.$provided(\"theme\").accent : this.$provided(\"theme\").text ","deps":["classroot.hot","this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.title ","deps":["classroot.title"],"expr":"L0"}}]},{"tag":"Text","name":"arr","attrs":[{"name":"visible","value":{"kind":"code","src":" classroot.arrow ","deps":["classroot.arrow"],"expr":"L0"}},{"name":"y","value":{"kind":"value","value":3}},{"name":"fontSize","value":{"kind":"value","value":16}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"wrap","value":{"kind":"value","value":false}},{"name":"selectable","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" classroot.hot ? this.$provided(\"theme\").accent : this.$provided(\"theme\").dim ","deps":["classroot.hot","this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"→"}}]}]}},{"name":"AppCard","base":"View","body":{"tag":"AppCard","decls":[{"name":"title","type":"string","def":{"kind":"value","value":""}},{"name":"num","type":"string","def":{"kind":"value","value":""}},{"name":"shot","type":"string","def":{"kind":"value","value":""}},{"name":"blurb","type":"string","def":{"kind":"value","value":""}},{"name":"figures","type":"string","def":{"kind":"value","value":""}},{"name":"url","type":"string","def":{"kind":"value","value":""}},{"name":"srcUrl","type":"string","def":{"kind":"value","value":""}},{"name":"titleHot","type":"boolean","def":{"kind":"code","src":" this.head.seq.hovered || this.head.name.hovered || this.head.arr.hovered ","deps":["this.head.seq.hovered","this.head.name.hovered","this.head.arr.hovered"],"expr":"L0 L1 | L0 L0 L1 ? L2 ?"}},{"name":"hot","type":"boolean","def":{"kind":"code","src":" this.frame.hovered || this.titleHot ","deps":["this.frame.hovered","this.titleHot","this.head.seq.hovered","this.head.name.hovered","this.head.arr.hovered"],"expr":"L0 L0 L1 ?"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":16}}],"classSlot":"Layout"},{"tag":"CardHead","name":"head","attrs":[{"name":"arrow","value":{"kind":"value","value":true}},{"name":"num","value":{"kind":"code","src":" classroot.num ","deps":["classroot.num"],"expr":"L0"}},{"name":"title","value":{"kind":"code","src":" classroot.title ","deps":["classroot.title"],"expr":"L0"}},{"name":"url","value":{"kind":"code","src":" classroot.url ","deps":["classroot.url"],"expr":"L0"}},{"name":"hot","value":{"kind":"code","src":" classroot.hot ","deps":["classroot.hot","classroot.frame.hovered","classroot.titleHot","classroot.head.seq.hovered","classroot.head.name.hovered","classroot.head.arr.hovered"],"expr":"L0"}}]},{"tag":"Shot","name":"frame","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"src","value":{"kind":"code","src":" classroot.shot ","deps":["classroot.shot"],"expr":"L0"}},{"name":"link","value":{"kind":"code","src":" classroot.url ","deps":["classroot.url"],"expr":"L0"}},{"name":"accessibilityLabel","value":{"kind":"code","src":" \"Open \" + classroot.title ","deps":["classroot.title"]}},{"name":"hot","value":{"kind":"code","src":" classroot.titleHot ","deps":["classroot.titleHot","classroot.head.seq.hovered","classroot.head.name.hovered","classroot.head.arr.hovered"],"expr":"L0"}}]},{"tag":"View","name":"copy","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":10}}],"classSlot":"Layout"},{"tag":"Body","name":"say","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" classroot.blurb ","deps":["classroot.blurb"],"expr":"L0"}}]},{"tag":"Body","name":"fig","attrs":[{"name":"fontSize","value":{"kind":"value","value":13}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").dim ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.figures ","deps":["classroot.figures"],"expr":"L0"}}]},{"tag":"SmallLink","name":"src","attrs":[{"name":"text","value":{"kind":"value","value":"View & edit source →"}},{"name":"link","value":{"kind":"code","src":" classroot.srcUrl ","deps":["classroot.srcUrl"],"expr":"L0"}}]}]}]}},{"name":"Point","base":"View","body":{"tag":"Point","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(357, parent.width) ","deps":["parent.width"],"expr":"K357 L0 m"}},{"name":"stroke","value":{"kind":"code","src":" [ stroke(2, this.$provided(\"theme\").pointRule), null, null, null ] ","deps":["this.$provided(\"theme\")"]}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":18},{"kind":"number","value":0},{"kind":"number","value":0},{"kind":"number","value":0}]},"route":"corners"}],"decls":[{"name":"ptitle","type":"string","def":{"kind":"value","value":""}},{"name":"body","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":8}}],"classSlot":"Layout"},{"tag":"Heading","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"text","value":{"kind":"code","src":" classroot.ptitle ","deps":["classroot.ptitle"],"expr":"L0"}}]},{"tag":"Body","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" classroot.body ","deps":["classroot.body"],"expr":"L0"}}]}]}},{"name":"Dot","base":"Body","body":{"tag":"Dot","attrs":[{"name":"fontSize","value":{"kind":"value","value":14}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"·"}}]}},{"name":"SiteButton","base":"Button","body":{"tag":"SiteButton","attrs":[{"name":"height","value":{"kind":"value","value":46}},{"name":"cornerRadius","value":{"kind":"value","value":9}},{"name":"fill","value":{"kind":"code","src":" this.primary ? (this.hovered ? this.$provided(\"theme\").accentHovered : this.$provided(\"theme\").accent)\n                     : (this.hovered ? this.$provided(\"theme\").hover         : this.$provided(\"theme\").surface) ","deps":["this.primary","this.hovered","this.$provided(\"theme\")"]}},{"name":"stroke","value":{"kind":"code","src":" this.primary ? null : stroke(1, this.pressed ? this.$provided(\"theme\").accentSecondary : this.$provided(\"theme\").line) ","deps":["this.primary","this.pressed","this.$provided(\"theme\")"]}},{"name":"inkColor","value":{"kind":"code","src":" this.primary ? this.$provided(\"theme\").ink : this.$provided(\"theme\").text ","deps":["this.primary","this.$provided(\"theme\")"]}}],"children":[{"tag":"State","attrs":[{"name":"applied","value":{"kind":"code","src":" classroot.pressed ","deps":["classroot.pressed"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.primary ? this.$provided(\"theme\").accentPressed : this.$provided(\"theme\").press ","deps":["this.primary","this.$provided(\"theme\")"]},"route":"override"}]}]}},{"name":"FootLink","base":"FootLabel","body":{"tag":"FootLink","attrs":[{"name":"selectable","value":{"kind":"value","value":false}},{"name":"textColor","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").accentSecondaryPress : this.hovered ? this.$provided(\"theme\").accentSecondary : this.$provided(\"theme\").muted ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}}]}},{"name":"FootSep","base":"FootLabel","body":{"tag":"FootSep","attrs":[{"name":"text","value":{"kind":"value","value":"·"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"visible","value":{"kind":"code","src":" parent.width >= 620 ","deps":["parent.width"],"expr":"L0 K620 g"}}]}},{"name":"Footer","base":"View","body":{"tag":"Footer","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":0},{"kind":"number","value":0},{"kind":"number","value":36},{"kind":"number","value":0}]},"route":"corners"}],"children":[{"tag":"WrappingLayout","name":"layout","attrs":[{"name":"justify","value":{"kind":"value","value":"center"}},{"name":"spacing","value":{"kind":"code","src":" parent.width >= 620 ? 10 : 18 ","deps":["parent.width"],"expr":"L0 K620 g K10 K18 ?"}},{"name":"rowSpacing","value":{"kind":"value","value":10}}],"classSlot":"Layout"},{"tag":"HTMLText","name":"built","attrs":[{"name":"width","value":{"kind":"value","value":108}},{"name":"fontSize","value":{"kind":"value","value":13}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"bodyColor","value":{"kind":"code","src":" this.$provided(\"theme\").muted ","deps":["this.$provided(\"theme\")"]}},{"name":"textStyles","value":{"kind":"code","src":" { g: { textFill: this.$provided(\"theme\").brand } } ","deps":["this.$provided(\"theme\")"]}},{"name":"html","value":{"kind":"value","value":"Built in <span class='g'>Declare</span>"}}]},{"tag":"FootSep"},{"tag":"FootLink","attrs":[{"name":"link","value":{"kind":"value","value":"apps/homepage/homepage.declare?viewer"}},{"name":"text","value":{"kind":"value","value":"View Source"}}]},{"tag":"FootSep"},{"tag":"FootLink","attrs":[{"name":"link","value":{"kind":"value","value":"apps/docs/docs.declare"}},{"name":"text","value":{"kind":"value","value":"Docs"}}]},{"tag":"FootSep"},{"tag":"FootLink","attrs":[{"name":"link","value":{"kind":"value","value":"https://github.com/davidtemkin/declarelang"}},{"name":"text","value":{"kind":"value","value":"GitHub"}}]},{"tag":"FootSep"},{"tag":"FootLink","name":"lic","attrs":[{"name":"link","value":{"kind":"value","value":"https://github.com/davidtemkin/declarelang/blob/main/LICENSE"}},{"name":"text","value":{"kind":"value","value":"MIT License"}}]},{"tag":"FootSep"},{"tag":"FootLabel","attrs":[{"name":"text","value":{"kind":"value","value":"© 2026 David Temkin"}}]}]}},{"name":"GridBg","base":"View","body":{"tag":"GridBg","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"y","value":{"kind":"code","src":" Math.floor(this.$root.scrollY / 32) * 32 ","deps":["this.$root.scrollY"],"expr":"L0 K32 / f K32 *"}},{"name":"height","value":{"kind":"code","src":" Math.max(0, Math.min(this.$root.height + 32, this.bottom - this.y)) ","deps":["this.$root.height","this.bottom","this.y"],"expr":"K0 L0 K32 + L1 L2 - m M"}}],"decls":[{"name":"bottom","type":"number","def":{"kind":"value","value":0}}],"methods":[{"name":"draw","params":[{"name":"d","type":"DrawContext"}],"body":"d.fillStyle=this.$provided(\"theme\").grid;for(let gx=0;gx<=this.width;gx+=32)d.fillRect(gx,0,1,this.height);for(let gy=0;gy<=this.height;gy+=32)d.fillRect(0,gy,this.width,1)"}]}},{"name":"SectionHead","base":"View","body":{"tag":"SectionHead","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"decls":[{"name":"num","type":"string","def":{"kind":"value","value":""}},{"name":"head","type":"string","def":{"kind":"value","value":""}},{"name":"lead","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":14}}],"classSlot":"Layout"},{"tag":"Marker","attrs":[{"name":"text","value":{"kind":"code","src":" classroot.num ","deps":["classroot.num"],"expr":"L0"}}]},{"tag":"Heading","attrs":[{"name":"fontSize","value":{"kind":"value","value":40}},{"name":"width","value":{"kind":"code","src":" Math.min(900, parent.width) ","deps":["parent.width"],"expr":"K900 L0 m"}},{"name":"text","value":{"kind":"code","src":" classroot.head ","deps":["classroot.head"],"expr":"L0"}}]},{"tag":"Lead","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(760, parent.width) ","deps":["parent.width"],"expr":"K760 L0 m"}},{"name":"text","value":{"kind":"code","src":" classroot.lead ","deps":["classroot.lead"],"expr":"L0"}}]}]}},{"name":"ScrollReveal","base":"View","body":{"tag":"ScrollReveal","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"opacity","value":{"kind":"value","value":0}}],"children":[{"tag":"Spring","name":"reveal","attrs":[{"name":"attribute","value":{"kind":"value","value":"opacity"}},{"name":"stiffness","value":{"kind":"value","value":90}},{"name":"damping","value":{"kind":"value","value":22}},{"name":"epsilon","value":{"kind":"value","value":0.004}},{"name":"to","value":{"kind":"code","src":" this.$root.scrollY + this.$root.height > classroot.parent.y + classroot.y + 90 ? 1 : 0 ","deps":["this.$root.scrollY","this.$root.height","classroot.parent.y","classroot.y"],"expr":"L0 L1 + L2 L3 + K90 + > K1 K0 ?"}}]}]}},{"name":"DocView","base":"View","body":{"tag":"DocView","attrs":[{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}}],"decls":[{"name":"src","type":"DataSource"},{"name":"eyebrow","type":"string","def":{"kind":"value","value":""}},{"name":"waiting","type":"string","def":{"kind":"value","value":""}},{"name":"trouble","type":"string","def":{"kind":"value","value":""}}],"children":[{"tag":"GridBg","name":"grid","attrs":[{"name":"bottom","value":{"kind":"code","src":" parent.body.y + parent.body.height ","deps":["parent.body.y","parent.body.height"],"expr":"L0 L1 +"}}]},{"tag":"View","name":"body","attrs":[{"name":"y","value":{"kind":"value","value":56}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"selectable","value":{"kind":"value","value":true},"route":"provision"}],"children":[{"tag":"View","name":"col","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(720, this.$root.width - 48) ","deps":["this.$root.width"],"expr":"K720 L0 K48 - m"}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":52}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":0},{"kind":"number","value":0},{"kind":"number","value":62},{"kind":"number","value":0}]},"route":"corners"}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":22}}],"classSlot":"Layout"},{"tag":"Marker","attrs":[{"name":"text","value":{"kind":"code","src":" classroot.eyebrow ","deps":["classroot.eyebrow"],"expr":"L0"}}]},{"tag":"Text","name":"wait","attrs":[{"name":"visible","value":{"kind":"code","src":" classroot.src.loading "}},{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.waiting ","deps":["classroot.waiting"],"expr":"L0"}}]},{"tag":"Text","name":"oops","attrs":[{"name":"visible","value":{"kind":"code","src":" classroot.src.failed "}},{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"wrap","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" classroot.trouble + (classroot.src.error || \"\") "}}]},{"tag":"Markdown","name":"doc","attrs":[{"name":"visible","value":{"kind":"code","src":" classroot.src.loaded "}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"lineHeight","value":{"kind":"value","value":1.35}},{"name":"bodyColor","value":{"kind":"code","src":" this.$provided(\"theme\").lead ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" classroot.src.value || \"\" "}}]},{"tag":"Footer","attrs":[{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":86},{"kind":"number","value":0},{"kind":"number","value":36},{"kind":"number","value":0}]},"route":"corners"}]}]}]}]}}],"shapes":[{"name":"AppFigures","fields":[{"name":"total","array":false,"optional":true,"type":"number"},{"name":"code","array":false,"optional":true,"type":"number"},{"name":"comment","array":false,"optional":true,"type":"number"},{"name":"wireGzip","array":false,"optional":true,"type":"number"}]}],"themes":[{"name":"Faces","body":{"tag":"Faces","attrs":[{"name":"helvetica","value":{"kind":"value","value":["Helvetica Neue","Helvetica","Arial","sans-serif"]}}]}},{"name":"Ink","body":{"tag":"Ink","attrs":[{"name":"text","value":{"kind":"value","value":15199986}},{"name":"lead","value":{"kind":"value","value":10334396}},{"name":"muted","value":{"kind":"value","value":9083814}},{"name":"dim","value":{"kind":"value","value":6978697}},{"name":"faint","value":{"kind":"value","value":5596787}},{"name":"accent","value":{"kind":"value","value":5017087}},{"name":"accentHovered","value":{"kind":"value","value":6529279}},{"name":"accentPressed","value":{"kind":"value","value":4029408}},{"name":"linkHover","value":{"kind":"value","value":8368383}},{"name":"linkPress","value":{"kind":"value","value":11718655}},{"name":"accentSecondary","value":{"kind":"value","value":3662024}},{"name":"accentSecondaryPress","value":{"kind":"value","value":10220260}},{"name":"brand","value":{"kind":"value","value":{"angle":90,"stops":[{"offset":null,"color":5017087},{"offset":null,"color":3662024}]}}},{"name":"badge","value":{"kind":"value","value":16777215}},{"name":"ink","value":{"kind":"value","value":726043}},{"name":"panel","value":{"kind":"value","value":792096}},{"name":"press","value":{"kind":"value","value":792866}},{"name":"surfaceDeep","value":{"kind":"value","value":858402}},{"name":"surface","value":{"kind":"value","value":1056296}},{"name":"hover","value":{"kind":"value","value":1452598}},{"name":"pillHover","value":{"kind":"value","value":1846585}},{"name":"pillPress","value":{"kind":"value","value":2373706}},{"name":"plateEdge","value":{"kind":"value","value":8589934382}},{"name":"line","value":{"kind":"value","value":2506060}},{"name":"panelLine","value":{"kind":"value","value":1978684}},{"name":"revertLine","value":{"kind":"value","value":2507087}},{"name":"pointRule","value":{"kind":"value","value":3431300}},{"name":"grid","value":{"kind":"value","value":1518136}},{"name":"errBg","value":{"kind":"value","value":2757912}},{"name":"errBar","value":{"kind":"value","value":14701150}},{"name":"errText","value":{"kind":"value","value":15900838}},{"name":"stage","value":{"kind":"value","value":1382946}},{"name":"scrim","value":{"kind":"value","value":4480834483}},{"name":"shade","value":{"kind":"value","value":4294967398}}]}},{"name":"Paper","body":{"tag":"Paper","attrs":[{"name":"text","value":{"kind":"value","value":1318954}},{"name":"lead","value":{"kind":"value","value":3820119}},{"name":"muted","value":{"kind":"value","value":5925752}},{"name":"dim","value":{"kind":"value","value":7504783}},{"name":"faint","value":{"kind":"value","value":9083300}},{"name":"accent","value":{"kind":"value","value":3107806}},{"name":"accentHovered","value":{"kind":"value","value":2054340}},{"name":"accentPressed","value":{"kind":"value","value":1723046}},{"name":"linkHover","value":{"kind":"value","value":2054340}},{"name":"linkPress","value":{"kind":"value","value":1523596}},{"name":"accentSecondary","value":{"kind":"value","value":1024910}},{"name":"accentSecondaryPress","value":{"kind":"value","value":753519}},{"name":"brand","value":{"kind":"value","value":{"angle":90,"stops":[{"offset":null,"color":3107806},{"offset":null,"color":1024910}]}}},{"name":"badge","value":{"kind":"value","value":1318954}},{"name":"ink","value":{"kind":"value","value":16185852}},{"name":"panel","value":{"kind":"value","value":16777215}},{"name":"press","value":{"kind":"value","value":15331058}},{"name":"surfaceDeep","value":{"kind":"value","value":15659765}},{"name":"surface","value":{"kind":"value","value":16777215}},{"name":"hover","value":{"kind":"value","value":15660023}},{"name":"pillHover","value":{"kind":"value","value":15265523}},{"name":"pillPress","value":{"kind":"value","value":14476523}},{"name":"plateEdge","value":{"kind":"value","value":4632619566}},{"name":"line","value":{"kind":"value","value":14081765}},{"name":"panelLine","value":{"kind":"value","value":14804972}},{"name":"revertLine","value":{"kind":"value","value":13687264}},{"name":"pointRule","value":{"kind":"value","value":10335958}},{"name":"grid","value":{"kind":"value","value":14017525}},{"name":"errBg","value":{"kind":"value","value":16575982}},{"name":"errBar","value":{"kind":"value","value":14238543}},{"name":"errText","value":{"kind":"value","value":10758708}},{"name":"stage","value":{"kind":"value","value":15593973}},{"name":"scrim","value":{"kind":"value","value":4480834406}},{"name":"shade","value":{"kind":"value","value":4294967347}}]}}],"uses":["OverlayStrata"],"ship":{"islands":[],"files":[],"compiler":true,"inspector":false},"scripts":[{"src":" function hpLines(total, code, comment) {\n    if (total == null)\n        return \"\";\n    return total + \" lines — \" + code + \" code, \" + comment + \" comment\";\n}\nfunction hpWire(wire) {\n    return wire == null ? \"\" : \" · \" + Math.round(wire / 1024) + \" KB over the wire\";\n} /*$b*/ return { hpLines, hpWire }; \n\n","compiled":true}],"root":{"tag":"App","attrs":[{"name":"edges","value":{"kind":"value","value":"cover"}},{"name":"revealInset","value":{"kind":"value","value":80}},{"name":"appName","value":{"kind":"code","src":" \"Declare — \" + this.$root.tagline ","deps":["this.$root.tagline"]}},{"name":"theme","value":{"kind":"code","src":" this.$root.isDark ? ({ ...SanFranciscoDark, ...Ink }) : ({ ...SanFrancisco, ...Paper }) ","deps":["this.$root.isDark","this.$root.appearance"]},"route":"provision"},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}},{"name":"fontFamily","value":{"kind":"code","src":" this.$root.uiFace ","deps":["this.$root.uiFace"],"expr":"L0"},"route":"provision"},{"name":"fontSize","value":{"kind":"value","value":17},"route":"provision"},{"name":"fontWeight","value":{"kind":"value","value":"normal"},"route":"provision"},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").text ","deps":["this.$provided(\"theme\")"]},"route":"provision"},{"name":"linkUnderline","value":{"kind":"value","value":false},"route":"provision"},{"name":"location","value":{"kind":"value","value":"home"}}],"decls":[{"name":"tagline","type":"string","def":{"kind":"value","value":"a UI language for you and your AI"}},{"name":"appearance","type":"string","def":{"kind":"value","value":"dark"}},{"name":"isDark","type":"boolean","def":{"kind":"code","src":" this.$root.appearance == \"dark\" ","deps":["this.$root.appearance"]}},{"name":"liveCard","type":"string","def":{"kind":"value","value":""}},{"name":"liveSource","type":"string","def":{"kind":"value","value":""}},{"name":"navItems","type":"array","def":{"kind":"code","src":" [\n        ({ label: \"Try it now\", link: \"#getstarted\", children: [] }),\n        ({ label: \"Why Declare\",     link: \"#why\",        children: [] }),\n        ({ label: \"FAQ\",             link: \"#faq\",        children: [] }),\n        ({ label: \"Architecture\",    link: \"#architecture\", children: [] }),\n        // \"#apps\" is a BARE ANCHOR (§01's section carries `anchor = \"apps\"`):\n        // the runtime derives its destination and lands on it — no section\n        // machinery here, and the reference survives the section moving.\n        ({ label: \"Apps\", link: \"#apps\", children: [\n            ({ label: \"Calendar\", link: \"apps/calendar/calendar.declare\", children: [] }),\n            ({ label: \"Desktop\",  link: \"apps/desktop/desktop.declare\",  children: [] }),\n            ({ label: \"Tracker\",  link: \"apps/tracker/tracker.declare\",  children: [] }),\n            ({ label: \"Weather\",  link: \"apps/weather/weather.declare\",  children: [] }),\n            ({ label: \"Market Map\", link: \"apps/marketmap/marketmap.declare\", children: [] }),\n            ({ label: \"Asteroids\", link: \"apps/games/asteroids/asteroids.declare\", children: [] }),\n            ] }),\n        ({ label: \"Docs\",     link: \"apps/docs/docs.declare\", children: [] }),\n        // last, and the only item that leaves the site — an off-site link placed\n        // mid-row would split the applications from the Docs they belong beside\n        ({ label: \"GitHub\",   link: \"https://github.com/davidtemkin/declarelang\", children: [] }),\n        ] "}},{"name":"menuOpen","type":"boolean","def":{"kind":"value","value":false}},{"name":"appsOpen","type":"boolean","def":{"kind":"value","value":false}},{"name":"appsX","type":"number","def":{"kind":"value","value":0}},{"name":"appsY","type":"number","def":{"kind":"value","value":0}},{"name":"measure","type":"number","def":{"kind":"value","value":1120}},{"name":"gutter","type":"number","def":{"kind":"code","src":" Math.max(24, (this.$root.width - this.$root.measure) / 2) ","deps":["this.$root.width","this.$root.measure"],"expr":"K24 L0 L1 - K2 / M"}},{"name":"heroFont","type":"number","def":{"kind":"code","src":" this.$root.width < 700 ? 44 : 60 ","deps":["this.$root.width"],"expr":"L0 K700 < K44 K60 ?"}},{"name":"headWeight","type":"number","def":{"kind":"value","value":600}},{"name":"headTrack","type":"number","def":{"kind":"value","value":-0.02}},{"name":"uiFace","type":"string[]","def":{"kind":"code","src":" Faces.helvetica "}}],"methods":[{"name":"tabOrder","body":"return[this.header,...this.tabDefault().filter(v=>v!=this.header)]"}],"children":[{"tag":"DataSource","name":"lang","attrs":[{"name":"url","value":{"kind":"value","value":"../../docs/declare.md"}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"DataSource","name":"stats","attrs":[{"name":"url","value":{"kind":"value","value":"stats.json"}},{"name":"autoFetch","value":{"kind":"value","value":true}},{"name":"schema","value":{"kind":"schema","shape":[{"name":"calendar","array":false,"optional":true,"type":null,"ref":"AppFigures","fields":[{"name":"total","array":false,"optional":true,"type":"number"},{"name":"code","array":false,"optional":true,"type":"number"},{"name":"comment","array":false,"optional":true,"type":"number"},{"name":"wireGzip","array":false,"optional":true,"type":"number"}]},{"name":"tracker","array":false,"optional":true,"type":null,"ref":"AppFigures","fields":[{"name":"total","array":false,"optional":true,"type":"number"},{"name":"code","array":false,"optional":true,"type":"number"},{"name":"comment","array":false,"optional":true,"type":"number"},{"name":"wireGzip","array":false,"optional":true,"type":"number"}]},{"name":"desktop","array":false,"optional":true,"type":null,"ref":"AppFigures","fields":[{"name":"total","array":false,"optional":true,"type":"number"},{"name":"code","array":false,"optional":true,"type":"number"},{"name":"comment","array":false,"optional":true,"type":"number"},{"name":"wireGzip","array":false,"optional":true,"type":"number"}]}]},"slotType":{"kind":"dataschema"}}]},{"tag":"DataSource","name":"guide","attrs":[{"name":"url","value":{"kind":"value","value":"getstarted.md"}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"DataSource","name":"faq","attrs":[{"name":"url","value":{"kind":"value","value":"declare-faq.md"}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"DataSource","name":"why","attrs":[{"name":"url","value":{"kind":"value","value":"why.md"}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"DataSource","name":"story","attrs":[{"name":"url","value":{"kind":"value","value":"why-story.md"}},{"name":"format","value":{"kind":"value","value":"text"}},{"name":"autoFetch","value":{"kind":"value","value":true}}]},{"tag":"Dataset","name":"navSource","attrs":[{"name":"contents","value":{"kind":"code","src":" { items: this.$root.navItems } ","deps":["this.$root.navItems"]}}]},{"tag":"Dataset","name":"appsSource","attrs":[{"name":"contents","value":{"kind":"code","src":" { items: (this.$root.navItems.find((i) => i.label == \"Apps\") || ({ children: [] })).children } "}}]},{"tag":"View","name":"scroller","attrs":[{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"home\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"home"}}],"children":[{"tag":"GridBg","name":"grid","attrs":[{"name":"bottom","value":{"kind":"code","src":" parent.page.y + parent.page.height ","deps":["parent.page.y","parent.page.height"],"expr":"L0 L1 +"}}]},{"tag":"View","name":"page","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(this.$root.measure, this.$root.width - 48) ","deps":["this.$root.measure","this.$root.width"],"expr":"L0 L1 K48 - m"}},{"name":"selectable","value":{"kind":"value","value":true},"route":"provision"},{"name":"x","value":{"kind":"code","src":" this.$root.gutter ","deps":["this.$root.gutter","this.$root.width","this.$root.measure"],"expr":"L0"}},{"name":"y","value":{"kind":"value","value":96}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"code","src":" parent.width < 660 ? 72 : 112 ","deps":["parent.width"],"expr":"L0 K660 < K72 K112 ?"}}],"classSlot":"Layout"},{"tag":"View","name":"hero","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":24}}],"classSlot":"Layout"},{"tag":"View","name":"top","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":26}}],"classSlot":"Layout"},{"tag":"View","name":"headline","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":2}}],"classSlot":"Layout"},{"tag":"Heading","attrs":[{"name":"fontSize","value":{"kind":"code","src":" this.$root.heroFont ","deps":["this.$root.heroFont","this.$root.width"],"expr":"L0"}},{"name":"textFill","value":{"kind":"code","src":" this.$provided(\"theme\").brand ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"Declare"}}]},{"tag":"Heading","attrs":[{"name":"fontSize","value":{"kind":"code","src":" this.$root.heroFont ","deps":["this.$root.heroFont","this.$root.width"],"expr":"L0"}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"code","src":" \"is \" + this.$root.tagline + \".\" ","deps":["this.$root.tagline"]}}]}]},{"tag":"View","name":"paras","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":12}}],"classSlot":"Layout"},{"tag":"HTMLText","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(680, parent.width) ","deps":["parent.width"],"expr":"K680 L0 m"}},{"name":"fontSize","value":{"kind":"value","value":19}},{"name":"lineHeight","value":{"kind":"value","value":1.2}},{"name":"bodyColor","value":{"kind":"code","src":" this.$provided(\"theme\").lead ","deps":["this.$provided(\"theme\")"]}},{"name":"html","value":{"kind":"value","value":"Just as SQL is a domain-specific language for database queries, <span class='g'>Declare</span> is a DSL for user interfaces. Its whole surface fits in your head — and inside an LLM’s context window."}}]},{"tag":"Lead","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(680, parent.width) ","deps":["parent.width"],"expr":"K680 L0 m"}},{"name":"fontWeight","value":{"kind":"value","value":"semibold"}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").text ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"This page is written in it. By an LLM."}}]}]}]},{"tag":"View","name":"learn","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 600, flow: \"row\", gap: 32 }), ({ from: 0, flow: \"stack\", gap: 8 })] "}}],"classSlot":"Layout"},{"tag":"SmallLink","name":"why","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"text","value":{"kind":"value","value":"Why a new language, now? →"}},{"name":"link","value":{"kind":"value","value":"#why"}}]},{"tag":"SmallLink","name":"onefile","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"text","value":{"kind":"value","value":"The whole language, in one file →"}},{"name":"link","value":{"kind":"value","value":"#language"}}]}]}]},{"tag":"ScrollReveal","name":"apps","attrs":[{"name":"anchor","value":{"kind":"value","value":"apps"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":72}}],"classSlot":"Layout"},{"tag":"SectionHead","attrs":[{"name":"num","value":{"kind":"value","value":"01"}},{"name":"head","value":{"kind":"value","value":"Three applications, written in Declare."}},{"name":"lead","value":{"kind":"value","value":"Complete programs — open one, read it end to end, and edit it live in the browser you're using."}}]},{"tag":"View","name":"cal","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"decls":[{"name":"hot","type":"boolean","def":{"kind":"code","src":" this.plate.hovered || this.tell.head.name.hovered || this.tell.head.seq.hovered ","deps":["this.plate.hovered","this.tell.head.name.hovered","this.tell.head.seq.hovered"],"expr":"L0 L1 | L0 L0 L1 ? L2 ?"}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 860, flow: \"row\", gap: 40, share: ({ tell: 50, plate: 50 }) }),\n                                                         ({ from: 0, flow: \"stack\", gap: 26, share: ({ tell: 100, plate: 100 }) })] "}}],"classSlot":"Layout"},{"tag":"View","name":"tell","children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":18}}],"classSlot":"Layout"},{"tag":"CardHead","name":"head","attrs":[{"name":"num","value":{"kind":"value","value":"1"}},{"name":"title","value":{"kind":"value","value":"Declare Calendar"}},{"name":"url","value":{"kind":"value","value":"apps/calendar/calendar.declare"}},{"name":"hot","value":{"kind":"code","src":" parent.parent.hot ","deps":["parent.parent.hot","parent.parent.plate.hovered","parent.parent.tell.head.name.hovered","parent.parent.tell.head.seq.hovered"],"expr":"L0"}}]},{"tag":"Lead","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"value","value":"It’s the kind of experience you’ll see in the best native apps — a view doesn’t switch so much as become the next one, where motion carries meaning, and everything is fast and interruptible."}}]},{"tag":"Lead","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"text","value":{"kind":"value","value":"It runs on real data: open an event, drag it to another day, and it’s moved."}}]},{"tag":"View","name":"stat","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"code","src":" this.contentHeight ","deps":["this.contentHeight"],"expr":"L0"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"x"}},{"name":"spacing","value":{"kind":"value","value":20}}],"classSlot":"Layout"},{"tag":"MiniMetric","attrs":[{"name":"value","value":{"kind":"code","src":" \"\" + (this.$root.stats.value?.calendar?.code ?? \"—\") ","deps":["this.$root.stats.value.calendar.code"]}},{"name":"note","value":{"kind":"code","src":" \"lines of code, plus \"\n                                    + (this.$root.stats.value?.calendar?.comment ?? \"—\")\n                                    + \" of comments — four views, zoom, drag and edit\" ","deps":["this.$root.stats.value.calendar.comment"]}}]},{"tag":"MiniMetric","attrs":[{"name":"value","value":{"kind":"code","src":" this.$root.stats.value?.calendar?.wireGzip ? Math.round(this.$root.stats.value.calendar.wireGzip / 1024) + \" KB\" : \"—\" ","deps":["this.$root.stats.value.calendar.wireGzip"]}},{"name":"note","value":{"kind":"value","value":"over the wire, gzipped — app (structure, logic, styling) and runtime"}}]},{"tag":"MiniMetric","attrs":[{"name":"value","value":{"kind":"value","value":"0"}},{"name":"note","value":{"kind":"value","value":"lines written by hand — an LLM wrote it"}}]}]},{"tag":"View","name":"actions","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 420, flow: \"row\", gap: 18, align: \"center\" }), ({ from: 0, flow: \"stack\", gap: 14 })] "}}],"classSlot":"Layout"},{"tag":"SiteButton","attrs":[{"name":"width","value":{"kind":"value","value":240}},{"name":"primary","value":{"kind":"value","value":true}},{"name":"label","value":{"kind":"value","value":"Run Declare Calendar →"}},{"name":"link","value":{"kind":"value","value":"apps/calendar/calendar.declare"}}]},{"tag":"SmallLink","attrs":[{"name":"text","value":{"kind":"value","value":"View & edit source →"}},{"name":"link","value":{"kind":"value","value":"apps/calendar/calendar.declare?viewer"}}]}]}]},{"tag":"Shot","name":"plate","attrs":[{"name":"src","value":{"kind":"code","src":" this.$root.isDark ? \"shots/calendar-dark.webp\" : \"shots/calendar-light.webp\" ","deps":["this.$root.isDark","this.$root.appearance"]}},{"name":"link","value":{"kind":"value","value":"apps/calendar/calendar.declare"}},{"name":"accessibilityLabel","value":{"kind":"value","value":"Open Declare Calendar"}},{"name":"motion","value":{"kind":"code","src":" this.$root.isDark ? \"shots/video/calendar-dark.mp4\" : \"shots/video/calendar-light.mp4\" ","deps":["this.$root.isDark","this.$root.appearance"]}},{"name":"live","value":{"kind":"code","src":" parent.parent.opacity > 0.9 ","deps":["parent.parent.opacity"],"expr":"L0 K0.9 >"}},{"name":"hot","value":{"kind":"code","src":" this.parent.tell.head.name.hovered ","deps":["this.parent.tell.head.name.hovered"],"expr":"L0"}}]}]},{"tag":"View","name":"pair","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 720, flow: \"row\", gap: 56, share: ({ trk: 50, dsk: 50 }) }),\n                                                         ({ from: 0, flow: \"stack\", gap: 56, share: ({ trk: 100, dsk: 100 }) })] "}}],"classSlot":"Layout"},{"tag":"AppCard","name":"trk","attrs":[{"name":"title","value":{"kind":"value","value":"Declare Tracker"}},{"name":"num","value":{"kind":"value","value":"2"}},{"name":"shot","value":{"kind":"code","src":" this.$root.isDark ? \"shots/tracker-dark.webp\" : \"shots/tracker-light.webp\" ","deps":["this.$root.isDark","this.$root.appearance"]}},{"name":"url","value":{"kind":"value","value":"apps/tracker/tracker.declare"}},{"name":"srcUrl","value":{"kind":"value","value":"apps/tracker/tracker.declare?viewer"}},{"name":"blurb","value":{"kind":"value","value":"1,000,000 issues · search as you type · edit in place, with undo · not one line of virtualization code"}},{"name":"figures","value":{"kind":"code","src":" hpLines(this.$root.stats.value?.tracker?.total, this.$root.stats.value?.tracker?.code, this.$root.stats.value?.tracker?.comment)\n                              + hpWire(this.$root.stats.value?.tracker?.wireGzip) + \", before its data · no dependencies\" "}}]},{"tag":"AppCard","name":"dsk","attrs":[{"name":"title","value":{"kind":"value","value":"Declare Desktop"}},{"name":"num","value":{"kind":"value","value":"3"}},{"name":"shot","value":{"kind":"code","src":" this.$root.isDark ? \"shots/desktop-dark.webp\" : \"shots/desktop-light.webp\" ","deps":["this.$root.isDark","this.$root.appearance"]}},{"name":"url","value":{"kind":"value","value":"apps/desktop/desktop.declare"}},{"name":"srcUrl","value":{"kind":"value","value":"apps/desktop/desktop.declare?viewer"}},{"name":"blurb","value":{"kind":"value","value":"Windows that drag, resize, layer, and minimize into live dock thumbnails · a magnifying dock · menus that follow focus · the calendar running inside one of them"}},{"name":"figures","value":{"kind":"code","src":" hpLines(this.$root.stats.value?.desktop?.total, this.$root.stats.value?.desktop?.code, this.$root.stats.value?.desktop?.comment)\n                              + hpWire(this.$root.stats.value?.desktop?.wireGzip) + \" · every pixel drawn from shapes, no image assets\" "}}]}]}]},{"tag":"DemoSection","name":"s3","attrs":[{"name":"num","value":{"kind":"value","value":"02"}},{"name":"head","value":{"kind":"value","value":"Declare it. It runs. It stays true."}},{"name":"lead","value":{"kind":"value","value":"A constraint isn’t a callback you remember to re-run — it’s a standing relationship the runtime keeps true, re-derived the moment its inputs change."}},{"name":"caption","value":{"kind":"value","value":"Three constraints track one value: the big number, the bar’s width, and its color. Click to bump v — all three update together, and the color crosses cool to warm at the halfway mark."}},{"name":"demo","value":{"kind":"value","value":"demos/reactivity"}}]},{"tag":"DemoSection","name":"s4","attrs":[{"name":"num","value":{"kind":"value","value":"03"}},{"name":"head","value":{"kind":"value","value":"Declare the shape, not the loop."}},{"name":"lead","value":{"kind":"value","value":"A view can be built from data instead of laid out by hand — the shape written once, the data deciding how many there are and what each one says."}},{"name":"caption","value":{"kind":"value","value":"One Gauge, instanced once per row of the data. Edit a number or add a row and the list rebuilds itself — no loop, no keys. And Gauge is auto-included: no import, no definition, just use it."}},{"name":"demo","value":{"kind":"value","value":"demos/from-data"}}]},{"tag":"DemoSection","name":"s5","attrs":[{"name":"num","value":{"kind":"value","value":"04"}},{"name":"head","value":{"kind":"value","value":"Motion you declare, not schedule."}},{"name":"lead","value":{"kind":"value","value":"You say where a thing belongs; a Spring finds the path there and settles by physics — motion you declare, not a timeline you sequence."}},{"name":"caption","value":{"kind":"value","value":"Click to toggle the ball’s target between two positions. The Spring follows and settles by physics — no timeline, no frames driven by hand."}},{"name":"demo","value":{"kind":"value","value":"demos/spring"}}]},{"tag":"ScrollReveal","name":"loop","children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":36}}],"classSlot":"Layout"},{"tag":"View","name":"head","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":20}}],"classSlot":"Layout"},{"tag":"BannerHead","attrs":[{"name":"fontSize","value":{"kind":"code","src":" this.$root.width < 700 ? 24 : 30 ","deps":["this.$root.width"],"expr":"L0 K700 < K24 K30 ?"}},{"name":"measure","value":{"kind":"value","value":880}},{"name":"text","value":{"kind":"value","value":"Your AI can write the code. Can it tell when it’s wrong?"}}]},{"tag":"BannerLead","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"measure","value":{"kind":"value","value":620}},{"name":"text","value":{"kind":"value","value":"In Declare, yes. A small language gets it started; these four tools let it catch its mistakes, fix them, and finish."}}]}]},{"tag":"View","name":"beats","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(880, parent.width) ","deps":["parent.width"],"expr":"K880 L0 m"}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":32}}],"classSlot":"Layout"},{"tag":"View","name":"first","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 760, flow: \"row\", gap: 56, share: ({ a: 50, b: 50 }) }),\n                                                             ({ from: 0, flow: \"stack\", gap: 32, share: ({ a: 100, b: 100 }) })] "}}],"classSlot":"Layout"},{"tag":"View","name":"a","children":[{"tag":"Point","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"ptitle","value":{"kind":"value","value":"Start with context"}},{"name":"body","value":{"kind":"value","value":"One installable skill: the language, the library, the conventions, the working loop — nothing to reconstruct from a repository. And declare-help answers any name or error code on demand."}}]}]},{"tag":"View","name":"b","children":[{"tag":"Point","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"ptitle","value":{"kind":"value","value":"Correct, don’t guess"}},{"name":"body","value":{"kind":"value","value":"Every diagnostic names the broken rule and the valid rewrite. Try it: change textColor to color in the first panel above and read what comes back."}}]}]}]},{"tag":"View","name":"second","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"plan","value":{"kind":"code","src":" [({ from: 760, flow: \"row\", gap: 56, share: ({ a: 50, b: 50 }) }),\n                                                             ({ from: 0, flow: \"stack\", gap: 32, share: ({ a: 100, b: 100 }) })] "}}],"classSlot":"Layout"},{"tag":"View","name":"a","children":[{"tag":"Point","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"ptitle","value":{"kind":"value","value":"Question the result"}},{"name":"body","value":{"kind":"value","value":"The Inspector can tell you or an agent why a live value is what it is, what it depends on, and what happens if you change it — live, in the running program, not guessed from source."}}]}]},{"tag":"View","name":"b","children":[{"tag":"Point","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"ptitle","value":{"kind":"value","value":"Prove the change"}},{"name":"body","value":{"kind":"value","value":"A formal six-rung ladder, from parse to pixels, is how an app is shown to be correct. Your AI climbs it one rung at a time, and every rung reports what it proved — and what it cannot see."}}]}]}]}]},{"tag":"BannerLead","name":"close","attrs":[{"name":"fontSize","value":{"kind":"value","value":17}},{"name":"measure","value":{"kind":"value","value":760}},{"name":"text","value":{"kind":"value","value":"The calendar above was built this way: a person directed, an AI wrote every line, and the compiler kept it honest."}}]}]},{"tag":"ScrollReveal","name":"closer","children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":30}}],"classSlot":"Layout"},{"tag":"BandRule","name":"ruleTop"},{"tag":"BannerHead","attrs":[{"name":"fontSize","value":{"kind":"code","src":" this.$root.width < 700 ? 26 : 38 ","deps":["this.$root.width"],"expr":"L0 K700 < K26 K38 ?"}},{"name":"measure","value":{"kind":"value","value":900}},{"name":"text","value":{"kind":"value","value":"Small enough to know. Strict enough to trust."}}]},{"tag":"BandRule","name":"ruleBot"}]},{"tag":"View","name":"cta","attrs":[{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"value","value":0}}],"children":[{"tag":"SiteButton","attrs":[{"name":"width","value":{"kind":"value","value":260}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":-24}},{"name":"label","value":{"kind":"value","value":"Try it now →"}},{"name":"link","value":{"kind":"value","value":"#getstarted"}}]}]},{"tag":"Footer","name":"footer"}]}]},{"tag":"View","name":"whyView","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"why\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"why"}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}}],"children":[{"tag":"GridBg","name":"grid","attrs":[{"name":"bottom","value":{"kind":"code","src":" parent.body.y + parent.body.height ","deps":["parent.body.y","parent.body.height"],"expr":"L0 L1 +"}}]},{"tag":"View","name":"body","attrs":[{"name":"y","value":{"kind":"value","value":56}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"selectable","value":{"kind":"value","value":true},"route":"provision"}],"children":[{"tag":"View","name":"col","attrs":[{"name":"width","value":{"kind":"code","src":" Math.min(720, this.$root.width - 48) ","deps":["this.$root.width"],"expr":"K720 L0 K48 - m"}},{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":52}},{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":0},{"kind":"number","value":0},{"kind":"number","value":62},{"kind":"number","value":0}]},"route":"corners"}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":22}}],"classSlot":"Layout"},{"tag":"Marker","attrs":[{"name":"text","value":{"kind":"value","value":"WHY DECLARE"}}]},{"tag":"Markdown","name":"essay","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.why.loaded ","deps":["this.$root.why.loaded"],"expr":"L0"}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"lineHeight","value":{"kind":"value","value":1.35}},{"name":"bodyColor","value":{"kind":"code","src":" this.$provided(\"theme\").lead ","deps":["this.$provided(\"theme\")"]}},{"name":"linkColor","value":{"kind":"code","src":" this.$provided(\"theme\").accent ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" this.$root.why.value || \"\" ","deps":["this.$root.why.value"]}}]},{"tag":"Text","name":"wait","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.why.loading ","deps":["this.$root.why.loading"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"Loading…"}}]},{"tag":"Text","name":"oops","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.why.failed ","deps":["this.$root.why.failed"],"expr":"L0"}},{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"wrap","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").faint ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" \"The essay did not load — \" + (this.$root.why.error || \"\") ","deps":["this.$root.why.error"]}}]},{"tag":"View","name":"breath","attrs":[{"name":"width","value":{"kind":"value","value":8}},{"name":"height","value":{"kind":"value","value":18}}]},{"tag":"Divider","name":"rule","attrs":[{"name":"anchor","value":{"kind":"value","value":"story"}}]},{"tag":"Marker","attrs":[{"name":"text","value":{"kind":"value","value":"WHERE THIS CAME FROM"}}]},{"tag":"Markdown","name":"story","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.story.loaded ","deps":["this.$root.story.loaded"],"expr":"L0"}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"fontSize","value":{"kind":"value","value":16}},{"name":"lineHeight","value":{"kind":"value","value":1.35}},{"name":"bodyColor","value":{"kind":"code","src":" this.$provided(\"theme\").muted ","deps":["this.$provided(\"theme\")"]}},{"name":"linkColor","value":{"kind":"code","src":" this.$provided(\"theme\").accent ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"code","src":" this.$root.story.value || \"\" ","deps":["this.$root.story.value"]}}]},{"tag":"Text","name":"sig","attrs":[{"name":"fontSize","value":{"kind":"value","value":16}},{"name":"italic","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"textColor","value":{"kind":"code","src":" this.$provided(\"theme\").dim ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"— David Temkin"}}]},{"tag":"Footer","attrs":[{"name":"padding","value":{"kind":"list","items":[{"kind":"number","value":86},{"kind":"number","value":0},{"kind":"number","value":36},{"kind":"number","value":0}]},"route":"corners"}]}]}]}]},{"tag":"DocView","name":"languageView","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"language\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"language"}},{"name":"src","value":{"kind":"code","src":" this.$root.lang ","deps":["this.$root.lang"],"expr":"L0"},"route":"class"},{"name":"eyebrow","value":{"kind":"value","value":"THE LANGUAGE"}},{"name":"waiting","value":{"kind":"value","value":"Loading the language…"}},{"name":"trouble","value":{"kind":"value","value":"The language file did not load — "}}]},{"tag":"DocView","name":"getStartedView","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"getstarted\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"getstarted"}},{"name":"src","value":{"kind":"code","src":" this.$root.guide ","deps":["this.$root.guide"],"expr":"L0"},"route":"class"},{"name":"eyebrow","value":{"kind":"value","value":"TRY IT NOW"}},{"name":"waiting","value":{"kind":"value","value":"Loading the guide…"}},{"name":"trouble","value":{"kind":"value","value":"The guide did not load — "}}]},{"tag":"DocView","name":"faqView","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"faq\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"faq"}},{"name":"src","value":{"kind":"code","src":" this.$root.faq ","deps":["this.$root.faq"],"expr":"L0"},"route":"class"},{"name":"eyebrow","value":{"kind":"value","value":"FAQ"}},{"name":"waiting","value":{"kind":"value","value":"Loading…"}},{"name":"trouble","value":{"kind":"value","value":"The FAQ did not load — "}}]},{"tag":"View","name":"architectureView","attrs":[{"name":"visible","value":{"kind":"code","src":" this.$root.destinationOf(this.$root.location) == \"architecture\" ","deps":["this.$root.location"]}},{"name":"shows","value":{"kind":"value","value":"architecture"}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").ink ","deps":["this.$provided(\"theme\")"]}}],"children":[{"tag":"GridBg","name":"grid","attrs":[{"name":"bottom","value":{"kind":"code","src":" parent.island.y + parent.island.height ","deps":["parent.island.y","parent.island.height"],"expr":"L0 L1 +"}}]},{"tag":"AppIsland","name":"island","attrs":[{"name":"y","value":{"kind":"code","src":" 56 + this.$root.safeTop ","deps":["this.$root.safeTop"],"expr":"K56 L0 +"}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"program","value":{"kind":"code","src":" this.$root.location == \"architecture\" ? \"../architecture/architecture\" : \"\" ","deps":["this.$root.location"]}},{"name":"focusable","value":{"kind":"value","value":true}},{"name":"provides","value":{"kind":"list","items":[{"kind":"string","value":"hosted"},{"kind":"string","value":"dark"},{"kind":"string","value":"headWeight"}]},"route":"list"},{"name":"height","value":{"kind":"code","src":" Math.max(this.exposed(\"docH\", 0), this.$root.height - 56 - this.$root.safeTop) ","deps":["this.exposed(\"docH\")","this.$root.height","this.$root.safeTop"]}}],"decls":[{"name":"hosted","type":"boolean","def":{"kind":"value","value":true}},{"name":"dark","type":"boolean","def":{"kind":"code","src":" this.$root.isDark ","deps":["this.$root.isDark","this.$root.appearance"],"expr":"L0"}},{"name":"headWeight","type":"number","def":{"kind":"code","src":" this.$root.headWeight ","deps":["this.$root.headWeight"],"expr":"L0"}}],"methods":[{"name":"onPointerDown","body":"Focus.focus(this)"}]}]},{"tag":"View","name":"header","attrs":[{"name":"ignoreScroll","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"height","value":{"kind":"code","src":" 56 + this.$root.safeTop ","deps":["this.$root.safeTop"],"expr":"K56 L0 +"}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").surface ","deps":["this.$provided(\"theme\")"]}},{"name":"stroke","value":{"kind":"code","src":" [null, null, stroke(1, this.$provided(\"theme\").line), null] ","deps":["this.$provided(\"theme\")"]}}],"children":[{"tag":"View","name":"bar","attrs":[{"name":"x","value":{"kind":"code","src":" this.$root.gutter ","deps":["this.$root.gutter","this.$root.width","this.$root.measure"],"expr":"L0"}},{"name":"y","value":{"kind":"code","src":" this.$root.safeTop ","deps":["this.$root.safeTop"],"expr":"L0"}},{"name":"height","value":{"kind":"value","value":56}},{"name":"width","value":{"kind":"code","src":" this.$root.width - this.$root.gutter * 2 ","deps":["this.$root.width","this.$root.gutter","this.$root.measure"],"expr":"L0 L1 K2 * -"}}],"children":[{"tag":"ResponsiveLayout","name":"layout","attrs":[{"name":"gap","value":{"kind":"value","value":0}},{"name":"align","value":{"kind":"value","value":"center"}},{"name":"plan","value":{"kind":"code","src":" [\n                ({ from: 740, flow: \"row\", share: ({ kebab: 0 }), offset: ({ brand: 1 }) }),\n                ({ from: 0,   flow: \"row\", share: ({ nav: 0 }),   offset: ({ brand: 1 }) })] "}}],"classSlot":"Layout"},{"tag":"View","name":"brand","attrs":[{"name":"height","value":{"kind":"value","value":22}},{"name":"link","value":{"kind":"value","value":"#home"}}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"x"}},{"name":"spacing","value":{"kind":"value","value":0}}],"classSlot":"Layout"},{"tag":"Display","attrs":[{"name":"fontSize","value":{"kind":"value","value":15}},{"name":"textFill","value":{"kind":"code","src":" this.$provided(\"theme\").brand ","deps":["this.$provided(\"theme\")"]}},{"name":"text","value":{"kind":"value","value":"Declare"}}]}]},{"tag":"Spacer"},{"tag":"View","name":"nav","attrs":[{"name":"datapath","value":{"kind":"code","src":" this.$root.navSource.value ","deps":["this.$root.navSource.value"],"expr":"L0"},"route":"cursor"}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"x"}},{"name":"spacing","value":{"kind":"value","value":2}}],"classSlot":"Layout"},{"tag":"NavLink","attrs":[{"name":"datapath","value":{"kind":"path","path":"items","many":true},"route":"cursor"},{"name":"label","value":{"kind":"code","src":" this.$data([\"label\"]) ","deps":[":label"],"expr":"L0"}},{"name":"dropdown","value":{"kind":"code","src":" this.$data([\"children\",\"length\"]) > 0 ","deps":[":children.length"]}},{"name":"link","value":{"kind":"code","src":" this.$data([\"children\",\"length\"]) > 0 ? \"\" : this.$data([\"link\"]) ","deps":[":children.length",":link"]}}]}]},{"tag":"Control","name":"modeBtn","attrs":[{"name":"width","value":{"kind":"value","value":34}},{"name":"height","value":{"kind":"value","value":33}},{"name":"cornerRadius","value":{"kind":"value","value":8}},{"name":"accessibilityRole","value":{"kind":"value","value":"switch"}},{"name":"accessibilityLabel","value":{"kind":"value","value":"Dark appearance"}},{"name":"accessibilityChecked","value":{"kind":"code","src":" this.$root.isDark ","deps":["this.$root.isDark","this.$root.appearance"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").pillPress : this.hovered ? this.$provided(\"theme\").pillHover : null ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}},{"name":"tooltipLabel","value":{"kind":"code","src":" this.$root.isDark ? \"Switch to light\" : \"Switch to dark\" ","deps":["this.$root.isDark","this.$root.appearance"]}}],"methods":[{"name":"press","body":"this.$root.appearance=this.$root.isDark?\"light\":\"dark\""}],"children":[{"tag":"SunIcon","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":{"align":"center"}}},{"name":"iconSize","value":{"kind":"value","value":16}},{"name":"visible","value":{"kind":"code","src":" !this.$root.isDark ","deps":["this.$root.isDark","this.$root.appearance"],"expr":"L0 n"}},{"name":"ink","value":{"kind":"code","src":" parent.hovered ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["parent.hovered","this.$provided(\"theme\")"]}}]},{"tag":"MoonIcon","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":{"align":"center"}}},{"name":"iconSize","value":{"kind":"value","value":16}},{"name":"visible","value":{"kind":"code","src":" this.$root.isDark ","deps":["this.$root.isDark","this.$root.appearance"],"expr":"L0"}},{"name":"ink","value":{"kind":"code","src":" parent.hovered ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["parent.hovered","this.$provided(\"theme\")"]}}]}]},{"tag":"Control","name":"kebab","attrs":[{"name":"width","value":{"kind":"value","value":34}},{"name":"height","value":{"kind":"value","value":33}},{"name":"cornerRadius","value":{"kind":"value","value":8}},{"name":"accessibilityLabel","value":{"kind":"value","value":"Menu"}},{"name":"accessibilityExpanded","value":{"kind":"code","src":" this.$root.menuOpen ","deps":["this.$root.menuOpen"],"expr":"L0"}},{"name":"fill","value":{"kind":"code","src":" this.pressed ? this.$provided(\"theme\").pillPress : this.hovered ? this.$provided(\"theme\").pillHover : null ","deps":["this.pressed","this.$provided(\"theme\")","this.hovered"]}}],"methods":[{"name":"press","body":"this.$root.menuOpen=!this.$root.menuOpen"}],"children":[{"tag":"View","name":"d1","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":8}},{"name":"width","value":{"kind":"value","value":3}},{"name":"height","value":{"kind":"value","value":3}},{"name":"cornerRadius","value":{"kind":"value","value":1.5}},{"name":"fill","value":{"kind":"code","src":" parent.hovered || parent.pressed ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["parent.hovered","parent.pressed","this.$provided(\"theme\")"]}}]},{"tag":"View","name":"d2","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":15}},{"name":"width","value":{"kind":"value","value":3}},{"name":"height","value":{"kind":"value","value":3}},{"name":"cornerRadius","value":{"kind":"value","value":1.5}},{"name":"fill","value":{"kind":"code","src":" parent.hovered || parent.pressed ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["parent.hovered","parent.pressed","this.$provided(\"theme\")"]}}]},{"tag":"View","name":"d3","attrs":[{"name":"x","value":{"kind":"value","value":{"align":"center"}}},{"name":"y","value":{"kind":"value","value":22}},{"name":"width","value":{"kind":"value","value":3}},{"name":"height","value":{"kind":"value","value":3}},{"name":"cornerRadius","value":{"kind":"value","value":1.5}},{"name":"fill","value":{"kind":"code","src":" parent.hovered || parent.pressed ? this.$provided(\"theme\").text : this.$provided(\"theme\").muted ","deps":["parent.hovered","parent.pressed","this.$provided(\"theme\")"]}}]}]}]}]},{"tag":"View","name":"pointerDot","attrs":[{"name":"ignoreScroll","value":{"kind":"value","value":true}},{"name":"width","value":{"kind":"value","value":10}},{"name":"height","value":{"kind":"value","value":10}},{"name":"cornerRadius","value":{"kind":"value","value":5}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").accentSecondary ","deps":["this.$provided(\"theme\")"]}},{"name":"opacity","value":{"kind":"value","value":0.9}},{"name":"shadow","value":{"kind":"code","src":" shadow(0, 0, 12, this.$provided(\"theme\").accentSecondary) ","deps":["this.$provided(\"theme\")"]}},{"name":"pointerEvents","value":{"kind":"value","value":"none"}},{"name":"visible","value":{"kind":"code","src":" this.$root.pointerHovering && !this.$root.pointerOverText ","deps":["this.$root.pointerHovering","this.$root.pointerOverText"],"expr":"L0 L1 n L0 ?"}}],"children":[{"tag":"Spring","name":"followX","attrs":[{"name":"attribute","value":{"kind":"value","value":"x"}},{"name":"to","value":{"kind":"code","src":" this.$root.pointerX - 5 ","deps":["this.$root.pointerX"],"expr":"L0 K5 -"}},{"name":"stiffness","value":{"kind":"value","value":120}},{"name":"damping","value":{"kind":"value","value":14}},{"name":"mass","value":{"kind":"value","value":0.6}},{"name":"epsilon","value":{"kind":"value","value":0.05}}]},{"tag":"Spring","name":"followY","attrs":[{"name":"attribute","value":{"kind":"value","value":"y"}},{"name":"to","value":{"kind":"code","src":" this.$root.pointerY - 5 ","deps":["this.$root.pointerY"],"expr":"L0 K5 -"}},{"name":"stiffness","value":{"kind":"value","value":120}},{"name":"damping","value":{"kind":"value","value":14}},{"name":"mass","value":{"kind":"value","value":0.6}},{"name":"epsilon","value":{"kind":"value","value":0.05}}]}]},{"tag":"Floating","name":"navSheet","attrs":[{"name":"shown","value":{"kind":"code","src":" this.$root.menuOpen && this.$root.header.bar.kebab.visible ","deps":["this.$root.menuOpen","this.$root.header.bar.kebab.visible"],"expr":"L0 L1 L0 ?"}},{"name":"pressPolicy","value":{"kind":"value","value":"dismiss"}},{"name":"takesFocus","value":{"kind":"value","value":true}},{"name":"focusScope","value":{"kind":"value","value":"modal"}},{"name":"width","value":{"kind":"code","src":" this.$root.width ","deps":["this.$root.width"],"expr":"L0"}},{"name":"height","value":{"kind":"code","src":" this.$root.height ","deps":["this.$root.height"],"expr":"L0"}}],"methods":[{"name":"input","params":[{"name":"open","type":"boolean"}],"body":"this.$root.menuOpen=open"}],"children":[{"tag":"View","name":"scrim","attrs":[{"name":"y","value":{"kind":"code","src":" 56 + this.$root.safeTop ","deps":["this.$root.safeTop"],"expr":"K56 L0 +"}},{"name":"width","value":{"kind":"value","value":{"percent":100}}},{"name":"height","value":{"kind":"code","src":" parent.height - 56 - this.$root.safeTop ","deps":["parent.height","this.$root.safeTop"],"expr":"L0 K56 - L1 -"}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").scrim ","deps":["this.$provided(\"theme\")"]}}],"methods":[{"name":"onClick","body":"this.$root.menuOpen=false"}]},{"tag":"View","name":"panel","attrs":[{"name":"x","value":{"kind":"code","src":" this.$root.width - this.$root.gutter - this.width ","deps":["this.$root.width","this.$root.gutter","this.width","this.$root.measure"],"expr":"L0 L1 - L2 -"}},{"name":"y","value":{"kind":"code","src":" 62 + this.$root.safeTop ","deps":["this.$root.safeTop"],"expr":"K62 L0 +"}},{"name":"width","value":{"kind":"value","value":236}},{"name":"height","value":{"kind":"code","src":" Math.min(this.contentHeight, this.$root.height - this.y - this.$root.safeBottom - 12) ","deps":["this.contentHeight","this.$root.height","this.y","this.$root.safeBottom"],"expr":"L0 L1 L2 - L3 - K12 - m"}},{"name":"scrolls","value":{"kind":"value","value":"y"}},{"name":"clip","value":{"kind":"value","value":true}},{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"padding","value":{"kind":"value","value":6}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").surface ","deps":["this.$provided(\"theme\")"]}},{"name":"shadow","value":{"kind":"code","src":" shadow(0, 12, 40, this.$provided(\"theme\").shade) ","deps":["this.$provided(\"theme\")"]}},{"name":"datapath","value":{"kind":"code","src":" this.$root.navSource.value ","deps":["this.$root.navSource.value"],"expr":"L0"},"route":"cursor"}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":0}}],"classSlot":"Layout"},{"tag":"MobileNavGroup","attrs":[{"name":"datapath","value":{"kind":"path","path":"items","many":true},"route":"cursor"}]}]}]},{"tag":"Floating","name":"appsMenu","attrs":[{"name":"shown","value":{"kind":"code","src":" this.$root.appsOpen && !this.$root.header.bar.kebab.visible ","deps":["this.$root.appsOpen","this.$root.header.bar.kebab.visible"],"expr":"L0 L1 n L0 ?"}},{"name":"pressPolicy","value":{"kind":"value","value":"dismiss"}},{"name":"takesFocus","value":{"kind":"value","value":true}},{"name":"focusScope","value":{"kind":"value","value":"modal"}}],"methods":[{"name":"input","params":[{"name":"open","type":"boolean"}],"body":"this.$root.appsOpen=open"}],"children":[{"tag":"View","name":"panel","attrs":[{"name":"x","value":{"kind":"code","src":" this.$root.appsX ","deps":["this.$root.appsX"],"expr":"L0"}},{"name":"y","value":{"kind":"code","src":" this.$root.appsY ","deps":["this.$root.appsY"],"expr":"L0"}},{"name":"width","value":{"kind":"value","value":190}},{"name":"cornerRadius","value":{"kind":"value","value":12}},{"name":"padding","value":{"kind":"value","value":6}},{"name":"fill","value":{"kind":"code","src":" this.$provided(\"theme\").surface ","deps":["this.$provided(\"theme\")"]}},{"name":"shadow","value":{"kind":"code","src":" shadow(0, 12, 40, this.$provided(\"theme\").shade) ","deps":["this.$provided(\"theme\")"]}},{"name":"datapath","value":{"kind":"code","src":" this.$root.appsSource.value ","deps":["this.$root.appsSource.value"],"expr":"L0"},"route":"cursor"}],"children":[{"tag":"SimpleLayout","name":"layout","attrs":[{"name":"axis","value":{"kind":"value","value":"y"}},{"name":"spacing","value":{"kind":"value","value":0}}],"classSlot":"Layout"},{"tag":"MobileNavRow","attrs":[{"name":"datapath","value":{"kind":"path","path":"items","many":true},"route":"cursor"},{"name":"label","value":{"kind":"code","src":" this.$data([\"label\"]) ","deps":[":label"],"expr":"L0"}},{"name":"link","value":{"kind":"code","src":" this.$data([\"link\"]) ","deps":[":link"],"expr":"L0"}}]}]}]},{"tag":"FocusRing"},{"tag":"Tooltip"}]},"permitted":["DataSource","Dataset","View","GridBg","SimpleLayout","Heading","HTMLText","Lead","ResponsiveLayout","SmallLink","ScrollReveal","SectionHead","CardHead","MiniMetric","SiteButton","Shot","AppCard","DemoSection","BannerHead","BannerLead","Point","BandRule","Footer","Marker","Markdown","Text","Divider","DocView","AppIsland","Display","Spacer","NavLink","Control","SunIcon","MoonIcon","Spring","Floating","MobileNavGroup","MobileNavRow","FocusRing","Tooltip","TextInput","CodeField","Body","SourcePanel","PreviewFrame","Layout","DOMIsland","Icon","Node","Keys","IconHost","TextLabel","Focus","Tooltips","Eyebrow","Image","Video","AppNum","Button","State","FootLabel","WrappingLayout","FootSep","FootLink","App","OverlayStrata"],"permittedIslands":null,"routed":true,"trusted":true},"closure":{"entries":[{"id":"apps/homepage/homepage.declare","kind":"file","v":{"hash":"04556c99a0ec2f3a"}},{"id":"apps/homepage/fonts.declare","kind":"file","v":{"hash":"c4b6115ab4b19694"}},{"id":"apps/homepage/live.declare","kind":"file","v":{"hash":"b9cebaccaea91374"}},{"id":"library/autoincludes.json","kind":"file","v":{"hash":"f7ad154e8af41b6d"}},{"id":"library/simplelayout.declare","kind":"file","v":{"hash":"6bc47c01134fcdd1"}},{"id":"library/responsive.declare","kind":"file","v":{"hash":"2125fa8a35b8d92a"}},{"id":"library/divider.declare","kind":"file","v":{"hash":"864210f5c6d5f4be"}},{"id":"library/appisland.declare","kind":"file","v":{"hash":"e23c16bf5776633e"}},{"id":"library/spacer.declare","kind":"file","v":{"hash":"1d1d4b2248876572"}},{"id":"library/control.declare","kind":"file","v":{"hash":"bd3fb76032f01b2e"}},{"id":"library/icons/appearance.declare","kind":"file","v":{"hash":"b71c48c351356057"}},{"id":"library/icons/icon.declare","kind":"file","v":{"hash":"cb76cb41ae60d532"}},{"id":"library/floating.declare","kind":"file","v":{"hash":"993cf06e3e9f9811"}},{"id":"library/button.declare","kind":"file","v":{"hash":"2c1ce0cb41c053ba"}},{"id":"library/textlabel.declare","kind":"file","v":{"hash":"ae02909298f2fed3"}},{"id":"library/wrappinglayout.declare","kind":"file","v":{"hash":"47562b1ed7cee774"}},{"id":"library/overlaystrata.declare","kind":"file","v":{"hash":"34512735aacdc4bf"}},{"id":"library/focusring.declare","kind":"file","v":{"hash":"adfc0e522f0e89bd"}},{"id":"library/tooltip.declare","kind":"file","v":{"hash":"7c9a4e6d9f04ca78"}}],"props":{"render":"dom"}}}
