// FoxFileUpload — 시안: 통합관리자페이지 디자인시스템(KE9UILWhB8qTBe14uXUn4F) // file-upload (391:3677) · file-upload-area (392:5968) · file-upload-img (391:3732) // file-list (392:5938) · file-list-item (391:3509) // // 세 모드가 한 컴포넌트다. // - default: [읽기 전용 입력 + 파일선택(secondary)] — 목록을 붙일 수 있다. // - area: 점선 상자에 안내문과 파일선택(primary) — 목록을 붙일 수 있고 끌어다 놓기가 // 항상 켜져 있다(안내문이 그렇게 말한다). // - image: 썸네일 + 파일선택(secondary) + 설명 — 목록이 없다. // // 시안에서 버튼·입력이 모두 기존 컴포넌트의 인스턴스라 그대로 조합한다. // 파일선택 = FoxButton(secondary/primary md) · 삭제 = FoxTextButton(md secondary) // 썸네일 삭제 = FoxIconButton(overlay xsm — 24px·radius 4·배경흐림·흰 아이콘이 시안과 같다) // default 모드 입력칸 = FoxInput(md, 읽기 전용) // 그래서 이 파일은 배치와 목록·썸네일·점선 상자만 갖는다. // // 아이콘 색은 에셋에서 확인해 토큰과 맞췄다 — 클립 #8A949E(icon-neutral-subtler), // 오류 #BD2C0F(icon-system-danger-strong), 빈 썸네일은 검정 25%(icon-neutral-fill). // 버튼 안 아이콘은 FoxButton·FoxTextButton이 `currentColor`로 칠하므로 여기서 정하지 않는다. // // 토큰이 아닌 값: // - 입력칸 폭과 썸네일 크기는 인라인 스타일로 들어온다 — 시안 값(320px · 213×120px)이 // 토큰에 없어 prop 기본값으로 두었다(사용자 승인). // - line-height / letter-spacing: 시안 텍스트 스타일의 값이나 Figma가 변수로 // export하지 않는다. // - object-fit / overflow / position: 구조 규칙. // - 목록의 margin/padding/list-style 0: `