@geometra/renderer-canvas 0.1.0 → 0.2.0

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.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { CanvasRenderer } from './renderer.js';
1
+ export { CanvasRenderer, enableSelection } from './renderer.js';
2
2
  export type { CanvasRendererOptions } from './renderer.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { CanvasRenderer } from './renderer.js';
1
+ export { CanvasRenderer, enableSelection } from './renderer.js';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { ComputedLayout } from 'textura';
2
- import type { Renderer, UIElement } from '@geometra/core';
2
+ import type { Renderer, UIElement, SelectionRange, TextNodeInfo } from '@geometra/core';
3
3
  export interface CanvasRendererOptions {
4
4
  /** Canvas element to render into. */
5
5
  canvas: HTMLCanvasElement;
@@ -7,19 +7,43 @@ export interface CanvasRendererOptions {
7
7
  dpr?: number;
8
8
  /** Background color for the canvas. Default: '#ffffff'. */
9
9
  background?: string;
10
+ /** Highlight color for text selection. Default: 'rgba(59, 130, 246, 0.35)'. */
11
+ selectionColor?: string;
10
12
  }
11
13
  export declare class CanvasRenderer implements Renderer {
12
14
  private ctx;
13
15
  private canvas;
14
16
  private dpr;
15
17
  private background;
18
+ private selectionColor;
19
+ /** Text nodes collected during the last render (for selection hit-testing). */
20
+ textNodes: TextNodeInfo[];
21
+ /** Current text selection range, or null if nothing is selected. */
22
+ selection: SelectionRange | null;
23
+ /** Index used during rendering to assign text node indices. */
24
+ private textNodeIndex;
16
25
  constructor(options: CanvasRendererOptions);
17
26
  render(layout: ComputedLayout, tree: UIElement): void;
27
+ /** Compute character-level positions for a text node. */
28
+ private computeTextNodeLines;
18
29
  private paintNode;
19
30
  private paintBox;
20
31
  private paintText;
32
+ /** Paint selection highlight rectangles for a text node. */
33
+ private paintSelectionHighlight;
21
34
  private wrapText;
22
35
  private roundRect;
36
+ /** Get the currently selected text string, or empty if nothing selected. */
37
+ getSelectedText(): string;
23
38
  destroy(): void;
24
39
  }
40
+ /**
41
+ * Enable text selection on a canvas rendered by a CanvasRenderer.
42
+ *
43
+ * Attaches pointer and keyboard event listeners for click-drag selection
44
+ * and Ctrl/Cmd+C copy. Returns a cleanup function.
45
+ */
46
+ export declare function enableSelection(canvas: HTMLCanvasElement, renderer: CanvasRenderer,
47
+ /** Called after selection changes so you can re-render. */
48
+ onSelectionChange?: () => void): () => void;
25
49
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA2B,MAAM,gBAAgB,CAAA;AAElF,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,MAAM,EAAE,iBAAiB,CAAA;IACzB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,UAAU,CAAQ;gBAEd,OAAO,EAAE,qBAAqB;IAU1C,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAoBrD,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,SAAS;IA8BjB,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,SAAS;IAejB,OAAO,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAA2B,cAAc,EAAE,YAAY,EAAgB,MAAM,gBAAgB,CAAA;AAG9H,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,MAAM,EAAE,iBAAiB,CAAA;IACzB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAAQ;IAE9B,+EAA+E;IAC/E,SAAS,EAAE,YAAY,EAAE,CAAK;IAC9B,oEAAoE;IACpE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAO;IAEvC,+DAA+D;IAC/D,OAAO,CAAC,aAAa,CAAI;gBAEb,OAAO,EAAE,qBAAqB;IAW1C,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IA+BrD,yDAAyD;IACzD,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,SAAS;IA0CjB,4DAA4D;IAC5D,OAAO,CAAC,uBAAuB;IA8D/B,OAAO,CAAC,QAAQ;IAwBhB,OAAO,CAAC,SAAS;IAejB,4EAA4E;IAC5E,eAAe,IAAI,MAAM;IAKzB,OAAO,IAAI,IAAI;CAGhB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,cAAc;AACxB,2DAA2D;AAC3D,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAC7B,MAAM,IAAI,CAmFZ"}
package/dist/renderer.js CHANGED
@@ -1,12 +1,21 @@
1
+ import { collectTextNodes, getSelectedText, hitTestText } from '@geometra/core';
1
2
  export class CanvasRenderer {
2
3
  ctx;
3
4
  canvas;
4
5
  dpr;
5
6
  background;
7
+ selectionColor;
8
+ /** Text nodes collected during the last render (for selection hit-testing). */
9
+ textNodes = [];
10
+ /** Current text selection range, or null if nothing is selected. */
11
+ selection = null;
12
+ /** Index used during rendering to assign text node indices. */
13
+ textNodeIndex = 0;
6
14
  constructor(options) {
7
15
  this.canvas = options.canvas;
8
16
  this.dpr = options.dpr ?? window.devicePixelRatio;
9
17
  this.background = options.background ?? '#ffffff';
18
+ this.selectionColor = options.selectionColor ?? 'rgba(59, 130, 246, 0.35)';
10
19
  const ctx = this.canvas.getContext('2d');
11
20
  if (!ctx)
12
21
  throw new Error('Could not get 2d context');
@@ -23,10 +32,42 @@ export class CanvasRenderer {
23
32
  // Clear
24
33
  ctx.fillStyle = this.background;
25
34
  ctx.fillRect(0, 0, layout.width, layout.height);
35
+ // Collect selectable text nodes
36
+ this.textNodes = [];
37
+ collectTextNodes(tree, layout, 0, 0, this.textNodes);
38
+ // Populate line info for each text node (needs ctx.measureText)
39
+ for (const node of this.textNodes) {
40
+ this.computeTextNodeLines(node);
41
+ }
42
+ // Paint tree
43
+ this.textNodeIndex = 0;
26
44
  this.paintNode(tree, layout, 0, 0);
27
45
  // Reset transform for next frame
28
46
  ctx.setTransform(1, 0, 0, 1, 0, 0);
29
47
  }
48
+ /** Compute character-level positions for a text node. */
49
+ computeTextNodeLines(node) {
50
+ const { ctx } = this;
51
+ ctx.font = node.element.props.font;
52
+ const { lineHeight } = node.element.props;
53
+ const wrappedLines = this.wrapText(node.element.props.text, node.width);
54
+ const lines = [];
55
+ for (let i = 0; i < wrappedLines.length; i++) {
56
+ const lineText = wrappedLines[i];
57
+ const lineY = node.y + i * lineHeight;
58
+ const charOffsets = [];
59
+ const charWidths = [];
60
+ let xOffset = 0;
61
+ for (let c = 0; c < lineText.length; c++) {
62
+ charOffsets.push(xOffset);
63
+ const w = ctx.measureText(lineText[c]).width;
64
+ charWidths.push(w);
65
+ xOffset += w;
66
+ }
67
+ lines.push({ text: lineText, x: node.x, y: lineY, charOffsets, charWidths });
68
+ }
69
+ node.lines = lines;
70
+ }
30
71
  paintNode(element, layout, offsetX, offsetY) {
31
72
  const x = offsetX + layout.x;
32
73
  const y = offsetY + layout.y;
@@ -75,7 +116,7 @@ export class CanvasRenderer {
75
116
  }
76
117
  paintText(element, x, y, _width, _height) {
77
118
  const { ctx } = this;
78
- const { text, font, color, backgroundColor, lineHeight, opacity } = element.props;
119
+ const { text, font, color, backgroundColor, lineHeight, opacity, selectable } = element.props;
79
120
  if (opacity !== undefined)
80
121
  ctx.globalAlpha = opacity;
81
122
  if (backgroundColor) {
@@ -85,14 +126,77 @@ export class CanvasRenderer {
85
126
  ctx.font = font;
86
127
  ctx.fillStyle = color ?? '#000000';
87
128
  ctx.textBaseline = 'top';
88
- // Simple multi-line: split on newlines, wrap within width
89
129
  const lines = this.wrapText(text, _width);
130
+ // If this is a selectable text node, paint selection highlights
131
+ if (selectable && this.selection) {
132
+ const nodeInfo = this.textNodes[this.textNodeIndex];
133
+ if (nodeInfo) {
134
+ this.paintSelectionHighlight(nodeInfo, lines, lineHeight);
135
+ }
136
+ }
90
137
  for (let i = 0; i < lines.length; i++) {
91
138
  ctx.fillText(lines[i], x, y + i * lineHeight);
92
139
  }
140
+ if (selectable) {
141
+ this.textNodeIndex++;
142
+ }
93
143
  if (opacity !== undefined)
94
144
  ctx.globalAlpha = 1;
95
145
  }
146
+ /** Paint selection highlight rectangles for a text node. */
147
+ paintSelectionHighlight(node, _lines, lineHeight) {
148
+ const sel = this.selection;
149
+ if (!sel)
150
+ return;
151
+ // Normalize selection direction
152
+ let startNode = sel.anchorNode;
153
+ let startOffset = sel.anchorOffset;
154
+ let endNode = sel.focusNode;
155
+ let endOffset = sel.focusOffset;
156
+ if (startNode > endNode || (startNode === endNode && startOffset > endOffset)) {
157
+ ;
158
+ [startNode, endNode] = [endNode, startNode];
159
+ [startOffset, endOffset] = [endOffset, startOffset];
160
+ }
161
+ // Check if this node is in the selection range
162
+ if (node.index < startNode || node.index > endNode)
163
+ return;
164
+ const { ctx } = this;
165
+ ctx.fillStyle = this.selectionColor;
166
+ let globalCharOffset = 0;
167
+ for (const line of node.lines) {
168
+ const lineStart = globalCharOffset;
169
+ const lineEnd = globalCharOffset + line.text.length;
170
+ // Determine the selected portion of this line
171
+ let selStart;
172
+ let selEnd;
173
+ if (node.index === startNode && node.index === endNode) {
174
+ selStart = Math.max(startOffset, lineStart) - lineStart;
175
+ selEnd = Math.min(endOffset, lineEnd) - lineStart;
176
+ }
177
+ else if (node.index === startNode) {
178
+ selStart = Math.max(startOffset, lineStart) - lineStart;
179
+ selEnd = line.text.length;
180
+ }
181
+ else if (node.index === endNode) {
182
+ selStart = 0;
183
+ selEnd = Math.min(endOffset, lineEnd) - lineStart;
184
+ }
185
+ else {
186
+ selStart = 0;
187
+ selEnd = line.text.length;
188
+ }
189
+ if (selStart < selEnd && selStart < line.charOffsets.length) {
190
+ const rectX = line.x + (line.charOffsets[selStart] ?? 0);
191
+ const endCharOffset = selEnd < line.charOffsets.length
192
+ ? line.charOffsets[selEnd]
193
+ : (line.charOffsets[line.charOffsets.length - 1] ?? 0) + (line.charWidths[line.charWidths.length - 1] ?? 0);
194
+ const rectWidth = endCharOffset - (line.charOffsets[selStart] ?? 0);
195
+ ctx.fillRect(rectX, line.y, rectWidth, lineHeight);
196
+ }
197
+ globalCharOffset = lineEnd;
198
+ }
199
+ }
96
200
  wrapText(text, maxWidth) {
97
201
  const { ctx } = this;
98
202
  const lines = [];
@@ -128,8 +232,97 @@ export class CanvasRenderer {
128
232
  ctx.quadraticCurveTo(x, y, x + r, y);
129
233
  ctx.closePath();
130
234
  }
235
+ /** Get the currently selected text string, or empty if nothing selected. */
236
+ getSelectedText() {
237
+ if (!this.selection || this.textNodes.length === 0)
238
+ return '';
239
+ return getSelectedText(this.selection, this.textNodes);
240
+ }
131
241
  destroy() {
132
242
  // Nothing to clean up for canvas
133
243
  }
134
244
  }
245
+ /**
246
+ * Enable text selection on a canvas rendered by a CanvasRenderer.
247
+ *
248
+ * Attaches pointer and keyboard event listeners for click-drag selection
249
+ * and Ctrl/Cmd+C copy. Returns a cleanup function.
250
+ */
251
+ export function enableSelection(canvas, renderer,
252
+ /** Called after selection changes so you can re-render. */
253
+ onSelectionChange) {
254
+ let isSelecting = false;
255
+ function getCanvasPos(e) {
256
+ const rect = canvas.getBoundingClientRect();
257
+ return { x: e.clientX - rect.left, y: e.clientY - rect.top };
258
+ }
259
+ function onPointerDown(e) {
260
+ const pos = getCanvasPos(e);
261
+ const hit = hitTestText(renderer.textNodes, pos.x, pos.y);
262
+ if (!hit) {
263
+ // Clear selection if clicking outside text
264
+ if (renderer.selection) {
265
+ renderer.selection = null;
266
+ onSelectionChange?.();
267
+ }
268
+ return;
269
+ }
270
+ isSelecting = true;
271
+ renderer.selection = {
272
+ anchorNode: hit.nodeIndex,
273
+ anchorOffset: hit.charOffset,
274
+ focusNode: hit.nodeIndex,
275
+ focusOffset: hit.charOffset,
276
+ };
277
+ canvas.setPointerCapture(e.pointerId);
278
+ onSelectionChange?.();
279
+ }
280
+ function onPointerMove(e) {
281
+ if (!isSelecting || !renderer.selection)
282
+ return;
283
+ const pos = getCanvasPos(e);
284
+ const hit = hitTestText(renderer.textNodes, pos.x, pos.y);
285
+ if (hit) {
286
+ renderer.selection.focusNode = hit.nodeIndex;
287
+ renderer.selection.focusOffset = hit.charOffset;
288
+ onSelectionChange?.();
289
+ }
290
+ }
291
+ function onPointerUp(_e) {
292
+ isSelecting = false;
293
+ }
294
+ function onKeyDown(e) {
295
+ if ((e.metaKey || e.ctrlKey) && e.key === 'c') {
296
+ const selectedText = renderer.getSelectedText();
297
+ if (selectedText) {
298
+ navigator.clipboard.writeText(selectedText);
299
+ e.preventDefault();
300
+ }
301
+ }
302
+ }
303
+ // Use cursor to indicate selectable area
304
+ function onMouseMove(e) {
305
+ if (isSelecting)
306
+ return;
307
+ const pos = getCanvasPos(e);
308
+ const hit = hitTestText(renderer.textNodes, pos.x, pos.y);
309
+ canvas.style.cursor = hit ? 'text' : 'default';
310
+ }
311
+ canvas.addEventListener('pointerdown', onPointerDown);
312
+ canvas.addEventListener('pointermove', onPointerMove);
313
+ canvas.addEventListener('pointerup', onPointerUp);
314
+ canvas.addEventListener('mousemove', onMouseMove);
315
+ document.addEventListener('keydown', onKeyDown);
316
+ // Make canvas focusable for keyboard events
317
+ if (!canvas.hasAttribute('tabindex')) {
318
+ canvas.setAttribute('tabindex', '0');
319
+ }
320
+ return () => {
321
+ canvas.removeEventListener('pointerdown', onPointerDown);
322
+ canvas.removeEventListener('pointermove', onPointerMove);
323
+ canvas.removeEventListener('pointerup', onPointerUp);
324
+ canvas.removeEventListener('mousemove', onMouseMove);
325
+ document.removeEventListener('keydown', onKeyDown);
326
+ };
327
+ }
135
328
  //# sourceMappingURL=renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,22 @@
1
1
  {
2
2
  "name": "@geometra/renderer-canvas",
3
- "version": "0.1.0",
4
- "description": "Canvas2D renderer for Textura framework",
3
+ "version": "0.2.0",
4
+ "description": "Canvas2D renderer for Geometra — the singularity frontend framework",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/razroo/textrura-framework",
9
+ "url": "https://github.com/razroo/geometra",
10
10
  "directory": "packages/renderer-canvas"
11
11
  },
12
- "homepage": "https://razroo.github.io/textrura-framework",
12
+ "homepage": "https://razroo.github.io/geometra",
13
13
  "keywords": [
14
- "textura",
14
+ "geometra",
15
+ "singularity",
15
16
  "renderer",
16
17
  "canvas",
17
- "dom-free"
18
+ "dom-free",
19
+ "ai-native"
18
20
  ],
19
21
  "main": "./dist/index.js",
20
22
  "types": "./dist/index.d.ts",
@@ -32,6 +34,6 @@
32
34
  "check": "tsc --noEmit"
33
35
  },
34
36
  "dependencies": {
35
- "@geometra/core": "^0.1.0"
37
+ "@geometra/core": "^0.2.0"
36
38
  }
37
39
  }