openpencil/tests/e2e
Danila Poyarkov 6193b6da7e
feat(code): add live JSX and HTML/CSS editing (#525)
* feat(code): isolate Design JSX execution

- Transform JSX with the existing Sucrase dependency and execute it in a disposable opaque-origin iframe worker

- Block ambient network capabilities and enforce source, timeout, output, depth, and element limits

- Validate that only bounded plain structured data returns to the application

* feat(code): add editable Design JSX

- Add a lazy CodeMirror editor with JSX syntax support, completion, diagnostics, and bounded scrolling

- Convert validated sandbox output into trusted Design JSX helpers before rendering

- Apply or insert JSX as one undoable graph transaction while preserving dirty drafts

* feat(code): localize JSX editor actions

- Add translated-message fallbacks for editing, applying, inserting, and draft state

- Document the editable JSX workflow in the unreleased changelog

* fix(code): satisfy typed sandbox validation

- Keep the sandbox document terminator literal and preserve optional selection handling under type-aware lint

* test(code): resolve sandbox probes through app aliases

* fix(code): bound sandbox results before cloning

- Enforce string, array, object, depth, element, and byte limits inside the disposable worker

- Retain host-side validation as a second structured-data boundary

* fix(code): keep JSX and HTML editing modes separate

- Switch generated Tailwind output back to OpenPencil JSX before editing

- Close the JSX editor when opening HTML/CSS import and avoid stacking both editors

* feat(code): support authored Design JSX programs

- Allow local constants, function components, arrays, conditionals, fragments, and multiple roots

- Preserve replacement positions for multiple selected roots and reject mixed-parent or locked selections

- Cover multi-root undo, redo, and all-or-nothing rollback

* feat(code): add explicit JSX view mode

- Let authors leave CodeMirror without applying a draft

- Keep the editable surface and HTML/CSS importer mutually exclusive

* feat(code): diagnose unknown JSX vocabulary

- Warn on OpenPencil elements and properties that are absent from the canonical schema

- Surface diagnostics inline through CodeMirror lint markers

* test(code): accept WebKit isolation diagnostics

- Cover the sandbox architecture against Playwright WebKit

- Accept engine-specific wording while preserving the same unavailable-window assertion

* refactor(code): consolidate Design JSX vocabulary

- Drive renderer warnings, completion, and diagnostics from one supported-property schema

- Recognize locally declared components and add focused schema and transform tests

- Replace CodeMirror basicSetup with an explicit feature set and remove the umbrella package

* fix(code): support Design JSX variable helpers

* refactor(code): unify JSX sandbox validation

* fix(code): account for complete sandbox output

* fix(code): preserve locked JSX descendants

* fix(code): preserve JSX sibling order

* fix(code): recompute JSX parent layouts

* feat(code): add live code previews

* test(code): centralize graph assertions

* fix(code): harden live preview sessions

* docs: describe live code editing

* fix(code): update editor accessibility labels

* fix(code): use theme-aware error colors

* fix(dev): stop Vite disconnect error loops

* fix(code): clarify live preview status

* fix(ui): avoid tooltip attribute warnings

* test(code): assert semantic preview status

* refactor(code): remove obsolete editor messages

* fix(code): harden preview concurrency and isolation

* fix(code): cancel stale reset previews
2026-08-15 09:48:42 +03:00
..
app refactor(app): move storage workspace navigation into File menu 2026-08-03 17:42:39 +03:00
canvas feat(canvas): measure distances between layers (#515) 2026-08-14 18:18:55 +03:00
chat feat(ai): support multiple image attachments 2026-08-14 13:44:57 +03:00
clipboard test(tauri): cover textarea clipboard routing 2026-08-12 13:12:51 +03:00
code feat(code): add live JSX and HTML/CSS editing (#525) 2026-08-15 09:48:42 +03:00
color-picker fix(app): restore release validation coverage 2026-07-20 16:26:07 +03:00
components feat: add Figma-style variants and component libraries (#512) 2026-08-14 19:31:41 +03:00
context-menu test(app): stabilize final interaction coverage 2026-07-20 16:34:16 +03:00
design feat(vue): add responsive property grids 2026-07-26 12:42:50 +03:00
dom-css feat(dom-css): map image aspect styles 2026-06-30 10:51:37 +03:00
editor fix(ui): expose auto-layout flow choices 2026-07-26 11:15:57 +03:00
export feat(app): migrate paint effect and export panels 2026-07-14 17:06:28 +03:00
fonts feat(text): surface missing font substitutions 2026-08-13 18:33:10 +03:00
keyboard feat(app): expand Figma menu and selection parity (#459) 2026-08-03 00:23:05 +03:00
layers feat(editor): scale and theme Layers panel 2026-07-17 17:23:16 +03:00
pages Release v0.14.0 2026-08-10 11:40:44 +03:00
panels feat(vue): add responsive property grids 2026-07-26 12:42:50 +03:00
perf test(e2e): hide rulers in visual regression snapshots 2026-05-16 15:36:37 +03:00
properties Release v0.14.0 2026-08-10 11:40:44 +03:00
scene test(e2e): hide rulers in visual regression snapshots 2026-05-16 15:36:37 +03:00
settings fix(settings): separate MCP connections from models (#522) 2026-08-14 20:39:29 +03:00
snap test(e2e): use Playwright test id locators 2026-05-15 12:49:49 +03:00
storage fix(storage): harden workspace previews 2026-08-10 20:02:58 +03:00
stroke-picker feat(app): migrate paint effect and export panels 2026-07-14 17:06:28 +03:00
text test(typography): refresh formatting snapshots 2026-07-20 22:40:43 +03:00
toolbar feat(editor): add Figma-style frame presets (#418) 2026-07-26 00:05:57 +03:00
tools feat(app): migrate position and appearance panels 2026-07-13 14:47:48 +03:00
ui test(ui): keep runtime theme import dependency-safe 2026-07-20 14:07:32 +03:00
variables fix(app): polish variable dialog states 2026-07-18 05:25:40 +03:00
vectorize feat(app): convert image layers to vectors 2026-07-27 16:22:05 +03:00
viewport test(e2e): hide rulers in visual regression snapshots 2026-05-16 15:36:37 +03:00
autosave.spec.ts fix(app): retain recovery after closing unsaved tabs (#505) 2026-08-13 21:39:35 +03:00
components.spec.ts feat(app): finish Design panel migration 2026-07-14 17:40:56 +03:00
fixtures.ts test(app): stabilize final interaction coverage 2026-07-20 16:34:16 +03:00
recovery.spec.ts fix(app): retain recovery after closing unsaved tabs (#505) 2026-08-13 21:39:35 +03:00