<template> <header class="tw-flex tw-items-center tw-justify-between tw-mb-10 tw-border-solid tw-border-gray-200 tw-border-0 tw-border-b tw-pb-6" data-testid="page-header" > <h1 class="tw-text-5xl tw-font-black tw-m-0"> <ATimeEditInfo v-if="editingMetadata" :edit-info="{ time: editingMetadata.updatedAt ?? editingMetadata.createdAt, author: editingMetadata.updatedBy ?? editingMetadata.createdBy, }" :type="editingMetadata.updatedAt ? 'modified' : 'created'" class="tw-text-xs tw-block tw-mb-2 tw-font-normal" /> <SafeHTML v-if="lead" as="small" :html="lead" sanitize-preset="inline-noninteractive" class="tw-block tw-text-gray-300 tw-font-bold tw-text-4xl tw-mb-0" data-testid="page-header:lead" /> <span data-testid="page-header:title"> <slot name="title">{{ title }}</slot> </span> </h1> <div class="tw-flex tw-justify-end tw-gap-4"> <slot /> </div> </header> </template> <script lang="ts" setup> import SafeHTML from '@/components/generic/SafeHTML' import { EditingMetaData } from '@/types' import ATimeEditInfo from '@/components/generic/ATimeEditInfo.vue' defineProps<{ title?: string lead?: string editingMetadata?: EditingMetaData }>() </script>