| <template> | |
| <table class="min-w-full divide-y-2 divide-gray-200 border border-gray-200 bg-white text-left p-4"> | |
| <caption class="text-2xl bg-blue-100">{{ props.title }}</caption> | |
| <thead class="text-left"> | |
| <tr class="text-left"> | |
| <th | |
| class="whitespace-nowrap px-1 py-1 text-gray-900 text-left 2md:font-medium 2md:py-2 2md:px-4" | |
| v-for="item in props.header" | |
| :key="item" | |
| >{{ item }}</th> | |
| </tr> | |
| </thead> | |
| <tbody class="divide-y divide-gray-200" v-for="row in props.rows" :key="props.rows[props.rowKey]"> | |
| <tr class="odd:bg-gray-50"> | |
| <td v-for="item in row" class="whitespace-nowrap px-1 py-1 text-gray-900 2md:font-medium 2md:py-2 2md:px-4">{{ item }}</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </template> | |
| <script setup lang="ts"> | |
| const props = defineProps<{ | |
| header: Array<string>, | |
| rows: Array<Map<string, string>>, | |
| title: string, | |
| rowKey: string | |
| }>() | |
| </script> | |