From c2cefb6bc96bd7001a848fa4c3d69a8958a80d0c Mon Sep 17 00:00:00 2001 From: yiling ji Date: Mon, 16 Feb 2026 19:13:27 +0800 Subject: [PATCH] ui update --- src/ui/components/ExtractorDialog.tsx | 2 +- src/ui/components/PageHeader.tsx | 2 +- .../components/extractor/SelectionStage.tsx | 60 +++++-------------- 3 files changed, 17 insertions(+), 47 deletions(-) diff --git a/src/ui/components/ExtractorDialog.tsx b/src/ui/components/ExtractorDialog.tsx index 82d0c5c..cc41273 100644 --- a/src/ui/components/ExtractorDialog.tsx +++ b/src/ui/components/ExtractorDialog.tsx @@ -190,7 +190,7 @@ export const ExtractorDialog: React.FC = ({ return ( - + Extractor {/* Top Navigation / Branding Bar (Optional, matches App feel) */} diff --git a/src/ui/components/PageHeader.tsx b/src/ui/components/PageHeader.tsx index e64ceb5..4befd75 100644 --- a/src/ui/components/PageHeader.tsx +++ b/src/ui/components/PageHeader.tsx @@ -44,7 +44,7 @@ export function PageHeader({ )}

- + {title}

diff --git a/src/ui/components/extractor/SelectionStage.tsx b/src/ui/components/extractor/SelectionStage.tsx index dfac9cd..8d1b04f 100644 --- a/src/ui/components/extractor/SelectionStage.tsx +++ b/src/ui/components/extractor/SelectionStage.tsx @@ -1,7 +1,9 @@ -import { ArrowRight, Check, Grid2X2 } from 'lucide-react' +import { Check } from 'lucide-react' import React, { useState } from 'react' import { cn } from '../../lib/utils' import { CandidateAsset } from '../../types' +import { Button } from '../ui/button' +import { ScrollArea } from '../ui/scroll-area' interface SelectionStageProps { candidates: CandidateAsset[] @@ -29,27 +31,10 @@ export const SelectionStage: React.FC = ({ } return ( -
- {/* Header */} -
-
-

- - Select Candidates -

-

- Unselect any items you wish to exclude from refinement. -

-
-
- {selectedIndices.length} - Selected -
-
- +
{/* Grid */} -
-
+ +
{candidates.map((item, index) => { const isSelected = selectedIndices.includes(index) return ( @@ -57,22 +42,13 @@ export const SelectionStage: React.FC = ({ key={index} onClick={() => toggleSelection(index)} className={cn( - 'group relative w-[140px] h-[140px] rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border-2 bg-white animate-fade-in-up flex-shrink-0', + 'group relative rounded-xl overflow-hidden cursor-pointer transition-all duration-300 border-2 bg-white animate-fade-in-up flex-shrink-0', isSelected ? 'border-cyan-500 shadow-lg shadow-cyan-100 scale-[1.02]' : 'border-slate-200 opacity-80 hover:opacity-100 hover:border-slate-300', )} style={{ animationDelay: `${index * 50}ms` }} > - {/* Checkerboard bg */} -
- {item.name} = ({
{/* Label */} -
+

{item.name}

{item.category}

@@ -108,30 +84,24 @@ export const SelectionStage: React.FC = ({ ) })}
-
+ {/* Footer Actions */}
- - + + Start Refining ({selectedIndices.length}) +