()
| 47 | ]; |
| 48 | |
| 49 | export function Libraries() { |
| 50 | return ( |
| 51 | <div className="my-16 xl:max-w-none"> |
| 52 | <Heading level={2} id="official-libraries"> |
| 53 | Official libraries |
| 54 | </Heading> |
| 55 | <div className="not-prose mt-4 grid grid-cols-1 gap-x-6 gap-y-10 border-t border-zinc-900/5 pt-10 sm:grid-cols-2 xl:max-w-none xl:grid-cols-3 dark:border-white/5"> |
| 56 | {libraries.map(library => ( |
| 57 | <div |
| 58 | key={library.name} |
| 59 | className="flex flex-row-reverse gap-6" |
| 60 | > |
| 61 | <div className="flex-auto"> |
| 62 | <h3 className="text-sm font-semibold text-zinc-900 dark:text-white"> |
| 63 | {library.name} |
| 64 | </h3> |
| 65 | <p className="mt-1 text-sm text-zinc-600 dark:text-zinc-400"> |
| 66 | {library.description} |
| 67 | </p> |
| 68 | <p className="mt-4"> |
| 69 | <Button |
| 70 | href={library.href} |
| 71 | variant="text" |
| 72 | arrow="right" |
| 73 | > |
| 74 | Read more |
| 75 | </Button> |
| 76 | </p> |
| 77 | </div> |
| 78 | <Image |
| 79 | src={library.logo} |
| 80 | alt="" |
| 81 | className="h-12 w-12" |
| 82 | unoptimized |
| 83 | /> |
| 84 | </div> |
| 85 | ))} |
| 86 | </div> |
| 87 | </div> |
| 88 | ); |
| 89 | } |
nothing calls this directly
no outgoing calls
no test coverage detected