import type { FlatTemplatable } from "tempstream"; import { TempstreamJSX } from "tempstream"; import type { ComponentToHTMLArgs, ExtractStructuredComponentArgumentsParsed, JDDContext, } from "@sealcode/jdd"; import { Component, ComponentArguments } from "@sealcode/jdd"; import _locreq from "locreq"; const locreq = _locreq(new URL("./", import.meta.url).pathname); const component_arguments = { image: new ComponentArguments.Structured({ image: new ComponentArguments.Image().setExampleImages( ["image1.jpg", "image2.jpg", "image3.jpg", "image5.jpg"].map((name) => locreq.resolve("assets/" + name) ) ), alt: new ComponentArguments.ShortText(), }), } as const; export class Photo extends Component { getArguments() { return component_arguments; } getTitle( _: JDDContext, args: ExtractStructuredComponentArgumentsParsed ) { return args.image.alt || null; } getHeadings() { return []; } toHTML({ args: { image }, classes, jdd_context: { render_image }, index, }: ComponentToHTMLArgs): FlatTemplatable { return (
{render_image(image.image, { sizesAttr: "100vw", alt: image.alt, })}
); } }