openpencil/apps/web/src/canvas
Fini 1be9ec4a19 fix(canvas): require explicit role:'overlay' for layout-flow escape hatch
isBadgeOverlayNode matched role:'badge'|'pill'|'tag' and pulled those
children out of their parent's auto-layout, rendering them at (0,0) of
the parent and stacking them on top of siblings. But in this repo
badge/pill/tag are inline-component roles (see role-resolver NAME_EXACT_MAP
and strip-redundant-section-fills PROTECTED_ROLES) — they're meant to
flow in layout like any other child.

Rename to isOverlayNode and narrow to role:'overlay'. Add matching
"Layout-escape roles" guidance in role-definitions.md so generation
prompts can reach the new opt-in. Inline roles now flow correctly;
true floating decorations (notification dots, corner ribbons) still
have a dedicated marker.
2026-04-16 21:07:40 +08:00
..
__tests__ V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
skia V0.7.3 (#111) 2026-04-15 22:19:12 +08:00
agent-indicator.ts V0.7.3 (#111) 2026-04-15 22:19:12 +08:00
canvas-constants.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-document-sync.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-layout-engine.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-node-creator.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-sync-lock.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-sync-utils.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
canvas-text-measure.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
font-utils.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
insertion-indicator.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
node-helpers.ts fix(canvas): require explicit role:'overlay' for layout-flow escape hatch 2026-04-16 21:07:40 +08:00
selection-context.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
skia-engine-ref.ts V0.7.0 (#95) 2026-04-11 23:25:13 +08:00
use-layout-indicator.ts V0.5.0 (#67) 2026-03-22 09:44:04 +08:00