ugcinc-render 1.3.8 → 1.3.10
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.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +6 -1
- package/dist/index.mjs +6 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -276,6 +276,8 @@ interface ImageEditorElement {
|
|
|
276
276
|
lineHeight?: number;
|
|
277
277
|
/** Letter spacing in pixels */
|
|
278
278
|
letterSpacing?: number;
|
|
279
|
+
/** Enable font kerning for proper letter pair spacing (default: true) */
|
|
280
|
+
kerning?: boolean;
|
|
279
281
|
/** Horizontal text alignment */
|
|
280
282
|
textAlign?: TextAlignment;
|
|
281
283
|
/** Vertical text alignment within bounds */
|
|
@@ -578,6 +580,8 @@ interface TextSegment extends VisualSegment {
|
|
|
578
580
|
lineHeight?: number;
|
|
579
581
|
/** Letter spacing in pixels (default: 0) */
|
|
580
582
|
letterSpacing?: number;
|
|
583
|
+
/** Enable font kerning for proper letter pair spacing (default: true) */
|
|
584
|
+
kerning?: boolean;
|
|
581
585
|
/** How text wraps to new lines (default: 'word') */
|
|
582
586
|
textWrap?: TextWrap;
|
|
583
587
|
/** How words break across lines (default: 'normal') */
|
|
@@ -989,6 +993,7 @@ declare const TEXT_DEFAULTS: {
|
|
|
989
993
|
backgroundOpacity: number;
|
|
990
994
|
autoWidth: boolean;
|
|
991
995
|
boxAlign: "left";
|
|
996
|
+
kerning: boolean;
|
|
992
997
|
};
|
|
993
998
|
/**
|
|
994
999
|
* Default values for image segments
|
package/dist/index.d.ts
CHANGED
|
@@ -276,6 +276,8 @@ interface ImageEditorElement {
|
|
|
276
276
|
lineHeight?: number;
|
|
277
277
|
/** Letter spacing in pixels */
|
|
278
278
|
letterSpacing?: number;
|
|
279
|
+
/** Enable font kerning for proper letter pair spacing (default: true) */
|
|
280
|
+
kerning?: boolean;
|
|
279
281
|
/** Horizontal text alignment */
|
|
280
282
|
textAlign?: TextAlignment;
|
|
281
283
|
/** Vertical text alignment within bounds */
|
|
@@ -578,6 +580,8 @@ interface TextSegment extends VisualSegment {
|
|
|
578
580
|
lineHeight?: number;
|
|
579
581
|
/** Letter spacing in pixels (default: 0) */
|
|
580
582
|
letterSpacing?: number;
|
|
583
|
+
/** Enable font kerning for proper letter pair spacing (default: true) */
|
|
584
|
+
kerning?: boolean;
|
|
581
585
|
/** How text wraps to new lines (default: 'word') */
|
|
582
586
|
textWrap?: TextWrap;
|
|
583
587
|
/** How words break across lines (default: 'normal') */
|
|
@@ -989,6 +993,7 @@ declare const TEXT_DEFAULTS: {
|
|
|
989
993
|
backgroundOpacity: number;
|
|
990
994
|
autoWidth: boolean;
|
|
991
995
|
boxAlign: "left";
|
|
996
|
+
kerning: boolean;
|
|
992
997
|
};
|
|
993
998
|
/**
|
|
994
999
|
* Default values for image segments
|
package/dist/index.js
CHANGED
|
@@ -96,7 +96,8 @@ var TEXT_DEFAULTS = {
|
|
|
96
96
|
strokeWidth: 0,
|
|
97
97
|
backgroundOpacity: 100,
|
|
98
98
|
autoWidth: false,
|
|
99
|
-
boxAlign: "left"
|
|
99
|
+
boxAlign: "left",
|
|
100
|
+
kerning: true
|
|
100
101
|
};
|
|
101
102
|
var IMAGE_DEFAULTS = {
|
|
102
103
|
fit: "cover",
|
|
@@ -290,6 +291,7 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
290
291
|
const verticalAlign = segment.verticalAlign ?? TEXT_DEFAULTS.verticalAlign;
|
|
291
292
|
const lineHeight = segment.lineHeight ?? TEXT_DEFAULTS.lineHeight;
|
|
292
293
|
const letterSpacing = (segment.letterSpacing ?? TEXT_DEFAULTS.letterSpacing) * scale;
|
|
294
|
+
const kerning = segment.kerning ?? TEXT_DEFAULTS.kerning;
|
|
293
295
|
const strokeColor = segment.strokeColor;
|
|
294
296
|
const strokeWidth = (segment.strokeWidth ?? TEXT_DEFAULTS.strokeWidth) * scale;
|
|
295
297
|
const uniformPadding = (segment.padding ?? TEXT_DEFAULTS.padding) * scale;
|
|
@@ -354,6 +356,8 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
354
356
|
color,
|
|
355
357
|
lineHeight,
|
|
356
358
|
letterSpacing,
|
|
359
|
+
// Font kerning for proper letter pair spacing (can be toggled)
|
|
360
|
+
fontKerning: kerning ? "normal" : "none",
|
|
357
361
|
// textAlign works for multi-line text within the (possibly auto-width) box
|
|
358
362
|
textAlign: alignment === "justify" ? "justify" : alignment,
|
|
359
363
|
padding: `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,
|
|
@@ -390,6 +394,7 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
390
394
|
color,
|
|
391
395
|
lineHeight,
|
|
392
396
|
letterSpacing,
|
|
397
|
+
kerning,
|
|
393
398
|
alignment,
|
|
394
399
|
paddingTop,
|
|
395
400
|
paddingRight,
|
package/dist/index.mjs
CHANGED
|
@@ -35,7 +35,8 @@ var TEXT_DEFAULTS = {
|
|
|
35
35
|
strokeWidth: 0,
|
|
36
36
|
backgroundOpacity: 100,
|
|
37
37
|
autoWidth: false,
|
|
38
|
-
boxAlign: "left"
|
|
38
|
+
boxAlign: "left",
|
|
39
|
+
kerning: true
|
|
39
40
|
};
|
|
40
41
|
var IMAGE_DEFAULTS = {
|
|
41
42
|
fit: "cover",
|
|
@@ -229,6 +230,7 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
229
230
|
const verticalAlign = segment.verticalAlign ?? TEXT_DEFAULTS.verticalAlign;
|
|
230
231
|
const lineHeight = segment.lineHeight ?? TEXT_DEFAULTS.lineHeight;
|
|
231
232
|
const letterSpacing = (segment.letterSpacing ?? TEXT_DEFAULTS.letterSpacing) * scale;
|
|
233
|
+
const kerning = segment.kerning ?? TEXT_DEFAULTS.kerning;
|
|
232
234
|
const strokeColor = segment.strokeColor;
|
|
233
235
|
const strokeWidth = (segment.strokeWidth ?? TEXT_DEFAULTS.strokeWidth) * scale;
|
|
234
236
|
const uniformPadding = (segment.padding ?? TEXT_DEFAULTS.padding) * scale;
|
|
@@ -293,6 +295,8 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
293
295
|
color,
|
|
294
296
|
lineHeight,
|
|
295
297
|
letterSpacing,
|
|
298
|
+
// Font kerning for proper letter pair spacing (can be toggled)
|
|
299
|
+
fontKerning: kerning ? "normal" : "none",
|
|
296
300
|
// textAlign works for multi-line text within the (possibly auto-width) box
|
|
297
301
|
textAlign: alignment === "justify" ? "justify" : alignment,
|
|
298
302
|
padding: `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,
|
|
@@ -329,6 +333,7 @@ function TextElement({ segment, scale = 1 }) {
|
|
|
329
333
|
color,
|
|
330
334
|
lineHeight,
|
|
331
335
|
letterSpacing,
|
|
336
|
+
kerning,
|
|
332
337
|
alignment,
|
|
333
338
|
paddingTop,
|
|
334
339
|
paddingRight,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugcinc-render",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.10",
|
|
4
4
|
"description": "Unified rendering package for UGC Inc - shared types, components, and compositions for pixel-perfect client/server rendering",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|