@unmade/text-renderer 1.0.0 → 1.1.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.
- package/dist/__vite-browser-external-CijFC1_R.js +7 -0
- package/dist/baselines/index.d.ts +40 -0
- package/dist/ce-adapter/index.cjs +1 -1
- package/dist/ce-adapter/index.js +154 -152
- package/dist/chunk-3b4jIN3o.js +13 -0
- package/dist/constants.d.ts +5 -0
- package/dist/glyph/svg-glyph-converter.d.ts +42 -0
- package/dist/helpers/bbox.d.ts +33 -0
- package/dist/helpers/matrix.d.ts +8 -0
- package/dist/helpers/point.d.ts +17 -0
- package/dist/helpers/xml.d.ts +1 -0
- package/dist/index.d.ts +16 -249
- package/dist/index.js +1543 -1954
- package/dist/loading/createLoadedFont.d.ts +53 -0
- package/dist/loading/index.d.ts +4 -0
- package/dist/measuring/conversion.d.ts +2 -0
- package/dist/measuring/index.d.ts +28 -0
- package/dist/node/baselines/index.d.ts +40 -0
- package/dist/node/ce-adapter/ce-types.d.ts +171 -0
- package/dist/node/ce-adapter/extractTextPlacements.d.ts +11 -0
- package/dist/node/ce-adapter/index.d.ts +12 -0
- package/dist/node/ce-adapter/mapStateToRendererOptions.d.ts +13 -0
- package/dist/node/ce-adapter/types.d.ts +56 -0
- package/dist/node/constants.d.ts +5 -0
- package/dist/node/glyph/svg-glyph-converter.d.ts +42 -0
- package/dist/node/helpers/bbox.d.ts +33 -0
- package/dist/node/helpers/matrix.d.ts +8 -0
- package/dist/node/helpers/point.d.ts +17 -0
- package/dist/node/helpers/xml.d.ts +1 -0
- package/dist/node/index.d.ts +16 -249
- package/dist/node/index.js +821 -895
- package/dist/node/loading/createLoadedFont.d.ts +53 -0
- package/dist/node/loading/index.d.ts +4 -0
- package/dist/node/measuring/conversion.d.ts +2 -0
- package/dist/node/measuring/index.d.ts +28 -0
- package/dist/node/renderText.d.ts +5 -0
- package/dist/node/rendering/index.d.ts +42 -0
- package/dist/node/svg/index.d.ts +11 -0
- package/dist/node/types.d.ts +72 -0
- package/dist/renderText.d.ts +5 -0
- package/dist/rendering/index.d.ts +42 -0
- package/dist/svg/index.d.ts +11 -0
- package/dist/types.d.ts +72 -0
- package/dist/worker/baselines/index.d.ts +40 -0
- package/dist/worker/ce-adapter/ce-types.d.ts +171 -0
- package/dist/worker/ce-adapter/extractTextPlacements.d.ts +11 -0
- package/dist/worker/ce-adapter/index.d.ts +12 -0
- package/dist/worker/ce-adapter/mapStateToRendererOptions.d.ts +13 -0
- package/dist/worker/ce-adapter/types.d.ts +56 -0
- package/dist/worker/constants.d.ts +5 -0
- package/dist/worker/glyph/svg-glyph-converter.d.ts +42 -0
- package/dist/worker/helpers/bbox.d.ts +33 -0
- package/dist/worker/helpers/matrix.d.ts +8 -0
- package/dist/worker/helpers/point.d.ts +17 -0
- package/dist/worker/helpers/xml.d.ts +1 -0
- package/dist/worker/index.d.ts +16 -249
- package/dist/worker/index.js +8003 -9677
- package/dist/worker/loading/createLoadedFont.d.ts +53 -0
- package/dist/worker/loading/index.d.ts +4 -0
- package/dist/worker/measuring/conversion.d.ts +2 -0
- package/dist/worker/measuring/index.d.ts +28 -0
- package/dist/worker/renderText.d.ts +5 -0
- package/dist/worker/rendering/index.d.ts +42 -0
- package/dist/worker/svg/index.d.ts +11 -0
- package/dist/worker/types.d.ts +72 -0
- package/package.json +11 -10
- package/dist/__vite-browser-external-l0sNRNKZ.js +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { BaselineConfig, BaselineType, BoxDimensions, VerticalTextAlignmentValues } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Normalise a baseline option (string shorthand or object) into a BaselineConfig.
|
|
4
|
+
*/
|
|
5
|
+
export declare const normaliseBaselineOption: (baseline: BaselineType | BaselineConfig | undefined) => BaselineConfig;
|
|
6
|
+
/**
|
|
7
|
+
* Validate a custom baseline SVG path string.
|
|
8
|
+
*/
|
|
9
|
+
export declare const validateCustomBaselinePath: (path: string) => void;
|
|
10
|
+
export interface GenerateFlatBaselineOptions {
|
|
11
|
+
boxDimensions: BoxDimensions;
|
|
12
|
+
totalTextHeight: number;
|
|
13
|
+
baseline: number;
|
|
14
|
+
lineHeight: number;
|
|
15
|
+
verticalAlignment?: VerticalTextAlignmentValues;
|
|
16
|
+
lineNumber?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generate a path as a baseline for straight text
|
|
20
|
+
* This can be called multiple times for multiline text by incrementing the lineNumber parameter
|
|
21
|
+
*
|
|
22
|
+
* @returns an SVG path command to draw the baseline
|
|
23
|
+
*/
|
|
24
|
+
export declare const generateFlatBaseline: ({ boxDimensions, totalTextHeight, baseline, lineHeight, verticalAlignment, lineNumber, }: GenerateFlatBaselineOptions) => string;
|
|
25
|
+
export interface GenerateCurvedBaselineOptions {
|
|
26
|
+
boxDimensions: BoxDimensions;
|
|
27
|
+
baseline: number;
|
|
28
|
+
textHeight: number;
|
|
29
|
+
verticalAlignment: VerticalTextAlignmentValues;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate a path command to curve text and align that text to the top of the box.
|
|
33
|
+
* Uses two quadratic bezier curves — one from the bottom left to the peak, and a
|
|
34
|
+
* second mirrored from the peak to the end.
|
|
35
|
+
*
|
|
36
|
+
* Curved text is not currently supported for multiline text.
|
|
37
|
+
*
|
|
38
|
+
* @returns an SVG path command to draw the curve
|
|
39
|
+
*/
|
|
40
|
+
export declare const generateCurvedBaseline: ({ boxDimensions, baseline, textHeight, verticalAlignment, }: GenerateCurvedBaselineOptions) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e){return e.type===`text`}function t(e){let t=e.getState().garment;return e.settings.garments.find(e=>e.slug===t)}function n(e,t,n){if(!e.embellishment_positions)return;let r=e.embellishment_positions.filter(e=>e.placement===t?!n||!e.variant?!0:e.variant===n||e.variant.toLowerCase()===`common`:!1);if(n&&r.length>1){let e=r.find(e=>e.variant===n);if(e)return e}return r[0]}function r(e,t){let n=e.fonts.find(e=>e.id===t);if(n)return{id:n.id,fontUrl:n.font_url,fontFamily:n.font_family,letterSpacing:n.letter_spacing??0,letterSpacingOutline:n.letter_spacing_outline??0,outlineWidth:n.outline_width??0,fixedColours:n.fixed_colours}}function i(t,i,a,o,s,c){let{library:l}=s,u=[];for(let[d,f]of Object.entries(o)){if(f.type!==`text`)continue;let o=f,{meta:p}=o;if(!p?.text)continue;let{libraryItemID:m}=o,h=l[m];if(!h||!e(h))continue;let g=p.font;if(g===void 0)continue;let _=r(h,g);if(!_)continue;let v=n(i,d,c);if(!v)continue;let y=null,b=null;if(p.colours&&h.palette!=null)try{let e=t.palettes.getUsedColours(h.palette,p.colours);y=e[0]??null,b=e[1]??null}catch(e){console.warn(`[extractTextPlacements] Colour resolution failed for ${d}:`,e)}let x=s.byId?.[d],S={vertical:`top`,horizontal:`left`};if(x){let e=x;e.vertical_alignment&&(S.vertical=e.vertical_alignment),e.horizontal_alignment&&(S.horizontal=e.horizontal_alignment)}u.push({placementId:d,displayName:d,source:a,text:p.text,font:_,isCurved:p.isCurved??!1,isDistributed:p.isDistributed??!1,verticalAlignment:p.verticalAlignment??S.vertical,horizontalAlignment:p.horizontalAlignment??S.horizontal,rotation:p.rotation??0,spacing:p.spacing??null,fillColour:y,outlineColour:b,position:{width:v.width,height:v.height,physicalWidth:v.physical_width_decimal,physicalHeight:v.physical_height_decimal,physicalUnits:v.physical_size_units,baselinePath:v.baseline_path,rotation:v.rotation},userSetPhysicalSize:p.retainedPhysicalSize??null,fontMetrics:(()=>{let e=p.fontMetrics??{size:0,height:0,baseline:0,width:0},t=e.physicalFontSize||(e.physicalHeight!=null&&e.physicalHeight>0&&e.physicalUnits!=null?[e.physicalHeight,e.physicalUnits]:void 0);return{...e,physicalFontSize:t}})(),manufacturingMethod:p.manufacturing_method??``})}return u}function a(e){let n=e.getState(),r=t(e);if(!r)return console.warn(`[extractTextPlacements] No matching garment found`),[];let a=typeof e.getCurrentVariant==`function`?e.getCurrentVariant():void 0,o=[],s=n.vals?.placements,c=e.settings.placements;s&&c&&o.push(...i(e,r,`placements`,s,c,a));let l=n.vals?.embellishments,u=e.settings.embellishments;return l&&u&&o.push(...i(e,r,`embellishments`,l,u,a)),o.length===0&&console.warn(`[extractTextPlacements] No text entries found in either placements or embellishments`),o}function o(e){return e===`center`?`centre`:e}function s(e){let t=o(e.horizontalAlignment);e.isDistributed&&(t=`distributed`);let n;n=e.position.baselinePath?{type:`custom`,path:e.position.baselinePath}:e.isCurved?`curved`:`flat`;let r=e.userSetPhysicalSize?[e.userSetPhysicalSize[0],e.userSetPhysicalSize[1]]:e.fontMetrics.physicalFontSize==null?[e.position.physicalHeight,e.position.physicalUnits]:e.fontMetrics.physicalFontSize,i={outlineWidth:e.outlineColour==null?0:e.font.outlineWidth,letterSpacing:e.spacing?.letter_spacing??0,letterSpacingOutline:e.spacing?.letter_spacing_outline??0},a=e.fillColour?{hex:e.fillColour.hex,reference:e.fillColour.reference??void 0}:void 0,s=e.outlineColour?{hex:e.outlineColour.hex,reference:e.outlineColour.reference??void 0}:void 0,c;if(e.font.fixedColours){let t={};for(let[n,r]of Object.entries(e.font.fixedColours))t[n]={hex:r.hex,reference:r.reference};c=t}return{text:e.text,fontUrl:e.font.fontUrl,physicalSize:r,fontSizeFallback:e.fontMetrics.size,boxDimensions:{width:e.position.width,height:e.position.height,physicalWidth:e.position.physicalWidth,physicalHeight:e.position.physicalHeight,physicalUnits:e.position.physicalUnits},spacing:i,verticalAlignment:o(e.verticalAlignment),horizontalAlignment:t,baseline:n,fillColour:a,strokeColour:s,colourMap:c}}exports.extractTextPlacements=a,exports.mapStateToRendererOptions=s;
|
package/dist/ce-adapter/index.js
CHANGED
|
@@ -1,160 +1,162 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
//#region src/ce-adapter/extractTextPlacements.ts
|
|
2
|
+
function e(e) {
|
|
3
|
+
return e.type === "text";
|
|
3
4
|
}
|
|
4
|
-
function
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function t(e) {
|
|
6
|
+
let t = e.getState().garment;
|
|
7
|
+
return e.settings.garments.find((e) => e.slug === t);
|
|
7
8
|
}
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
function n(e, t, n) {
|
|
10
|
+
if (!e.embellishment_positions) return;
|
|
11
|
+
let r = e.embellishment_positions.filter((e) => e.placement === t ? !n || !e.variant ? !0 : e.variant === n || e.variant.toLowerCase() === "common" : !1);
|
|
12
|
+
if (n && r.length > 1) {
|
|
13
|
+
let e = r.find((e) => e.variant === n);
|
|
14
|
+
if (e) return e;
|
|
15
|
+
}
|
|
16
|
+
return r[0];
|
|
16
17
|
}
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
18
|
+
function r(e, t) {
|
|
19
|
+
let n = e.fonts.find((e) => e.id === t);
|
|
20
|
+
if (n) return {
|
|
21
|
+
id: n.id,
|
|
22
|
+
fontUrl: n.font_url,
|
|
23
|
+
fontFamily: n.font_family,
|
|
24
|
+
letterSpacing: n.letter_spacing ?? 0,
|
|
25
|
+
letterSpacingOutline: n.letter_spacing_outline ?? 0,
|
|
26
|
+
outlineWidth: n.outline_width ?? 0,
|
|
27
|
+
fixedColours: n.fixed_colours
|
|
28
|
+
};
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
30
|
+
function i(t, i, a, o, s, c) {
|
|
31
|
+
let { library: l } = s, u = [];
|
|
32
|
+
for (let [d, f] of Object.entries(o)) {
|
|
33
|
+
if (f.type !== "text") continue;
|
|
34
|
+
let o = f, { meta: p } = o;
|
|
35
|
+
if (!p?.text) continue;
|
|
36
|
+
let { libraryItemID: m } = o, h = l[m];
|
|
37
|
+
if (!h || !e(h)) continue;
|
|
38
|
+
let g = p.font;
|
|
39
|
+
if (g === void 0) continue;
|
|
40
|
+
let _ = r(h, g);
|
|
41
|
+
if (!_) continue;
|
|
42
|
+
let v = n(i, d, c);
|
|
43
|
+
if (!v) continue;
|
|
44
|
+
let y = null, b = null;
|
|
45
|
+
if (p.colours && h.palette != null) try {
|
|
46
|
+
let e = t.palettes.getUsedColours(h.palette, p.colours);
|
|
47
|
+
y = e[0] ?? null, b = e[1] ?? null;
|
|
48
|
+
} catch (e) {
|
|
49
|
+
console.warn(`[extractTextPlacements] Colour resolution failed for ${d}:`, e);
|
|
50
|
+
}
|
|
51
|
+
let x = s.byId?.[d], S = {
|
|
52
|
+
vertical: "top",
|
|
53
|
+
horizontal: "left"
|
|
54
|
+
};
|
|
55
|
+
if (x) {
|
|
56
|
+
let e = x;
|
|
57
|
+
e.vertical_alignment && (S.vertical = e.vertical_alignment), e.horizontal_alignment && (S.horizontal = e.horizontal_alignment);
|
|
58
|
+
}
|
|
59
|
+
u.push({
|
|
60
|
+
placementId: d,
|
|
61
|
+
displayName: d,
|
|
62
|
+
source: a,
|
|
63
|
+
text: p.text,
|
|
64
|
+
font: _,
|
|
65
|
+
isCurved: p.isCurved ?? !1,
|
|
66
|
+
isDistributed: p.isDistributed ?? !1,
|
|
67
|
+
verticalAlignment: p.verticalAlignment ?? S.vertical,
|
|
68
|
+
horizontalAlignment: p.horizontalAlignment ?? S.horizontal,
|
|
69
|
+
rotation: p.rotation ?? 0,
|
|
70
|
+
spacing: p.spacing ?? null,
|
|
71
|
+
fillColour: y,
|
|
72
|
+
outlineColour: b,
|
|
73
|
+
position: {
|
|
74
|
+
width: v.width,
|
|
75
|
+
height: v.height,
|
|
76
|
+
physicalWidth: v.physical_width_decimal,
|
|
77
|
+
physicalHeight: v.physical_height_decimal,
|
|
78
|
+
physicalUnits: v.physical_size_units,
|
|
79
|
+
baselinePath: v.baseline_path,
|
|
80
|
+
rotation: v.rotation
|
|
81
|
+
},
|
|
82
|
+
userSetPhysicalSize: p.retainedPhysicalSize ?? null,
|
|
83
|
+
fontMetrics: (() => {
|
|
84
|
+
let e = p.fontMetrics ?? {
|
|
85
|
+
size: 0,
|
|
86
|
+
height: 0,
|
|
87
|
+
baseline: 0,
|
|
88
|
+
width: 0
|
|
89
|
+
}, t = e.physicalFontSize || (e.physicalHeight != null && e.physicalHeight > 0 && e.physicalUnits != null ? [e.physicalHeight, e.physicalUnits] : void 0);
|
|
90
|
+
return {
|
|
91
|
+
...e,
|
|
92
|
+
physicalFontSize: t
|
|
93
|
+
};
|
|
94
|
+
})(),
|
|
95
|
+
manufacturingMethod: p.manufacturing_method ?? ""
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return u;
|
|
95
99
|
}
|
|
96
|
-
function
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return u && r && o.push(...S(t, i, "embellishments", u, r, s)), o.length === 0 && console.warn("[extractTextPlacements] No text entries found in either placements or embellishments"), o;
|
|
100
|
+
function a(e) {
|
|
101
|
+
let n = e.getState(), r = t(e);
|
|
102
|
+
if (!r) return console.warn("[extractTextPlacements] No matching garment found"), [];
|
|
103
|
+
let a = typeof e.getCurrentVariant == "function" ? e.getCurrentVariant() : void 0, o = [], s = n.vals?.placements, c = e.settings.placements;
|
|
104
|
+
s && c && o.push(...i(e, r, "placements", s, c, a));
|
|
105
|
+
let l = n.vals?.embellishments, u = e.settings.embellishments;
|
|
106
|
+
return l && u && o.push(...i(e, r, "embellishments", l, u, a)), o.length === 0 && console.warn("[extractTextPlacements] No text entries found in either placements or embellishments"), o;
|
|
104
107
|
}
|
|
105
|
-
|
|
106
|
-
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/ce-adapter/mapStateToRendererOptions.ts
|
|
110
|
+
function o(e) {
|
|
111
|
+
return e === "center" ? "centre" : e;
|
|
107
112
|
}
|
|
108
|
-
function
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
};
|
|
113
|
+
function s(e) {
|
|
114
|
+
let t = o(e.horizontalAlignment);
|
|
115
|
+
e.isDistributed && (t = "distributed");
|
|
116
|
+
let n;
|
|
117
|
+
n = e.position.baselinePath ? {
|
|
118
|
+
type: "custom",
|
|
119
|
+
path: e.position.baselinePath
|
|
120
|
+
} : e.isCurved ? "curved" : "flat";
|
|
121
|
+
let r = e.userSetPhysicalSize ? [e.userSetPhysicalSize[0], e.userSetPhysicalSize[1]] : e.fontMetrics.physicalFontSize == null ? [e.position.physicalHeight, e.position.physicalUnits] : e.fontMetrics.physicalFontSize, i = {
|
|
122
|
+
outlineWidth: e.outlineColour == null ? 0 : e.font.outlineWidth,
|
|
123
|
+
letterSpacing: e.spacing?.letter_spacing ?? 0,
|
|
124
|
+
letterSpacingOutline: e.spacing?.letter_spacing_outline ?? 0
|
|
125
|
+
}, a = e.fillColour ? {
|
|
126
|
+
hex: e.fillColour.hex,
|
|
127
|
+
reference: e.fillColour.reference ?? void 0
|
|
128
|
+
} : void 0, s = e.outlineColour ? {
|
|
129
|
+
hex: e.outlineColour.hex,
|
|
130
|
+
reference: e.outlineColour.reference ?? void 0
|
|
131
|
+
} : void 0, c;
|
|
132
|
+
if (e.font.fixedColours) {
|
|
133
|
+
let t = {};
|
|
134
|
+
for (let [n, r] of Object.entries(e.font.fixedColours)) t[n] = {
|
|
135
|
+
hex: r.hex,
|
|
136
|
+
reference: r.reference
|
|
137
|
+
};
|
|
138
|
+
c = t;
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
text: e.text,
|
|
142
|
+
fontUrl: e.font.fontUrl,
|
|
143
|
+
physicalSize: r,
|
|
144
|
+
fontSizeFallback: e.fontMetrics.size,
|
|
145
|
+
boxDimensions: {
|
|
146
|
+
width: e.position.width,
|
|
147
|
+
height: e.position.height,
|
|
148
|
+
physicalWidth: e.position.physicalWidth,
|
|
149
|
+
physicalHeight: e.position.physicalHeight,
|
|
150
|
+
physicalUnits: e.position.physicalUnits
|
|
151
|
+
},
|
|
152
|
+
spacing: i,
|
|
153
|
+
verticalAlignment: o(e.verticalAlignment),
|
|
154
|
+
horizontalAlignment: t,
|
|
155
|
+
baseline: n,
|
|
156
|
+
fillColour: a,
|
|
157
|
+
strokeColour: s,
|
|
158
|
+
colourMap: c
|
|
159
|
+
};
|
|
156
160
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
H as mapStateToRendererOptions
|
|
160
|
-
};
|
|
161
|
+
//#endregion
|
|
162
|
+
export { a as extractTextPlacements, s as mapStateToRendererOptions };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, i, o, s) => {
|
|
3
|
+
if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
|
|
4
|
+
get: ((e) => i[e]).bind(null, d),
|
|
5
|
+
enumerable: !(s = n(i, d)) || s.enumerable
|
|
6
|
+
});
|
|
7
|
+
return e;
|
|
8
|
+
}, c = (n, r, a) => (a = n == null ? {} : e(i(n)), s(r || !n || !n.__esModule ? t(a, "default", {
|
|
9
|
+
value: n,
|
|
10
|
+
enumerable: !0
|
|
11
|
+
}) : a, n));
|
|
12
|
+
//#endregion
|
|
13
|
+
export { c as n, o as t };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LoadedFont } from '../loading';
|
|
2
|
+
import { ColourInfo, ColourMap, GlyphFill } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Get the unique colours used by a font's SVG glyphs.
|
|
5
|
+
*
|
|
6
|
+
* @param font - A loaded font with svgGlyphs populated
|
|
7
|
+
* @returns Array of unique hex colour strings found in the font's SVG glyphs
|
|
8
|
+
*/
|
|
9
|
+
export declare function getFontColours(font: LoadedFont): string[];
|
|
10
|
+
/**
|
|
11
|
+
* Extract fill paths from SVG content with optional colour remapping.
|
|
12
|
+
*
|
|
13
|
+
* @param svgContent - Raw SVG string from the font's SVG table
|
|
14
|
+
* @param colourMap - Optional mapping of original colours to replacements
|
|
15
|
+
* @returns Array of GlyphFill objects
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractFillsFromSVG(svgContent: string, colourMap?: ColourMap): GlyphFill[];
|
|
18
|
+
/**
|
|
19
|
+
* Apply colour map to remap a colour value.
|
|
20
|
+
*
|
|
21
|
+
* @param colour - Original colour hex string
|
|
22
|
+
* @param colourMap - Optional colour replacement mapping
|
|
23
|
+
* @returns ColourInfo with hex and optional reference
|
|
24
|
+
*/
|
|
25
|
+
export declare function applyColourMap(colour: string, colourMap?: ColourMap): ColourInfo;
|
|
26
|
+
/**
|
|
27
|
+
* Extract the inner content from a raw SVG glyph string.
|
|
28
|
+
* Strips the XML declaration and outer <svg> wrapper, returning the inner elements.
|
|
29
|
+
*/
|
|
30
|
+
export declare function extractSvgGlyphContent(rawSvg: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Namespace all IDs in SVG content to prevent collisions when multiple
|
|
33
|
+
* glyphs are embedded in the same document. Prefixes all id attributes
|
|
34
|
+
* and updates all references (href, url(), clip-path, mask, filter).
|
|
35
|
+
*/
|
|
36
|
+
export declare function namespaceSvgIds(svgContent: string, prefix: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Remap colour values in raw SVG content. Replaces fill, stroke,
|
|
39
|
+
* and stop-color attribute values according to the colour map.
|
|
40
|
+
* Also handles elements without explicit fill that default to black.
|
|
41
|
+
*/
|
|
42
|
+
export declare function remapSvgColours(svgContent: string, colourMap: ColourMap): string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare class Box {
|
|
2
|
+
corners: DOMPoint[];
|
|
3
|
+
x1: number;
|
|
4
|
+
y1: number;
|
|
5
|
+
x2: number;
|
|
6
|
+
y2: number;
|
|
7
|
+
_x3: number | undefined;
|
|
8
|
+
_y3: number | undefined;
|
|
9
|
+
_x4: number | undefined;
|
|
10
|
+
_y4: number | undefined;
|
|
11
|
+
get x3(): number;
|
|
12
|
+
get y3(): number;
|
|
13
|
+
get x4(): number;
|
|
14
|
+
get y4(): number;
|
|
15
|
+
constructor(x1: number, y1: number, x2: number, y2: number, x3?: number, y3?: number, x4?: number, y4?: number);
|
|
16
|
+
transform(matrix: DOMMatrix): void;
|
|
17
|
+
toPointsArray(): number[][];
|
|
18
|
+
getBBox(): BBox;
|
|
19
|
+
}
|
|
20
|
+
export declare class BBox extends Box {
|
|
21
|
+
get x(): number;
|
|
22
|
+
get y(): number;
|
|
23
|
+
get width(): number;
|
|
24
|
+
get height(): number;
|
|
25
|
+
add(box: Box): void;
|
|
26
|
+
addPoint(x: number, y: number): void;
|
|
27
|
+
serialize(): {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a matrix with optional initial values
|
|
3
|
+
* Detects what style of matrix is supported by the browser
|
|
4
|
+
*
|
|
5
|
+
* @param {Array} initialValues - the initial values for the matrix
|
|
6
|
+
* @returns {DOMMatrix} the new matrix
|
|
7
|
+
*/
|
|
8
|
+
export declare const createMatrix: (initialValues?: number[]) => DOMMatrix;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class Point {
|
|
2
|
+
private x;
|
|
3
|
+
private y;
|
|
4
|
+
constructor(x: number, y: number);
|
|
5
|
+
get X(): number;
|
|
6
|
+
get Y(): number;
|
|
7
|
+
toSVGString(): string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Rotate a point about a pivot point
|
|
11
|
+
*
|
|
12
|
+
* @param point - the point to rotate
|
|
13
|
+
* @param rotate - the amount in degrees
|
|
14
|
+
* @param pivotPoint - the point around which to rotate
|
|
15
|
+
* @returns the new point
|
|
16
|
+
*/
|
|
17
|
+
export declare function rotatePoint(point: Point, rotate: number, pivotPoint?: Point): Point;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function escapeXML(str: string): string;
|