render-tag 0.1.35 → 0.1.36

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/lib/shadow.js ADDED
@@ -0,0 +1,190 @@
1
+ /** Also works on drawing-command proxies whose save/restore only snapshots
2
+ * their vector graphics state, not emulated canvas shadow properties. */
3
+ export function withoutCanvasShadow(ctx, paint) {
4
+ const color = ctx.shadowColor;
5
+ ctx.shadowColor = 'transparent';
6
+ try {
7
+ paint(ctx);
8
+ }
9
+ finally {
10
+ ctx.shadowColor = color;
11
+ }
12
+ }
13
+ function requireShadowContext(ctx) {
14
+ if (typeof ctx.getTransform !== 'function' || typeof ctx.setTransform !== 'function' ||
15
+ typeof ctx.drawImage !== 'function') {
16
+ throw new Error('render-tag: shadows require a Canvas 2D context with getTransform, setTransform and drawImage. For vector adapters, set renderShadows: false and paint shadows separately.');
17
+ }
18
+ }
19
+ export function unionBounds(a, b) {
20
+ const x = Math.min(a.x, b.x), y = Math.min(a.y, b.y);
21
+ return {
22
+ x, y,
23
+ width: Math.max(a.x + a.width, b.x + b.width) - x,
24
+ height: Math.max(a.y + a.height, b.y + b.height) - y,
25
+ };
26
+ }
27
+ export function transformBounds(bounds, m) {
28
+ const xs = [], ys = [];
29
+ for (const x of [bounds.x, bounds.x + bounds.width]) {
30
+ for (const y of [bounds.y, bounds.y + bounds.height]) {
31
+ xs.push(m.a * x + m.c * y + m.e);
32
+ ys.push(m.b * x + m.d * y + m.f);
33
+ }
34
+ }
35
+ return { x: Math.min(...xs), y: Math.min(...ys), width: Math.max(...xs) - Math.min(...xs), height: Math.max(...ys) - Math.min(...ys) };
36
+ }
37
+ /** Conservative ink bounds with the same context state used to paint the text.
38
+ * These include negative bearings, joins and decorations, not just line boxes. */
39
+ export function textPaintBounds(ctx, text, style, x, y, width, rightAligned = false) {
40
+ const metrics = ctx.measureText(text);
41
+ const stroke = style.webkitTextStrokeWidth / 2 *
42
+ (style.strokeLinejoin === 'miter' ? ctx.miterLimit : 1);
43
+ let pad = 2 + stroke;
44
+ for (const deco of style.textDecorations) {
45
+ const thickness = deco.declarer.textDecorationThickness ?? Math.max(1, deco.declarer.fontSize / 15);
46
+ pad = Math.max(pad, 2 + stroke + Math.abs(deco.declarer.textUnderlineOffset ?? deco.declarer.fontSize * 0.2) + thickness * 4);
47
+ }
48
+ // TextMetrics already accounts for alignment/direction relative to (x, y).
49
+ // Keep the layout advance too: decoration geometry uses it independently.
50
+ const left = Math.min(rightAligned ? -width : 0, -(metrics.actualBoundingBoxLeft || 0));
51
+ const right = Math.max(rightAligned ? 0 : width, metrics.actualBoundingBoxRight || 0);
52
+ const ascent = Math.max(style.fontSize, metrics.actualBoundingBoxAscent || 0);
53
+ const descent = Math.max(style.fontSize * 0.5, metrics.actualBoundingBoxDescent || 0);
54
+ return { x: x + left - pad, y: y - ascent - pad, width: right - left + pad * 2, height: ascent + descent + pad * 2 };
55
+ }
56
+ export function shadowBounds(bounds, shadows) {
57
+ let result = bounds;
58
+ for (const shadow of shadows) {
59
+ // Canvas shadowBlur is twice sigma. Four sigma plus antialiasing room.
60
+ const pad = Math.ceil(shadow.blur * 2) + 2;
61
+ result = unionBounds(result, {
62
+ x: bounds.x + shadow.offsetX - pad, y: bounds.y + shadow.offsetY - pad,
63
+ width: bounds.width + pad * 2, height: bounds.height + pad * 2,
64
+ });
65
+ }
66
+ return result;
67
+ }
68
+ function makeCanvas(ctx, width, height, createCanvas) {
69
+ let canvas;
70
+ if (createCanvas)
71
+ canvas = createCanvas(width, height);
72
+ else if (ctx.canvas.ownerDocument)
73
+ canvas = ctx.canvas.ownerDocument.createElement('canvas');
74
+ else if (typeof OffscreenCanvas !== 'undefined')
75
+ canvas = new OffscreenCanvas(width, height);
76
+ else if (typeof document !== 'undefined')
77
+ canvas = document.createElement('canvas');
78
+ else
79
+ throw new Error('render-tag: shadows require a scratch canvas — provide createCanvas in non-browser environments.');
80
+ canvas.width = width;
81
+ canvas.height = height;
82
+ return canvas;
83
+ }
84
+ function layer(ctx, bounds, matrix, paint, createCanvas) {
85
+ const device = transformBounds(bounds, matrix);
86
+ const x = Math.floor(device.x) - 1, y = Math.floor(device.y) - 1;
87
+ const width = Math.max(1, Math.ceil(device.x + device.width) - x + 1);
88
+ const height = Math.max(1, Math.ceil(device.y + device.height) - y + 1);
89
+ const canvas = makeCanvas(ctx, width, height, createCanvas);
90
+ const target = canvas.getContext('2d');
91
+ if (!target)
92
+ throw new Error('render-tag: createCanvas must provide a 2D canvas.');
93
+ // Preserve drawing state that may affect source geometry. Destination
94
+ // opacity, clipping, filters and blending apply when painting the effect
95
+ // image and foreground, not while collecting shadow coverage.
96
+ for (const key of ['font', 'fontKerning', 'fontStretch', 'fontVariantCaps', 'textRendering',
97
+ 'letterSpacing', 'wordSpacing', 'textAlign', 'textBaseline', 'direction',
98
+ 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'lineDashOffset',
99
+ 'fillStyle', 'strokeStyle', 'imageSmoothingEnabled', 'imageSmoothingQuality']) {
100
+ if (key in ctx)
101
+ target[key] = ctx[key];
102
+ }
103
+ target.setLineDash(ctx.getLineDash());
104
+ target.setTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e - x, matrix.f - y);
105
+ paint(target);
106
+ return { canvas, x, y };
107
+ }
108
+ /** Produce just the shadow. Moving the caster entirely off-surface preserves
109
+ * shadow beneath translucent foreground; subtracting the caster would erase it. */
110
+ function shadowImage(ctx, source, blur, color, createCanvas) {
111
+ const pad = Math.ceil(blur * 2) + 2;
112
+ const canvas = makeCanvas(ctx, source.width + pad * 2, source.height + pad * 2, createCanvas);
113
+ const target = canvas.getContext('2d');
114
+ if (!target)
115
+ throw new Error('render-tag: createCanvas must provide a 2D canvas.');
116
+ const displacement = canvas.width + source.width;
117
+ target.shadowColor = color;
118
+ target.shadowBlur = blur;
119
+ target.shadowOffsetX = displacement;
120
+ // An unscaled image avoids both WebKit's gradient-shadow corruption and
121
+ // Node canvas backends that drop shadows of scaled off-surface images.
122
+ target.drawImage(source, pad - displacement, pad);
123
+ return { canvas, pad };
124
+ }
125
+ /** Cast the caller's shadow from the completed rendering, then paint foreground
126
+ * commands directly. This retains vector text and per-paint opacity/blending. */
127
+ export function withCanvasShadow(ctx, bounds, paint, createCanvas) {
128
+ const color = ctx.shadowColor;
129
+ const hasShadow = color && color !== 'transparent' && color !== 'rgba(0, 0, 0, 0)' &&
130
+ color !== '#00000000' && (ctx.shadowBlur > 0 || ctx.shadowOffsetX !== 0 || ctx.shadowOffsetY !== 0);
131
+ if (!hasShadow) {
132
+ paint(ctx);
133
+ return;
134
+ }
135
+ requireShadowContext(ctx);
136
+ const source = layer(ctx, bounds(), ctx.getTransform(), paint, createCanvas);
137
+ const shadow = shadowImage(ctx, source.canvas, ctx.shadowBlur, color, createCanvas);
138
+ ctx.save();
139
+ try {
140
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
141
+ ctx.shadowColor = 'transparent';
142
+ ctx.drawImage(shadow.canvas, source.x - shadow.pad + ctx.shadowOffsetX, source.y - shadow.pad + ctx.shadowOffsetY);
143
+ }
144
+ finally {
145
+ ctx.restore();
146
+ // A drawing-command proxy may not save its emulated shadow properties.
147
+ ctx.shadowColor = color;
148
+ }
149
+ withoutCanvasShadow(ctx, paint);
150
+ }
151
+ /** Paint only the shadows of a text group; its foreground is painted once by
152
+ * the caller, after every shadow group. CSS lengths live in layout coordinates. */
153
+ export function paintTextShadows(ctx, bounds, shadows, paint, createCanvas) {
154
+ if (!shadows.length)
155
+ return;
156
+ requireShadowContext(ctx);
157
+ const m = ctx.getTransform();
158
+ // Largest singular value: enough samples under rotation, scale and shear.
159
+ const sum = m.a * m.a + m.b * m.b + m.c * m.c + m.d * m.d;
160
+ const determinant = m.a * m.d - m.b * m.c;
161
+ const uniform = Math.abs(m.a * m.a + m.b * m.b - m.c * m.c - m.d * m.d) < 1e-8 &&
162
+ Math.abs(m.a * m.c + m.b * m.d) < 1e-8;
163
+ const scale = uniform ? Math.hypot(m.a, m.b) :
164
+ Math.max(1, Math.sqrt((sum + Math.sqrt(Math.max(0, sum * sum - 4 * determinant * determinant))) / 2));
165
+ if (scale === 0)
166
+ return;
167
+ // Uniform transforms can rasterize directly in device space, retaining the
168
+ // foreground's glyph hinting. Nonuniform transforms need a local-space blur
169
+ // that stretches/shears along with the text.
170
+ const source = layer(ctx, bounds, uniform ? m : { a: scale, b: 0, c: 0, d: scale, e: 0, f: 0 }, paint, createCanvas);
171
+ ctx.save();
172
+ try {
173
+ if (uniform)
174
+ ctx.setTransform(1, 0, 0, 1, 0, 0);
175
+ for (let i = shadows.length - 1; i >= 0; i--) {
176
+ const shadow = shadows[i];
177
+ const { canvas, pad } = shadowImage(ctx, source.canvas, shadow.blur * scale, shadow.color, createCanvas);
178
+ if (uniform) {
179
+ ctx.drawImage(canvas, source.x - pad + m.a * shadow.offsetX + m.c * shadow.offsetY, source.y - pad + m.b * shadow.offsetX + m.d * shadow.offsetY);
180
+ }
181
+ else {
182
+ ctx.drawImage(canvas, (source.x - pad) / scale + shadow.offsetX, (source.y - pad) / scale + shadow.offsetY, canvas.width / scale, canvas.height / scale);
183
+ }
184
+ }
185
+ }
186
+ finally {
187
+ ctx.restore();
188
+ }
189
+ }
190
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../src/shadow.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,6 +1,18 @@
1
1
  export type AnyCanvas = HTMLCanvasElement | OffscreenCanvas;
2
2
  export type AnyContext = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
3
- export interface RenderConfig {
3
+ /** Scratch surfaces for shadow composition. Required outside browsers; return
4
+ * a fresh, compatible canvas (for example, from the caller's canvas library). */
5
+ export type CanvasFactory = (width: number, height: number) => AnyCanvas;
6
+ export interface ShadowOptions {
7
+ /** Render CSS and caller-supplied canvas shadows (default true).
8
+ * Only shadows are rasterized; foreground stays drawing commands in both modes.
9
+ * Set false to omit shadows without allocating buffers or requiring image and
10
+ * transform APIs. The caller is responsible for any omitted effects. */
11
+ renderShadows?: boolean;
12
+ /** Scratch surfaces for shadows. Required in non-browser environments. */
13
+ createCanvas?: CanvasFactory;
14
+ }
15
+ export interface RenderConfig extends ShadowOptions {
4
16
  /** HTML string to render (include <style> tags for CSS) */
5
17
  html: string;
6
18
  /** Width of the rendering area in CSS pixels */
@@ -75,7 +87,7 @@ export interface LayoutResult {
75
87
  */
76
88
  lines: LayoutLine[];
77
89
  }
78
- export interface DrawConfig {
90
+ export interface DrawConfig extends ShadowOptions {
79
91
  /** Layout result from layout() */
80
92
  layout: LayoutResult;
81
93
  /** Width used during layout (must match) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "render-tag",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "type": "module",
5
5
  "description": "Render HTML rich text onto canvas using pure 2D API",
6
6
  "main": "./lib/index.js",