--- import { getAllProjectImages } from "@lib/utils"; import Paragraph from "@components/Paragraph.astro"; import TextLink from "@components/TextLink.astro"; import Token from "@components/Token.astro"; import { Icon } from "astro-icon/components"; import { Image } from "astro:assets"; import type { CollectionEntry } from "astro:content"; import { slugify } from "@lib/utils"; interface Props { project: CollectionEntry<"projects">; textOn?: "left" | "right"; quality?: number; class?: string; } const { project, textOn = "left", quality = "80", class: className, ...attrs } = Astro.props; const images = getAllProjectImages(project); const translateXOptions = [ "group-hover:translate-x-8", "group-hover:translate-x-9", "group-hover:translate-x-10", "group-hover:translate-x-11", "group-hover:translate-x-12", "group-hover:translate-x-13", "group-hover:translate-x-14", "group-hover:translate-x-15", "group-hover:translate-x-16", "group-hover:translate-x-17", "group-hover:translate-x-18", "group-hover:translate-x-19", "group-hover:translate-x-20", "group-hover:translate-x-21", "group-hover:translate-x-22", "group-hover:translate-x-23", "group-hover:translate-x-24", "group-hover:-translate-x-8", "group-hover:-translate-x-9", "group-hover:-translate-x-10", "group-hover:-translate-x-11", "group-hover:-translate-x-12", "group-hover:-translate-x-13", "group-hover:-translate-x-14", "group-hover:-translate-x-15", "group-hover:-translate-x-16", "group-hover:-translate-x-17", "group-hover:-translate-x-18", "group-hover:-translate-x-19", "group-hover:-translate-x-20", "group-hover:-translate-x-21", "group-hover:-translate-x-22", "group-hover:-translate-x-23", "group-hover:-translate-x-24" ]; const translateYOptions = [ "group-hover:translate-y-8", "group-hover:translate-y-9", "group-hover:translate-y-10", "group-hover:translate-y-11", "group-hover:translate-y-12", "group-hover:translate-y-13", "group-hover:translate-y-14", "group-hover:translate-y-15", "group-hover:translate-y-16", "group-hover:translate-y-17", "group-hover:translate-y-18", "group-hover:translate-y-19", "group-hover:translate-y-20", "group-hover:translate-y-21", "group-hover:translate-y-22", "group-hover:translate-y-23", "group-hover:translate-y-24", "group-hover:-translate-y-9", "group-hover:-translate-y-10", "group-hover:-translate-y-11", "group-hover:-translate-y-12", "group-hover:-translate-y-13", "group-hover:-translate-y-14", "group-hover:-translate-y-15", "group-hover:-translate-y-16", "group-hover:-translate-y-17", "group-hover:-translate-y-18", "group-hover:-translate-y-19", "group-hover:-translate-y-20", "group-hover:-translate-y-21", "group-hover:-translate-y-22", "group-hover:-translate-y-23", "group-hover:-translate-y-24" ]; const rotateOptions = [ "rotate-1", "rotate-2", "rotate-3", "rotate-4", "rotate-5", "rotate-6", "rotate-7", "rotate-8", "rotate-9", "rotate-10", "rotate-11", "rotate-12", "-rotate-1", "-rotate-2", "-rotate-3", "-rotate-4", "-rotate-5", "-rotate-6", "-rotate-7", "-rotate-8", "-rotate-9", "-rotate-10", "-rotate-11", "-rotate-12" ]; const projectHasBody = project.body && project.body.trim().length > 0; const link = `/projects/${slugify(project.data.type)}/${slugify(project.data.slug)}/`; ---

{ projectHasBody && ( {project.data.title} ) }{!projectHasBody && project.data.title}{ !project.data.ongoing && ( {" "} ({project.data.date.getFullYear()}) ) }

{project.data.role}

{project.data.type}
{ project.data.keyFigure && project.data.keyFigure.length > 0 && (
{project.data.keyFigure.map((figure) => { return (
{figure.title}: {figure.href && ( {figure.name} )} {!figure.href && figure.name}
); })}
) } {project.data.description} { project.data.externalLinks !== undefined && ( {project.data.externalLinks.map((link) => ( ))} ) }
{ images .reverse() .map((image, index) => ( )) }