Skip to content

Commit cceb6e9

Browse files
author
blik
committed
prune empty path nodes
flatten layout namespace
1 parent 1c75c71 commit cceb6e9

File tree

4 files changed

+65
-70
lines changed

4 files changed

+65
-70
lines changed

Blik_2023_fragment.js

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
import {note,wait,observe,provide,collect,slip,infer,either,each,pass,tether,buffer,differ,compose,revert,record,combine,whether,swap,compound,something,string,basic,functor,defined,simple,exit,route,drop,crop,same,major,binary,is,has,not,numeric,array,pdflike,when,expect,generator,clock,heritage} from "./Blik_2023_inference.js";
33
import {search,merge,prune,extract} from "./Blik_2023_search.js";
44
import {serialize,proceduralize,mime,data} from "./Blik_2023_meta.js";
5-
import layout,{color} from "./Blik_2023_layout.js";
5+
import * as layout from "./Blik_2023_layout.js";
6+
import {color} from "./Blik_2023_layout.js";
67
// var [jss,...plugins]=await resolve(["","nested","extend","global"].map(plugin=>
78
// ["./Isonen_2014_jss",plugin].filter(Boolean).join("_")+".js")).then(modules=>
89
// modules.map(module=>module.default||module));
@@ -241,7 +242,7 @@
241242
});
242243
};
243244

244-
export function reference(title,source,layout,elements={audio:["mp3"],video:["mp4","webm"],img:["png","jpg","svg","gif"]})
245+
export function reference(title,source,layout,elements={audio:["mp3"],video:["mp4","webm"],img:["png","jpg","jpeg","svg","gif"]})
245246
{let url=/^http/.test(source)?source:[window.location.origin,source.replace(/^\/*/,"")].join("/");
246247
let [extension]=/[^\.]+$/.exec(new URL(url).pathname)||[];
247248
let tag=layout||extension&&Object.keys(elements).find(key=>
@@ -408,7 +409,7 @@
408409
,"&>svg":{width:"100% !important",height:"auto !important"}
409410
,"&>svg tspan":{fill:"var(--text,#dbd1b4)"}
410411
,"&>svg image":{opacity:0.3}
411-
,"&>svg path":{fill:"rgba(33,33,33,0.533)"}
412+
//,"&>svg path":{fill:"rgba(33,33,33,0.533)"}
412413
}
413414
}
414415
}
@@ -569,12 +570,12 @@
569570

570571
export var deselect=compose(when(string),/[^\w]/g,"_","replace");
571572

572-
export async function error(request)
573+
export async function error(path,request)
573574
{when(is(Error))(this);
574-
if(!request.headers?.referer?.endsWith(request.url))
575-
return this;
575+
// if(!request.headers?.referer?.endsWith(request.url))
576+
// return this;
576577
let style=await css({body:{background:"black",color:color.red},"div#frame":layout.middle});
577-
let report=compose.call({center:{"#text":this.stack}},"Error","/svg/worm/document",[],[style],hypertext,document);
578+
let report=compose.call({center:{"#text":this.stack}},"Error","/svg/animal/worm/document",[],[style],hypertext,document);
578579
let body=report.outerHTML;
579580
report.innerHTML="";
580581
return {body,status:500,type:mime("html")};
@@ -796,21 +797,6 @@
796797
compose(combine(compose("source",fetch,digest),infer()),transform,"over",this,insert)(subject);
797798
}}
798799
,".reference":{click(){expand.call(this,...arguments);}}
799-
,"#extend":
800-
{keydown(event)
801-
{event.stopPropagation();
802-
event.preventDefault();
803-
let {target,keyCode}=event;
804-
let {enter}=keyboard(keyCode);
805-
if(!enter)return;
806-
let value=target.textContent;
807-
if(Array.from(value).every(is(".")))
808-
return this.dispatchEvent(new Event("submit",{bubbles:true}));
809-
let form=this.closest("form");
810-
let method=form.getAttribute("method");
811-
fragment.form.call(form,{[method]:annotate({[value]:""},labels)});
812-
target.textContent="...";
813-
}}
814800
,".spell":{click(){spell(this);}}
815801
,".field":{click({target}){form.call(target.closest("form"),{extend:{key:"",value:""}})}}
816802
,".carousel":
@@ -964,6 +950,7 @@
964950
let exclusion=
965951
[["motion","orientation","orientationabsolute"].map(sensor=>"device"+sensor)
966952
,["start","run","end","cancel"].map(state=>"transition"+state)
953+
,"unhandledrejection"
967954
].flat().map(event=>"on"+event);
968955
let inclusion=["focusout","focusin","message"].map(event=>"on"+event);
969956
let lead=["/","./"].find(lead=>module.startsWith(lead));

Blik_2023_host.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,11 @@
7373
{let {query,pathname}=await resolve("url","parse",request.url,true);
7474
let method=request.method.toLowerCase();
7575
let methodic=pathname==="/"+method;
76-
if(methodic)
77-
// root path can't be routed methodically due to necessary leading slash.
78-
pathname="";
79-
let filter=infer("filter",(step,index)=>(index||step)&&step!==".");
80-
let map={get:infer("map",step=>step||"interface")}[!methodic&&method];
81-
return compose(filter,map)(decodeURIComponent(pathname).split("/"));
76+
return compose
77+
("/","split",infer("slice",1)
78+
,infer("filter",(step,index,{length})=>(index+1/length<1?step:true)&&step!==".")
79+
,{get:infer("map",step=>step||"interface")}[!methodic&&method]
80+
)(decodeURIComponent(methodic?"":pathname));
8281
};
8382

8483
export async function submit(request,body,response)

Blik_2023_interface.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,7 @@
936936
export var cookies=buffer(compose(when(string),/ *; */,"split",provide,each(entry=>entry.split("=")),collect,Object.fromEntries),swap({}));
937937
export var query=compose(when(string),whether(compose("/","startsWith"),path=>window.location.origin+path,infer()),collect,slip(URL),Reflect.construct,"searchParams","entries",Array.from,Object.fromEntries);
938938
export function path(request)
939-
{let address=!string(request)?request.headers.origin+request.url:request;
939+
{let address=!string(request)?"http://"+request.headers.host+request.url:request;
940940
return new URL(address).pathname.replace(/^\/*|\/*$/g,"");
941941
};
942942

Blik_2023_layout.js

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@
5454
,dotdot:{"@keyframes dotdot":{"0%":{width:"0em"},"33%":{width:".6em"},"66%":{width:"1em"},"100%":{width:"1.6em"}}}
5555
};
5656

57-
let material={"box-shadow":"black 0px 0px 10px","&:hover":{"box-shadow":"black 0px 0px 50px"},margin:"1em"};
58-
let inset={"box-shadow":"black 0px 0px 10px inset","&:hover":{"box-shadow":"black 0px 0px 5px inset"}};
59-
let glow={white:{filter:"url(#shadow_white)"},amber:{filter:"url(#shadow_amber)"}};
57+
export var material={"box-shadow":"black 0px 0px 10px","&:hover":{"box-shadow":"black 0px 0px 50px"},margin:"1em"};
58+
export var inset={"box-shadow":"black 0px 0px 10px inset","&:hover":{"box-shadow":"black 0px 0px 5px inset"}};
59+
export var glow={white:{filter:"url(#shadow_white)"},amber:{filter:"url(#shadow_amber)"}};
6060

61-
var text=
61+
export var text=
6262
{glow:{"text-shadow":"white 0px 0px 2px,white 0px 0px 2px",transition:"all 0.3s"}
6363
};
6464

65-
let table=
65+
export var table=
6666
{"font-size":"inherit",transition:"all 1s"
6767
,"&#dashboard tr":{"vertical-align":"top"}
6868
,"& tr input[type=checkbox]":
@@ -87,7 +87,7 @@
8787
}
8888
};
8989

90-
var message=
90+
export var message=
9191
{display:"table-row","text-align":"left"
9292
,"&>span":
9393
{display:"table-cell","vertical-align":"top"
@@ -109,7 +109,18 @@
109109
}
110110
};
111111

112-
var vignette=
112+
export var list=
113+
{display:"block","margin-left":"-5em","max-height":"50vh","min-width":"150px"
114+
,"&>li":
115+
{...animation.fade.out,opacity:0,animation:"fadeout 6s","padding-left":0,"min-height":"4em","white-space":"normal"
116+
,...message
117+
}
118+
,"&>li:not(:last-of-type)":{animation:"fadeout 2s"}
119+
,"&>span":{position:"fixed",bottom:"1.5em",left:"5.5em",color:"black"}
120+
,"&:hover>li":{opacity:1,animation:"fadein 1s"}
121+
};
122+
123+
export var vignette=
113124
{position:"relative",width:"fit-content",margin:"auto"
114125
,"&>img":{width:"100%"}
115126
,"&:before":
@@ -144,7 +155,7 @@
144155
{"a,span[role='link']":{"text-decoration":"none",position:"relative",color:"#0097a7"}
145156
};
146157

147-
var form=
158+
export var form=
148159
{dropup:
149160
{"& ul":
150161
{display:"none","z-index":"2",padding:"0px","margin-bottom":"0px","text-align":"left","pointer-events":"none","list-style-type":"none"
@@ -199,37 +210,35 @@
199210

200211
merge(form.label,{"&>span[role=textbox]":form.input});
201212

202-
export default
203-
{middle,material,inset,glow,form,link,table,vignette,text,message
204-
,theme:
213+
export var theme=
205214
{":root":Object.fromEntries(Object.entries(
206215
{abyss:"#111111",isle:"#303030",text:"#dbd1b4",note:"#7a7564",highlight:"rgb(230,238,156)"
207216
,font:"averia",hand:"ranger",form:"3.5em",size:"14px",align:"inherit",transition:"1s"
208217
}).map(([key,value])=>["--"+key,value]))
209218
,"::-webkit-scrollbar":{display:"none"}
210-
}
211-
,body:
219+
};
220+
export var body=
212221
{margin:0,"text-align":"center",overflow:"hidden","font-family":"var(--font)"
213222
,"font-size":"var(--size)",color:"var(--text)","background-color":"var(--abyss)"
214223
,transition:"all var(--transition)"
215-
}
216-
,a:{"text-decoration":"none",position:"relative",color:"#0097a7"}
217-
,blockquote:
224+
};
225+
export var a={"text-decoration":"none",position:"relative",color:"#0097a7"};
226+
export var blockquote=
218227
{"&>p:last-child":{"text-transform":"italic","padding-left":"20%","&:before":{content:'"- "',"white-space":"pre"},"&:after":{content:'""'}}
219228
,...Object.fromEntries(["before","after"].map(side=>["&>p:"+side,{content:'"\\""'}]))
220-
}
221-
,row:{display:"inline-block",margin:"0 1em",height:"100%","list-style":"none"}
222-
,column:{display:"block",margin:"1em 0","list-style":"none"}
223-
,shelf:{position:"absolute",bottom:0,left:0,right:0,"text-align":"left"}
224-
,radio:
229+
};
230+
export var row={display:"inline-block",margin:"0 1em",height:"100%","list-style":"none"};
231+
export var column={display:"block",margin:"1em 0","list-style":"none"};
232+
export var shelf={position:"absolute",bottom:0,left:0,right:0,"text-align":"left"};
233+
export var radio=
225234
{"border-radius":"100%","background-color":"black",transform:"scale(0.8)"
226235
,"&[checked=true]":
227236
{display:"none"
228237
,"&[for=talk]~label[for=source]":{display:"none"}
229238
,"&[for=module]~label[for=message]":{display:"none"}
230239
}
231-
}
232-
,frame:
240+
};
241+
export var frame=
233242
{"white-space":"pre-wrap","overflow-wrap":"break-word",overflow:"scroll"
234243
,width:"100vw",height:"100vh","text-align":"var(--align)"
235244
,"& h2[onclick],.entry":{cursor:"pointer","&:hover":{transform:"scale(1.2)"}}
@@ -240,7 +249,7 @@
240249
// ,"&:not([id]).entry":{position:"relative",display:"block",margin:"auto auto 30px",height:"auto",cursor:"pointer"}
241250
// }
242251
}
243-
,media:
252+
export var media=
244253
{overflow:"visible",position:"relative","max-width":"100vw","max-height":"100vh"
245254
,"& g.node":
246255
{"& text":{"pointer-events":"none"}
@@ -256,7 +265,7 @@
256265
}
257266
}
258267
}
259-
,card:
268+
export var card=
260269
{".card":
261270
{...material,margin:"1em",position:"relative",display:"inline-block",transition:"all 0.5s","text-align":"center",cursor:"pointer","border-radius":"50%"
262271
,"&:hover":{...material["&:hover"],"&>span.post":{top:-15},"&>svg.trash":{display:"block"}}
@@ -269,13 +278,13 @@
269278
,"&.record":{padding:"10px","border-radius":"10px","background-color":"var(--isle)"}
270279
}
271280
}
272-
,multimedialink:{span:{"&[onclick]":{color:"rgb(255,171,0)"}}}
273-
,wheel:
281+
export var multimedialink={span:{"&[onclick]":{color:"rgb(255,171,0)"}}};
282+
export var wheel=
274283
{"@keyframes dash":{"0%":{"stroke-dashoffset":187},"50%":{"stroke-dashoffset":1,transform:"rotate(135deg)"},"100%":{"stroke-dashoffset":187,transform:"rotate(450deg)"}}
275284
,"svg.wheel":{height:"1em","& circle":{"stroke-dasharray":187,"stroke-dashoffset":0,"transform-origin":"center center",animation:"1.5s ease-in-out 0s infinite normal none running dash, 6s ease-in-out 0s infinite normal none running colors"}}
276285
//,"svg.wheel":{"& circle":{"stroke-dasharray":187,"stroke-dashoffset":0,"transform-origin":"center center",animation:"1.5s ease-in-out 0s infinite normal none running dash, 6s ease-in-out 0s infinite normal none running colors"}}
277286
}
278-
,goo:
287+
export var goo=
279288
{"@keyframes waltz":Object.fromEntries(Array(5).fill(70).map((offset,index,{length})=>
280289
[index/(length-1)*100+"%"
281290
,{transform:"translate("+(index%2?offset:0)*(index<2?-1:1)+"%)"}
@@ -293,8 +302,8 @@
293302
,"&+circle":{animation:"6s infinite cubic-bezier(0, 0.5, 1, 0.5) fill,1.5s infinite cubic-bezier(0.75, 0, 0, 1) scaler"}
294303
}
295304
}
296-
}
297-
,carousel:
305+
};
306+
export var carousel=
298307
{...vignette
299308
,margin:"auto"
300309
,"&>div.reel":
@@ -308,13 +317,13 @@
308317
,"&:hover":{"background-color":"var(--isle)","&>svg>*":{filter:"url(#shadow_white)"}}
309318
}
310319
}
311-
,audio:
320+
export var audio=
312321
{display:"inline",margin:"auto",height:"0.6em",outline:"none",background:"none"
313322
,"&::-webkit-media-controls-panel":{"background-color":"rgb(35, 35, 35)"}
314323
,"&::-webkit-media-controls-time-remaining-display":{"text-shadow":"none"}
315324
,"&::-webkit-media-controls-current-time-display":{"text-shadow":"none"}
316-
}
317-
,comment:
325+
};
326+
export var comment=
318327
{"font-size":"10px","font-family":"Averia Libre","white-space":"nowrap"
319328
,"& img":{"height":"2em","width":"2em","vertical-align":"middle","border-radius":"50%"}
320329
,"& svg":{"height":"2em","vertical-align":"middle"}
@@ -324,8 +333,8 @@
324333
,"&::before":{content:"",color:"rgba(255, 248, 225, 0.5)",position:"absolute",width:"1em",height:"1em",left:"12px",background:"radial-gradient(1em at 1px 1px, transparent, transparent 1em, currentcolor 1em)","margin-left":"-2em",bottom:"0px"}
325334
,"& >div":{position:"absolute",display:"block",right:"10px",color:"rgb(97, 97, 97)","font-size":"7px"}
326335
}
327-
}
328-
,panel()
336+
};
337+
export function panel()
329338
{return {...[this.material,this.pill].reduce(merge,{})
330339
,width:"100%","font-size":"2em",margin:0,"box-sizing":"border-box","border-radius":"0 0 0 0",transition:"all 0.5s"
331340
,"&>label":
@@ -334,13 +343,13 @@
334343
,"&:first-of-type":{float:"right","&>svg":{transform:"scale(1.5)"}}
335344
,"& rect":{transform:"rotate(0deg)","transform-origin":"center",transition:"all 0.5s"}
336345
} };
337-
},pill:{display:"inline-block","border-radius":"100vh",cursor:"pointer"}
338-
,codemirror:{"div.cm-gutters":{"background-color":"var(--abyss) !important"}}
339-
,socialecologies:
346+
};
347+
export var pill={display:"inline-block","border-radius":"100vh",cursor:"pointer"}
348+
export var codemirror={"div.cm-gutters":{"background-color":"var(--abyss) !important"}}
349+
export var socialecologies=
340350
{".gallery-row":{"white-space":"nowrap",width:"100% !important"}
341351
,".gallery-group":{display:"inline-block"}
342-
}
343-
,assistant:{"& input":{"font-size":"20px","font-family":"inherit",color:"rgb(144,164,174)","text-align":"center",border:"none",outline:"none","background-color":"transparent"},"& *":{display:"block",margin:"auto"}}
344-
,cloudflare:{"#cf_alert_div>div":{background:"black !important"}}
345352
};
353+
export var assistant={"& input":{"font-size":"20px","font-family":"inherit",color:"rgb(144,164,174)","text-align":"center",border:"none",outline:"none","background-color":"transparent"},"& *":{display:"block",margin:"auto"}};
354+
export var cloudflare={"#cf_alert_div>div":{background:"black !important"}};
346355

0 commit comments

Comments
 (0)