= {
start: "fox-table-cell--start",
center: "fox-table-cell--center",
end: "fox-table-cell--end",
};
/**
* @fox 표의 칸. 머리칸이면 `| `, 아니면 ` | `다.
*
* 본문 행에 놓인 머리칸은 그 줄의 이름이라 `scope="row"`가 붙는다 — 시안 basic 표의 첫
* 열이 그렇다. 머리행 안이면 열 이름이라 `scope="col"`이다.
*
* ⚠️ 스타일은 이 파일이 import하지 않는다 — 호스트 앱이 `@use "@fox/styles/components"`
* (또는 개별 파티셜)로 한 번 불러와야 한다.
*/
export function FoxTableCell({
children,
head,
align,
emphasis = false,
colSpan,
rowSpan,
width,
label,
hidden = false,
className,
inHead = false,
}: FoxTableCellProps) {
if (hidden) {
return null;
}
const isHead = head ?? inHead;
const Tag = isHead ? "th" : "td";
return (
)의 칸은 열 정렬과 무관하게 늘 가운데다(디자인팀 확정) — 스타일이 정한다.
align && !inHead && ALIGN_CLASS[align],
className
)}
scope={isHead ? (inHead ? "col" : "row") : undefined}
colSpan={colSpan}
rowSpan={rowSpan}
style={width === undefined ? undefined : { inlineSize: width }}
>
{/* 카드로 접혔을 때만 보인다 — 표로 있을 때는 머리행이 이미 같은 말을 한다. */}
{label && {label}}
{children}
);
}
|