react-native-nano-icons 0.0.0 → 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/LICENSE +21 -0
- package/README.md +174 -0
- package/app.plugin.js +1 -0
- package/lib/commonjs/cli/build.d.ts +28 -0
- package/lib/commonjs/cli/build.js +83 -0
- package/lib/commonjs/cli/config.d.ts +9 -0
- package/lib/commonjs/cli/config.js +25 -0
- package/lib/commonjs/cli/index.d.ts +4 -0
- package/lib/commonjs/cli/index.js +13 -0
- package/lib/commonjs/cli/link.d.ts +11 -0
- package/lib/commonjs/cli/link.js +135 -0
- package/lib/commonjs/cli/logger.d.ts +27 -0
- package/lib/commonjs/cli/logger.js +83 -0
- package/lib/commonjs/index.node.js +8 -0
- package/lib/commonjs/plugin/src/buildFonts.d.ts +7 -0
- package/lib/commonjs/plugin/src/buildFonts.js +23 -0
- package/lib/commonjs/plugin/src/index.d.ts +5 -0
- package/lib/commonjs/plugin/src/index.js +43 -0
- package/lib/commonjs/plugin/src/types.d.ts +31 -0
- package/lib/commonjs/plugin/src/types.js +2 -0
- package/lib/commonjs/plugin/src/withNanoIconsFontLinking.d.ts +14 -0
- package/lib/commonjs/plugin/src/withNanoIconsFontLinking.js +92 -0
- package/lib/commonjs/scripts/cli.js +28 -0
- package/lib/commonjs/src/const/colors.d.ts +1 -0
- package/lib/commonjs/src/const/colors.js +153 -0
- package/lib/commonjs/src/core/font/compile.d.ts +9 -0
- package/lib/commonjs/src/core/font/compile.js +68 -0
- package/lib/commonjs/src/core/font/metrics.d.ts +1 -0
- package/lib/commonjs/src/core/font/metrics.js +33 -0
- package/lib/commonjs/src/core/pipeline/config.d.ts +14 -0
- package/lib/commonjs/src/core/pipeline/config.js +17 -0
- package/lib/commonjs/src/core/pipeline/index.d.ts +3 -0
- package/lib/commonjs/src/core/pipeline/index.js +7 -0
- package/lib/commonjs/src/core/pipeline/managers.d.ts +11 -0
- package/lib/commonjs/src/core/pipeline/managers.js +89 -0
- package/lib/commonjs/src/core/pipeline/run.d.ts +14 -0
- package/lib/commonjs/src/core/pipeline/run.js +99 -0
- package/lib/commonjs/src/core/svg/layers.d.ts +24 -0
- package/lib/commonjs/src/core/svg/layers.js +42 -0
- package/lib/commonjs/src/core/svg/svg_dom.d.ts +22 -0
- package/lib/commonjs/src/core/svg/svg_dom.js +84 -0
- package/lib/commonjs/src/core/svg/svg_pathops.d.ts +21 -0
- package/lib/commonjs/src/core/svg/svg_pathops.js +611 -0
- package/lib/commonjs/src/core/types.d.ts +120 -0
- package/lib/commonjs/src/core/types.js +2 -0
- package/lib/commonjs/src/utils/fingerPrint.d.ts +1 -0
- package/lib/commonjs/src/utils/fingerPrint.js +20 -0
- package/lib/commonjs/src/utils/parse.d.ts +2 -0
- package/lib/commonjs/src/utils/parse.js +64 -0
- package/lib/module/const/colors.js +153 -0
- package/lib/module/const/colors.js.map +1 -0
- package/lib/module/core/font/compile.js +70 -0
- package/lib/module/core/font/compile.js.map +1 -0
- package/lib/module/core/font/metrics.js +37 -0
- package/lib/module/core/font/metrics.js.map +1 -0
- package/lib/module/core/pipeline/config.js +20 -0
- package/lib/module/core/pipeline/config.js.map +1 -0
- package/lib/module/core/pipeline/index.js +5 -0
- package/lib/module/core/pipeline/index.js.map +1 -0
- package/lib/module/core/pipeline/managers.js +80 -0
- package/lib/module/core/pipeline/managers.js.map +1 -0
- package/lib/module/core/pipeline/run.js +114 -0
- package/lib/module/core/pipeline/run.js.map +1 -0
- package/lib/module/core/shims/pathops.py +181 -0
- package/lib/module/core/svg/layers.js +51 -0
- package/lib/module/core/svg/layers.js.map +1 -0
- package/lib/module/core/svg/svg_dom.js +83 -0
- package/lib/module/core/svg/svg_dom.js.map +1 -0
- package/lib/module/core/svg/svg_pathops.js +566 -0
- package/lib/module/core/svg/svg_pathops.js.map +1 -0
- package/lib/module/core/tsconfig.json +32 -0
- package/lib/module/core/types.js +2 -0
- package/lib/module/core/types.js.map +1 -0
- package/lib/module/createNanoIconsSet.js +84 -0
- package/lib/module/createNanoIconsSet.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.node.js +13 -0
- package/lib/module/index.node.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/utils/fingerPrint.js +17 -0
- package/lib/module/utils/fingerPrint.js.map +1 -0
- package/lib/module/utils/parse.js +53 -0
- package/lib/module/utils/parse.js.map +1 -0
- package/lib/typescript/__tests__/build.unit.test.d.ts +3 -0
- package/lib/typescript/__tests__/build.unit.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/clippath.e2e.test.d.ts +3 -0
- package/lib/typescript/__tests__/clippath.e2e.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/fingerprint.unit.test.d.ts +3 -0
- package/lib/typescript/__tests__/fingerprint.unit.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/pipeline.e2e.test.d.ts +3 -0
- package/lib/typescript/__tests__/pipeline.e2e.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/placement.unit.test.d.ts +3 -0
- package/lib/typescript/__tests__/placement.unit.test.d.ts.map +1 -0
- package/lib/typescript/__tests__/svg_dom.unit.test.d.ts +3 -0
- package/lib/typescript/__tests__/svg_dom.unit.test.d.ts.map +1 -0
- package/lib/typescript/cli/build.d.ts +29 -0
- package/lib/typescript/cli/build.d.ts.map +1 -0
- package/lib/typescript/cli/logger.d.ts +28 -0
- package/lib/typescript/cli/logger.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/const/colors.d.ts +2 -0
- package/lib/typescript/src/const/colors.d.ts.map +1 -0
- package/lib/typescript/src/core/font/compile.d.ts +10 -0
- package/lib/typescript/src/core/font/compile.d.ts.map +1 -0
- package/lib/typescript/src/core/font/metrics.d.ts +2 -0
- package/lib/typescript/src/core/font/metrics.d.ts.map +1 -0
- package/lib/typescript/src/core/pipeline/config.d.ts +15 -0
- package/lib/typescript/src/core/pipeline/config.d.ts.map +1 -0
- package/lib/typescript/src/core/pipeline/index.d.ts +4 -0
- package/lib/typescript/src/core/pipeline/index.d.ts.map +1 -0
- package/lib/typescript/src/core/pipeline/managers.d.ts +12 -0
- package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -0
- package/lib/typescript/src/core/pipeline/run.d.ts +15 -0
- package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -0
- package/lib/typescript/src/core/svg/layers.d.ts +25 -0
- package/lib/typescript/src/core/svg/layers.d.ts.map +1 -0
- package/lib/typescript/src/core/svg/svg_dom.d.ts +23 -0
- package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -0
- package/lib/typescript/src/core/svg/svg_pathops.d.ts +22 -0
- package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -0
- package/lib/typescript/src/core/types.d.ts +121 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -0
- package/lib/typescript/src/createNanoIconsSet.d.ts +19 -0
- package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/index.node.d.ts +2 -0
- package/lib/typescript/src/index.node.d.ts.map +1 -0
- package/lib/typescript/src/utils/fingerPrint.d.ts +2 -0
- package/lib/typescript/src/utils/fingerPrint.d.ts.map +1 -0
- package/lib/typescript/src/utils/parse.d.ts +3 -0
- package/lib/typescript/src/utils/parse.d.ts.map +1 -0
- package/package.json +160 -1
- package/plugin/src/buildFonts.ts +29 -0
- package/plugin/src/index.ts +68 -0
- package/plugin/src/types.ts +33 -0
- package/plugin/src/withNanoIconsFontLinking.ts +119 -0
- package/plugin/tsconfig.json +9 -0
- package/scripts/cli.ts +34 -0
- package/scripts/tsconfig.json +25 -0
- package/src/const/colors.ts +150 -0
- package/src/core/font/compile.ts +96 -0
- package/src/core/font/metrics.ts +44 -0
- package/src/core/pipeline/config.ts +24 -0
- package/src/core/pipeline/index.ts +3 -0
- package/src/core/pipeline/managers.ts +114 -0
- package/src/core/pipeline/run.ts +151 -0
- package/src/core/shims/pathops.py +181 -0
- package/src/core/svg/layers.ts +66 -0
- package/src/core/svg/svg_dom.ts +99 -0
- package/src/core/svg/svg_pathops.ts +796 -0
- package/src/core/tsconfig.json +32 -0
- package/src/core/types.ts +138 -0
- package/src/createNanoIconsSet.tsx +131 -0
- package/src/index.node.ts +14 -0
- package/src/index.ts +7 -0
- package/src/utils/fingerPrint.ts +20 -0
- package/src/utils/parse.ts +67 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { Platform, Text, View, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const DEFAULT_ICON_SIZE = 12;
|
|
7
|
+
export function createIconSet(glyphMap) {
|
|
8
|
+
const fontBasename = glyphMap.meta.fontFamily;
|
|
9
|
+
const fontReference = Platform.select({
|
|
10
|
+
windows: `/Assets/${fontBasename}`,
|
|
11
|
+
android: fontBasename,
|
|
12
|
+
default: fontBasename
|
|
13
|
+
});
|
|
14
|
+
const styleOverrides = {
|
|
15
|
+
fontFamily: fontReference,
|
|
16
|
+
fontWeight: 'normal',
|
|
17
|
+
fontStyle: 'normal',
|
|
18
|
+
position: 'absolute',
|
|
19
|
+
includeFontPadding: false,
|
|
20
|
+
bottom: 0
|
|
21
|
+
};
|
|
22
|
+
const resolveEntry = name => {
|
|
23
|
+
return glyphMap.icons[name] ?? {
|
|
24
|
+
adv: glyphMap.meta.upm,
|
|
25
|
+
layers: [{
|
|
26
|
+
codepoint: 63,
|
|
27
|
+
color: 'black'
|
|
28
|
+
}] // "?"
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const Icon = ({
|
|
32
|
+
name,
|
|
33
|
+
size = DEFAULT_ICON_SIZE,
|
|
34
|
+
colorPalette,
|
|
35
|
+
style,
|
|
36
|
+
allowFontScaling = true,
|
|
37
|
+
innerRef,
|
|
38
|
+
...props
|
|
39
|
+
}) => {
|
|
40
|
+
const {
|
|
41
|
+
fontScale
|
|
42
|
+
} = useWindowDimensions();
|
|
43
|
+
const entry = resolveEntry(name);
|
|
44
|
+
const layers = entry.layers ?? [];
|
|
45
|
+
const scaledSize = allowFontScaling ? size * fontScale : size;
|
|
46
|
+
const width = entry.adv / glyphMap.meta.upm * scaledSize;
|
|
47
|
+
const containerProps = {
|
|
48
|
+
style: {
|
|
49
|
+
height: scaledSize,
|
|
50
|
+
width,
|
|
51
|
+
bottom: 0
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const lastPaletteColor = colorPalette?.length ? colorPalette[colorPalette.length - 1] : undefined;
|
|
55
|
+
return /*#__PURE__*/_jsx(View, {
|
|
56
|
+
nativeID: `nano-icon-container-${String(name)}`,
|
|
57
|
+
ref: innerRef,
|
|
58
|
+
...containerProps,
|
|
59
|
+
children: layers.map(({
|
|
60
|
+
codepoint,
|
|
61
|
+
color: srcColor
|
|
62
|
+
}, i) => {
|
|
63
|
+
const layerColor = colorPalette?.[i] ?? lastPaletteColor ?? srcColor ?? 'black';
|
|
64
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
65
|
+
selectable: false,
|
|
66
|
+
...props,
|
|
67
|
+
allowFontScaling: allowFontScaling,
|
|
68
|
+
style: [style, styleOverrides, {
|
|
69
|
+
fontSize: size,
|
|
70
|
+
color: layerColor
|
|
71
|
+
}],
|
|
72
|
+
children: String.fromCodePoint(codepoint)
|
|
73
|
+
}, `${codepoint}-${i}`);
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const WrappedIcon = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(Icon, {
|
|
78
|
+
innerRef: ref,
|
|
79
|
+
...props
|
|
80
|
+
}));
|
|
81
|
+
WrappedIcon.displayName = `NanoIcon(${fontBasename})`;
|
|
82
|
+
return WrappedIcon;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=createNanoIconsSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","Platform","Text","View","useWindowDimensions","jsx","_jsx","DEFAULT_ICON_SIZE","createIconSet","glyphMap","fontBasename","meta","fontFamily","fontReference","select","windows","android","default","styleOverrides","fontWeight","fontStyle","position","includeFontPadding","bottom","resolveEntry","name","icons","adv","upm","layers","codepoint","color","Icon","size","colorPalette","style","allowFontScaling","innerRef","props","fontScale","entry","scaledSize","width","containerProps","height","lastPaletteColor","length","undefined","nativeID","String","ref","children","map","srcColor","i","layerColor","selectable","fontSize","fromCodePoint","WrappedIcon","displayName"],"sourceRoot":"../../src","sources":["createNanoIconsSet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createIconSet","createNanoIconSet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SACEA,aAAa,IAAIC,iBAAiB,QAG7B,yBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const createNanoIconSet = (...args) => {
|
|
4
|
+
const {
|
|
5
|
+
createIconSet
|
|
6
|
+
} = require('./createNanoIconsSet');
|
|
7
|
+
return createIconSet(...args);
|
|
8
|
+
};
|
|
9
|
+
const plugin = require('./plugin/src/index').default;
|
|
10
|
+
module.exports = Object.assign(plugin, {
|
|
11
|
+
createNanoIconSet
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=index.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createNanoIconSet","args","createIconSet","require","plugin","default","module","exports","Object","assign"],"sourceRoot":"../../src","sources":["index.node.ts"],"mappings":";;AAGA,MAAMA,iBAAiB,GAAGA,CAAC,GAAGC,IAAe,KAAK;EAChD,MAAM;IAAEC;EAAc,CAAC,GAAGC,OAAO,CAAC,sBAAsB,CAEvD;EACD,OAAOD,aAAa,CAAC,GAAGD,IAAI,CAAC;AAC/B,CAAC;AAED,MAAMG,MAAM,GAAID,OAAO,CAAC,oBAAoB,CAAC,CAC1CE,OAAO;AAEVC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,MAAM,EAAE;EAAEJ;AAAkB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const crypto = require('crypto');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
export function getFingerprintSync(dir) {
|
|
7
|
+
const files = fs.readdirSync(dir).filter(f => f.endsWith('.svg')).sort();
|
|
8
|
+
const hash = crypto.createHash('sha256');
|
|
9
|
+
for (const file of files) {
|
|
10
|
+
const filePath = path.join(dir, file);
|
|
11
|
+
// Hash both path and content
|
|
12
|
+
hash.update(file);
|
|
13
|
+
hash.update(fs.readFileSync(filePath));
|
|
14
|
+
}
|
|
15
|
+
return hash.digest('hex');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=fingerPrint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["crypto","require","fs","path","getFingerprintSync","dir","files","readdirSync","filter","f","endsWith","sort","hash","createHash","file","filePath","join","update","readFileSync","digest"],"sourceRoot":"../../../src","sources":["utils/fingerPrint.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAChC,MAAMC,EAAE,GAAGD,OAAO,CAAC,IAAI,CAAC;AACxB,MAAME,IAAI,GAAGF,OAAO,CAAC,MAAM,CAAC;AAE5B,OAAO,SAASG,kBAAkBA,CAACC,GAAW,EAAU;EACtD,MAAMC,KAAK,GAAGJ,EAAE,CACbK,WAAW,CAACF,GAAG,CAAC,CAChBG,MAAM,CAAEC,CAAS,IAAKA,CAAC,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC,CACzCC,IAAI,CAAC,CAAC;EACT,MAAMC,IAAI,GAAGZ,MAAM,CAACa,UAAU,CAAC,QAAQ,CAAC;EAExC,KAAK,MAAMC,IAAI,IAAIR,KAAK,EAAE;IACxB,MAAMS,QAAQ,GAAGZ,IAAI,CAACa,IAAI,CAACX,GAAG,EAAES,IAAI,CAAC;IACrC;IACAF,IAAI,CAACK,MAAM,CAACH,IAAI,CAAC;IACjBF,IAAI,CAACK,MAAM,CAACf,EAAE,CAACgB,YAAY,CAACH,QAAQ,CAAC,CAAC;EACxC;EAEA,OAAOH,IAAI,CAACO,MAAM,CAAC,KAAK,CAAC;AAC3B","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { CSS_NAMED_COLORS } from "../const/colors.js";
|
|
4
|
+
|
|
5
|
+
// e.g. u0041.svg -> 65
|
|
6
|
+
export function parseCodepointFromFilename(filename) {
|
|
7
|
+
const m = /^u([0-9a-fA-F]+)\.svg$/.exec(filename);
|
|
8
|
+
if (!m) throw new Error(`Unexpected glyph filename: ${filename}`);
|
|
9
|
+
return parseInt(m[1], 16);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// e.g. #ff0000 -> [255, 0, 0, 1], rgba(255, 0, 0, 0.5) -> [255, 0, 0, 0.5], rgb(255, 0, 0) -> [255, 0, 0, 1], blue -> [0, 0, 255, 1] etc.
|
|
13
|
+
export function parseColor(color) {
|
|
14
|
+
const c = color.trim();
|
|
15
|
+
|
|
16
|
+
// rgba(r,g,b,a)
|
|
17
|
+
if (c.indexOf('rgba(') === 0) {
|
|
18
|
+
const inner = c.slice(5, c.indexOf(')'));
|
|
19
|
+
const p = inner.split(',');
|
|
20
|
+
return [+(p[0] ?? '0'), +(p[1] ?? '0'), +(p[2] ?? '0'), +(p[3] ?? '1')];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// rgb(r,g,b)
|
|
24
|
+
if (c.indexOf('rgb(') === 0) {
|
|
25
|
+
const inner = c.slice(4, c.indexOf(')'));
|
|
26
|
+
const p = inner.split(',');
|
|
27
|
+
return [+(p[0] ?? '0'), +(p[1] ?? '0'), +(p[2] ?? '0'), 1];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// hex — first char is '#' (charCode 35)
|
|
31
|
+
if (c.charCodeAt(0) === 35) {
|
|
32
|
+
if (c.length === 9) {
|
|
33
|
+
// #rrggbbaa
|
|
34
|
+
return [parseInt(c.slice(1, 3), 16), parseInt(c.slice(3, 5), 16), parseInt(c.slice(5, 7), 16), parseInt(c.slice(7, 9), 16) / 255];
|
|
35
|
+
}
|
|
36
|
+
if (c.length === 7) {
|
|
37
|
+
// #rrggbb
|
|
38
|
+
return [parseInt(c.slice(1, 3), 16), parseInt(c.slice(3, 5), 16), parseInt(c.slice(5, 7), 16), 1];
|
|
39
|
+
}
|
|
40
|
+
if (c.length === 4) {
|
|
41
|
+
// #rgb — expand each nibble × 17
|
|
42
|
+
return [parseInt(c.slice(1, 2), 16) * 17, parseInt(c.slice(2, 3), 16) * 17, parseInt(c.slice(3, 4), 16) * 17, 1];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// named color lookup (O(1))
|
|
47
|
+
const named = CSS_NAMED_COLORS[c.toLowerCase()];
|
|
48
|
+
if (named !== undefined) return [named[0], named[1], named[2], 1];
|
|
49
|
+
|
|
50
|
+
// unknown — SVG default is opaque black
|
|
51
|
+
return [0, 0, 0, 1];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CSS_NAMED_COLORS","parseCodepointFromFilename","filename","m","exec","Error","parseInt","parseColor","color","c","trim","indexOf","inner","slice","p","split","charCodeAt","length","named","toLowerCase","undefined"],"sourceRoot":"../../../src","sources":["utils/parse.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.unit.test.d.ts","sourceRoot":"","sources":["../../../__tests__/build.unit.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clippath.e2e.test.d.ts","sourceRoot":"","sources":["../../../__tests__/clippath.e2e.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.unit.test.d.ts","sourceRoot":"","sources":["../../../__tests__/fingerprint.unit.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.e2e.test.d.ts","sourceRoot":"","sources":["../../../__tests__/pipeline.e2e.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placement.unit.test.d.ts","sourceRoot":"","sources":["../../../__tests__/placement.unit.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg_dom.unit.test.d.ts","sourceRoot":"","sources":["../../../__tests__/svg_dom.unit.test.ts"],"names":[],"mappings":"AAAA,6BAA6B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { NanoLogger } from './logger.js';
|
|
2
|
+
export type IconSetConfig = {
|
|
3
|
+
/** Path to folder of SVG files (relative to project root). */
|
|
4
|
+
inputDir: string;
|
|
5
|
+
/** Font family name (used for TTF and glyphmap filenames). */
|
|
6
|
+
fontFamily: string;
|
|
7
|
+
/** Path where .ttf and .glyphmap.json will be saved. Defaults to a sibling nanoicons folder relative to inputDir. */
|
|
8
|
+
outputDir?: string;
|
|
9
|
+
/** Units per em (default 1024). */
|
|
10
|
+
upm?: number;
|
|
11
|
+
/** Safe zone inside UPM for glyphs (default 1020). */
|
|
12
|
+
safeZone?: number;
|
|
13
|
+
/** First Unicode codepoint for glyphs (default 0xe900). Hex string or number. */
|
|
14
|
+
startUnicode?: number | string;
|
|
15
|
+
};
|
|
16
|
+
export type BuiltFont = {
|
|
17
|
+
fontFamily: string;
|
|
18
|
+
ttfPath: string;
|
|
19
|
+
glyphmapPath: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Build TTF + glyphmap for all icon sets using a single Pyodide/PathKit instance.
|
|
23
|
+
* Output is placed in a "nanoicons" folder next to each input dir (sibling to inputDir).
|
|
24
|
+
* Skips generation for a set if that output folder already contains the expected .ttf and .glyphmap.json.
|
|
25
|
+
*/
|
|
26
|
+
export declare function buildAllFonts(iconSets: IconSetConfig[], projectRoot: string, options?: {
|
|
27
|
+
logger?: NanoLogger;
|
|
28
|
+
}): Promise<BuiltFont[]>;
|
|
29
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../cli/build.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,MAAM,aAAa,GAAG;IAC1B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,qHAAqH;IACrH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAkCF;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,aAAa,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC,CAqEtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type LogLevel = 'normal' | 'verbose';
|
|
2
|
+
export type NanoLogger = {
|
|
3
|
+
start: (msg: string) => void;
|
|
4
|
+
update: (msg: string) => void;
|
|
5
|
+
succeed: (msg: string) => void;
|
|
6
|
+
fail: (msg: string) => void;
|
|
7
|
+
/** Only printed when level is 'verbose'. */
|
|
8
|
+
info: (msg: string) => void;
|
|
9
|
+
warn: (msg: string) => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Create an ora spinner-backed logger.
|
|
13
|
+
* ora and chalk are ESM-only so they are loaded via dynamic import;
|
|
14
|
+
* this factory must be awaited once before use.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createOraLogger(level: LogLevel): Promise<NanoLogger>;
|
|
17
|
+
/**
|
|
18
|
+
* Create a plain-text logger suitable for Expo prebuild context.
|
|
19
|
+
* No ora spinner — only success/error lines are printed to avoid
|
|
20
|
+
* disrupting Expo's own output.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createQuietLogger(level: LogLevel): Promise<NanoLogger>;
|
|
23
|
+
/**
|
|
24
|
+
* Infer log level from the Expo CLI environment.
|
|
25
|
+
* Expo uses EXPO_DEBUG=1 for verbose/debug output.
|
|
26
|
+
*/
|
|
27
|
+
export declare function detectExpoLogLevel(): LogLevel;
|
|
28
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../cli/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC1E;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA2B5E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAE7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../../src/const/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAqJrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../../../src/core/font/compile.ts"],"names":[],"mappings":"AAiCA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../../src/core/font/metrics.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CAmCR"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type PipelineConfig = {
|
|
2
|
+
fontFamily: string;
|
|
3
|
+
upm: number;
|
|
4
|
+
safeZone: number;
|
|
5
|
+
startUnicode: number;
|
|
6
|
+
};
|
|
7
|
+
export type PipelinePaths = {
|
|
8
|
+
inputDir: string;
|
|
9
|
+
outputDir: string;
|
|
10
|
+
tempDir: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function ensureEmptyDir(dir: string): void;
|
|
13
|
+
/** Create directory if it does not exist; do not remove existing contents (for shared output dirs). */
|
|
14
|
+
export declare function ensureDir(dir: string): void;
|
|
15
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/core/pipeline/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGhD;AAED,uGAAuG;AACvG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PathKitModule, PyodideModule } from '../types.js';
|
|
2
|
+
export declare class PathKitManager {
|
|
3
|
+
private static instance;
|
|
4
|
+
static getInstance(): Promise<PathKitModule>;
|
|
5
|
+
}
|
|
6
|
+
export declare class PyodideManager {
|
|
7
|
+
private static instance;
|
|
8
|
+
static getInstance(): Promise<PyodideModule>;
|
|
9
|
+
static picoFromFile(hostFilePath: string, content?: string): Promise<string>;
|
|
10
|
+
}
|
|
11
|
+
export declare function picoFromFile(hostFilePath: string, content?: string): Promise<string>;
|
|
12
|
+
//# sourceMappingURL=managers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managers.d.ts","sourceRoot":"","sources":["../../../../../src/core/pipeline/managers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYhE,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;WAExC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;CAyBnD;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;WAExC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;WA2CrC,YAAY,CACvB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;CAYnB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type PipelineConfig, type PipelinePaths } from './config.js';
|
|
2
|
+
import type { NanoLogger } from '../types.js';
|
|
3
|
+
export type PipelineResult = {
|
|
4
|
+
ttfPath: string;
|
|
5
|
+
glyphmapPath: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Run the font pipeline with given config and paths.
|
|
9
|
+
* Uses the singleton Pyodide/PathKit instance (initialized on first call).
|
|
10
|
+
*/
|
|
11
|
+
export declare function runPipeline(config: PipelineConfig, paths: PipelinePaths, options?: {
|
|
12
|
+
logger?: NanoLogger;
|
|
13
|
+
inputHash?: string;
|
|
14
|
+
}): Promise<PipelineResult>;
|
|
15
|
+
//# sourceMappingURL=run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../../src/core/pipeline/run.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,OAAO,CAAC,cAAc,CAAC,CAkHzB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare function computePlacement(opts: {
|
|
2
|
+
upm: number;
|
|
3
|
+
safeZone: number;
|
|
4
|
+
viewBox: [number, number, number, number];
|
|
5
|
+
}): {
|
|
6
|
+
vx: number;
|
|
7
|
+
vy: number;
|
|
8
|
+
scale: number;
|
|
9
|
+
xOff: number;
|
|
10
|
+
yOff: number;
|
|
11
|
+
adv: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function writeLayerSvg(opts: {
|
|
14
|
+
tempDir: string;
|
|
15
|
+
upm: number;
|
|
16
|
+
adv: number;
|
|
17
|
+
vx: number;
|
|
18
|
+
vy: number;
|
|
19
|
+
scale: number;
|
|
20
|
+
xOff: number;
|
|
21
|
+
yOff: number;
|
|
22
|
+
d: string;
|
|
23
|
+
codepoint: number;
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
//# sourceMappingURL=layers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../../../../src/core/svg/layers.ts"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;;;;;;;EAyBA;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type ParsedFlatSvg = {
|
|
2
|
+
viewBox: [number, number, number, number];
|
|
3
|
+
paths: Array<{
|
|
4
|
+
d: string;
|
|
5
|
+
fill: string | null;
|
|
6
|
+
}>;
|
|
7
|
+
};
|
|
8
|
+
export declare function calculateOpColor(fill: string | null, opacity: number, el: Element): `rgba(${number},${number},${number},${number})`;
|
|
9
|
+
export declare const parsePath: (p: Element) => {
|
|
10
|
+
d: string;
|
|
11
|
+
fill: string | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function parseFlattenedSvg(flattenedSvg: string): ParsedFlatSvg;
|
|
14
|
+
export declare function shouldSkipPath(d: string, fill: string | null): boolean;
|
|
15
|
+
export type SvgValidation = {
|
|
16
|
+
valid: true;
|
|
17
|
+
} | {
|
|
18
|
+
valid: false;
|
|
19
|
+
reason: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function validateSvg(content: string): SvgValidation;
|
|
22
|
+
export declare function preprocessSvg(content: string): string;
|
|
23
|
+
//# sourceMappingURL=svg_dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg_dom.d.ts","sourceRoot":"","sources":["../../../../../src/core/svg/svg_dom.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAClD,CAAC;AAcF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,OAAO,GACV,QAAQ,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,CAKjD;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAqBtE,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAoBrE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAItE;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAQ1D;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PathKitModule, WrappedPath, Point } from '../types.js';
|
|
2
|
+
export declare function buildPathopsBackend(PathKit: PathKitModule): {
|
|
3
|
+
create_path(fillTypeInt: number): WrappedPath;
|
|
4
|
+
clone_path(h: WrappedPath): WrappedPath;
|
|
5
|
+
delete_path(h: WrappedPath): void;
|
|
6
|
+
get_fill_type(h: WrappedPath): number;
|
|
7
|
+
set_fill_type(h: WrappedPath, fillTypeInt: number): true;
|
|
8
|
+
move_to(h: WrappedPath, x: number, y: number): void;
|
|
9
|
+
line_to(h: WrappedPath, x: number, y: number): void;
|
|
10
|
+
quad_to(h: WrappedPath, x1: number, y1: number, x2: number, y2: number): void;
|
|
11
|
+
cubic_to(h: WrappedPath, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
|
|
12
|
+
close(h: WrappedPath): void;
|
|
13
|
+
simplify(h: WrappedPath, fixWinding?: boolean): boolean;
|
|
14
|
+
stroke(h: WrappedPath, width: number, capInt: number, joinInt: number, miterLimit: number, dashArray: unknown, dashOffset: number): WrappedPath;
|
|
15
|
+
convert_conics_to_quads(_h: WrappedPath, _tol: number): void;
|
|
16
|
+
transform(h: WrappedPath, a: number, b: number, c: number, d: number, e: number, f: number): WrappedPath;
|
|
17
|
+
op(aHandle: WrappedPath, bHandle: WrappedPath, opInt: number): WrappedPath | null;
|
|
18
|
+
bounds(h: WrappedPath): [number, number, number, number];
|
|
19
|
+
area(h: WrappedPath): number;
|
|
20
|
+
iter_segments(h: WrappedPath): Array<[number, Point[]]>;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=svg_pathops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svg_pathops.d.ts","sourceRoot":"","sources":["../../../../../src/core/svg/svg_pathops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEb,WAAW,EACX,KAAK,EACN,MAAM,aAAa,CAAC;AAscrB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa;6BAgH7B,MAAM,GAAG,WAAW;kBAM/B,WAAW,GAAG,WAAW;mBAIxB,WAAW,GAAG,IAAI;qBAIhB,WAAW,GAAG,MAAM;qBAKpB,WAAW,eAAe,MAAM,GAAG,IAAI;eAK7C,WAAW,KAAK,MAAM,KAAK,MAAM,GAAG,IAAI;eAKxC,WAAW,KAAK,MAAM,KAAK,MAAM,GAAG,IAAI;eAK9C,WAAW,MACV,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACT,IAAI;gBAKF,WAAW,MACV,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACT,IAAI;aAIE,WAAW,GAAG,IAAI;gBAIf,WAAW,yBAAuB,OAAO;cAsBhD,WAAW,SACP,MAAM,UACL,MAAM,WACL,MAAM,cACH,MAAM,aACP,OAAO,cACN,MAAM,GACjB,WAAW;gCAqDc,WAAW,QAAQ,MAAM,GAAG,IAAI;iBAKvD,WAAW,KACX,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACR,WAAW;gBAYH,WAAW,WACX,WAAW,SACb,MAAM,GACZ,WAAW,GAAG,IAAI;cAwBX,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAKhD,WAAW,GAAG,MAAM;qBAeX,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;EAW1D"}
|