@wasao/kagemusha 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,398 @@
1
+ "use strict";
2
+ // This script is injected into the target page to provide annotation editing.
3
+ // It adds a toolbar and SVG overlay layer on top of the actual page.
4
+ // This is a plain script (not a module) — no imports/exports.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // Type helpers for window properties set by edit.ts
7
+ const _win = window;
8
+ const TOOLBAR_HEIGHT = 48;
9
+ const svgNS = "http://www.w3.org/2000/svg";
10
+ let tool = "rect";
11
+ let annotations = [];
12
+ let selectedId = null;
13
+ let dragState = null;
14
+ let nextId = 1;
15
+ // dpr and save function are set by edit.ts via page.evaluate / page.exposeFunction
16
+ // --- TOOLBAR ---
17
+ const toolbar = document.createElement("div");
18
+ toolbar.id = "kagemusha-toolbar";
19
+ toolbar.innerHTML = `
20
+ <style>
21
+ #kagemusha-toolbar {
22
+ position: fixed; top: 0; left: 0; right: 0; z-index: 999999;
23
+ background: #16213e; padding: 8px 16px; display: flex; align-items: center; gap: 12px;
24
+ box-shadow: 0 2px 8px rgba(0,0,0,0.3); font-family: -apple-system, sans-serif;
25
+ }
26
+ #kagemusha-toolbar button {
27
+ padding: 6px 14px; border: 1px solid #444; border-radius: 6px;
28
+ background: #1a1a2e; color: #fff; font-size: 13px; cursor: pointer;
29
+ }
30
+ #kagemusha-toolbar button:hover { background: #2a2a4e; }
31
+ #kagemusha-toolbar button.active { background: #6366f1; border-color: #6366f1; }
32
+ #kagemusha-toolbar .sep { width: 1px; height: 24px; background: #444; }
33
+ #kagemusha-toolbar .title { color: #888; font-size: 13px; }
34
+ #kagemusha-toolbar .save-btn { background: #22c55e; border-color: #22c55e; font-weight: 600; margin-left: auto; }
35
+ #kagemusha-toolbar .save-btn:hover { background: #16a34a; }
36
+ #kagemusha-svg-layer {
37
+ position: absolute; top: 0; left: 0; width: 100%;
38
+ z-index: 999998; pointer-events: none;
39
+ }
40
+ #kagemusha-svg-layer.drawing { pointer-events: auto; cursor: crosshair; }
41
+ #kagemusha-svg-layer .annotation { pointer-events: auto; cursor: move; }
42
+ #kagemusha-svg-layer .annotation.selected { filter: drop-shadow(0 0 3px #6366f1); }
43
+ .kagemusha-hint {
44
+ position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%);
45
+ color: #fff; background: rgba(0,0,0,0.7); padding: 6px 16px; border-radius: 8px;
46
+ font-size: 12px; z-index: 999999; font-family: -apple-system, sans-serif;
47
+ }
48
+ </style>
49
+ <span class="title">🥷 Annotation Editor</span>
50
+ <button id="kg-tool-rect" class="active">▭ Rectangle</button>
51
+ <button id="kg-tool-arrow">→ Arrow</button>
52
+ <button id="kg-tool-label">T Label</button>
53
+ <div class="sep"></div>
54
+ <button id="kg-delete">🗑 Delete</button>
55
+ <button class="save-btn" id="kg-save">💾 Save</button>
56
+ `;
57
+ document.body.appendChild(toolbar);
58
+ document.body.style.paddingTop = `${TOOLBAR_HEIGHT}px`;
59
+ // Hint
60
+ const hint = document.createElement("div");
61
+ hint.className = "kagemusha-hint";
62
+ hint.textContent = "Click and drag to add annotations. Click to select. Press Delete to remove.";
63
+ document.body.appendChild(hint);
64
+ // --- SVG LAYER ---
65
+ const svg = document.createElementNS(svgNS, "svg");
66
+ svg.id = "kagemusha-svg-layer";
67
+ svg.classList.add("drawing");
68
+ document.body.appendChild(svg);
69
+ const updateSvgSize = () => {
70
+ svg.setAttribute("width", String(window.innerWidth));
71
+ svg.setAttribute("height", String(document.documentElement.scrollHeight));
72
+ };
73
+ updateSvgSize();
74
+ window.addEventListener("resize", updateSvgSize);
75
+ const defs = document.createElementNS(svgNS, "defs");
76
+ defs.innerHTML = '<marker id="kg-arrowhead" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto" fill="#FF0000"><polygon points="0 0, 10 3.5, 0 7"/></marker>';
77
+ svg.appendChild(defs);
78
+ // --- HELPERS ---
79
+ const getPos = (e) => ({ x: e.pageX, y: e.pageY });
80
+ const deselectAll = () => {
81
+ selectedId = null;
82
+ svg.querySelectorAll(".annotation").forEach((el) => el.classList.remove("selected"));
83
+ };
84
+ const selectEl = (el) => {
85
+ deselectAll();
86
+ selectedId = el.dataset.id ?? null;
87
+ el.classList.add("selected");
88
+ };
89
+ const deleteSelected = () => {
90
+ if (!selectedId)
91
+ return;
92
+ const el = svg.querySelector(`[data-id="${selectedId}"]`);
93
+ if (el)
94
+ el.remove();
95
+ annotations = annotations.filter((a) => a.id !== selectedId);
96
+ selectedId = null;
97
+ };
98
+ const startMove = (e, id) => {
99
+ e.stopPropagation();
100
+ const el = svg.querySelector(`[data-id="${id}"]`);
101
+ if (!el)
102
+ return;
103
+ selectEl(el);
104
+ const p = getPos(e);
105
+ dragState = { type: "move", id, el: el, lastX: p.x, lastY: p.y };
106
+ };
107
+ const measureTextWidth = (text, fontSize) => {
108
+ const tmp = document.createElementNS(svgNS, "text");
109
+ tmp.setAttribute("font-size", String(fontSize));
110
+ tmp.setAttribute("font-family", "-apple-system, sans-serif");
111
+ tmp.textContent = text;
112
+ svg.appendChild(tmp);
113
+ const width = tmp.getBBox().width;
114
+ tmp.remove();
115
+ return width;
116
+ };
117
+ const createLabelGroup = (id, x, y, text, fontSize = 14) => {
118
+ const g = document.createElementNS(svgNS, "g");
119
+ g.classList.add("annotation");
120
+ g.dataset.id = id;
121
+ const bg = document.createElementNS(svgNS, "rect");
122
+ const txt = document.createElementNS(svgNS, "text");
123
+ txt.textContent = text;
124
+ txt.setAttribute("x", String(x + 6));
125
+ txt.setAttribute("y", String(y + 16));
126
+ txt.setAttribute("fill", "#FF0000");
127
+ txt.setAttribute("font-size", String(fontSize));
128
+ txt.setAttribute("font-family", "-apple-system, sans-serif");
129
+ const tw = measureTextWidth(text, fontSize) + 12;
130
+ bg.setAttribute("x", String(x));
131
+ bg.setAttribute("y", String(y));
132
+ bg.setAttribute("width", String(tw));
133
+ bg.setAttribute("height", "24");
134
+ bg.setAttribute("fill", "#FFFFFF");
135
+ bg.setAttribute("rx", "4");
136
+ g.appendChild(bg);
137
+ g.appendChild(txt);
138
+ return g;
139
+ };
140
+ // --- TOOLS ---
141
+ const setTool = (t) => {
142
+ tool = t;
143
+ document.querySelectorAll("#kagemusha-toolbar button").forEach((b) => b.classList.remove("active"));
144
+ document.getElementById(`kg-tool-${t}`)?.classList.add("active");
145
+ svg.classList.toggle("drawing", true);
146
+ deselectAll();
147
+ };
148
+ document.getElementById("kg-tool-rect").addEventListener("click", () => setTool("rect"));
149
+ document.getElementById("kg-tool-arrow").addEventListener("click", () => setTool("arrow"));
150
+ document.getElementById("kg-tool-label").addEventListener("click", () => setTool("label"));
151
+ document.getElementById("kg-delete").addEventListener("click", deleteSelected);
152
+ document.getElementById("kg-save").addEventListener("click", save);
153
+ document.addEventListener("keydown", (e) => {
154
+ if (e.key === "Delete" || e.key === "Backspace") {
155
+ if (document.activeElement?.tagName === "INPUT")
156
+ return;
157
+ deleteSelected();
158
+ }
159
+ });
160
+ // --- MOUSE: CREATE ---
161
+ svg.addEventListener("mousedown", (e) => {
162
+ if (e.target.closest(".annotation"))
163
+ return;
164
+ const p = getPos(e);
165
+ deselectAll();
166
+ if (tool === "rect") {
167
+ const id = `a${nextId++}`;
168
+ const rect = document.createElementNS(svgNS, "rect");
169
+ rect.setAttribute("x", String(p.x));
170
+ rect.setAttribute("y", String(p.y));
171
+ rect.setAttribute("width", "0");
172
+ rect.setAttribute("height", "0");
173
+ rect.setAttribute("fill", "none");
174
+ rect.setAttribute("stroke", "#FF0000");
175
+ rect.setAttribute("stroke-width", "3");
176
+ rect.setAttribute("rx", "4");
177
+ rect.classList.add("annotation");
178
+ rect.dataset.id = id;
179
+ svg.appendChild(rect);
180
+ dragState = { type: "create-rect", id, el: rect, sx: p.x, sy: p.y };
181
+ }
182
+ else if (tool === "arrow") {
183
+ const id = `a${nextId++}`;
184
+ const line = document.createElementNS(svgNS, "line");
185
+ line.setAttribute("x1", String(p.x));
186
+ line.setAttribute("y1", String(p.y));
187
+ line.setAttribute("x2", String(p.x));
188
+ line.setAttribute("y2", String(p.y));
189
+ line.setAttribute("stroke", "#FF0000");
190
+ line.setAttribute("stroke-width", "3");
191
+ line.setAttribute("marker-end", "url(#kg-arrowhead)");
192
+ line.classList.add("annotation");
193
+ line.dataset.id = id;
194
+ svg.appendChild(line);
195
+ dragState = { type: "create-arrow", id, el: line, sx: p.x, sy: p.y };
196
+ }
197
+ else if (tool === "label") {
198
+ const id = `a${nextId++}`;
199
+ const input = document.createElement("input");
200
+ input.type = "text";
201
+ input.value = "";
202
+ input.placeholder = "Type label...";
203
+ input.style.cssText = "position:fixed;z-index:9999999;padding:4px 8px;background:#fff;border:none;border-radius:4px;color:#FF0000;font-size:14px;font-family:-apple-system,sans-serif;outline:2px solid #6366f1;min-width:80px;box-shadow:0 2px 8px rgba(0,0,0,0.2);";
204
+ input.style.left = `${e.clientX}px`;
205
+ input.style.top = `${e.clientY}px`;
206
+ document.body.appendChild(input);
207
+ svg.classList.remove("drawing");
208
+ setTimeout(() => input.focus(), 50);
209
+ let labelFinished = false;
210
+ const finishLabel = () => {
211
+ if (labelFinished)
212
+ return;
213
+ labelFinished = true;
214
+ const text = input.value.trim();
215
+ input.remove();
216
+ svg.classList.add("drawing");
217
+ if (!text)
218
+ return;
219
+ const g = createLabelGroup(id, p.x, p.y, text);
220
+ svg.appendChild(g);
221
+ annotations.push({ id, type: "label", x: p.x, y: p.y, text });
222
+ selectEl(g);
223
+ g.addEventListener("mousedown", (ev) => startMove(ev, id));
224
+ };
225
+ input.addEventListener("keydown", (ev) => {
226
+ if (ev.key === "Enter")
227
+ finishLabel();
228
+ if (ev.key === "Escape") {
229
+ labelFinished = true;
230
+ input.remove();
231
+ svg.classList.add("drawing");
232
+ }
233
+ });
234
+ input.addEventListener("blur", finishLabel);
235
+ }
236
+ });
237
+ // --- MOUSE: DRAG ---
238
+ document.addEventListener("mousemove", (e) => {
239
+ if (!dragState)
240
+ return;
241
+ const p = getPos(e);
242
+ if (dragState.type === "create-rect") {
243
+ dragState.el.setAttribute("x", String(Math.min(dragState.sx, p.x)));
244
+ dragState.el.setAttribute("y", String(Math.min(dragState.sy, p.y)));
245
+ dragState.el.setAttribute("width", String(Math.abs(p.x - dragState.sx)));
246
+ dragState.el.setAttribute("height", String(Math.abs(p.y - dragState.sy)));
247
+ }
248
+ else if (dragState.type === "create-arrow") {
249
+ dragState.el.setAttribute("x2", String(p.x));
250
+ dragState.el.setAttribute("y2", String(p.y));
251
+ }
252
+ else if (dragState.type === "move") {
253
+ const a = annotations.find((a) => a.id === dragState.id);
254
+ if (!a)
255
+ return;
256
+ const dx = p.x - dragState.lastX;
257
+ const dy = p.y - dragState.lastY;
258
+ dragState.lastX = p.x;
259
+ dragState.lastY = p.y;
260
+ if (a.type === "rect") {
261
+ a.x = (a.x ?? 0) + dx;
262
+ a.y = (a.y ?? 0) + dy;
263
+ dragState.el.setAttribute("x", String(a.x));
264
+ dragState.el.setAttribute("y", String(a.y));
265
+ }
266
+ else if (a.type === "arrow") {
267
+ a.fromX = (a.fromX ?? 0) + dx;
268
+ a.fromY = (a.fromY ?? 0) + dy;
269
+ a.toX = (a.toX ?? 0) + dx;
270
+ a.toY = (a.toY ?? 0) + dy;
271
+ dragState.el.setAttribute("x1", String(a.fromX));
272
+ dragState.el.setAttribute("y1", String(a.fromY));
273
+ dragState.el.setAttribute("x2", String(a.toX));
274
+ dragState.el.setAttribute("y2", String(a.toY));
275
+ }
276
+ else if (a.type === "label") {
277
+ a.x = (a.x ?? 0) + dx;
278
+ a.y = (a.y ?? 0) + dy;
279
+ const bg = dragState.el.querySelector("rect");
280
+ const txt = dragState.el.querySelector("text");
281
+ bg?.setAttribute("x", String(a.x));
282
+ bg?.setAttribute("y", String(a.y));
283
+ txt?.setAttribute("x", String(a.x + 6));
284
+ txt?.setAttribute("y", String(a.y + 16));
285
+ }
286
+ }
287
+ });
288
+ // --- MOUSE: UP ---
289
+ document.addEventListener("mouseup", (e) => {
290
+ if (!dragState)
291
+ return;
292
+ const p = getPos(e);
293
+ if (dragState.type === "create-rect") {
294
+ const w = Math.abs(p.x - dragState.sx);
295
+ const h = Math.abs(p.y - dragState.sy);
296
+ if (w < 5 && h < 5) {
297
+ dragState.el.remove();
298
+ }
299
+ else {
300
+ const a = { id: dragState.id, type: "rect", x: Math.min(dragState.sx, p.x), y: Math.min(dragState.sy, p.y), width: w, height: h };
301
+ annotations.push(a);
302
+ selectEl(dragState.el);
303
+ const capturedId = dragState.id;
304
+ dragState.el.addEventListener("mousedown", (ev) => startMove(ev, capturedId));
305
+ }
306
+ }
307
+ else if (dragState.type === "create-arrow") {
308
+ const dist = Math.hypot(p.x - dragState.sx, p.y - dragState.sy);
309
+ if (dist < 5) {
310
+ dragState.el.remove();
311
+ }
312
+ else {
313
+ const a = { id: dragState.id, type: "arrow", fromX: dragState.sx, fromY: dragState.sy, toX: p.x, toY: p.y };
314
+ annotations.push(a);
315
+ selectEl(dragState.el);
316
+ const capturedId = dragState.id;
317
+ dragState.el.addEventListener("mousedown", (ev) => startMove(ev, capturedId));
318
+ }
319
+ }
320
+ dragState = null;
321
+ });
322
+ // --- LOAD EXISTING ---
323
+ _win.__kagemusha_loadAnnotations = (decorations) => {
324
+ const dpr = _win.__kagemusha_dpr || 1;
325
+ for (const d of decorations) {
326
+ const id = `a${nextId++}`;
327
+ if (d.type === "rect" && d.target) {
328
+ const rx = d.target.x / dpr;
329
+ const ry = d.target.y / dpr + TOOLBAR_HEIGHT;
330
+ const rw = d.target.width / dpr;
331
+ const rh = d.target.height / dpr;
332
+ const rect = document.createElementNS(svgNS, "rect");
333
+ rect.setAttribute("x", String(rx));
334
+ rect.setAttribute("y", String(ry));
335
+ rect.setAttribute("width", String(rw));
336
+ rect.setAttribute("height", String(rh));
337
+ rect.setAttribute("fill", "none");
338
+ rect.setAttribute("stroke", d.style?.color ?? "#FF0000");
339
+ rect.setAttribute("stroke-width", "3");
340
+ rect.setAttribute("rx", "4");
341
+ rect.classList.add("annotation");
342
+ rect.dataset.id = id;
343
+ svg.appendChild(rect);
344
+ annotations.push({ id, type: "rect", x: rx, y: ry, width: rw, height: rh });
345
+ rect.addEventListener("mousedown", (ev) => startMove(ev, id));
346
+ }
347
+ else if (d.type === "arrow" && d.from && d.to) {
348
+ const ax1 = d.from.x / dpr;
349
+ const ay1 = d.from.y / dpr + TOOLBAR_HEIGHT;
350
+ const ax2 = d.to.x / dpr;
351
+ const ay2 = d.to.y / dpr + TOOLBAR_HEIGHT;
352
+ const line = document.createElementNS(svgNS, "line");
353
+ line.setAttribute("x1", String(ax1));
354
+ line.setAttribute("y1", String(ay1));
355
+ line.setAttribute("x2", String(ax2));
356
+ line.setAttribute("y2", String(ay2));
357
+ line.setAttribute("stroke", d.style?.color ?? "#FF0000");
358
+ line.setAttribute("stroke-width", "3");
359
+ line.setAttribute("marker-end", "url(#kg-arrowhead)");
360
+ line.classList.add("annotation");
361
+ line.dataset.id = id;
362
+ svg.appendChild(line);
363
+ annotations.push({ id, type: "arrow", fromX: ax1, fromY: ay1, toX: ax2, toY: ay2 });
364
+ line.addEventListener("mousedown", (ev) => startMove(ev, id));
365
+ }
366
+ else if (d.type === "label" && d.position) {
367
+ const lx = d.position.x / dpr;
368
+ const ly = d.position.y / dpr + TOOLBAR_HEIGHT;
369
+ const fontSize = (d.style?.fontSize ?? 14) / dpr;
370
+ const g = createLabelGroup(id, lx, ly, d.text ?? "", fontSize);
371
+ svg.appendChild(g);
372
+ annotations.push({ id, type: "label", x: lx, y: ly, text: d.text });
373
+ g.addEventListener("mousedown", (ev) => startMove(ev, id));
374
+ }
375
+ }
376
+ };
377
+ // --- SAVE ---
378
+ function save() {
379
+ const dpr = _win.__kagemusha_dpr || 1;
380
+ const s = Math.round;
381
+ const decorations = annotations
382
+ .map((a) => {
383
+ if (a.type === "rect") {
384
+ return { type: "rect", target: { x: s(a.x * dpr), y: s((a.y - TOOLBAR_HEIGHT) * dpr), width: s(a.width * dpr), height: s(a.height * dpr) }, style: { color: "#FF0000", strokeWidth: s(3 * dpr) } };
385
+ }
386
+ if (a.type === "arrow") {
387
+ return { type: "arrow", from: { x: s(a.fromX * dpr), y: s((a.fromY - TOOLBAR_HEIGHT) * dpr) }, to: { x: s(a.toX * dpr), y: s((a.toY - TOOLBAR_HEIGHT) * dpr) }, style: { color: "#FF0000", strokeWidth: s(3 * dpr) } };
388
+ }
389
+ if (a.type === "label") {
390
+ return { type: "label", text: a.text, position: { x: s(a.x * dpr), y: s((a.y - TOOLBAR_HEIGHT) * dpr) }, style: { fontSize: s(14 * dpr), color: "#FF0000", background: "#FFFFFF" } };
391
+ }
392
+ return null;
393
+ })
394
+ .filter((d) => d !== null);
395
+ // Call Node.js save function directly via exposeFunction
396
+ _win.__kagemusha_save(JSON.stringify(decorations));
397
+ }
398
+ //# sourceMappingURL=inject-script.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-script.cjs","sourceRoot":"","sources":["../../src/editor/inject-script.cts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inject-script.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-script.d.cts","sourceRoot":"","sources":["../../src/editor/inject-script.cts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inject-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-script.d.ts","sourceRoot":"","sources":["../../src/editor/inject-script.ts"],"names":[],"mappings":""}