Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 67 additions & 36 deletions app/gallery/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,15 @@
import React, { useState } from 'react';
import { useRouter } from 'next/navigation';
import { clsx } from 'clsx';
import { ArrowLeft, Search } from 'lucide-react';
import { ArrowLeft, ExternalLink, Search } from 'lucide-react';
import { useLang } from '@/app/context/LangContext';
import { modelMetadata, categories } from '@/app/config/modelMetadata';
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from '@/app/components/ui/tooltip';

export default function GalleryPage() {
const { theme, t } = useLang();
Expand Down Expand Up @@ -151,43 +157,68 @@ export default function GalleryPage() {
</div>

{/* Model Grid */}
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{filteredModels.map((model) => {
return (
<div
key={model.key}
onClick={() => {
return handleModelClick(model.key);
}}
className={clsx(
'rounded-lg border border-border shadow-sm cursor-pointer transition-all duration-200',
cardBgClass,
hoverClass,
'hover:shadow-lg hover:border-primary/50',
)}
>
<div className="p-6">
<div className="flex items-start justify-between mb-3">
<h3 className={clsx('text-xl font-semibold', textClass)}>
{t(model.name)}
</h3>
<span
className={clsx(
'px-2 py-1 text-xs font-medium rounded',
'bg-primary/10 text-primary',
)}
>
{t(model.category)}
</span>
<TooltipProvider delayDuration={700} skipDelayDuration={0}>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{filteredModels.map((model) => {
return (
<div
key={model.key}
className={clsx(
'rounded-lg border border-border shadow-sm transition-all duration-200',
cardBgClass,
'hover:shadow-lg',
)}
>
<div className="p-6">
<div className="flex items-start justify-between mb-3">
<h3 className={clsx('text-xl font-semibold', textClass)}>
{t(model.name)}
</h3>
<span
className={clsx(
'px-2 py-1 text-xs font-medium rounded',
'bg-primary/10 text-primary',
)}
>
{t(model.category)}
</span>
</div>
<p className={clsx('text-sm mb-4', textClass, 'opacity-70')}>
{t(model.description)}
</p>
<div className="flex justify-end">
<Tooltip>
<TooltipTrigger asChild>
<button
onClick={() => {
handleModelClick(model.key);
}}
className={clsx(
'inline-flex items-center gap-2 p-2 rounded-lg',
'text-sm font-medium transition-all duration-200',
'bg-primary text-primary-foreground',
'hover:bg-primary/90 hover:shadow-md',
'focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2',
)}
>
<ExternalLink className="w-4 h-4" />
</button>
</TooltipTrigger>
<TooltipContent
className={clsx(
'bg-white dark:bg-gray-800 text-primary border border-primary',
)}
>
<p>{t('Load in Editor')}</p>
</TooltipContent>
</Tooltip>
</div>
</div>
<p className={clsx('text-sm', textClass, 'opacity-70')}>
{t(model.description)}
</p>
</div>
</div>
);
})}
</div>
);
})}
</div>
</TooltipProvider>
</div>
</div>

Expand Down
2 changes: 2 additions & 0 deletions messages/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "إعادة تعيين جميع الحقول إلى قيمها الافتراضية.",
"Policy": "سياسة",
"Policy Editor": "محرر السياسة",
"Model Gallery": "معرض النماذج",
"Load in Editor": "تحميل في المحرر",
"Request": "طلب",
"Enforcement Result": "نتيجة التنفيذ",
"Why this result": "لماذا هذه النتيجة",
Expand Down
2 changes: 2 additions & 0 deletions messages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Alle Felder auf ihre Standardwerte zurücksetzen.",
"Policy": "Richtlinie",
"Policy Editor": "Richtlinien-Editor",
"Model Gallery": "Modell-Galerie",
"Load in Editor": "Im Editor öffnen",
"Request": "Anfrage",
"Enforcement Result": "Durchsetzungsergebnis",
"Why this result": "Warum dieses Ergebnis?",
Expand Down
1 change: 1 addition & 0 deletions messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"Policy": "Policy",
"Policy Editor": "Policy Editor",
"Model Gallery": "Model Gallery",
"Load in Editor": "Load in Editor",
"Request": "Request",
"Enforcement Result": "Enforcement Result",
"Why this result": "Why this result",
Expand Down
2 changes: 2 additions & 0 deletions messages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Restablecer todos los campos a sus valores predeterminados.",
"Policy": "Política",
"Policy Editor": "Editor de políticas",
"Model Gallery": "Galería de modelos",
"Load in Editor": "Cargar en el editor",
"Request": "Solicitud",
"Enforcement Result": "Resultado de ejecución",
"Why this result": "Por qué este resultado",
Expand Down
2 changes: 2 additions & 0 deletions messages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Réinitialiser tous les champs à leurs valeurs par défaut.",
"Policy": "Politique",
"Policy Editor": "Éditeur de politique",
"Model Gallery": "Galerie de modèles",
"Load in Editor": "Charger dans l'éditeur",
"Request": "Requête",
"Enforcement Result": "Résultat d'application",
"Why this result": "Pourquoi ce résultat ?",
Expand Down
2 changes: 2 additions & 0 deletions messages/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Reset semua bidang ke nilai default.",
"Policy": "Kebijakan",
"Policy Editor": "Editor kebijakan",
"Model Gallery": "Galeri model",
"Load in Editor": "Muat di editor",
"Request": "Permintaan",
"Enforcement Result": "Hasil penegakan",
"Why this result": "Mengapa hasil ini",
Expand Down
2 changes: 2 additions & 0 deletions messages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Reimposta tutti i campi ai valori predefiniti.",
"Policy": "Politica",
"Policy Editor": "Editor di politiche",
"Model Gallery": "Galleria di modelli",
"Load in Editor": "Carica nell'editor",
"Request": "Richiesta",
"Enforcement Result": "Risultato dell'applicazione",
"Why this result": "Perché questo risultato",
Expand Down
2 changes: 2 additions & 0 deletions messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "すべてのフィールドをデフォルト値にリセットします。",
"Policy": "ポリシー",
"Policy Editor": "ポリシーエディタ",
"Model Gallery": "モデルギャラリー",
"Load in Editor": "エディタで開く",
"Request": "リクエスト",
"Enforcement Result": "実行結果",
"Why this result": "なぜこの結果?",
Expand Down
2 changes: 2 additions & 0 deletions messages/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "모든 필드를 기본값으로 재설정합니다.",
"Policy": "정책",
"Policy Editor": "정책 편집기",
"Model Gallery": "모델 갤러리",
"Load in Editor": "편집기에서 열기",
"Request": "요청",
"Enforcement Result": "집행 결과",
"Why this result": "이 결과의 이유",
Expand Down
2 changes: 2 additions & 0 deletions messages/ms.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Tetapkan semula semua medan kepada nilai lalai.",
"Policy": "Polisi",
"Policy Editor": "Editor polisi",
"Model Gallery": "Galeri model",
"Load in Editor": "Muat dalam editor",
"Request": "Permintaan",
"Enforcement Result": "Keputusan penguatkuasaan",
"Why this result": "Mengapa keputusan ini",
Expand Down
2 changes: 2 additions & 0 deletions messages/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Redefinir todos os campos para seus valores padrão.",
"Policy": "Política",
"Policy Editor": "Editor de políticas",
"Model Gallery": "Galeria de modelos",
"Load in Editor": "Carregar no editor",
"Request": "Solicitação",
"Enforcement Result": "Resultado da aplicação",
"Why this result": "Por que esse resultado",
Expand Down
2 changes: 2 additions & 0 deletions messages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Сбросить все поля к значениям по умолчанию.",
"Policy": "Политика",
"Policy Editor": "Редактор политик",
"Model Gallery": "Галерея моделей",
"Load in Editor": "Загрузить в редактор",
"Request": "Запрос",
"Enforcement Result": "Результат исполнения",
"Why this result": "Почему этот результат",
Expand Down
2 changes: 2 additions & 0 deletions messages/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Tüm alanları varsayılan değerlerine sıfırla.",
"Policy": "Politika",
"Policy Editor": "Politika düzenleyici",
"Model Gallery": "Model galerisi",
"Load in Editor": "Düzenleyicide aç",
"Request": "İstek",
"Enforcement Result": "Uygulama Sonucu",
"Why this result": "Neden bu sonuç",
Expand Down
2 changes: 2 additions & 0 deletions messages/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "Đặt lại tất cả các trường về giá trị mặc định.",
"Policy": "Chính sách",
"Policy Editor": "Trình chỉnh sửa chính sách",
"Model Gallery": "Thư viện mô hình",
"Load in Editor": "Tải trong trình chỉnh sửa",
"Request": "Yêu cầu",
"Enforcement Result": "Kết quả thi hành",
"Why this result": "Tại sao kết quả này",
Expand Down
2 changes: 2 additions & 0 deletions messages/zh-Hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "將所有欄位重置為預設值。",
"Policy": "策略",
"Policy Editor": "策略編輯器",
"Model Gallery": "模型庫",
"Load in Editor": "在編輯器中載入",
"Request": "請求",
"Enforcement Result": "執行結果",
"Why this result": "為何此結果?",
Expand Down
2 changes: 2 additions & 0 deletions messages/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
"Reset tooltip": "将所有字段重置为默认值。",
"Policy": "策略",
"Policy Editor": "策略编辑器",
"Model Gallery": "模型库",
"Load in Editor": "在编辑器中加载",
"Request": "请求",
"Enforcement Result": "执行结果",
"Why this result": "为何此结果?",
Expand Down
Loading