refactor(M02): 띠 알림 · 빈 상태 · 보조 글 · 배지 · 탭 · 표 · 목록 줄 · 도구줄 · 체크를 부품으로 (PLAN 553-5)
- DataFlow: 표 넷 = 데이터표 · 함수 판 알림 · 선/알약 경고 · 끊긴 곳 = 띠 알림 · 알약 · 칸 종류 = 배지 · 고르는 줄 = 목록 줄 · 입력 넷 = 입력 · 도구줄 여섯 · 날 색 → 공통 값 - 구조물 옵션 · 구조물 · 도면 · 면적 · 품목 고르기: 판 띠 = 띠 알림 · 한눈/종류별/부품 = 탭 · 표 둘 = 데이터표 · 체크 둘 = 체크 · 카드 · 번호 = 카드 · 배지 · 도면 도구줄 - 일위대가 · 호표 · 실무자료 · 본 화면 · 서고: 알림 = 띠 알림 · 빈 상태 · 보조 글 · 도구줄 여섯 · 옛 보라 별칭 0 - M01 로직 입력칸 = 입력 부품(작은 칸) · 일위대가 상세 줄 수 고정 시험 693 · 지킴 시험 M02 몫 더함 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -199,7 +199,7 @@ function logicAliasControls(
|
||||
|
||||
function lineBox(row: LogicRow, line: FormulaLine, onChange: () => void): HTMLElement {
|
||||
const f = field(row, line.자리);
|
||||
const box = el("textarea", { className: "m01-logic__input m01lab__qty" });
|
||||
const box = el("textarea", { className: "ui-input ui-input--sm m01-logic__input m01lab__qty" });
|
||||
box.value = f.get();
|
||||
box.rows = Math.max(1, Math.ceil(box.value.length / 60));
|
||||
box.addEventListener("input", () => {
|
||||
|
||||
@@ -144,7 +144,10 @@ function infoBox(ctx: DetailContext): HTMLElement {
|
||||
const own = isOwnLogic(row);
|
||||
const field = (label: string, key: "이름" | "원문번호" | "결과단위" | "출처"): HTMLElement => {
|
||||
if (!own) return cell(label, row[key] ?? "");
|
||||
const box = el("input", { className: "m01-logic__input", attrs: { "data-own": key } });
|
||||
const box = el("input", {
|
||||
className: "ui-input ui-input--sm m01-logic__input",
|
||||
attrs: { "data-own": key },
|
||||
});
|
||||
box.value = row[key] ?? "";
|
||||
box.addEventListener("input", () => {
|
||||
row[key] = box.value;
|
||||
@@ -163,7 +166,9 @@ function infoBox(ctx: DetailContext): HTMLElement {
|
||||
el("span", { text: value || "—" }),
|
||||
],
|
||||
});
|
||||
const note = el("textarea", { className: "m01-logic__input m01-logic__note" });
|
||||
const note = el("textarea", {
|
||||
className: "ui-input ui-input--sm m01-logic__input m01-logic__note",
|
||||
});
|
||||
note.value = row.비고 ?? "";
|
||||
note.addEventListener("input", () => {
|
||||
if (note.value.trim()) row.비고 = note.value;
|
||||
|
||||
@@ -111,7 +111,7 @@ export function buildCalc(host: HTMLElement, ctx: CalcContext): void {
|
||||
}
|
||||
} else {
|
||||
const box = el("input", {
|
||||
className: "m01-logic__input",
|
||||
className: "ui-input ui-input--sm m01-logic__input",
|
||||
attrs: { type: "text", inputmode: "decimal" },
|
||||
});
|
||||
if (spec.범위) box.placeholder = `${spec.범위[0]} ∼ ${spec.범위[1]}`;
|
||||
|
||||
@@ -61,7 +61,7 @@ export function formatNumber(value: unknown): string {
|
||||
|
||||
function textBox(value: unknown, onInput: (v: string) => void, className = ""): HTMLInputElement {
|
||||
const input = el("input", {
|
||||
className: `m01-logic__input ${className}`,
|
||||
className: `ui-input ui-input--sm m01-logic__input ${className}`,
|
||||
attrs: { type: "text" },
|
||||
});
|
||||
input.value = value === null || value === undefined ? "" : String(value);
|
||||
@@ -176,7 +176,9 @@ function head(ctx: EditContext, set: (p: () => void) => void, rerender: () => vo
|
||||
: el("span", { className: "m01-logic__file", text: ctx.file });
|
||||
const unit = textBox(row.결과단위, (v) => set(() => (row.결과단위 = v)));
|
||||
unit.addEventListener("change", rerender); // 돈 로직 ↔ 돈 아닌 로직 칸이 바뀜
|
||||
const note = el("textarea", { className: "m01-logic__input m01-logic__note" });
|
||||
const note = el("textarea", {
|
||||
className: "ui-input ui-input--sm m01-logic__input m01-logic__note",
|
||||
});
|
||||
note.value = row.비고 ?? "";
|
||||
note.addEventListener("input", () =>
|
||||
set(() => {
|
||||
|
||||
@@ -97,22 +97,11 @@
|
||||
font-size: var(--text-body-sm);
|
||||
}
|
||||
|
||||
/* 겉 = 입력 부품(ui-input--sm) · 여기는 칸 폭만 */
|
||||
.m01-logic__input {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
padding: 3px 6px;
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius-sm);
|
||||
background: var(--color-canvas);
|
||||
color: var(--color-text-body);
|
||||
font: inherit;
|
||||
font-size: var(--text-body-sm);
|
||||
}
|
||||
|
||||
/* 한 줄 칸은 작은 고르기칸과 같은 높이 */
|
||||
input.m01-logic__input {
|
||||
height: var(--control-height-sm);
|
||||
}
|
||||
|
||||
.m01-logic__note {
|
||||
|
||||
Reference in New Issue
Block a user