@lightningjs/renderer 2.19.1 → 2.20.1

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.
Files changed (134) hide show
  1. package/dist/src/common/CommonTypes.d.ts +11 -0
  2. package/dist/src/core/AutosizeManager.d.ts +29 -0
  3. package/dist/src/core/AutosizeManager.js +171 -0
  4. package/dist/src/core/AutosizeManager.js.map +1 -0
  5. package/dist/src/core/CoreNode.d.ts +1 -1
  6. package/dist/src/core/CoreNode.js +8 -0
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/Stage.js +2 -1
  9. package/dist/src/core/Stage.js.map +1 -1
  10. package/dist/src/core/animations/Animation.d.ts +16 -0
  11. package/dist/src/core/animations/Animation.js +111 -0
  12. package/dist/src/core/animations/Animation.js.map +1 -0
  13. package/dist/src/core/animations/CoreTransition.d.ts +24 -0
  14. package/dist/src/core/animations/CoreTransition.js +63 -0
  15. package/dist/src/core/animations/CoreTransition.js.map +1 -0
  16. package/dist/src/core/animations/Playback.d.ts +62 -0
  17. package/dist/src/core/animations/Playback.js +155 -0
  18. package/dist/src/core/animations/Playback.js.map +1 -0
  19. package/dist/src/core/animations/Transition.d.ts +25 -0
  20. package/dist/src/core/animations/Transition.js +63 -0
  21. package/dist/src/core/animations/Transition.js.map +1 -0
  22. package/dist/src/core/animations/utils.d.ts +2 -0
  23. package/dist/src/core/animations/utils.js +137 -0
  24. package/dist/src/core/animations/utils.js.map +1 -0
  25. package/dist/src/core/lib/WebGlContextWrapper.d.ts +19 -5
  26. package/dist/src/core/lib/WebGlContextWrapper.js +35 -0
  27. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  28. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  29. package/dist/src/core/lib/collectionUtils.js +100 -0
  30. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  31. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  32. package/dist/src/core/lib/textureCompression.js +301 -65
  33. package/dist/src/core/lib/textureCompression.js.map +1 -1
  34. package/dist/src/core/platforms/Platform.d.ts +5 -0
  35. package/dist/src/core/platforms/Platform.js.map +1 -1
  36. package/dist/src/core/platforms/web/WebPlatform.d.ts +1 -0
  37. package/dist/src/core/platforms/web/WebPlatform.js +3 -0
  38. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  39. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +4 -0
  40. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +14 -11
  41. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  43. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +43 -8
  44. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  45. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
  46. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +18 -49
  47. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +0 -2
  49. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  51. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  52. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
  53. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  54. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
  55. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  56. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
  57. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  58. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
  59. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  60. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  61. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  62. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  63. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  64. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  65. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  66. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +1 -1
  67. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +1 -1
  68. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  69. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  70. package/dist/src/core/shaders/webgl/LinearGradient.js +2 -1
  71. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  72. package/dist/src/core/shaders/webgl/RadialGradient.js +7 -6
  73. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  74. package/dist/src/core/text-rendering/CanvasFontHandler.js +4 -1
  75. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  76. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +4 -6
  77. package/dist/src/core/text-rendering/CanvasTextRenderer.js +15 -23
  78. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  79. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +125 -28
  80. package/dist/src/core/text-rendering/SdfFontHandler.js +337 -4
  81. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  82. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +5 -6
  83. package/dist/src/core/text-rendering/SdfTextRenderer.js +19 -23
  84. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  85. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +14 -16
  86. package/dist/src/core/text-rendering/TextLayoutEngine.js +248 -192
  87. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
  88. package/dist/src/core/text-rendering/TextRenderer.d.ts +25 -11
  89. package/dist/src/core/textures/Texture.d.ts +12 -5
  90. package/dist/src/core/textures/Texture.js.map +1 -1
  91. package/dist/src/main-api/Inspector.js +9 -5
  92. package/dist/src/main-api/Inspector.js.map +1 -1
  93. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  94. package/package.json +1 -1
  95. package/src/common/CommonTypes.ts +16 -0
  96. package/src/core/CoreNode.test.ts +49 -0
  97. package/src/core/CoreNode.ts +10 -0
  98. package/src/core/Stage.ts +3 -1
  99. package/src/core/lib/WebGlContextWrapper.ts +49 -0
  100. package/src/core/lib/textureCompression.ts +416 -75
  101. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +16 -14
  102. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +1 -1
  103. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +44 -11
  104. package/src/core/renderers/webgl/WebGlCoreShader.ts +27 -75
  105. package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -2
  106. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -6
  107. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -11
  108. package/src/core/renderers/webgl/shaders/DynamicShader.ts +5 -10
  109. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +5 -10
  110. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -12
  111. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +1 -1
  112. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +1 -1
  113. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +1 -1
  114. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +1 -1
  115. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +5 -5
  116. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +1 -1
  117. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +1 -1
  118. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +1 -1
  119. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +1 -1
  120. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +5 -5
  121. package/src/core/textures/Texture.ts +13 -6
  122. package/src/main-api/Inspector.ts +9 -5
  123. package/dist/src/core/text-rendering/CanvasFont.d.ts +0 -14
  124. package/dist/src/core/text-rendering/CanvasFont.js +0 -111
  125. package/dist/src/core/text-rendering/CanvasFont.js.map +0 -1
  126. package/dist/src/core/text-rendering/CoreFont.d.ts +0 -33
  127. package/dist/src/core/text-rendering/CoreFont.js +0 -48
  128. package/dist/src/core/text-rendering/CoreFont.js.map +0 -1
  129. package/dist/src/core/text-rendering/FontManager.d.ts +0 -11
  130. package/dist/src/core/text-rendering/FontManager.js +0 -42
  131. package/dist/src/core/text-rendering/FontManager.js.map +0 -1
  132. package/dist/src/core/text-rendering/SdfFont.d.ts +0 -29
  133. package/dist/src/core/text-rendering/SdfFont.js +0 -142
  134. package/dist/src/core/text-rendering/SdfFont.js.map +0 -1
@@ -24,21 +24,20 @@ import { Sdf } from '../shaders/webgl/SdfShader.js';
24
24
  import { BufferCollection } from '../renderers/webgl/internal/BufferCollection.js';
25
25
  import { mergeColorAlpha } from '../../utils.js';
26
26
  import { mapTextLayout } from './TextLayoutEngine.js';
27
- import { SdfFont } from './SdfFont.js';
28
27
  // Each glyph requires 6 vertices (2 triangles) with 4 floats each (x, y, u, v)
29
28
  const FLOATS_PER_VERTEX = 4;
30
29
  const VERTICES_PER_GLYPH = 6;
31
30
  // Type definition to match interface
32
31
  const type = 'sdf';
33
32
  let sdfShader = null;
34
- let stage = null;
35
33
  // Initialize the SDF text renderer
36
- const init = (s) => {
37
- stage = s;
34
+ const init = (stage) => {
35
+ SdfFontHandler.init();
38
36
  // Register SDF shader with the shader manager
39
37
  stage.shManager.registerShaderType('Sdf', Sdf);
40
38
  sdfShader = stage.shManager.createShader('Sdf');
41
39
  };
40
+ const font = SdfFontHandler;
42
41
  /**
43
42
  * SDF text renderer using MSDF/SDF fonts with WebGL
44
43
  *
@@ -46,7 +45,7 @@ const init = (s) => {
46
45
  * @param props - Text rendering properties
47
46
  * @returns Object containing ImageData and dimensions
48
47
  */
49
- const renderText = (font, props) => {
48
+ const renderText = (props) => {
50
49
  // Early return if no text
51
50
  if (props.text.length === 0) {
52
51
  return {
@@ -55,7 +54,7 @@ const renderText = (font, props) => {
55
54
  };
56
55
  }
57
56
  // Get font cache for this font family
58
- const fontData = font.getData();
57
+ const fontData = SdfFontHandler.getFontData(props.fontFamily);
59
58
  if (fontData === undefined) {
60
59
  // Font not loaded, return empty result
61
60
  return {
@@ -64,7 +63,7 @@ const renderText = (font, props) => {
64
63
  };
65
64
  }
66
65
  // Calculate text layout and generate glyph data for caching
67
- const layout = generateTextLayout(props, font);
66
+ const layout = generateTextLayout(props, fontData);
68
67
  // For SDF renderer, ImageData is null since we render via WebGL
69
68
  return {
70
69
  remainingLines: 0,
@@ -142,12 +141,12 @@ const addQuads = (layout) => {
142
141
  * Create and submit WebGL render operations for SDF text
143
142
  * This is called from CoreTextNode during rendering to add SDF text to the render pipeline
144
143
  */
145
- const renderQuads = (renderer, font, layout, vertexBuffer, renderProps) => {
144
+ const renderQuads = (renderer, layout, vertexBuffer, renderProps) => {
146
145
  const fontFamily = renderProps.fontFamily;
147
146
  const color = renderProps.color;
148
147
  const worldAlpha = renderProps.worldAlpha;
149
148
  const globalTransform = renderProps.globalTransform;
150
- const atlasTexture = font.getAtlas();
149
+ const atlasTexture = SdfFontHandler.getAtlas(fontFamily);
151
150
  if (atlasTexture === null) {
152
151
  console.warn(`SDF atlas texture not found for font: ${fontFamily}`);
153
152
  return;
@@ -214,13 +213,13 @@ const renderQuads = (renderer, font, layout, vertexBuffer, renderProps) => {
214
213
  /**
215
214
  * Generate complete text layout with glyph positioning for caching
216
215
  */
217
- const generateTextLayout = (props, font) => {
216
+ const generateTextLayout = (props, fontCache) => {
218
217
  const fontSize = props.fontSize;
219
218
  const fontFamily = props.fontFamily;
220
219
  const lineHeight = props.lineHeight;
221
- const metrics = font.getMetrics(fontSize);
220
+ const metrics = SdfFontHandler.getFontMetrics(fontFamily, fontSize);
222
221
  const verticalAlign = props.verticalAlign;
223
- const fontData = font.getData();
222
+ const fontData = fontCache.data;
224
223
  const commonFontData = fontData.common;
225
224
  const designFontSize = fontData.info.size;
226
225
  const atlasWidth = commonFontData.scaleW;
@@ -230,7 +229,7 @@ const generateTextLayout = (props, font) => {
230
229
  const letterSpacing = props.letterSpacing / fontScale;
231
230
  const maxWidth = props.maxWidth / fontScale;
232
231
  const maxHeight = props.maxHeight;
233
- const [lines, remainingLines, hasRemainingText, bareLineHeight, lineHeightPx, effectiveWidth, effectiveHeight,] = mapTextLayout(font, metrics, props.text, props.textAlign, verticalAlign, fontFamily, lineHeight, props.overflowSuffix, props.wordBreak, letterSpacing, props.maxLines, maxWidth, maxHeight);
232
+ const [lines, remainingLines, hasRemainingText, bareLineHeight, lineHeightPx, effectiveWidth, effectiveHeight,] = mapTextLayout(SdfFontHandler.measureText, metrics, props.text, props.textAlign, fontFamily, lineHeight, props.overflowSuffix, props.wordBreak, letterSpacing, props.maxLines, maxWidth, maxHeight);
234
233
  const lineAmount = lines.length;
235
234
  const glyphs = [];
236
235
  let currentX = 0;
@@ -240,9 +239,9 @@ const generateTextLayout = (props, font) => {
240
239
  const textLine = line[0];
241
240
  const textLineLength = textLine.length;
242
241
  let prevCodepoint = 0;
243
- currentX = line[2];
242
+ currentX = line[3];
244
243
  //convert Y coord to vertex value
245
- currentY = line[3] / fontScale;
244
+ currentY = line[4] / fontScale;
246
245
  for (let j = 0; j < textLineLength; j++) {
247
246
  const char = textLine.charAt(j);
248
247
  if (hasZeroWidthSpace(char) === true) {
@@ -253,7 +252,7 @@ const generateTextLayout = (props, font) => {
253
252
  continue;
254
253
  }
255
254
  // Get glyph data from font handler
256
- const glyph = font.getGlyph(codepoint);
255
+ const glyph = SdfFontHandler.getGlyph(fontFamily, codepoint);
257
256
  if (glyph === null) {
258
257
  continue;
259
258
  }
@@ -261,7 +260,7 @@ const generateTextLayout = (props, font) => {
261
260
  let advance = glyph.xadvance;
262
261
  // Add kerning if there's a previous character
263
262
  if (prevCodepoint !== 0) {
264
- const kerning = font.getKerning(prevCodepoint, codepoint);
263
+ const kerning = SdfFontHandler.getKerning(fontFamily, prevCodepoint, codepoint);
265
264
  advance += kerning;
266
265
  }
267
266
  // Calculate glyph position and atlas coordinates (in design units)
@@ -290,22 +289,19 @@ const generateTextLayout = (props, font) => {
290
289
  return {
291
290
  glyphs,
292
291
  distanceRange: fontScale * fontData.distanceField.distanceRange,
293
- width: maxWidth || effectiveWidth * fontScale,
294
- height: maxHeight || effectiveHeight,
292
+ width: effectiveWidth * fontScale,
293
+ height: effectiveHeight,
295
294
  fontScale: fontScale,
296
295
  lineHeight: lineHeightPx,
297
296
  fontFamily,
298
297
  };
299
298
  };
300
- const createFont = (settings) => {
301
- return new SdfFont(SdfTextRenderer, settings, stage);
302
- };
303
299
  /**
304
300
  * SDF Text Renderer - implements TextRenderer interface
305
301
  */
306
302
  const SdfTextRenderer = {
307
303
  type,
308
- createFont,
304
+ font,
309
305
  renderText,
310
306
  addQuads,
311
307
  renderQuads,
@@ -1 +1 @@
1
- {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,18 @@
1
- import type { CoreFont } from './CoreFont.js';
2
- import type { FontMetrics, NormalizedFontMetrics, TextLayoutStruct, WrappedLinesStruct } from './TextRenderer.js';
1
+ import type { FontMetrics, MeasureTextFn, NormalizedFontMetrics, TextLayoutStruct, TextLineStruct, WrappedLinesStruct } from './TextRenderer.js';
3
2
  export declare const defaultFontMetrics: FontMetrics;
4
3
  export declare const normalizeFontMetrics: (metrics: FontMetrics, fontSize: number) => NormalizedFontMetrics;
5
- export declare const mapTextLayout: (font: CoreFont, metrics: NormalizedFontMetrics, text: string, textAlign: string, verticalAlign: string, fontFamily: string, lineHeight: number, overflowSuffix: string, wordBreak: string, letterSpacing: number, maxLines: number, maxWidth: number, maxHeight: number) => TextLayoutStruct;
6
- export declare const measureLines: (font: CoreFont, lines: string[], fontFamily: string, letterSpacing: number, maxLines: number) => WrappedLinesStruct;
7
- export declare const wrapText: (font: CoreFont, text: string, fontFamily: string, maxWidth: number, letterSpacing: number, overflowSuffix: string, wordBreak: string, maxLines: number) => WrappedLinesStruct;
8
- export declare const wrapLine: (font: CoreFont, line: string, fontFamily: string, maxWidth: number, letterSpacing: number, spaceWidth: number, overflowSuffix: string, wordBreak: string, remainingLines: number, hasMaxLines: boolean) => WrappedLinesStruct;
4
+ export declare const mapTextLayout: (measureText: MeasureTextFn, metrics: NormalizedFontMetrics, text: string, textAlign: string, fontFamily: string, lineHeight: number, overflowSuffix: string, wordBreak: string, letterSpacing: number, maxLines: number, maxWidth: number, maxHeight: number) => TextLayoutStruct;
5
+ export declare const measureLines: (measureText: MeasureTextFn, lines: string[], fontFamily: string, letterSpacing: number, maxLines: number) => WrappedLinesStruct;
6
+ export declare const wrapText: (measureText: MeasureTextFn, text: string, fontFamily: string, maxWidth: number, letterSpacing: number, overflowSuffix: string, wordBreak: string, maxLines: number) => WrappedLinesStruct;
7
+ export declare const wrapLine: (measureText: MeasureTextFn, line: string, fontFamily: string, maxWidth: number, letterSpacing: number, spaceWidth: number, overflowSuffix: string, overflowWidth: number, wordBreak: string, remainingLines: number) => WrappedLinesStruct;
9
8
  /**
10
- * Truncate a line with overflow suffix to fit within width
9
+ * Overflow wordBreak strategy, if a word partially fits add it to the line, start new line if necessary or add overflowSuffix.
10
+ *
11
+ * @remarks This strategy is similar to 'normal' in html/CSS. However
11
12
  */
12
- export declare const truncateLineWithSuffix: (font: CoreFont, line: string, fontFamily: string, maxWidth: number, letterSpacing: number, overflowSuffix: string) => string;
13
- /**
14
- * wordbreak function: https://developer.mozilla.org/en-US/docs/Web/CSS/word-break#break-word
15
- */
16
- export declare const breakWord: (font: CoreFont, word: string, fontFamily: string, maxWidth: number, letterSpacing: number, remainingLines: number) => WrappedLinesStruct;
17
- /**
18
- * wordbreak function: https://developer.mozilla.org/en-US/docs/Web/CSS/word-break#break-word
19
- */
20
- export declare const breakAll: (font: CoreFont, word: string, fontFamily: string, initial: number, maxWidth: number, letterSpacing: number, remainingLines: number) => WrappedLinesStruct;
13
+ export declare const overflow: (measureText: MeasureTextFn, word: string, wordWidth: number, fontFamily: string, letterSpacing: number, wrappedLines: TextLineStruct[], currentLine: string, currentLineWidth: number, remainingLines: number, remainingWord: string, maxWidth: number, space: string, spaceWidth: number, overflowSuffix: string, overflowWidth: number) => [string, number, string];
14
+ export declare const breakWord: (measureText: MeasureTextFn, word: string, wordWidth: number, fontFamily: string, letterSpacing: number, wrappedLines: TextLineStruct[], currentLine: string, currentLineWidth: number, remainingLines: number, remainingWord: string, maxWidth: number, space: string, spaceWidth: number, overflowSuffix: string, overflowWidth: number) => [string, number, string];
15
+ export declare const breakAll: (measureText: MeasureTextFn, word: string, wordWidth: number, fontFamily: string, letterSpacing: number, wrappedLines: TextLineStruct[], currentLine: string, currentLineWidth: number, remainingLines: number, remainingWord: string, maxWidth: number, space: string, spaceWidth: number, overflowSuffix: string, overflowWidth: number) => [string, number, string];
16
+ export declare const truncateLineEnd: (measureText: MeasureTextFn, fontFamily: string, letterSpacing: number, currentLine: string, currentLineWidth: number, remainingWord: string, maxWidth: number, overflowSuffix: string, overflowWidth: number) => [string, number, string];
17
+ export declare const truncateWord: (measureText: MeasureTextFn, word: string, wordWidth: number, maxWidth: number, fontFamily: string, letterSpacing: number, overflowSuffix: string, overflowWidth: number) => [string, string, number];
18
+ export declare const splitWord: (measureText: MeasureTextFn, word: string, wordWidth: number, maxWidth: number, fontFamily: string, letterSpacing: number) => [string, string, number];