1
0
mirror of https://github.com/jaandrle/deka-dom-el synced 2024-11-22 07:49:38 +01:00
deka-dom-el/docs_src/components/example.html.js

44 lines
1.2 KiB
JavaScript
Raw Normal View History

let is_register= false;
2023-09-26 16:02:10 +02:00
import { styles } from "../index.css.js";
export const css= styles().scope(example).css`
:host{
--body-max-width: 80rem;
height: 25rem;
2023-09-26 16:02:10 +02:00
}
`
import { el } from "deka-dom-el";
2023-09-26 16:02:10 +02:00
export function example({ src, language= "javascript" }){
register();
const cwd= "components";
src= "."+src.slice(src.indexOf(cwd)+cwd.length);
const code= s.cat(new URL(src, import.meta.url))
.toString()
.replaceAll(' from "../../../index-with-signals.js";', ' from "https://cdn.jsdelivr.net/gh/jaandrle/deka-dom-el/dist/esm-with-signals.js";');
const id= "code-"+Math.random().toString(36).slice(2, 7);
return el("<>").append(
el("div", { id, className: example.name }).append(
el("pre").append(
el("code", {
className: "language-"+language,
textContent: code
})
)
),
2023-10-09 13:51:55 +02:00
elCode({ id, content: code })
2023-09-26 16:02:10 +02:00
);
}
2023-10-09 13:51:55 +02:00
function elCode({ id, content }){
const options= JSON.stringify({
files: [{ name: ".js", content }],
toolbar: false
});
return el("script", `Flems(document.getElementById("${id}"), JSON.parse(${JSON.stringify(options)}));`);
2023-10-09 13:51:55 +02:00
}
2023-09-26 16:02:10 +02:00
function register(){
if(is_register) return;
2023-09-26 16:02:10 +02:00
document.head.append(
el("script", { src: "https://flems.io/flems.html", type: "text/javascript", charset: "utf-8" })
);
is_register= true;
2023-09-26 16:02:10 +02:00
}