Skip to content

zero-width widget·placeholder cursor side contract 설계 #88

Description

@developer-1px

배경

#11 감사 문서는 현재 editor에 ProseMirror식 widget/decoration registry를 추가하지 않는다고 결론냈다. 다만 placeholder, comment marker, inline menu anchor 같은 zero-width widget이 필요해지는 순간에는 cursor side, event ownership, selection ownership, destroy cleanup 계약이 먼저 필요하다.

근거 문서: docs/editor-decoration-boundary-composition-audit.md

설계할 것

  • widget identity: role + anchor position + stable id
  • cursor side: before/after, collapsed movement, shift-selection 확장 규칙
  • event ownership: stopEvent equivalent와 text input/composition owner 분리
  • selection ownership: widget 내부 selection을 outer canonical selection으로 읽을지 여부
  • mutation ownership: document content mutation과 widget chrome mutation 분리
  • destroy cleanup: listener/observer/timer/subscription cleanup

완료 기준

  • public/internal 어느 surface에 둘지 결정한다.
  • widget DOM을 .text-block child list 안에 넣어도 되는 조건과 금지 조건을 문서화한다.
  • 최소 fixture 목록을 작성한다. 실제 producer 구현은 이 이슈 범위가 아니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    DOMDOM 경계와 브라우저 API 조사contenteditableBrowser contenteditable behavior and failures선택selection, caret, range, geometry 동작아키텍처모듈 경계, public API, internal 구조

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions