크라우니 오피스 — 슬라이드 punch #8 블록 삽입(텍스트박스/도형/이미지)
개요
판정표 "도형/이미지 삽입=없음(블록 모델·드롭 핸들러 전무)" 해소. slides[i].blocks[] 배열 신설,
편집 캔버스 위 절대배치 오버레이로 블록 렌더/편집. 앱 번들 index.html 무수정(crownyBridge.js §20 확장).
무엇을 했는지
- 데이터모델: slides[i].blocks[]={type:'text'|'rect'|'ellipse'|'image', x,y,w,h, text?,color?,src?}.
좌표=840×472 논리공간 정수픽셀 → 편집오버레이·슬라이드쇼 둘 다 백분율+cqh 환산(해상도 독립).
- 오버레이: 카드의 마지막 자식으로만 append(punch#1 kids[0..2] 인덱스 불변). 삽입 툴바 4버튼 주입.
- 편집: 텍스트=contentEditable writeback, 도형=단색 div(원=radius 50%), 이미지=data URL/🖼 플레이스홀더.
드래그 이동(임계 클릭양보)·리사이즈 핸들·✕삭제·Delete키·📁파일선택. 경계 클램프.
- 영속/독립: blocks slide별 독립·전환 후 유지·복제(⧉) 시 dup 래핑으로 깊은 복제(참조공유 오염 차단).
- 슬라이드쇼: buildSlideLayer 가 renderBlocksIntoLayer 로 블록 반영.
- 한선 정본: 슬라이드블록.한선 — 데이터모델·타입별기본·경계/이동/크기 클램프·CRUD·독립·직렬화왕복.
관련 파일
- /Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js (§20 installSlideBridge punch #8)
- /Users/ef/crownybrowser/bundle/office/bridge/슬라이드블록.한선 (정본, 자체시험 27/27)
- /Users/ef/crownybrowser/bundle/office/bridge/블록검증.js (CDP 실측 하니스)
- /Users/ef/crownybrowser/spec/슬라이드기능-판정표.md (punch #8 행 갱신)
게이트 결과
- hanseonc_high 슬라이드블록.한선: 27/27 PASS
- ./CrownyAI 3초 생존: ALIVE
- CDP :9333 실측: 33/33 PASS (블록삽입·타입별·편집영속·이동클램프·삭제·슬라이드별독립·복제·슬라이드쇼 + 슬라이드 #1~#7 무회귀)
- 문서 회귀: 27/27 PASS
잔여 이슈
- blocks cdf 직렬화 실저장(현재 스키마 호환·한선 직렬화왕복 검증까지. 저장 배선은 후속)
- 썸네일 미니 블록 반영은 미구현(슬라이드쇼·편집 오버레이는 반영). 후속 여지.