import wingCompGearIcon from '../../../assets/icons/wing-comp-gear.svg'; import wingCompSearchIcon from '../../../assets/icons/wing-comp-search.svg'; import wingCompCloseIcon from '../../../assets/icons/wing-comp-close.svg'; import wingCompMenuIcon from '../../../assets/icons/wing-comp-menu.svg'; interface IconButtonItem { icon: string; label: string; } interface StatusBadge { label: string; color: string; bg: string; } interface DataTag { label: string; color: string; dotColor: string; bg: string; } const iconButtons: IconButtonItem[] = [ { icon: wingCompGearIcon, label: 'Settings' }, { icon: wingCompSearchIcon, label: 'Search' }, { icon: wingCompCloseIcon, label: 'Close' }, { icon: wingCompMenuIcon, label: 'Menu' }, ]; const statusBadges: StatusBadge[] = [ { label: '정상', color: '#22c55e', bg: 'rgba(34,197,94,0.10)' }, { label: '주의', color: '#eab308', bg: 'rgba(234,179,8,0.10)' }, { label: '위험', color: '#ef4444', bg: 'rgba(239,68,68,0.10)' }, { label: '진행중', color: '#3b82f6', bg: 'rgba(59,130,246,0.10)' }, { label: '완료', color: '#9ba3b8', bg: 'rgba(155,163,184,0.10)' }, ]; const dataTags: DataTag[] = [ { label: 'VESSEL_A', color: '#22c55e', dotColor: '#22c55e', bg: 'rgba(34,197,94,0.10)' }, { label: 'PRIORITY_H', color: '#eab308', dotColor: '#eab308', bg: 'rgba(234,179,8,0.10)' }, { label: 'CRITICAL_ERR', color: '#ef4444', dotColor: '#ef4444', bg: 'rgba(239,68,68,0.10)' }, { label: 'ACTIVE_SYNC', color: '#3b82f6', dotColor: '#3b82f6', bg: 'rgba(59,130,246,0.10)' }, ]; export const IconBadgeSection = () => { return (
{/* 좌측 카드: 제어 인터페이스 — 아이콘 버튼 */}
{/* 카드 헤더 */}
마이크로 컨트롤: 아이콘 버튼
{/* 아이콘 버튼 목록 */}
{iconButtons.map((btn) => (
{btn.label}
{btn.label}
))}
{/* 카드 푸터 */}
Standard dimensions: 36x36px with radius-md (6px)
{/* 우측 카드: 마이크로 컨트롤 — 뱃지 & 태그 */}
{/* 카드 헤더 */}
마이크로 컨트롤: 아이콘 버튼
{/* 카드 바디 */}
{/* Operational Status 섹션 */}
Operational Status
{statusBadges.map((badge) => (
{badge.label}
))}
{/* Data Classification 섹션 */}
Data Classification
{dataTags.map((tag) => (
{tag.label}
))}
); };