import type { ReactNode } from "react"; import { cx } from "../../utils"; import { FoxFormLabel } from "../fox-form-label"; export interface FoxDescriptionItem { /** 목록 안에서 고유해야 한다. */ key: string; /** 항목 이름. */ term: ReactNode; /** 값. 글자든 토글이든 무엇이든 온다. */ description: ReactNode; /** 참이면 이 줄만 렌더하지 않는다. */ hidden?: boolean; } export interface FoxDescriptionListProps { items: FoxDescriptionItem[]; hidden?: boolean; className?: string; } /** * @fox 조회 목록 — 이름과 값을 한 쌍씩 세로로 쌓는다. 조회 팝업·상세 화면이 쓰는 모양이다. * * 마크업 계약 (React 밖 소비자용): *
*
*
이름
*
홍길동
*
*
* * `
`로 그린다 — 이름·값 쌍이라는 관계가 보조기술에 그대로 전달된다. 이름 쪽은 `
` 안에 * `FoxFormLabel`을 `span`으로 넣어 서식을 디자인시스템과 맞춘다(`
` 자체가 라벨 요소라 * `