import React from "react"; import type { basicsItemsComponent } from "../components/atoms/basics-items-component.js"; import "../module-globals.js"; const basics = defineComponent({ name: "basics", schema: z.intersection( defaultComponents.basics.schema, z.object({ basics: z .object({ image: z.string(), roundedImage: z.boolean().nullish(), }) .nullish(), }), ), component: ({ spec, styles, getComponent }) => { const Markdown = getComponent({ name: "markdown" }); const Image = getComponent(defaultComponents.image); const TextWithIcon = getComponent(defaultComponents.textWithIcon); const BasicsItems = getComponent({ name: "basicsItems", } as typeof basicsItemsComponent); return ( spec.basics && ( <> {spec.basics.name} ( {item} )} /> {spec.basics.summary && ( {spec.basics.summary} )} ) ); }, defaultStyles: { container: { display: "flex", flexDirection: "row", alignItems: "center", width: "100%", }, leftContainer: { display: "flex", justifyContent: "center", alignItems: "center", }, rightContainer: { marginLeft: "8pt", flexGrow: 1, }, name: { fontSize: "24pt", marginBottom: "8pt", }, itemContainer: { display: "flex", flexDirection: "row", flexWrap: "wrap", rowGap: "4pt", columnGap: "12pt", }, item: { color: "black", }, firstItem: { borderLeft: "none", paddingLeft: 0, marginLeft: 0, }, summary: { marginTop: "8pt", marginBottom: "8pt", }, picture: { width: "100px", overflow: "hidden", }, } as const, }); export default { config: { components: { basics }, }, };