38 lines
1,020 B
Text
38 lines
1,020 B
Text
---
|
|
import { Icon } from "astro-icon/components";
|
|
|
|
type Props = {
|
|
institution: String;
|
|
qualification: String;
|
|
grades: Array<String>;
|
|
isOpen?: boolean;
|
|
};
|
|
|
|
const { institution, qualification, grades, isOpen = false } = Astro.props;
|
|
---
|
|
|
|
<div class="grid">
|
|
<details open={isOpen === true ? "open" : null} class="group">
|
|
<summary
|
|
class="flex cursor-pointer items-center justify-between py-3 font-bold"
|
|
>
|
|
<p class="m-0 text-balance font-semibold text-secondary">
|
|
{qualification}
|
|
</p>
|
|
<span class="transition group-open:rotate-180">
|
|
<Icon
|
|
name="mdi:chevron-down"
|
|
class="h-6 w-auto text-secondary transition-colors group-open:text-tertiary"
|
|
/>
|
|
</span>
|
|
</summary>
|
|
<div class="p-4">
|
|
<p class="my-0 mb-2 font-semibold text-tertiary">
|
|
{institution}
|
|
</p>
|
|
<ol class="list-inside list-disc">
|
|
{grades.map((grade) => <li class="text-tertiary">{grade}</li>)}
|
|
</ol>
|
|
</div>
|
|
</details>
|
|
</div>
|