···11{ template
22engine: thelanding.page
3344-# Welcome
44+<progress-carousel
5566-<progress-carousel
66+The Landing Page is a magical sheet of paper that when unfolded becomes a deeper mystery-- as something razor thin, shields an entire reality.
77+88+<braid-mail
99+host: http://braid.1998.social:7465
710811<stay-tuned
9121013<best-buy
11141212-The Landing Page is a secret door to exclusive experiences.
1313-1515+<multiplayer-lobby
+1-1
client/public/module.js
···11import statebus, { state } from 'statebus'
22-import { innerHTML } from 'npm:diffhtml@1.0.0-beta.30'
22+import { innerHTML } from 'diffhtml'
3344const logs = {}
55
+39
client/public/modules/best-buy.js
···11+import module from '@silly/tag'
22+import { showModal } from './plan98-modal.js'
33+44+const $ = module('best-buy')
55+66+$.draw(() => `
77+ <div class="pitch">
88+ The Best Deals Are Only Available At The Source
99+ </div>
1010+ <rainbow-action>
1111+ <button data-tag="wizard-journey">
1212+ Buy Here
1313+ </button>
1414+ </rainbow-action>
1515+`)
1616+1717+$.when('click', '[data-tag]', (event) => {
1818+ const { tag } = event.target.dataset
1919+ showModal(`<${tag}></${tag}>`)
2020+})
2121+2222+$.style(`
2323+ & {
2424+ text-align: center;
2525+ padding: 3rem;
2626+ font-size: 2rem;
2727+ display: block;
2828+ background: lemonchiffon;
2929+ }
3030+3131+ & .pitch {
3232+ margin: auto;
3333+ max-width: 25ch;
3434+ }
3535+3636+ & rainbow-action {
3737+ margin-top: 2rem;
3838+ }
3939+`)
···11+import module from '@silly/tag'
22+33+const $ = module('mission-statement')
44+55+$.draw(() => {
66+ return `
77+ Things are beginning to take form...
88+ `
99+})
···55555656*/
57575858-self.state ||= {}
5959-6058// normal time converts lines 1:1 from hype to hypertext
6159const NORMAL_TIME = Symbol('n-time')
6260// property are able to be stored
···6563const ACTOR_TIME = Symbol('a-time')
66646765export function render(script) {
6666+ const state = {}
6867 // what do we embed
6968 // as actors are worn their attributes may become modified
7069 const actors = state.actors = {}
···137136 // clearn our compiled hyper media scene
138137 const clean = validated(scene)
139138140140- return template(clean)
139139+ return template(state, clean)
141140142141 // just process our runes, yes magic, just straight forward level 1 magic
143142 function normalTime(line) {
···248247 'thelanding.page': spa
249248}
250249251251-function template(content){
250250+function template(state, content){
252251 if(!state.template) return content
253252254253 const T = templates[state.template.engine]