Add nodeToXPath() to core — builds a unique XPath selector for any node by walking up the tree and using name predicates (or positional index when names collide among same-type siblings). Properly escapes names containing quotes using XPath concat() or double-quote delimiters. UI: "Copy node ID" and "Copy XPath" items in the canvas right-click "Copy/Paste as" submenu. Also i18n the entire submenu — all labels now use menuMessages with translations for de, es, fr, it, pl, ru, zh-CN. CLI: `open-pencil selection` command (app-mode only) returns selected nodes with id, name, type, size, and xpath. Connects to the running app via the automation WebSocket. Automation: new `selection` RPC handler that returns selected nodes with computed XPath selectors. |
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| tsconfig.json | ||