@vyaz/core 0.0.16 → 0.1.0
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/bin/vyaz.js +27 -0
- package/dist/cli/check.d.ts +12 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +4077 -0
- package/dist/compile/ParagraphCompiler.d.ts +84 -0
- package/dist/compile/ParagraphCompiler.d.ts.map +1 -0
- package/dist/debug/lines-to-yaml.d.ts +14 -0
- package/dist/debug/lines-to-yaml.d.ts.map +1 -0
- package/dist/debug.d.ts +11 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +4 -0
- package/dist/index.browser.d.ts +9 -4
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +3197 -5031
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4709 -796
- package/dist/layout/AutoFitEngine.d.ts.map +1 -1
- package/dist/layout/LineBoxValidator.d.ts +5 -10
- package/dist/layout/LineBoxValidator.d.ts.map +1 -1
- package/dist/layout/ParagraphLayoutEngine.d.ts +13 -8
- package/dist/layout/ParagraphLayoutEngine.d.ts.map +1 -1
- package/dist/layout/PositioningEngine.d.ts +1 -1
- package/dist/layout/PositioningEngine.d.ts.map +1 -1
- package/dist/layout/TextFrameLayoutEngine.d.ts +84 -15
- package/dist/layout/TextFrameLayoutEngine.d.ts.map +1 -1
- package/dist/layout/create-engine.d.ts +32 -0
- package/dist/layout/create-engine.d.ts.map +1 -0
- package/dist/layout/resolve-font.d.ts +25 -0
- package/dist/layout/resolve-font.d.ts.map +1 -0
- package/dist/measure/FontEngine.d.ts +44 -1
- package/dist/measure/FontEngine.d.ts.map +1 -1
- package/dist/measure/FontMetricsProvider.d.ts +3 -10
- package/dist/measure/FontMetricsProvider.d.ts.map +1 -1
- package/dist/measure/FontkitMeasureContext.d.ts +109 -0
- package/dist/measure/FontkitMeasureContext.d.ts.map +1 -0
- package/dist/measure/canvas-polyfill.d.ts.map +1 -1
- package/dist/types/Document.d.ts +36 -23
- package/dist/types/Document.d.ts.map +1 -1
- package/dist/types/FontTypes.d.ts +1 -1
- package/dist/types/FontTypes.d.ts.map +1 -1
- package/dist/types/LayoutTypes.d.ts +19 -2
- package/dist/types/LayoutTypes.d.ts.map +1 -1
- package/package.json +16 -4
package/dist/types/Document.d.ts
CHANGED
|
@@ -50,35 +50,35 @@ export type TextAlignment = 'left' | 'center' | 'right' | 'justify';
|
|
|
50
50
|
* Alignment of the **last** line in a justified paragraph.
|
|
51
51
|
*
|
|
52
52
|
* @see {@link https://www.w3.org/TR/css-text-3/#text-align-last-property | CSS Text: text-align-last}
|
|
53
|
-
* @
|
|
53
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
54
54
|
*/
|
|
55
55
|
export type TextAlignLast = 'auto' | 'start' | 'end' | 'left' | 'right' | 'center' | 'justify';
|
|
56
56
|
/**
|
|
57
57
|
* Word-break rules (how to break lines within words).
|
|
58
58
|
*
|
|
59
59
|
* @see {@link https://www.w3.org/TR/css-text-3/#word-break-property | CSS Text: word-break}
|
|
60
|
-
* @
|
|
60
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
61
61
|
*/
|
|
62
62
|
export type WordBreak = 'normal' | 'break-all' | 'keep-all' | 'break-word';
|
|
63
63
|
/**
|
|
64
64
|
* Strictness of line-break rules (mainly for CJK).
|
|
65
65
|
*
|
|
66
66
|
* @see {@link https://www.w3.org/TR/css-text-3/#line-break-property | CSS Text: line-break}
|
|
67
|
-
* @
|
|
67
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
68
68
|
*/
|
|
69
69
|
export type LineBreak = 'auto' | 'loose' | 'normal' | 'strict' | 'anywhere';
|
|
70
70
|
/**
|
|
71
71
|
* Overflow wrap behavior (whether long words can break).
|
|
72
72
|
*
|
|
73
73
|
* @see {@link https://www.w3.org/TR/css-text-3/#overflow-wrap-property | CSS Text: overflow-wrap}
|
|
74
|
-
* @
|
|
74
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
75
75
|
*/
|
|
76
76
|
export type OverflowWrap = 'normal' | 'break-word' | 'anywhere';
|
|
77
77
|
/**
|
|
78
78
|
* Text decoration line style.
|
|
79
79
|
*
|
|
80
80
|
* @see {@link https://www.w3.org/TR/css-text-decor-3/#text-decoration-style-property | CSS Text Decoration: text-decoration-style}
|
|
81
|
-
* @
|
|
81
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
82
82
|
*/
|
|
83
83
|
export type TextDecorationStyle = 'solid' | 'double' | 'dotted' | 'dashed' | 'wavy';
|
|
84
84
|
/**
|
|
@@ -91,14 +91,14 @@ export type TextTransform = 'none' | 'uppercase' | 'lowercase' | 'capitalize';
|
|
|
91
91
|
* Dominant baseline used for vertical alignment within a line.
|
|
92
92
|
*
|
|
93
93
|
* @see {@link https://www.w3.org/TR/css-inline-3/#dominant-baseline-property | CSS Inline Layout: dominant-baseline}
|
|
94
|
-
* @
|
|
94
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
95
95
|
*/
|
|
96
96
|
export type DominantBaseline = 'auto' | 'text-bottom' | 'alphabetic' | 'ideographic' | 'middle' | 'central' | 'mathematical' | 'hanging' | 'text-top';
|
|
97
97
|
/**
|
|
98
98
|
* Edge used to measure the line box height (font metric edge).
|
|
99
99
|
*
|
|
100
100
|
* @see {@link https://www.w3.org/TR/css-inline-3/#line-fit-edge | CSS Inline Layout: line-fit-edge}
|
|
101
|
-
* @
|
|
101
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
102
102
|
*/
|
|
103
103
|
export type LineFitEdge = 'leading' | 'text' | 'cap' | 'ex' | 'ideographic' | 'ideographic-ink' | 'alphabetic';
|
|
104
104
|
/**
|
|
@@ -226,8 +226,13 @@ export interface TextRun {
|
|
|
226
226
|
* inside the text flow.
|
|
227
227
|
*/
|
|
228
228
|
inlineWidget?: InlineWidget;
|
|
229
|
-
/**
|
|
230
|
-
|
|
229
|
+
/**
|
|
230
|
+
* Font family name, or a CSS-style fallback list tried in order
|
|
231
|
+
* (e.g. `"Arial"` or `["Inter", "Arial", "sans-serif"]`). The layout result
|
|
232
|
+
* always reports the concrete family that was used; see
|
|
233
|
+
* `LayoutOptions.onMissingFont`.
|
|
234
|
+
*/
|
|
235
|
+
fontFamily: string | string[];
|
|
231
236
|
/** Font size in px. */
|
|
232
237
|
fontSize: number;
|
|
233
238
|
/** Font weight: `'normal'`, `'bold'`, or a numeric CSS weight (100–900). */
|
|
@@ -246,19 +251,27 @@ export interface TextRun {
|
|
|
246
251
|
underline?: boolean;
|
|
247
252
|
/** Strikethrough decoration. */
|
|
248
253
|
strikethrough?: boolean;
|
|
249
|
-
/** Overline decoration. @
|
|
254
|
+
/** Overline decoration. @experimental Accepted in the type but ignored by the layout engine (no-op until implemented). */
|
|
250
255
|
overline?: boolean;
|
|
251
|
-
/** Underline / overline / strikethrough line style. @
|
|
256
|
+
/** Underline / overline / strikethrough line style. @experimental Accepted in the type but ignored by the layout engine (no-op until implemented). */
|
|
252
257
|
textDecorationStyle?: TextDecorationStyle;
|
|
253
|
-
/** Underline / overline / strikethrough line color. @
|
|
258
|
+
/** Underline / overline / strikethrough line color. @experimental Accepted in the type but ignored by the layout engine (no-op until implemented). */
|
|
254
259
|
textDecorationColor?: string;
|
|
255
260
|
/** Case transform (uppercase, lowercase, capitalize). */
|
|
256
261
|
textTransform?: TextTransform;
|
|
257
|
-
/** Force full-width characters (CJK). @
|
|
262
|
+
/** Force full-width characters (CJK). @experimental Accepted in the type but ignored by the layout engine (no-op until implemented). */
|
|
258
263
|
fullWidth?: boolean;
|
|
259
|
-
/** Convert small kana to full-size kana. @
|
|
264
|
+
/** Convert small kana to full-size kana. @experimental Accepted in the type but ignored by the layout engine (no-op until implemented). */
|
|
260
265
|
fullSizeKana?: boolean;
|
|
261
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* A `TextRun` after the layout engine has resolved its `fontFamily` fallback
|
|
269
|
+
* list down to one concrete registered family. This is what `Span.style` and
|
|
270
|
+
* the compiled items carry — never a `string[]`.
|
|
271
|
+
*/
|
|
272
|
+
export type ResolvedTextRun = Omit<TextRun, 'fontFamily'> & {
|
|
273
|
+
fontFamily: string;
|
|
274
|
+
};
|
|
262
275
|
/**
|
|
263
276
|
* Data for an inline widget (embedded object inside text flow).
|
|
264
277
|
*
|
|
@@ -379,34 +392,34 @@ export interface ParagraphStyle {
|
|
|
379
392
|
* Indentation of the first line in px.
|
|
380
393
|
* If set, overrides the generic `indent` for the first line.
|
|
381
394
|
*
|
|
382
|
-
* @
|
|
395
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
383
396
|
*/
|
|
384
397
|
textIndent?: number;
|
|
385
398
|
/** Letter-spacing (tracking) for the whole paragraph in px. */
|
|
386
399
|
letterSpacing?: number;
|
|
387
400
|
/**
|
|
388
401
|
* Alignment of the **last** line of a justified paragraph.
|
|
389
|
-
* @
|
|
402
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
390
403
|
*/
|
|
391
404
|
textAlignLast?: TextAlignLast;
|
|
392
405
|
/**
|
|
393
406
|
* Word-break rules (CJK / non-CJK).
|
|
394
|
-
* @
|
|
407
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
395
408
|
*/
|
|
396
409
|
wordBreak?: WordBreak;
|
|
397
410
|
/**
|
|
398
411
|
* Line-break strictness (CJK).
|
|
399
|
-
* @
|
|
412
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
400
413
|
*/
|
|
401
414
|
lineBreak?: LineBreak;
|
|
402
415
|
/**
|
|
403
416
|
* Overflow-wrap / word-wrap behaviour.
|
|
404
|
-
* @
|
|
417
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
405
418
|
*/
|
|
406
419
|
overflowWrap?: OverflowWrap;
|
|
407
420
|
/**
|
|
408
421
|
* Whether hyphenation is allowed.
|
|
409
|
-
* @
|
|
422
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
410
423
|
*/
|
|
411
424
|
hyphens?: boolean;
|
|
412
425
|
/**
|
|
@@ -552,12 +565,12 @@ export interface TextFrame {
|
|
|
552
565
|
verticalAlignment?: VerticalAlignment;
|
|
553
566
|
/**
|
|
554
567
|
* Dominant baseline for inline alignment.
|
|
555
|
-
* @
|
|
568
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
556
569
|
*/
|
|
557
570
|
dominantBaseline?: DominantBaseline;
|
|
558
571
|
/**
|
|
559
572
|
* Font metric edge used for line box height.
|
|
560
|
-
* @
|
|
573
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
561
574
|
*/
|
|
562
575
|
lineFitEdge?: LineFitEdge;
|
|
563
576
|
/**
|
|
@@ -577,7 +590,7 @@ export interface TextFrame {
|
|
|
577
590
|
/**
|
|
578
591
|
* Multi-column layout configuration.
|
|
579
592
|
* When set, paragraphs are automatically broken into columns.
|
|
580
|
-
* @
|
|
593
|
+
* @experimental Accepted in the type but ignored by the layout engine (no-op until implemented).
|
|
581
594
|
*/
|
|
582
595
|
columns?: MultiColumnConfig;
|
|
583
596
|
/** Paragraphs forming the text content. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../../src/types/Document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1E;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtJ;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAE/G;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;AAErG;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAIrD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC5B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAI5B
|
|
1
|
+
{"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../../src/types/Document.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ export interface IFontMetricsProvider {
|
|
|
51
51
|
/**
|
|
52
52
|
* Get metrics for a given family and size.
|
|
53
53
|
*/
|
|
54
|
-
getMetrics(fontFamily: string, fontSize: number, weight?: string, style?: string): FontMetrics;
|
|
54
|
+
getMetrics(fontFamily: string, fontSize: number, weight?: string, style?: string, mode?: 'browser' | 'office'): FontMetrics;
|
|
55
55
|
}
|
|
56
56
|
/** Glyph-level data for a single glyph (per-character tracking/highlighting) */
|
|
57
57
|
export interface GlyphData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontTypes.d.ts","sourceRoot":"","sources":["../../src/types/FontTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;CACvD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,IAAI,SAAS,GAAG,QAAQ,CAAC;IAEhC;;;;;OAKG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5C,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAAC;IAER;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FontTypes.d.ts","sourceRoot":"","sources":["../../src/types/FontTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;CACvD;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,IAAI,SAAS,GAAG,QAAQ,CAAC;IAEhC;;;;;OAKG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5C,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAAC;IAER;;OAEG;IACH,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAC1B,WAAW,CAAC;CAChB;AAED,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;CACX"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Based on plan.md §2.5 (Output — Physical Box Model / Layout Tree)
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
9
|
+
import type { ResolvedTextRun, InlineWidget, TextAlignment } from './Document.js';
|
|
10
10
|
export interface Span {
|
|
11
11
|
/** Offset from Line.x */
|
|
12
12
|
x: number;
|
|
@@ -26,7 +26,7 @@ export interface Span {
|
|
|
26
26
|
* A snapshot of the source run's style at layout time.
|
|
27
27
|
* Copied from the corresponding `TextRun` in the paragraph's `children` array.
|
|
28
28
|
*/
|
|
29
|
-
style:
|
|
29
|
+
style: ResolvedTextRun;
|
|
30
30
|
/** InlineWidget data (if span is an inline-box) */
|
|
31
31
|
inlineWidget?: InlineWidget;
|
|
32
32
|
/** Per-character advance widths (for selection/tracking) */
|
|
@@ -113,6 +113,23 @@ export interface ParagraphLayoutResult {
|
|
|
113
113
|
contentWidth: number;
|
|
114
114
|
/** Actual content height (text bbox) */
|
|
115
115
|
contentHeight: number;
|
|
116
|
+
/** Non-fatal issues (e.g. font fallback/substitution). */
|
|
117
|
+
warnings?: LayoutWarning[];
|
|
118
|
+
}
|
|
119
|
+
/** A non-fatal issue found while laying out. */
|
|
120
|
+
export interface LayoutWarning {
|
|
121
|
+
/**
|
|
122
|
+
* - `font-fallback` — a later entry in a `fontFamily` fallback list was used.
|
|
123
|
+
* - `font-missing` — no requested family was registered; a substitute was
|
|
124
|
+
* used (only under `onMissingFont: 'substitute'`).
|
|
125
|
+
*/
|
|
126
|
+
type: 'font-fallback' | 'font-missing';
|
|
127
|
+
/** The first (preferred) family the run asked for. */
|
|
128
|
+
requested: string;
|
|
129
|
+
/** The family actually used. */
|
|
130
|
+
used: string;
|
|
131
|
+
/** Index of the source run in its paragraph's `children`. */
|
|
132
|
+
runIndex: number;
|
|
116
133
|
}
|
|
117
134
|
/** Semantic span for snapshots (without physical metrics) */
|
|
118
135
|
export interface SemanticFragment {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutTypes.d.ts","sourceRoot":"","sources":["../../src/types/LayoutTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"LayoutTypes.d.ts","sourceRoot":"","sources":["../../src/types/LayoutTypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vyaz/core",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
|
-
"dist"
|
|
8
|
+
"dist",
|
|
9
|
+
"bin"
|
|
9
10
|
],
|
|
11
|
+
"bin": {
|
|
12
|
+
"vyaz": "./bin/vyaz.js"
|
|
13
|
+
},
|
|
10
14
|
"sideEffects": false,
|
|
11
15
|
"publishConfig": {
|
|
12
16
|
"access": "public"
|
|
@@ -18,6 +22,13 @@
|
|
|
18
22
|
"browser": "./dist/index.browser.js",
|
|
19
23
|
"types": "./dist/index.d.ts",
|
|
20
24
|
"default": "./dist/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./debug": {
|
|
27
|
+
"bun": "./src/debug.ts",
|
|
28
|
+
"node": "./dist/debug.js",
|
|
29
|
+
"browser": "./dist/debug.browser.js",
|
|
30
|
+
"types": "./dist/debug.d.ts",
|
|
31
|
+
"default": "./dist/debug.js"
|
|
21
32
|
}
|
|
22
33
|
},
|
|
23
34
|
"browser": {
|
|
@@ -28,12 +39,12 @@
|
|
|
28
39
|
"child_process": false
|
|
29
40
|
},
|
|
30
41
|
"scripts": {
|
|
31
|
-
"build": "bun build ./src/index.ts --outdir ./dist --target bun --external
|
|
42
|
+
"build": "bun build ./src/index.ts --outdir ./dist --target bun --external js-yaml --external @napi-rs/canvas --external fontkit --external get-system-fonts && bun build ./src/index.browser.ts --outdir ./dist --outfile ./dist/index.browser.js --target browser && bun build ./src/debug.ts --outdir ./dist --target bun --external js-yaml && bun build ./src/debug.ts --outdir ./dist --outfile ./dist/debug.browser.js --target browser && bun build ./src/cli/check.ts --outdir ./dist/cli --target bun --external @napi-rs/canvas --external fontkit --external get-system-fonts && tsc -b",
|
|
32
43
|
"prepublishOnly": "bun run build",
|
|
44
|
+
"vendor:pretext": "bun run scripts/vendor-pretext.ts",
|
|
33
45
|
"test": "bun test"
|
|
34
46
|
},
|
|
35
47
|
"dependencies": {
|
|
36
|
-
"@chenglou/pretext": "^0.0.8",
|
|
37
48
|
"js-yaml": "^5.0.0"
|
|
38
49
|
},
|
|
39
50
|
"optionalDependencies": {
|
|
@@ -42,6 +53,7 @@
|
|
|
42
53
|
"get-system-fonts": "^2.0.2"
|
|
43
54
|
},
|
|
44
55
|
"devDependencies": {
|
|
56
|
+
"@chenglou/pretext": "^0.0.8",
|
|
45
57
|
"@types/node": "^26.0.0",
|
|
46
58
|
"@clean-jsdoc-theme/typedoc": "^5.0.6",
|
|
47
59
|
"typedoc": "^0.28.19"
|