openpencil/tests/engine
sadkodev e91ea4b061
feat(keyboard): add Figma-style opacity shortcuts 1-9/0
Add opacity keyboard shortcuts matching Figma: pressing Digit1-Digit9
sets the selected layers to 10%-90% opacity, and Digit0 sets 100%.

- Add 'selection.setOpacity' EditorCommandId with registry metadata
  (shortcut display '1-9, 0') so it appears in the command cheatsheet
- Implement the command in selection.ts using editor.undo.runBatch +
  updateNodeWithUndo, following the toggleVisibility/setBlendMode pattern
- Add setOpacityTarget closure in useEditorCommands so the external
  keyboard handler can inject the digit value before runCommand
- Add canSetOpacity capability (enabled when there is a selection)
- Add bindOpacityKeys handler in src/app/shell/keyboard/opacity.ts,
  following the nudging.ts external-handler pattern since the opacity
  value comes from event.code and cannot be expressed as a fixed
  keybinding in the registry
- Guard against text editing, number field focus, and modifier keys
- Add i18n label 'setOpacity' across all 8 locales
- Add unit tests for single/multi selection, undo batch, and no-op
2026-07-16 22:12:50 -04:00
..
acp chore: enable stricter oxlint rules 2026-05-18 18:58:30 +03:00
app fix(text): prefer script-specific CJK fallbacks 2026-07-01 22:19:14 +03:00
cli fix(dom-css): compile standalone HTML exports 2026-07-04 19:37:58 +03:00
clipboard fix(export): prevent GUID collisions and file corruption on .fig round-trip (#333) 2026-06-23 18:05:23 +03:00
collab fix(collab): replicate document content to joiners 2026-06-30 11:56:58 +03:00
color test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
dom-css fix(dom-css): compile standalone HTML exports 2026-07-04 19:37:58 +03:00
editor feat(keyboard): add Figma-style opacity shortcuts 1-9/0 2026-07-16 22:12:50 -04:00
figma/api chore(lint): reject broad unknown type assertions 2026-05-25 00:26:02 +03:00
geometry test: import geometry helpers from scene graph package 2026-06-30 10:55:05 +03:00
hit-test
icons test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
io test(fig): cover cross-page clone roundtrip 2026-07-04 12:42:06 +03:00
kiwi refactor(kiwi): consume standalone Kiwi package 2026-06-30 10:49:14 +03:00
layout test(layout): place auto-layout reflow cases by domain 2026-07-02 10:16:08 +03:00
lint test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
mcp fix(mcp): target live automation by document and page 2026-07-03 17:05:04 +03:00
pen
profiler chore: format codebase 2026-05-24 12:15:29 +03:00
random test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
render fix(text): load CJK fallback only when needed 2026-07-01 22:06:19 +03:00
scene-graph fix(text): load CJK fallback only when needed 2026-07-01 22:06:19 +03:00
snap test(engine): move root tests into domains 2026-05-16 12:30:27 +03:00
tauri test: update Tauri open dialog filter expectation 2026-06-30 10:55:05 +03:00
text fix(text): prefer script-specific CJK fallbacks 2026-07-01 22:19:14 +03:00
tools test(tools): create control-case node on the plain graph 2026-06-19 11:47:37 +10:00
vector feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00
vue feat(app): migrate position and appearance panels 2026-07-13 14:47:48 +03:00
perf.bench.ts feat: split SceneGraph and Pen packages 2026-06-30 10:54:32 +03:00