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 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.8",
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",