feat: update icon components to support filled state and improve upload page layout

- Refactored HardDriveUpload, Home, Layout, LinkIcon, Upload, and Video components to include a 'filled' prop for conditional rendering of SVGs.
- Enhanced the Upload.vue page with a more structured layout, including a PageHeader and improved button interactions for local and remote upload modes.
- Added visual feedback for upload tips and improved accessibility with better button labeling.
- Updated the upload queue display and added loading states for files being fetched from external sources.
This commit is contained in:
2026-01-19 23:58:45 +07:00
parent f805bac0e6
commit c4244c1097
13 changed files with 211 additions and 118 deletions

View File

@@ -1,4 +1,6 @@
<script setup lang="ts">
import { cn } from '@/lib/utils';
interface Breadcrumb {
label: string;
to?: string;
@@ -36,7 +38,7 @@ const getButtonClass = (variant?: string) => {
</script>
<template>
<div class="page-header mb-6">
<div :class="cn('page-header mb-6')">
<!-- Breadcrumb -->
<nav v-if="breadcrumbs && breadcrumbs.length" class="flex items-center gap-2 text-sm mb-2">
<template v-for="(crumb, index) in breadcrumbs" :key="index">
@@ -51,8 +53,12 @@ const getButtonClass = (variant?: string) => {
<span
v-if="index < breadcrumbs.length - 1"
class="i-heroicons-chevron-right w-4 h-4 text-gray-400"
/>
class="w-4 h-4 text-gray-400"
>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
</svg>
</span>
</template>
</nav>