ugcinc-render 1.3.9 → 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,8 +356,8 @@ function TextElement({ segment, scale = 1 }) {
354
356
  color,
355
357
  lineHeight,
356
358
  letterSpacing,
357
- // Enable font kerning for proper letter pair spacing
358
- fontKerning: "normal",
359
+ // Font kerning for proper letter pair spacing (can be toggled)
360
+ fontKerning: kerning ? "normal" : "none",
359
361
  // textAlign works for multi-line text within the (possibly auto-width) box
360
362
  textAlign: alignment === "justify" ? "justify" : alignment,
361
363
  padding: `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,
@@ -392,6 +394,7 @@ function TextElement({ segment, scale = 1 }) {
392
394
  color,
393
395
  lineHeight,
394
396
  letterSpacing,
397
+ kerning,
395
398
  alignment,
396
399
  paddingTop,
397
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,8 +295,8 @@ function TextElement({ segment, scale = 1 }) {
293
295
  color,
294
296
  lineHeight,
295
297
  letterSpacing,
296
- // Enable font kerning for proper letter pair spacing
297
- fontKerning: "normal",
298
+ // Font kerning for proper letter pair spacing (can be toggled)
299
+ fontKerning: kerning ? "normal" : "none",
298
300
  // textAlign works for multi-line text within the (possibly auto-width) box
299
301
  textAlign: alignment === "justify" ? "justify" : alignment,
300
302
  padding: `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`,
@@ -331,6 +333,7 @@ function TextElement({ segment, scale = 1 }) {
331
333
  color,
332
334
  lineHeight,
333
335
  letterSpacing,
336
+ kerning,
334
337
  alignment,
335
338
  paddingTop,
336
339
  paddingRight,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugcinc-render",
3
- "version": "1.3.9",
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",