empty
Dashed upload empty state
Dashed upload empty state
Загрузка превью…
src/empty/c-empty-6.vue
<!--
Расхождение с апстримом: `IconPlaceholder` заменена инлайновым `<svg>`
(lucide-react v0.545.0 "cloud-upload"/"plus") — см. docs/PORTING.md §5.
-->
<script setup lang="ts">
import { Button } from "@/components/ui/button"
import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "@/components/ui/empty"
</script>
<template>
<div class="flex items-center justify-center p-4">
<Empty class="w-full max-w-md border border-dashed py-12">
<EmptyHeader>
<EmptyMedia variant="icon">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="lucide lucide-cloud-upload"
>
<path d="M12 13v8" />
<path d="M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" />
<path d="m8 17 4-4 4 4" />
</svg>
</EmptyMedia>
<EmptyTitle>Upload files</EmptyTitle>
<EmptyDescription>
Drag and drop files here, or click to browse.
</EmptyDescription>
</EmptyHeader>
<EmptyContent>
<Button variant="outline" size="sm">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="lucide lucide-plus"
data-icon="inline-start"
>
<path d="M5 12h14" />
<path d="M12 5v14" />
</svg>
Browse Files
</Button>
<EmptyDescription class="text-xs">
PNG, JPG, SVG up to 10MB
</EmptyDescription>
</EmptyContent>
</Empty>
</div>
</template>