This repository has been archived on 2024-04-04. You can view files and clone it, but cannot push or open issues or pull requests.
tailwindui/vue/components/application-ui/feedback/empty-states/with_recommendations_grid.vue

109 lines
5.3 KiB
Vue
Raw Normal View History

2024-01-24 19:02:44 +08:00
<!--
This example requires some changes to your config:
```
// tailwind.config.js
module.exports = {
// ...
plugins: [
// ...
require('@tailwindcss/forms'),
],
}
```
-->
<template>
<div class="mx-auto max-w-md sm:max-w-3xl">
<div>
<div class="text-center">
<svg class="mx-auto h-12 w-12 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 48 48" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M34 40h10v-4a6 6 0 00-10.712-3.714M34 40H14m20 0v-4a9.971 9.971 0 00-.712-3.714M14 40H4v-4a6 6 0 0110.713-3.714M14 40v-4c0-1.313.253-2.566.713-3.714m0 0A10.003 10.003 0 0124 26c4.21 0 7.813 2.602 9.288 6.286M30 14a6 6 0 11-12 0 6 6 0 0112 0zm12 6a4 4 0 11-8 0 4 4 0 018 0zm-28 0a4 4 0 11-8 0 4 4 0 018 0z" />
</svg>
<h2 class="mt-2 text-base font-semibold leading-6 text-gray-900">Add team members</h2>
<p class="mt-1 text-sm text-gray-500">You havent added any team members to your project yet.</p>
</div>
<form class="mt-6 sm:flex sm:items-center" action="#">
<label for="emails" class="sr-only">Email addresses</label>
<div class="grid grid-cols-1 sm:flex-auto">
<input type="text" name="emails" id="emails" class="peer relative col-start-1 row-start-1 border-0 bg-transparent py-1.5 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6" placeholder="Enter an email" />
<div class="col-start-1 col-end-3 row-start-1 rounded-md shadow-sm ring-1 ring-inset ring-gray-300 peer-focus:ring-2 peer-focus:ring-indigo-600" aria-hidden="true" />
<div class="col-start-2 row-start-1 flex items-center">
<span class="h-4 w-px flex-none bg-gray-200" aria-hidden="true" />
<label for="role" class="sr-only">Role</label>
<select id="role" name="role" class="rounded-md border-0 bg-transparent py-1.5 pl-4 pr-7 text-gray-900 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6">
<option>Can edit</option>
<option>Can view</option>
</select>
</div>
</div>
<div class="mt-3 sm:ml-4 sm:mt-0 sm:flex-shrink-0">
<button type="submit" class="block w-full rounded-md bg-indigo-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600">Send invite</button>
</div>
</form>
</div>
<div class="mt-10">
<h3 class="text-sm font-medium text-gray-500">Recommended team members</h3>
<ul role="list" class="mt-4 grid grid-cols-1 gap-4 sm:grid-cols-2">
<li v-for="(person, personIdx) in people" :key="personIdx">
<button type="button" class="group flex w-full items-center justify-between space-x-3 rounded-full border border-gray-300 p-2 text-left shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
<span class="flex min-w-0 flex-1 items-center space-x-3">
<span class="block flex-shrink-0">
<img class="h-10 w-10 rounded-full" :src="person.imageUrl" alt="" />
</span>
<span class="block min-w-0 flex-1">
<span class="block truncate text-sm font-medium text-gray-900">{{ person.name }}</span>
<span class="block truncate text-sm font-medium text-gray-500">{{ person.role }}</span>
</span>
</span>
<span class="inline-flex h-10 w-10 flex-shrink-0 items-center justify-center">
<PlusIcon class="h-5 w-5 text-gray-400 group-hover:text-gray-500" aria-hidden="true" />
</span>
</button>
</li>
</ul>
</div>
</div>
</template>
<script setup>
import { PlusIcon } from '@heroicons/vue/20/solid'
const people = [
{
name: 'Lindsay Walton',
role: 'Front-end Developer',
imageUrl:
'https://images.unsplash.com/photo-1517841905240-472988babdf9?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
{
name: 'Courtney Henry',
role: 'Designer',
imageUrl:
'https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
{
name: 'Tom Cook',
role: 'Director of Product',
imageUrl:
'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
{
name: 'Whitney Francis',
role: 'Copywriter',
imageUrl:
'https://images.unsplash.com/photo-1517365830460-955ce3ccd263?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
{
name: 'Leonard Krasner',
role: 'Senior Designer',
imageUrl:
'https://images.unsplash.com/photo-1519345182560-3f2917c472ef?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
{
name: 'Floyd Miles',
role: 'Principal Designer',
imageUrl:
'https://images.unsplash.com/photo-1463453091185-61582044d556?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80',
},
]
</script>