diff options
| author | joonhoekim <26rote@gmail.com> | 2025-09-09 06:51:44 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-09-09 06:51:44 +0000 |
| commit | ebcec3f296d1d27943caf8a3aed26efef117cdc5 (patch) | |
| tree | 7b4111948b13c647f4412e3614a1a59e7af02f94 /lib/vendor-document-list/ship | |
| parent | ce2d3097d034a1c5dd29c6cf3740556d41c7e880 (diff) | |
(김준회) 돌체 관련, 다크모드 지원하도록 개선
- 가능하면 시멘틱 색상 사용(muted, muted-foreground)
- 어려운 컬러는 dark: 변수로 다크모드 클래스 지정
Diffstat (limited to 'lib/vendor-document-list/ship')
5 files changed, 32 insertions, 32 deletions
diff --git a/lib/vendor-document-list/ship/bulk-b4-upload-dialog.tsx b/lib/vendor-document-list/ship/bulk-b4-upload-dialog.tsx index 65166bd6..db0fa08e 100644 --- a/lib/vendor-document-list/ship/bulk-b4-upload-dialog.tsx +++ b/lib/vendor-document-list/ship/bulk-b4-upload-dialog.tsx @@ -366,10 +366,10 @@ export function BulkB4UploadDialog({ <Loader2 className="h-4 w-4 animate-spin" /> )} {pf.status === 'success' && ( - <CheckCircle2 className="h-4 w-4 text-green-500" /> + <CheckCircle2 className="h-4 w-4 text-emerald-500 dark:text-emerald-400" /> )} {pf.status === 'error' && ( - <AlertCircle className="h-4 w-4 text-red-500" /> + <AlertCircle className="h-4 w-4 text-destructive" /> )} {pf.status === 'ignored' && ( <AlertTriangle className="h-4 w-4 text-yellow-500" /> diff --git a/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx b/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx index 8370cd34..096f9b24 100644 --- a/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx +++ b/lib/vendor-document-list/ship/enhanced-doc-table-columns.tsx @@ -37,12 +37,12 @@ interface GetColumnsProps { // 날짜 표시 컴포넌트 (간단 버전) const DateDisplay = ({ date, isSelected = false }: { date: string | null, isSelected?: boolean }) => { - if (!date) return <span className="text-gray-400">-</span> + if (!date) return <span className="text-muted-foreground">-</span> return ( <span className={cn( "text-sm", - isSelected && "text-blue-600 font-semibold" + isSelected && "text-primary font-semibold" )}> {formatDate(date)} </span> @@ -59,7 +59,7 @@ export function getSimplifiedDocumentColumns({ id: "select", header: ({ table }) => ( <div className="flex items-center justify-center"> - <span className="text-xs text-gray-500">Select</span> + <span className="text-xs text-muted-foreground">Select</span> </div> ), cell: ({ row }) => { @@ -180,7 +180,7 @@ export function getSimplifiedDocumentColumns({ const firstRow = table.getRowModel().rows[0]?.original const stageName = firstRow?.firstStageName || "First Stage" return ( - <div className="text-center font-medium text-gray-700"> + <div className="text-center font-medium text-foreground"> {stageName} </div> ) @@ -223,7 +223,7 @@ export function getSimplifiedDocumentColumns({ const firstRow = table.getRowModel().rows[0]?.original const stageName = firstRow?.secondStageName || "Second Stage" return ( - <div className="text-center font-medium text-gray-700"> + <div className="text-center font-medium text-foreground"> {stageName} </div> ) @@ -373,8 +373,8 @@ function DocNumberCell({ doc }: { doc: SimplifiedDocumentsView }) { className={cn( "font-mono text-sm font-medium cursor-pointer px-2 py-1 rounded transition-colors", isSelected - ? "text-blue-600 font-bold bg-blue-50" - : "hover:bg-gray-50" + ? "text-primary font-bold bg-primary/10" + : "hover:bg-muted/50" )} onClick={() => { const newSelection = isSelected ? null : doc.documentId; @@ -393,10 +393,10 @@ function TitleCell({ doc }: { doc: SimplifiedDocumentsView }) { return ( <div className={cn( - "font-medium text-gray-900 truncate max-w-[300px] cursor-pointer px-2 py-1 rounded transition-colors", + "font-medium text-foreground truncate max-w-[300px] cursor-pointer px-2 py-1 rounded transition-colors", isSelected - ? "text-blue-600 font-bold bg-blue-50" - : "hover:bg-gray-50" + ? "text-primary font-bold bg-primary/10" + : "hover:bg-muted/50" )} title={doc.title} onClick={() => { @@ -413,12 +413,12 @@ function ProjectCodeCell({ projectCode, documentId }: { projectCode: string | nu const { selectedDocumentId } = React.useContext(DocumentSelectionContext); const isSelected = selectedDocumentId === documentId; - if (!projectCode) return <span className="text-gray-400">-</span>; + if (!projectCode) return <span className="text-muted-foreground">-</span>; return ( <span className={cn( "text-sm font-medium", - isSelected && "text-blue-600 font-bold" + isSelected && "text-primary font-bold" )}> {projectCode} </span> @@ -439,8 +439,8 @@ function FirstStageActualDateCell({ row }: { row: any }) { return ( <div className={cn( - date ? "text-green-600 font-medium" : "", - isSelected && date && "text-green-700 font-bold" + date ? "text-emerald-600 dark:text-emerald-400 font-medium" : "", + isSelected && date && "text-emerald-700 dark:text-emerald-300 font-bold" )}> <DateDisplay date={date} isSelected={isSelected && !date} /> {date && <span className="text-xs block">✓ 완료</span>} @@ -462,8 +462,8 @@ function SecondStageActualDateCell({ row }: { row: any }) { return ( <div className={cn( - date ? "text-green-600 font-medium" : "", - isSelected && date && "text-green-700 font-bold" + date ? "text-emerald-600 dark:text-emerald-400 font-medium" : "", + isSelected && date && "text-emerald-700 dark:text-emerald-300 font-bold" )}> <DateDisplay date={date} isSelected={isSelected && !date} /> {date && <span className="text-xs block">✓ 완료</span>} @@ -477,10 +477,10 @@ function AttachmentCountCell({ count, documentId }: { count: number, documentId: return ( <div className="flex items-center justify-center gap-1"> - <FileText className="w-4 h-4 text-gray-400" /> + <FileText className="w-4 h-4 text-muted-foreground" /> <span className={cn( "text-sm font-medium", - isSelected && "text-blue-600 font-bold" + isSelected && "text-primary font-bold" )}> {count} </span> @@ -494,8 +494,8 @@ function UpdatedAtCell({ updatedAt, documentId }: { updatedAt: Date, documentId: return ( <span className={cn( - "text-sm text-gray-600", - isSelected && "text-blue-600 font-semibold" + "text-sm text-muted-foreground", + isSelected && "text-primary font-semibold" )}> {formatDateTime(updatedAt)} </span> diff --git a/lib/vendor-document-list/ship/enhanced-documents-table.tsx b/lib/vendor-document-list/ship/enhanced-documents-table.tsx index 287df755..24ab42fb 100644 --- a/lib/vendor-document-list/ship/enhanced-documents-table.tsx +++ b/lib/vendor-document-list/ship/enhanced-documents-table.tsx @@ -26,17 +26,17 @@ const DRAWING_KIND_INFO = { B3: { title: "B3 Vendor", description: "Approval-focused drawings progressing through Approval → Work stages", - color: "bg-blue-50 text-blue-700 border-blue-200" + color: "bg-primary/10 text-primary border-primary/20" }, B4: { title: "B4 GTT", description: "DOLCE-integrated drawings progressing through Pre → Work stages", - color: "bg-green-50 text-green-700 border-green-200" + color: "bg-emerald-50 dark:bg-emerald-950/20 text-emerald-700 dark:text-emerald-400 border-emerald-200 dark:border-emerald-800" }, B5: { title: "B5 FMEA", description: "Sequential drawings progressing through First → Second stages", - color: "bg-purple-50 text-purple-700 border-purple-200" + color: "bg-purple-50 dark:bg-purple-950/20 text-purple-700 dark:text-purple-400 border-purple-200 dark:border-purple-800" } } as const diff --git a/lib/vendor-document-list/ship/import-from-dolce-button.tsx b/lib/vendor-document-list/ship/import-from-dolce-button.tsx index 5e720220..fe7f55c7 100644 --- a/lib/vendor-document-list/ship/import-from-dolce-button.tsx +++ b/lib/vendor-document-list/ship/import-from-dolce-button.tsx @@ -375,7 +375,7 @@ export function ImportFromDOLCEButton({ } return ( - <Badge variant="default" className="gap-1 bg-green-500 hover:bg-green-600"> + <Badge variant="default" className="gap-1 bg-emerald-500 hover:bg-emerald-600 dark:bg-emerald-600 dark:hover:bg-emerald-700"> <CheckCircle className="w-3 h-3" /> {t('dolceImport.status.synchronized')} </Badge> @@ -440,7 +440,7 @@ export function ImportFromDOLCEButton({ <Button variant="outline" size="sm" - className="flex items-center border-blue-200 hover:bg-blue-50" + className="flex items-center border-primary/20 hover:bg-primary/10" disabled={isImporting || statusLoading} > {isImporting ? ( @@ -473,7 +473,7 @@ export function ImportFromDOLCEButton({ {/* 프로젝트 소스 표시 */} {allDocuments.length === 0 && vendorProjectIds.length > 0 && ( - <div className="text-xs text-blue-600 bg-blue-50 p-2 rounded"> + <div className="text-xs text-primary bg-primary/10 p-2 rounded"> {t('dolceImport.descriptions.noDocumentsImportAll')} </div> )} diff --git a/lib/vendor-document-list/ship/send-to-shi-button.tsx b/lib/vendor-document-list/ship/send-to-shi-button.tsx index 87cc6ff5..532aabf5 100644 --- a/lib/vendor-document-list/ship/send-to-shi-button.tsx +++ b/lib/vendor-document-list/ship/send-to-shi-button.tsx @@ -231,7 +231,7 @@ export function SendToSHIButton({ if (totalStats.totalSynced > 0) { return ( - <Badge variant="default" className="gap-1 bg-green-500 hover:bg-green-600"> + <Badge variant="default" className="gap-1 bg-emerald-500 hover:bg-emerald-600 dark:bg-emerald-600 dark:hover:bg-emerald-700"> <CheckCircle className="w-3 h-3" /> {t('shiSync.status.synchronized')} </Badge> @@ -249,7 +249,7 @@ export function SendToSHIButton({ <Button variant="default" size="sm" - className="flex items-center gap-2 bg-blue-600 hover:bg-blue-700" + className="flex items-center gap-2 bg-primary hover:bg-primary/90" disabled={isSyncing || totalStats.isLoading || documentsContractIds.length === 0} > {isSyncing ? ( @@ -332,11 +332,11 @@ export function SendToSHIButton({ </div> <div className="text-center"> <div className="text-muted-foreground">{t('shiSync.labels.synced')}</div> - <div className="font-medium text-green-600">{t('shiSync.labels.itemCount', { count: totalStats.totalSynced })}</div> + <div className="font-medium text-emerald-600 dark:text-emerald-400">{t('shiSync.labels.itemCount', { count: totalStats.totalSynced })}</div> </div> <div className="text-center"> <div className="text-muted-foreground">{t('shiSync.labels.failed')}</div> - <div className="font-medium text-red-600">{t('shiSync.labels.itemCount', { count: totalStats.totalFailed })}</div> + <div className="font-medium text-destructive">{t('shiSync.labels.itemCount', { count: totalStats.totalFailed })}</div> </div> </div> |
