feat/modern-editor #11

Merged
tyange merged 2 commits from feat/modern-editor into main 2026-09-09 05:34:31 +00:00
Owner
No description provided.
편집면(격자/흐름)은 그대로 두고 그 주위 크롬을 Reka UI로 교체한다. Reka는
동작·접근성(포커스 트랩, roving focus, ARIA, 스크롤 락, 포털)만 주고 스타일은
기존 시맨틱 토큰으로 그대로 칠한다 — daisyUI를 뺐던 테마 충돌 이유가 headless엔
없다. tyange-cms와 동일한 reka-ui@2.10.4.

- CommandPalette → Dialog + Listbox/ListboxFilter (손으로 만든 포커스·Esc·
  roving focus 배관 제거)
- PreviewOverlay → Dialog (포커스 트랩·스크롤 락·Esc·포털)
- CommandBar → Toolbar + ToolbarToggleGroup(격자/흐름) + Tooltip(테마 버튼)
- OutlineRail → Listbox (화살표로 아웃라인 이동)
- Toast 신규: AppToaster + useToast, 내보내기 성공 시 "SVG/PNG로 저장했어요"
- ThemeToggle.vue 삭제 → useTheme 컴포저블 (CommandBar/Palette 공용)
- EditorView의 Esc 배관 제거 (Dialog가 처리)
- docs: TODO-daisyui.md → ui-primitives.md, editor-shell.md·CLAUDE.md 갱신

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfW22NQxomSVmTAQiQCjQu
refactor: 격자 편집 표면을 SVG 격자 → 표준 textarea로 리셋
All checks were successful
Deploy Palim to AWS (Nginx) / deploy (push) Successful in 2m36s
1f4c0a4450
SVG 격자 + 화면 밖 1px 숨은 textarea + 가상 캐럿(virtualCell/materializeCaret)
으로 직접 만든 1세대 편집 표면은 취약했다(본문 소실, 클릭 시 캐럿 맨 앞으로 튐,
IME 조합 중 자모 탈락). headless UI 라이브러리는 텍스트 편집 프리미티브가 없어
이 부분을 도와줄 수 없다.

- `GridEditor.vue`/`Cell.vue`/`editor.types.ts`/`editor-input-model.md`/
  `korean-ime-bug.md` → `archive/svg-grid-editor/` (복원법 담은 README 포함)
- 새 `GridEditor.vue` = 그냥 `<textarea>`. 캐럿·IME·선택·undo/redo·클립보드
  전부 브라우저 네이티브. `Nanum Gothic Coding` 고정폭 + `white-space:pre` +
  `wrap="off"`로 2D 배치 보존, `word-spacing:0.5em`로 공백=1칸 정렬(한글 기준)
- `focusMode` 제거 (textarea에서 줄 단위 감광 불가) — editorUi·CommandPalette
- `GRID` 상수 SVG용(colSize/rowSize) → textarea용(fontSize/lineHeight/pad)
- `core/`·`GridPreview`·내보내기는 그대로 (text 파싱해서 렌더)
- docs: CLAUDE.md 갱신, 영향받는 doc 4개에 "리셋·갱신 대기" 노트 (전면 갱신은 후속)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfW22NQxomSVmTAQiQCjQu
tyange merged commit 1f4c0a4450 into main 2026-09-09 05:34:31 +00:00
Sign in to join this conversation.
No description provided.