refactor(M01): 표 · 모달 · 띠 알림 · 배지 · 알약 · 보조 글 · 빈 상태를 부품으로 (PLAN 553-5)
- 표 둘 = 표 부품(m01-master__grid = 일반표 · m01-logic__grid = 데이터표) · 페이지 CSS 는 폭 · 머리 고정 · 칸 상태만 - 손 모달 다섯(조달 찾기 · 요소 고르기 · 표 바꾸기 · 복사 시트 · 표 고르기) = 모달 부품 openModal - 알림 띠 · 막힘 까닭 = 띠 알림 · 태그 = 배지 · 알약 · × · 삭제 · 로직 키 = 단추 부품 · muted 세 벌 = 보조 글 · 빈 줄 = 빈 상태 - M02 가 빌린 M01 클래스(표 · muted · 고르기 창)도 같은 부품으로 · 죽은 CSS 걷음 · 지킴 시험 test_553_5_m01_m02 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -128,10 +128,10 @@ async function showList(
|
||||
(p) => void showList(host, pick, q, usage, p, open, onUsageChange),
|
||||
),
|
||||
el("div", {
|
||||
className: "m01-master__grid-wrap m01-master__tables",
|
||||
className: "ui-table-wrap m01-master__grid-wrap m01-master__tables",
|
||||
children: [
|
||||
el("table", {
|
||||
className: "m01-master__grid",
|
||||
className: "ui-table m01-master__grid",
|
||||
children: [
|
||||
el("thead", {
|
||||
children: [el("tr", { children: LIST_COLS.map((c) => el("th", { text: c })) })],
|
||||
@@ -184,11 +184,8 @@ function openTable(
|
||||
now.forEach((item, i) => {
|
||||
const tr = el("tr");
|
||||
tr.classList.toggle("is-new", item.o === null);
|
||||
const del = el("button", {
|
||||
className: "m01-master__row-btn",
|
||||
text: L("M01_RowRemove"),
|
||||
attrs: { type: "button" },
|
||||
});
|
||||
const del = createButton({ label: L("M01_RowRemove"), variant: "ghost", size: "sm" });
|
||||
del.classList.add("m01-master__row-btn");
|
||||
del.addEventListener("click", () => commit(now.filter((_, j) => j !== i)));
|
||||
tr.append(el("td", { children: [del] }));
|
||||
for (const c of cols) {
|
||||
@@ -217,32 +214,30 @@ function openTable(
|
||||
back();
|
||||
});
|
||||
const notes = ((table.주 ?? []) as string[]).map((n) =>
|
||||
el("p", { className: "m01-master__muted", text: n }),
|
||||
el("p", { className: "ui-text ui-text--muted", text: n }),
|
||||
);
|
||||
const usage = table.용도 as TableUsage | undefined;
|
||||
const logicLinks = (usage?.로직키 ?? []).map((k, i) => {
|
||||
const btn = el("button", {
|
||||
className: "m01-master__logic-key",
|
||||
text: k,
|
||||
attrs: { type: "button", title: L("M01_OpenLogic") },
|
||||
});
|
||||
const btn = createButton({ label: k, variant: "link" });
|
||||
btn.classList.add("m01-master__logic-key");
|
||||
btn.title = L("M01_OpenLogic");
|
||||
btn.addEventListener("click", () => openLogic(k));
|
||||
return i === 0 ? btn : el("span", { text: ", ", children: [btn] });
|
||||
});
|
||||
host.replaceChildren(
|
||||
el("div", {
|
||||
className: "m01-master__bar",
|
||||
className: "ui-toolbar m01-master__bar",
|
||||
children: [
|
||||
backButton,
|
||||
el("strong", { text: String(table.이름 ?? key) }),
|
||||
el("span", {
|
||||
className: "m01-master__muted",
|
||||
className: "ui-text ui-text--muted",
|
||||
text: `${key} · ${table.기준 || "—"} · ${table.출처 || ""}`,
|
||||
}),
|
||||
...(usage
|
||||
? [
|
||||
el("span", {
|
||||
className: "m01-master__muted",
|
||||
className: "ui-text ui-text--muted",
|
||||
text: `${L("M01_TableUsage")}: ${usage.공종} · ${usage.대상.join(", ")} · `,
|
||||
children: logicLinks,
|
||||
}),
|
||||
@@ -252,10 +247,10 @@ function openTable(
|
||||
],
|
||||
}),
|
||||
el("div", {
|
||||
className: "m01-master__grid-wrap",
|
||||
className: "ui-table-wrap m01-master__grid-wrap",
|
||||
children: [
|
||||
el("table", {
|
||||
className: "m01-master__grid",
|
||||
className: "ui-table m01-master__grid",
|
||||
children: [
|
||||
el("thead", {
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user