Commit Graph
11 Commits
Author SHA1 Message Date
ypshimandClaude Haiku 5.5 17b5b24682 feat(core,view): per-row pile counts 열별 본수 (plan C4)
- A 열 is one row across the footing width; each has its own count along the
  length. Default floor((L − 1400) / 2250) + 1 per 열, as in spec §4.6.
- Counts are validated: one per 열, whole numbers 2–30. Spacing below the
  2250 mm minimum is shown as a warning, not refused (the plan's 6본 → 5@1800
  example).
- PierInput gains an optional pileRows; absent means the defaults, so existing
  files and the P1 results are unchanged.
- Change tracking compares arrays by value; 열별 본수 can be reverted and
  copied (copy item off by default).
- The footing card has −/+ per 열 with spacing, total, and the display string.
- Tests: defaults 4열 × 5본 = 20 and the 1단계 text; 6본 → 5@1800; limits;
  model-level 21 piles.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 10:34:39 +09:00
ypshimandClaude Haiku 5.5 5b162c2441 feat(core,view): shape-option rules (plan C5) and pier selection rules (plan C6)
- C5: each member's options come from one table. Only the defaults (the 1단계
  model) are selectable. The others show as disabled chips with 규칙 미정 (Q6).
  The member summary is built from the defaults.
- C6: 전체 선택 acts only on visible, buildable piers; it reads 선택 해제 only
  when all of those are checked. A check survives a change of the type filter.
  The pier list scrolls past 300 px, for 20 piers.
- Tests: defaults are the only choices; unknown options refused; the 20-pier
  mixed list with two failed piers; filter and check persistence.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 10:15:03 +09:00
ypshimandClaude Haiku 5.5 56362570ec feat(view): 형상계획 ② screen skeleton with five members (plan.md C1)
- ① and ② are switched from the stage nav. ② shows the pier list with change
  counts, the five members (교량받침, 코핑, 기둥, 확대기초·말뚝, 지반·지층) with
  a change count each, a member card, and a change list with per-item revert.
- The member card shows 기본 and 선택 summaries separately. Only members with
  existing inputs get fields (코핑 폭·길이, 말뚝 길이); the others show values
  and a note that their inputs come in a later step. Unselected members' inputs
  are not shown.
- The field rows are shared between ① and ②.
- Added a global [hidden] rule so hidden screens stay hidden.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 10:07:34 +09:00
ypshimandClaude Haiku 5.5 f75431d898 feat(view): attribute-copy dialog (시안 ⑥, plan C8)
- 속성 복사… opens the four-step dialog: source (current inputs), items,
  targets (same-type filter on by default), and a preview with changed values
  and skipped items per target. Apply changes only the visible, ticked targets.
- Items that the model does not have yet (기둥, 받침, 배근, 기초 형상) are shown
  as 예정 and disabled. Coping length and pile length are off by default.
- Option: regenerate the targets right after applying (default on); otherwise
  they show as 재생성 필요 through the normal change tracking.
- Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 10:01:18 +09:00
ypshimandClaude Haiku 5.5 fae8d7b9b8 feat(view): reflect 시안 ① main screen and ⑤ save dialog
- Header follows the mockup: dark bar, project line, stage chips (② shows the
  pending change count), save status, 저장 / 엑셀 불러오기 / 프로젝트 열기 and
  the primary 선택 교각 다시 생성 · 변경 n button.
- Left column: pier list with header row, 선택 n기 bulk bar, 입력값 and the
  2단계 input card. The bottom input panel is gone.
- First save opens 시안 ⑤ (project name, bridge, client, author, 좌표계, memo);
  later Ctrl+S / 저장 write the same file, as the spec's B5 requires.
- Project info (client, author, 좌표계, memo) is kept in the project file.
- Style layer uses the mockup's tokens (#18212B header, #1F5FA8 primary,
  #D5DBE2 borders, #E3EDF8 selected row, JetBrains Mono for numbers).
- Not reflected: ② and ③ screens (not built yet), and the mockup's static
  front preview (the app draws the model in 3D). Not verified in a browser.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 09:57:02 +09:00
ypshimandClaude Haiku 5.5 0b62f694c5 feat(core,view): input cards with change tracking (plan B1 · C2)
- Three values per pier: defaults (as imported), input (generated), draft
  (current cards). Overrides = draft vs defaults; pending = draft vs input.
- Editable now: 코핑 폭, 코핑 길이, 말뚝 길이. Changing a card does not touch the
  3D view until 다시 생성; the header and the card show 변경 n.
- Revert puts a field back to its imported default.
- Project files store defaults and draft (optional; v1 files still open).
- Tests: 코핑 폭 3100 → 3300 gives one override and one pending change;
  regenerating clears pending but keeps the override; revert; file round trip.
- Not verified in a browser (no debuggable Chrome in this session).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 09:48:47 +09:00
ypshimandClaude Haiku 5.5 f5303e4c2b feat(view): project save/open, Ctrl+S, save status, IndexedDB auto-backup (plan B2–B5)
- 저장 (Ctrl+S) downloads <교량명>_교각설계.pzr.json; 프로젝트 열기 reads it
  back and regenerates every pier without the source workbook.
- Save status in the header: 저장 전 / 변경 있음 · 미저장 / 저장됨. The
  snapshot excludes the history so a save is not counted as a change.
- Auto-backup to IndexedDB 0.8 s after changes while unsaved; on start a banner
  offers recovery or discard. Storage failures are reported, not fatal.
- beforeunload warns while there are unsaved changes.
- B1 (default-vs-changed tracking) is not added yet: inputs are not editable
  until the 2단계 input cards exist.
- Not verified in a browser (no debuggable Chrome in this session).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-22 09:44:49 +09:00
ypshimandClaude Haiku 5.5 6319cccb8e feat(import): input template download with three sheets (spec 2.3 step 4)
- buildTemplateWorkbook: 교각 · IP · 받침 sheets with the headers the parser
  reads; value cells left empty so no blank-name rows raise E05
- dialog button 입력 템플릿 다운로드 (.xlsx)
- tests: sheet order, parser recognition, write-and-read round trip

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-21 18:14:33 +09:00
ypshimandClaude Haiku 5.5 69922cfa35 feat(ui): align stage-1 screens with the design mockup
- main screen follows 시안 ①: header steps, pier list with type filter and
  multi-select, viewer with 아이소/정면/측면/평면, part toggles in mockup order,
  input panel and result sections
- import moved to a modal dialog following 시안 ④: project name (required),
  file drop and pick, per-sheet recognition with selectable piers, preview of
  pier and bearing tables, glossary of Excel column names
- Esc closes the dialog and focus stays inside it (native dialog)
- 44px touch targets and 2px focus rings; colours from the mockup tokens

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-21 17:49:04 +09:00
ypshimandClaude Haiku 5.5 01d2bf4958 feat(parse): report per-sheet recognition and block error sheets
- parseWorkbook returns a report per sheet (table counts, issues, ok)
- sheets with E-level issues cannot be selected (spec section 2.3)
- pier input carries its source sheet name

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-21 17:43:36 +09:00
ypshimandClaude Haiku 5.5 ad8e437c99 feat(view): add 3D pier viewer and P1 sample page
- three.js scene in the pier frame (pivot at first column centre)
- coping as extruded elevation outline; columns, footings, piles, blinding, bearing blocks and pads
- four view presets, per-part visibility toggles
- workbook load (sample or file), result table, issue list and undetermined defaults
- frame orientation test and bounding-box test

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-21 17:28:02 +09:00