react-native-nano-icons 0.1.8 → 0.2.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.
Files changed (116) hide show
  1. package/README.md +64 -2
  2. package/android/src/main/java/com/nanoicons/NanoIconsFontLoaderModule.kt +58 -0
  3. package/android/src/main/java/com/nanoicons/NanoIconsPackage.kt +19 -2
  4. package/ios/NanoIconView.h +5 -0
  5. package/ios/NanoIconView.mm +35 -9
  6. package/ios/NanoIconsFontLoader.h +11 -0
  7. package/ios/NanoIconsFontLoader.mm +110 -0
  8. package/lib/commonjs/cli/build.d.ts +3 -0
  9. package/lib/commonjs/cli/build.js +8 -4
  10. package/lib/commonjs/cli/config.d.ts +1 -0
  11. package/lib/commonjs/cli/config.js +10 -0
  12. package/lib/commonjs/cli/expoConfig.d.ts +8 -0
  13. package/lib/commonjs/cli/expoConfig.js +34 -0
  14. package/lib/commonjs/cli/index.d.ts +2 -1
  15. package/lib/commonjs/cli/index.js +4 -1
  16. package/lib/commonjs/cli/link.js +32 -22
  17. package/lib/commonjs/plugin/src/types.d.ts +9 -0
  18. package/lib/commonjs/plugin/src/withNanoIconsFontLinking.d.ts +5 -0
  19. package/lib/commonjs/plugin/src/withNanoIconsFontLinking.js +24 -10
  20. package/lib/commonjs/scripts/cli.js +23 -11
  21. package/lib/commonjs/src/core/pipeline/config.d.ts +1 -0
  22. package/lib/commonjs/src/core/pipeline/managers.js +1 -2
  23. package/lib/commonjs/src/core/pipeline/run.js +1 -0
  24. package/lib/commonjs/src/core/svg/svg_dom.d.ts +1 -0
  25. package/lib/commonjs/src/core/svg/svg_dom.js +22 -17
  26. package/lib/commonjs/src/core/svg/svg_pathops.js +30 -16
  27. package/lib/commonjs/src/core/types.d.ts +3 -0
  28. package/lib/module/const/codegenPrimitives.js +2 -0
  29. package/lib/module/const/codegenPrimitives.js.map +1 -0
  30. package/lib/module/core/font/compile.js.map +1 -1
  31. package/lib/module/core/pipeline/config.js.map +1 -1
  32. package/lib/module/core/pipeline/managers.js.map +1 -1
  33. package/lib/module/core/pipeline/run.js +4 -1
  34. package/lib/module/core/pipeline/run.js.map +1 -1
  35. package/lib/module/core/svg/layers.js.map +1 -1
  36. package/lib/module/core/svg/svg_dom.js +19 -19
  37. package/lib/module/core/svg/svg_dom.js.map +1 -1
  38. package/lib/module/core/svg/svg_pathops.js.map +1 -1
  39. package/lib/module/createNanoIconsSet.js +2 -2
  40. package/lib/module/createNanoIconsSet.js.map +1 -1
  41. package/lib/module/createNanoIconsSet.native.js +43 -16
  42. package/lib/module/createNanoIconsSet.native.js.map +1 -1
  43. package/lib/module/createNanoIconsSet.shared.js +49 -20
  44. package/lib/module/createNanoIconsSet.shared.js.map +1 -1
  45. package/lib/module/createNanoIconsSet.web.js +78 -0
  46. package/lib/module/createNanoIconsSet.web.js.map +1 -0
  47. package/lib/module/loadDynamicFont.js +118 -0
  48. package/lib/module/loadDynamicFont.js.map +1 -0
  49. package/lib/module/specs/NanoIconViewNativeComponent.ts +9 -8
  50. package/lib/module/specs/NativeNanoIconsFontLoader.js +7 -0
  51. package/lib/module/specs/NativeNanoIconsFontLoader.js.map +1 -0
  52. package/lib/module/utils/glyphRuntime.js +37 -0
  53. package/lib/module/utils/glyphRuntime.js.map +1 -0
  54. package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts +2 -0
  55. package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts.map +1 -0
  56. package/lib/typescript/__tests__/link.unit.test.d.ts +3 -0
  57. package/lib/typescript/__tests__/link.unit.test.d.ts.map +1 -0
  58. package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts +2 -0
  59. package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts.map +1 -0
  60. package/lib/typescript/cli/build.d.ts +3 -0
  61. package/lib/typescript/cli/build.d.ts.map +1 -1
  62. package/lib/typescript/cli/link.d.ts +12 -0
  63. package/lib/typescript/cli/link.d.ts.map +1 -0
  64. package/lib/typescript/src/const/codegenPrimitives.d.ts +3 -0
  65. package/lib/typescript/src/const/codegenPrimitives.d.ts.map +1 -0
  66. package/lib/typescript/src/core/font/compile.d.ts.map +1 -1
  67. package/lib/typescript/src/core/pipeline/config.d.ts +1 -0
  68. package/lib/typescript/src/core/pipeline/config.d.ts.map +1 -1
  69. package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -1
  70. package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -1
  71. package/lib/typescript/src/core/svg/svg_dom.d.ts +1 -0
  72. package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -1
  73. package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -1
  74. package/lib/typescript/src/core/types.d.ts +3 -0
  75. package/lib/typescript/src/core/types.d.ts.map +1 -1
  76. package/lib/typescript/src/createNanoIconsSet.d.ts +1 -0
  77. package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -1
  78. package/lib/typescript/src/createNanoIconsSet.native.d.ts +1 -0
  79. package/lib/typescript/src/createNanoIconsSet.native.d.ts.map +1 -1
  80. package/lib/typescript/src/createNanoIconsSet.shared.d.ts +11 -0
  81. package/lib/typescript/src/createNanoIconsSet.shared.d.ts.map +1 -1
  82. package/lib/typescript/src/createNanoIconsSet.web.d.ts +7 -0
  83. package/lib/typescript/src/createNanoIconsSet.web.d.ts.map +1 -0
  84. package/lib/typescript/src/loadDynamicFont.d.ts +28 -0
  85. package/lib/typescript/src/loadDynamicFont.d.ts.map +1 -0
  86. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts +9 -8
  87. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts.map +1 -1
  88. package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts +8 -0
  89. package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts.map +1 -0
  90. package/lib/typescript/src/types.d.ts +7 -1
  91. package/lib/typescript/src/types.d.ts.map +1 -1
  92. package/lib/typescript/src/utils/glyphRuntime.d.ts +18 -0
  93. package/lib/typescript/src/utils/glyphRuntime.d.ts.map +1 -0
  94. package/package.json +8 -5
  95. package/plugin/src/types.ts +9 -0
  96. package/plugin/src/withNanoIconsFontLinking.ts +29 -10
  97. package/react-native-nano-icons.podspec +1 -1
  98. package/scripts/cli.ts +31 -11
  99. package/src/const/codegenPrimitives.ts +14 -0
  100. package/src/core/font/compile.ts +1 -2
  101. package/src/core/pipeline/config.ts +1 -0
  102. package/src/core/pipeline/managers.ts +5 -10
  103. package/src/core/pipeline/run.ts +11 -6
  104. package/src/core/svg/layers.ts +4 -4
  105. package/src/core/svg/svg_dom.ts +26 -23
  106. package/src/core/svg/svg_pathops.ts +50 -24
  107. package/src/core/types.ts +10 -2
  108. package/src/createNanoIconsSet.native.tsx +78 -26
  109. package/src/createNanoIconsSet.shared.tsx +93 -40
  110. package/src/createNanoIconsSet.tsx +9 -1
  111. package/src/createNanoIconsSet.web.tsx +109 -0
  112. package/src/loadDynamicFont.ts +162 -0
  113. package/src/specs/NanoIconViewNativeComponent.ts +9 -8
  114. package/src/specs/NativeNanoIconsFontLoader.ts +11 -0
  115. package/src/types.ts +5 -1
  116. package/src/utils/glyphRuntime.ts +46 -0
@@ -53,11 +53,14 @@ async function linkAndroid(projectRoot, builtFonts) {
53
53
  }
54
54
  async function linkIos(projectRoot, builtFonts) {
55
55
  const iosDir = node_path_1.default.join(projectRoot, 'ios');
56
- const appDir = node_fs_1.default
56
+ const xcodeprojDir = node_fs_1.default
57
57
  .readdirSync(iosDir, { withFileTypes: true })
58
- .filter((d) => d.isDirectory())
59
- .find((d) => node_fs_1.default.existsSync(node_path_1.default.join(iosDir, d.name, 'Info.plist')));
60
- if (!appDir)
58
+ .find((d) => d.name.endsWith('.xcodeproj'));
59
+ if (!xcodeprojDir)
60
+ return;
61
+ const appName = xcodeprojDir.name.replace(/\.xcodeproj$/, '');
62
+ const infoPlistPath = node_path_1.default.join(iosDir, appName, 'Info.plist');
63
+ if (!node_fs_1.default.existsSync(infoPlistPath))
61
64
  return;
62
65
  const fontNames = [];
63
66
  const iosFontsStaging = node_path_1.default.join(iosDir, IOS_NANOICONS_FONTS_DIR);
@@ -67,7 +70,6 @@ async function linkIos(projectRoot, builtFonts) {
67
70
  fontNames.push(name);
68
71
  node_fs_1.default.copyFileSync(b.ttfPath, node_path_1.default.join(iosFontsStaging, name));
69
72
  }
70
- const infoPlistPath = node_path_1.default.join(iosDir, appDir.name, 'Info.plist');
71
73
  const plistContent = node_fs_1.default.readFileSync(infoPlistPath, 'utf8');
72
74
  const obj = plist.parse(plistContent);
73
75
  const existing = Array.isArray(obj['UIAppFonts'])
@@ -79,25 +81,20 @@ async function linkIos(projectRoot, builtFonts) {
79
81
  UIAppFonts: merged,
80
82
  };
81
83
  node_fs_1.default.writeFileSync(infoPlistPath, plist.build(updated), 'utf8');
82
- const xcodeprojDir = node_fs_1.default
83
- .readdirSync(iosDir, { withFileTypes: true })
84
- .find((d) => d.name.endsWith('.xcodeproj'));
85
- if (xcodeprojDir) {
86
- const pbxprojPath = node_path_1.default.join(iosDir, xcodeprojDir.name, 'project.pbxproj');
87
- const xcode = require('xcode');
88
- const project = xcode.project(pbxprojPath);
89
- project.parseSync();
90
- const hasPhase = Object.entries(project.hash.project.objects['PBXShellScriptBuildPhase'] ?? {}).some(([, v]) => typeof v === 'object' && v?.name?.includes(IOS_RUN_SCRIPT_PHASE_NAME));
91
- if (!hasPhase) {
92
- const script = `
84
+ const pbxprojPath = node_path_1.default.join(iosDir, xcodeprojDir.name, 'project.pbxproj');
85
+ const xcode = require('xcode');
86
+ const project = xcode.project(pbxprojPath);
87
+ project.parseSync();
88
+ const hasPhase = Object.entries(project.hash.project.objects['PBXShellScriptBuildPhase'] ?? {}).some(([, v]) => typeof v === 'object' && v?.name?.includes(IOS_RUN_SCRIPT_PHASE_NAME));
89
+ if (!hasPhase) {
90
+ const script = `
93
91
  NANOICONS_DIR="\\\${PROJECT_DIR}/${IOS_NANOICONS_FONTS_DIR}"
94
92
  if [ -d "$NANOICONS_DIR" ]; then
95
93
  cp "$NANOICONS_DIR"/*.ttf "\\\${BUILT_PRODUCTS_DIR}/\\\${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" 2>/dev/null || true
96
94
  fi
97
95
  `;
98
- project.addBuildPhase([], 'PBXShellScriptBuildPhase', IOS_RUN_SCRIPT_PHASE_NAME, project.getFirstTarget().uuid, { shellPath: '/bin/sh', shellScript: script });
99
- node_fs_1.default.writeFileSync(pbxprojPath, project.writeSync(), 'utf8');
100
- }
96
+ project.addBuildPhase([], 'PBXShellScriptBuildPhase', IOS_RUN_SCRIPT_PHASE_NAME, project.getFirstTarget().uuid, { shellPath: '/bin/sh', shellScript: script });
97
+ node_fs_1.default.writeFileSync(pbxprojPath, project.writeSync(), 'utf8');
101
98
  }
102
99
  }
103
100
  /**
@@ -111,6 +108,12 @@ async function linkIos(projectRoot, builtFonts) {
111
108
  async function linkBare(projectRoot, builtFonts, logger) {
112
109
  if (!builtFonts.length)
113
110
  return;
111
+ const staticFonts = builtFonts.filter((b) => b.linking === 'static');
112
+ const dynamicFonts = builtFonts.filter((b) => b.linking === 'dynamic');
113
+ for (const b of dynamicFonts) {
114
+ const rel = node_path_1.default.relative(projectRoot, b.ttfPath);
115
+ logger.info(`${b.fontFamily}: dynamic linking — skipping native bundle. TTF available at ${rel}`);
116
+ }
114
117
  const hasAndroid = node_fs_1.default.existsSync(node_path_1.default.join(projectRoot, 'android'));
115
118
  const hasIos = node_fs_1.default.existsSync(node_path_1.default.join(projectRoot, 'ios'));
116
119
  if (!hasAndroid && !hasIos) {
@@ -122,14 +125,21 @@ async function linkBare(projectRoot, builtFonts, logger) {
122
125
  logger.info(`No native directories found — fonts saved to ${rel}/ (no native dirs, skipping link)`);
123
126
  return;
124
127
  }
128
+ if (!staticFonts.length) {
129
+ logger.succeed(`All ${dynamicFonts.length} font(s) use dynamic linking — nothing to bundle natively.`);
130
+ return;
131
+ }
125
132
  const linkedPlatforms = [];
126
133
  if (hasAndroid) {
127
- await linkAndroid(projectRoot, builtFonts);
134
+ await linkAndroid(projectRoot, staticFonts);
128
135
  linkedPlatforms.push('android');
129
136
  }
130
137
  if (hasIos) {
131
- await linkIos(projectRoot, builtFonts);
138
+ await linkIos(projectRoot, staticFonts);
132
139
  linkedPlatforms.push('ios');
133
140
  }
134
- logger.succeed(`Linked fonts ${linkedPlatforms.join(', ')}`);
141
+ const dynamicSuffix = dynamicFonts.length
142
+ ? ` (${dynamicFonts.length} dynamic font${dynamicFonts.length === 1 ? '' : 's'} skipped)`
143
+ : '';
144
+ logger.succeed(`Linked fonts → ${linkedPlatforms.join(', ')}${dynamicSuffix}`);
135
145
  }
@@ -14,6 +14,14 @@ export interface IconSetConfig {
14
14
  safeZone?: number;
15
15
  /** First Unicode codepoint for glyphs (default 0xe900). Hex string or number. */
16
16
  startUnicode?: number | string;
17
+ /**
18
+ * Delivery mode for the generated TTF. Defaults to `'static'`.
19
+ *
20
+ * - `'static'`: TTF is bundled into the native app.
21
+ * - `'dynamic'`: TTF is excluded from native bundling - the host app is responsible for
22
+ * delivering it (e.g. via OTA) and registering it under the same font family name.
23
+ */
24
+ linking?: 'static' | 'dynamic';
17
25
  }
18
26
  /**
19
27
  * plugins: [ [ "react-native-nano-icons", { iconSets: [...] } ] ]
@@ -28,4 +36,5 @@ export interface BuiltFont {
28
36
  fontFamily: string;
29
37
  ttfPath: string;
30
38
  glyphmapPath: string;
39
+ linking: 'static' | 'dynamic';
31
40
  }
@@ -2,6 +2,11 @@ import { withXcodeProject, withDangerousMod } from '@expo/config-plugins';
2
2
  import type { IconSetConfig } from './types.js';
3
3
  /**
4
4
  * Add TTFs to the iOS project (Resources group + UIAppFonts in Info.plist).
5
+ *
6
+ * Copies each .ttf into ios/<projectName>/Resources/ on every prebuild so that
7
+ * Xcode's incremental build reliably picks up updated glyph data. Referencing
8
+ * the .ttf via a relative path outside ios/ leaves stale fonts in the .app
9
+ * bundle when only the file contents change.
5
10
  */
6
11
  export declare function withNanoIconsIos(config: Parameters<typeof withXcodeProject>[0], iconSets: IconSetConfig[]): ReturnType<typeof withXcodeProject>;
7
12
  /**
@@ -11,23 +11,35 @@ const promises_1 = __importDefault(require("fs/promises"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const buildFonts_js_1 = require("./buildFonts.js");
13
13
  const ANDROID_ASSETS_FONTS_DIR = 'app/src/main/assets/fonts';
14
+ const IOS_FONTS_GROUP = 'Resources';
14
15
  /**
15
16
  * Add TTFs to the iOS project (Resources group + UIAppFonts in Info.plist).
17
+ *
18
+ * Copies each .ttf into ios/<projectName>/Resources/ on every prebuild so that
19
+ * Xcode's incremental build reliably picks up updated glyph data. Referencing
20
+ * the .ttf via a relative path outside ios/ leaves stale fonts in the .app
21
+ * bundle when only the file contents change.
16
22
  */
17
23
  function withNanoIconsIos(config, iconSets) {
18
24
  config = (0, config_plugins_1.withXcodeProject)(config, async (config) => {
19
25
  const built = await (0, buildFonts_js_1.getOrBuildFonts)(config.modRequest.projectRoot, iconSets);
20
- if (!built?.length)
26
+ const bundled = built?.filter((b) => b.linking !== 'dynamic') ?? [];
27
+ if (!bundled.length)
21
28
  return config;
22
- const ttfPaths = built.map((b) => b.ttfPath);
23
29
  const project = config.modResults;
24
30
  const platformProjectRoot = config.modRequest.platformProjectRoot;
25
- config_plugins_1.IOSConfig.XcodeUtils.ensureGroupRecursively(project, 'Resources');
26
- for (const fontPath of ttfPaths) {
27
- const relativePath = path_1.default.relative(platformProjectRoot, fontPath);
31
+ const projectName = config.modRequest.projectName ??
32
+ config_plugins_1.IOSConfig.XcodeUtils.getProjectName(config.modRequest.projectRoot);
33
+ const fontsDir = path_1.default.join(platformProjectRoot, projectName, IOS_FONTS_GROUP);
34
+ await promises_1.default.mkdir(fontsDir, { recursive: true });
35
+ config_plugins_1.IOSConfig.XcodeUtils.ensureGroupRecursively(project, IOS_FONTS_GROUP);
36
+ for (const { ttfPath } of bundled) {
37
+ const dest = path_1.default.join(fontsDir, path_1.default.basename(ttfPath));
38
+ await promises_1.default.copyFile(ttfPath, dest);
39
+ const relativePath = path_1.default.relative(platformProjectRoot, dest);
28
40
  config_plugins_1.IOSConfig.XcodeUtils.addResourceFileToGroup({
29
41
  filepath: relativePath,
30
- groupName: 'Resources',
42
+ groupName: IOS_FONTS_GROUP,
31
43
  project,
32
44
  isBuildFile: true,
33
45
  verbose: true,
@@ -37,9 +49,10 @@ function withNanoIconsIos(config, iconSets) {
37
49
  });
38
50
  config = (0, config_plugins_1.withInfoPlist)(config, async (config) => {
39
51
  const built = await (0, buildFonts_js_1.getOrBuildFonts)(config.modRequest.projectRoot, iconSets);
40
- if (!built?.length)
52
+ const bundled = built?.filter((b) => b.linking !== 'dynamic') ?? [];
53
+ if (!bundled.length)
41
54
  return config;
42
- const ttfPaths = built.map((b) => b.ttfPath);
55
+ const ttfPaths = bundled.map((b) => b.ttfPath);
43
56
  const existingFonts = getUIAppFonts(config.modResults);
44
57
  const fontList = ttfPaths.map((f) => path_1.default.basename(f));
45
58
  const allFonts = [...existingFonts, ...fontList];
@@ -65,11 +78,12 @@ function withNanoIconsAndroid(config, iconSets) {
65
78
  'android',
66
79
  async (config) => {
67
80
  const built = await (0, buildFonts_js_1.getOrBuildFonts)(config.modRequest.projectRoot, iconSets);
68
- if (!built?.length)
81
+ const bundled = built?.filter((b) => b.linking !== 'dynamic') ?? [];
82
+ if (!bundled.length)
69
83
  return config;
70
84
  const fontsDir = path_1.default.join(config.modRequest.platformProjectRoot, ANDROID_ASSETS_FONTS_DIR);
71
85
  await promises_1.default.mkdir(fontsDir, { recursive: true });
72
- for (const b of built) {
86
+ for (const b of bundled) {
73
87
  const filename = path_1.default.basename(b.ttfPath);
74
88
  const dest = path_1.default.join(fontsDir, filename);
75
89
  await promises_1.default.copyFile(b.ttfPath, dest);
@@ -5,21 +5,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  /**
8
- * Bare React Native workflow: build icon fonts and link them into the native project.
9
- *
10
- * Run from your app root: npx react-native-nano-icons [--verbose] [--path <dir>]
11
- *
12
- * Reads .nanoicons.json (same shape as Expo plugin options) so Expo and bare apps
13
- * share one config format.
8
+ * Run from your app root: npx react-native-nano-icons [--verbose] [--path <dir>] [--dynamic] [--app-config]
14
9
  *
15
10
  * Flags:
16
- * --verbose Show per-SVG processing details and pipeline timing
17
- * --path <dir> Directory containing .nanoicons.json (default: cwd)
11
+ * --verbose Show per-SVG processing details and pipeline timing
12
+ * --path <dir> Directory containing .nanoicons.json (default: cwd)
13
+ * --dynamic Rebuild only icon sets with linking: 'dynamic'. Skips native linking —
14
+ * use this for OTA font regeneration without running expo prebuild.
15
+ * --app-config Read config from Expo app config (app.json / app.config.js / app.config.ts)
16
+ * instead of .nanoicons.json. Must be combined with --dynamic.
18
17
  */
19
18
  const node_path_1 = __importDefault(require("node:path"));
20
19
  const index_js_1 = require("../cli/index.js");
21
20
  async function main() {
22
21
  const verbose = process.argv.includes('--verbose');
22
+ const dynamic = process.argv.includes('--dynamic');
23
+ const appConfig = process.argv.includes('--app-config');
23
24
  const level = verbose ? 'verbose' : 'normal';
24
25
  const pathIdx = process.argv.indexOf('--path');
25
26
  const projectRoot = process.cwd();
@@ -27,9 +28,20 @@ async function main() {
27
28
  ? node_path_1.default.resolve(projectRoot, process.argv[pathIdx + 1])
28
29
  : projectRoot;
29
30
  const logger = await (0, index_js_1.createOraLogger)(level);
30
- const config = (0, index_js_1.loadNanoIconsConfig)(configRoot);
31
- const built = await (0, index_js_1.buildAllFonts)(config.iconSets, projectRoot, { logger });
32
- await (0, index_js_1.linkBare)(projectRoot, built, logger);
31
+ if (dynamic) {
32
+ const source = appConfig ? 'Expo app config' : '.nanoicons.json';
33
+ logger.start(`Reading dynamic icon sets from ${source}...`);
34
+ const dynamicIconSets = appConfig
35
+ ? (0, index_js_1.loadDynamicSetsFromAppConfig)(projectRoot)
36
+ : (0, index_js_1.loadDynamicIconSets)(configRoot);
37
+ logger.succeed(`Found ${dynamicIconSets.length} dynamic icon set(s) — skipping native linking.`);
38
+ await (0, index_js_1.buildAllFonts)(dynamicIconSets, projectRoot, { logger });
39
+ }
40
+ else {
41
+ const config = (0, index_js_1.loadNanoIconsConfig)(configRoot);
42
+ const built = await (0, index_js_1.buildAllFonts)(config.iconSets, projectRoot, { logger });
43
+ await (0, index_js_1.linkBare)(projectRoot, built, logger);
44
+ }
33
45
  }
34
46
  main().catch((err) => {
35
47
  const message = err instanceof Error ? err.message : String(err);
@@ -3,6 +3,7 @@ export type PipelineConfig = {
3
3
  upm: number;
4
4
  safeZone: number;
5
5
  startUnicode: number;
6
+ linking: 'static' | 'dynamic';
6
7
  };
7
8
  export type PipelinePaths = {
8
9
  inputDir: string;
@@ -58,8 +58,7 @@ class PyodideManager {
58
58
  await py.loadPackage(['micropip', 'lxml'], { messageCallback: () => { } });
59
59
  // Resolve local picosvg wheel path for offline-first installation.
60
60
  const picosvgWhlDir = node_path_1.default.join(getPackageRoot(), 'src', 'core', 'shims');
61
- const picosvgWhl = (await promises_1.default.readdir(picosvgWhlDir))
62
- .find((f) => f.startsWith('picosvg-') && f.endsWith('.whl'));
61
+ const picosvgWhl = (await promises_1.default.readdir(picosvgWhlDir)).find((f) => f.startsWith('picosvg-') && f.endsWith('.whl'));
63
62
  const localWhlUrl = picosvgWhl
64
63
  ? `file://${node_path_1.default.join(picosvgWhlDir, picosvgWhl)}`
65
64
  : null;
@@ -85,6 +85,7 @@ async function runPipeline(config, paths, options) {
85
85
  u: config.upm,
86
86
  z: config.safeZone,
87
87
  s: config.startUnicode,
88
+ ...(config.linking === 'dynamic' ? { l: 'd' } : {}),
88
89
  },
89
90
  i: {},
90
91
  };
@@ -1,3 +1,4 @@
1
+ import { type Element } from '@xmldom/xmldom';
1
2
  export type ParsedFlatSvg = {
2
3
  viewBox: [number, number, number, number];
3
4
  paths: Array<{
@@ -9,7 +9,7 @@ exports.validateSvg = validateSvg;
9
9
  exports.extractOriginalEvenoddDs = extractOriginalEvenoddDs;
10
10
  exports.restoreOriginalEvenoddDs = restoreOriginalEvenoddDs;
11
11
  exports.preprocessSvg = preprocessSvg;
12
- const jsdom_1 = require("jsdom");
12
+ const xmldom_1 = require("@xmldom/xmldom");
13
13
  const parse_1 = require("../../utils/parse");
14
14
  // if the fill is implicit, walk ancestors for the first explicit fill value
15
15
  function resolveInheritedFill(el) {
@@ -77,25 +77,23 @@ const parsePath = (p) => {
77
77
  };
78
78
  exports.parsePath = parsePath;
79
79
  function parseFlattenedSvg(flattenedSvg, options) {
80
- const dom = new jsdom_1.JSDOM(flattenedSvg);
81
- const doc = dom.window.document;
82
- const svgEl = doc.querySelector('svg');
80
+ const doc = new xmldom_1.DOMParser().parseFromString(flattenedSvg, 'image/svg+xml');
81
+ const svgEl = doc.documentElement;
83
82
  const viewBoxRaw = svgEl
84
83
  ?.getAttribute('viewBox')
85
84
  ?.split(/\s+/)
86
85
  .map(Number) ?? [0, 0, 100, 100];
87
- const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every((n) => Number.isFinite(n))
86
+ const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every(Number.isFinite)
88
87
  ? [viewBoxRaw[0], viewBoxRaw[1], viewBoxRaw[2], viewBoxRaw[3]]
89
88
  : [0, 0, 100, 100];
90
- const pathEls = Array.from(doc.querySelectorAll('path'));
89
+ const pathEls = svgEl ? Array.from(svgEl.getElementsByTagName('path')) : [];
91
90
  const paths = pathEls
92
91
  .map(exports.parsePath)
93
92
  .filter((p) => p.d.trim() !== '')
94
93
  .map((p) => {
95
94
  const { d, sanitized } = sanitizePathData(p.d);
96
- if (sanitized) {
95
+ if (sanitized)
97
96
  options?.onSanitize?.(p.d);
98
- }
99
97
  return { ...p, d };
100
98
  });
101
99
  return { viewBox, paths };
@@ -113,6 +111,12 @@ function validateSvg(content) {
113
111
  if (/<filter[\s>]/i.test(content)) {
114
112
  return { valid: false, reason: '<filter> is not supported yet' };
115
113
  }
114
+ if (/<image[\s>]/i.test(content)) {
115
+ return {
116
+ valid: false,
117
+ reason: 'embedded raster <image> is not supported yet',
118
+ };
119
+ }
116
120
  return { valid: true };
117
121
  }
118
122
  /**
@@ -127,16 +131,17 @@ function extractOriginalEvenoddDs(svgContent) {
127
131
  if (!/<[^>]*fill-rule\s*=\s*["']evenodd/i.test(svgContent)) {
128
132
  return [];
129
133
  }
130
- const dom = new jsdom_1.JSDOM(svgContent, { contentType: 'image/svg+xml' });
131
- const doc = dom.window.document;
132
- const results = [];
133
- const pathEls = doc.querySelectorAll('path[fill-rule="evenodd"], path[clip-rule="evenodd"]');
134
- for (const el of pathEls) {
134
+ const doc = new xmldom_1.DOMParser().parseFromString(svgContent, 'image/svg+xml');
135
+ return Array.from(doc.getElementsByTagName('path')).reduce((acc, el) => {
136
+ const isEvenOdd = el.getAttribute('fill-rule') === 'evenodd' ||
137
+ el.getAttribute('clip-rule') === 'evenodd';
138
+ if (!isEvenOdd)
139
+ return acc;
135
140
  const d = el.getAttribute('d');
136
- if (d)
137
- results.push(d);
138
- }
139
- return results;
141
+ if (d !== null && d !== '')
142
+ acc.push(d);
143
+ return acc;
144
+ }, []);
140
145
  }
141
146
  /**
142
147
  * Replace picosvg's (potentially damaged) evenodd path data with the
@@ -424,7 +424,10 @@ function contourToPolyline(contourCmds, V, steps = 8) {
424
424
  for (let i = 1; i <= steps; i++) {
425
425
  const t = i / steps;
426
426
  const mt = 1 - t;
427
- pts.push([mt * mt * x0 + 2 * mt * t * x1 + t * t * x2, mt * mt * y0 + 2 * mt * t * y1 + t * t * y2]);
427
+ pts.push([
428
+ mt * mt * x0 + 2 * mt * t * x1 + t * t * x2,
429
+ mt * mt * y0 + 2 * mt * t * y1 + t * t * y2,
430
+ ]);
428
431
  }
429
432
  cx = x2;
430
433
  cy = y2;
@@ -438,8 +441,14 @@ function contourToPolyline(contourCmds, V, steps = 8) {
438
441
  const t = i / steps;
439
442
  const mt = 1 - t;
440
443
  pts.push([
441
- mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3,
442
- mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3,
444
+ mt * mt * mt * x0 +
445
+ 3 * mt * mt * t * x1 +
446
+ 3 * mt * t * t * x2 +
447
+ t * t * t * x3,
448
+ mt * mt * mt * y0 +
449
+ 3 * mt * mt * t * y1 +
450
+ 3 * mt * t * t * y2 +
451
+ t * t * t * y3,
443
452
  ]);
444
453
  }
445
454
  cx = x3;
@@ -462,8 +471,7 @@ function pointInPolygon(px, py, poly) {
462
471
  for (let i = 0, j = poly.length - 1; i < poly.length; j = i++) {
463
472
  const [xi, yi] = poly[i];
464
473
  const [xj, yj] = poly[j];
465
- if (yi > py !== yj > py &&
466
- px < ((xj - xi) * (py - yi)) / (yj - yi) + xi) {
474
+ if (yi > py !== yj > py && px < ((xj - xi) * (py - yi)) / (yj - yi) + xi) {
467
475
  inside = !inside;
468
476
  }
469
477
  }
@@ -493,8 +501,14 @@ function getContourSamplePoint(contourCmds, V) {
493
501
  else if (v === V.CUBIC) {
494
502
  const t = 0.5, mt = 0.5;
495
503
  return [
496
- mt ** 3 * cx + 3 * mt ** 2 * t * cmd[1] + 3 * mt * t ** 2 * cmd[3] + t ** 3 * cmd[5],
497
- mt ** 3 * cy + 3 * mt ** 2 * t * cmd[2] + 3 * mt * t ** 2 * cmd[4] + t ** 3 * cmd[6],
504
+ mt ** 3 * cx +
505
+ 3 * mt ** 2 * t * cmd[1] +
506
+ 3 * mt * t ** 2 * cmd[3] +
507
+ t ** 3 * cmd[5],
508
+ mt ** 3 * cy +
509
+ 3 * mt ** 2 * t * cmd[2] +
510
+ 3 * mt * t ** 2 * cmd[4] +
511
+ t ** 3 * cmd[6],
498
512
  ];
499
513
  }
500
514
  }
@@ -707,15 +721,15 @@ function buildPathopsBackend(PathKit) {
707
721
  const Caps = PathKit.StrokeCap ?? {};
708
722
  const Joins = PathKit.StrokeJoin ?? {};
709
723
  const cap = capInt === 1
710
- ? Caps.ROUND ?? 1
724
+ ? (Caps.ROUND ?? 1)
711
725
  : capInt === 2
712
- ? Caps.SQUARE ?? 2
713
- : Caps.BUTT ?? 0;
726
+ ? (Caps.SQUARE ?? 2)
727
+ : (Caps.BUTT ?? 0);
714
728
  const join = joinInt === 1
715
- ? Joins.ROUND ?? 1
729
+ ? (Joins.ROUND ?? 1)
716
730
  : joinInt === 2
717
- ? Joins.BEVEL ?? 2
718
- : Joins.MITER ?? 0;
731
+ ? (Joins.BEVEL ?? 2)
732
+ : (Joins.MITER ?? 0);
719
733
  const work = PathKit.NewPath(h.p);
720
734
  try {
721
735
  if (Array.isArray(dashArray) &&
@@ -757,10 +771,10 @@ function buildPathopsBackend(PathKit) {
757
771
  try {
758
772
  const Ops = PathKit.PathOp ?? {};
759
773
  const op = opInt === 1
760
- ? Ops.INTERSECT ?? 1
774
+ ? (Ops.INTERSECT ?? 1)
761
775
  : opInt === 2
762
- ? Ops.DIFFERENCE ?? 2
763
- : Ops.UNION ?? 0;
776
+ ? (Ops.DIFFERENCE ?? 2)
777
+ : (Ops.UNION ?? 0);
764
778
  const out = PathKit.MakeFromOp(aHandle.p, bHandle.p, op);
765
779
  if (!out)
766
780
  return null;
@@ -109,6 +109,7 @@ export type IconsMap = Record<string, GlyphEntry>;
109
109
  * z - safe zone,
110
110
  * s - start unicode,
111
111
  * h - hash,
112
+ * l - linking mode: 's' (static, bundled — default when absent) or 'd' (dynamic, OTA-delivered),
112
113
  * i - icons,
113
114
  * adv - advance width,
114
115
  */
@@ -119,6 +120,7 @@ export type NanoGlyphMap = {
119
120
  z: number;
120
121
  s: number;
121
122
  h?: string;
123
+ l?: 's' | 'd';
122
124
  };
123
125
  i: IconsMap;
124
126
  };
@@ -130,6 +132,7 @@ export type NanoGlyphMapInput = {
130
132
  z: number;
131
133
  s: number;
132
134
  h?: string;
135
+ l?: 's' | 'd' | (string & {});
133
136
  };
134
137
  i: Record<string, readonly unknown[]>;
135
138
  };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=codegenPrimitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["const/codegenPrimitives.ts"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["fs","path","forceTtfMetrics","svg2ttf","escapeXml","s","replace","buildSvgFontXml","opts","fontName","glyphs","upm","ascent","descent","glyphLines","map","g","hex","codepoint","toString","name","padStart","advanceWidth","d","Math","abs","join","parseCompileTtfFromGlyphsError","err","codepointToIcon","msg","Error","message","String","cpMatch","match","cp","parseInt","iconName","get","detail","compileTtfFromGlyphs","outTtfPath","lineGap","length","svgFontString","ttfRaw","rawBuf","Buffer","from","buffer","fixedBuf","mkdirSync","dirname","recursive","writeFileSync"],"sourceRoot":"../../../../src","sources":["core/font/compile.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fs","path","forceTtfMetrics","svg2ttf","escapeXml","s","replace","buildSvgFontXml","opts","fontName","glyphs","upm","ascent","descent","glyphLines","map","g","hex","codepoint","toString","name","padStart","advanceWidth","d","Math","abs","join","parseCompileTtfFromGlyphsError","err","codepointToIcon","msg","Error","message","String","cpMatch","match","cp","parseInt","iconName","get","detail","compileTtfFromGlyphs","outTtfPath","lineGap","length","svgFontString","ttfRaw","rawBuf","Buffer","from","buffer","fixedBuf","mkdirSync","dirname","recursive","writeFileSync"],"sourceRoot":"../../../../src","sources":["core/font/compile.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["fs","ensureEmptyDir","dir","existsSync","rmSync","recursive","force","mkdirSync","ensureDir"],"sourceRoot":"../../../../src","sources":["core/pipeline/config.ts"],"mappings":";;AAAA,OAAOA,EAAE,MAAM,SAAS;AAexB,OAAO,SAASC,cAAcA,CAACC,GAAW,EAAQ;EAChD,IAAIF,EAAE,CAACG,UAAU,CAACD,GAAG,CAAC,EAAEF,EAAE,CAACI,MAAM,CAACF,GAAG,EAAE;IAAEG,SAAS,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAK,CAAC,CAAC;EACxEN,EAAE,CAACO,SAAS,CAACL,GAAG,EAAE;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC;;AAEA;AACA,OAAO,SAASG,SAASA,CAACN,GAAW,EAAQ;EAC3CF,EAAE,CAACO,SAAS,CAACL,GAAG,EAAE;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"names":["fs","ensureEmptyDir","dir","existsSync","rmSync","recursive","force","mkdirSync","ensureDir"],"sourceRoot":"../../../../src","sources":["core/pipeline/config.ts"],"mappings":";;AAAA,OAAOA,EAAE,MAAM,SAAS;AAgBxB,OAAO,SAASC,cAAcA,CAACC,GAAW,EAAQ;EAChD,IAAIF,EAAE,CAACG,UAAU,CAACD,GAAG,CAAC,EAAEF,EAAE,CAACI,MAAM,CAACF,GAAG,EAAE;IAAEG,SAAS,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAK,CAAC,CAAC;EACxEN,EAAE,CAACO,SAAS,CAACL,GAAG,EAAE;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC;;AAEA;AACA,OAAO,SAASG,SAASA,CAACN,GAAW,EAAQ;EAC3CF,EAAE,CAACO,SAAS,CAACL,GAAG,EAAE;IAAEG,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["loadPyodide","path","fs","buildPathopsBackend","getPackageRoot","__dirname","includes","sep","resolve","PathKitManager","instance","getInstance","PathKitInit","require","pathkitJsPath","pathkitBinDir","dirname","pathkitWasmPath","join","wasmBinary","readFile","pkInit","locateFile","file","PathKit","ready","PyodideManager","pyodideAsmPath","pyodideDir","py","indexURL","mountNodeFS","process","cwd","registerJsModule","pathopsPyPath","pathopsPy","FS","writeFile","loadPackage","messageCallback","picosvgWhlDir","picosvgWhl","readdir","find","f","startsWith","endsWith","localWhlUrl","globals","set","runPythonAsync","picoFromFile","hostFilePath","content","svgContent","out","runPython"],"sourceRoot":"../../../../src","sources":["core/pipeline/managers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["loadPyodide","path","fs","buildPathopsBackend","getPackageRoot","__dirname","includes","sep","resolve","PathKitManager","instance","getInstance","PathKitInit","require","pathkitJsPath","pathkitBinDir","dirname","pathkitWasmPath","join","wasmBinary","readFile","pkInit","locateFile","file","PathKit","ready","PyodideManager","pyodideAsmPath","pyodideDir","py","indexURL","mountNodeFS","process","cwd","registerJsModule","pathopsPyPath","pathopsPy","FS","writeFile","loadPackage","messageCallback","picosvgWhlDir","picosvgWhl","readdir","find","f","startsWith","endsWith","localWhlUrl","globals","set","runPythonAsync","picoFromFile","hostFilePath","content","svgContent","out","runPython"],"sourceRoot":"../../../../src","sources":["core/pipeline/managers.ts"],"mappings":"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","ignoreList":[]}
@@ -85,7 +85,10 @@ export async function runPipeline(config, paths, options) {
85
85
  f: config.fontFamily,
86
86
  u: config.upm,
87
87
  z: config.safeZone,
88
- s: config.startUnicode
88
+ s: config.startUnicode,
89
+ ...(config.linking === 'dynamic' ? {
90
+ l: 'd'
91
+ } : {})
89
92
  },
90
93
  i: {}
91
94
  };
@@ -1 +1 @@
1
- {"version":3,"names":["fsp","path","compileTtfFromGlyphs","parseCompileTtfFromGlyphsError","picoFromFile","PathKitManager","ensureDir","parseFlattenedSvg","preprocessSvg","shouldSkipPath","validateSvg","extractOriginalEvenoddDs","restoreOriginalEvenoddDs","computePlacement","transformPathForFont","convertEvenoddToWinding","concatPathDs","ds","length","join","mergeSameColorPaths","paths","logger","result","i","fill","j","noMerge","push","group","slice","merged","map","p","d","info","runPipeline","config","options","startTime","Date","now","update","fontFamily","outputDir","files","readdir","inputDir","filter","f","toLowerCase","endsWith","glyphMap","m","u","upm","z","safeZone","s","startUnicode","currentUnicode","codepointToIcon","Map","allGlyphs","PathKit","getInstance","file","iconName","parse","name","filePath","rawContent","readFile","validation","valid","warn","reason","preprocessed","originalEvenoddDs","flattenedSvg","parsed","onSanitize","original","fillRule","mergedPaths","vx","vy","scale","xOff","yOff","adv","viewBox","layers","cp","set","fontD","codepoint","advanceWidth","glyphmapPath","inputHash","h","writeFile","JSON","stringify","ttfPath","glyphs","outTtfPath","fontName","ascent","descent","err","iconCount","Object","keys","elapsed","succeed"],"sourceRoot":"../../../../src","sources":["core/pipeline/run.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fsp","path","compileTtfFromGlyphs","parseCompileTtfFromGlyphsError","picoFromFile","PathKitManager","ensureDir","parseFlattenedSvg","preprocessSvg","shouldSkipPath","validateSvg","extractOriginalEvenoddDs","restoreOriginalEvenoddDs","computePlacement","transformPathForFont","convertEvenoddToWinding","concatPathDs","ds","length","join","mergeSameColorPaths","paths","logger","result","i","fill","j","noMerge","push","group","slice","merged","map","p","d","info","runPipeline","config","options","startTime","Date","now","update","fontFamily","outputDir","files","readdir","inputDir","filter","f","toLowerCase","endsWith","glyphMap","m","u","upm","z","safeZone","s","startUnicode","linking","l","currentUnicode","codepointToIcon","Map","allGlyphs","PathKit","getInstance","file","iconName","parse","name","filePath","rawContent","readFile","validation","valid","warn","reason","preprocessed","originalEvenoddDs","flattenedSvg","parsed","onSanitize","original","fillRule","mergedPaths","vx","vy","scale","xOff","yOff","adv","viewBox","layers","cp","set","fontD","codepoint","advanceWidth","glyphmapPath","inputHash","h","writeFile","JSON","stringify","ttfPath","glyphs","outTtfPath","fontName","ascent","descent","err","iconCount","Object","keys","elapsed","succeed"],"sourceRoot":"../../../../src","sources":["core/pipeline/run.ts"],"mappings":";;AAAA,OAAOA,GAAG,MAAM,kBAAkB;AAClC,OAAOC,IAAI,MAAM,WAAW;AAE5B,SACEC,oBAAoB,EACpBC,8BAA8B,QAEzB,oBAAoB;AAC3B,SAASC,YAAY,EAAEC,cAAc,QAAQ,eAAe;AAE5D,SACEC,SAAS,QAGJ,aAAa;AACpB,SACEC,iBAAiB,EACjBC,aAAa,EACbC,cAAc,EACdC,WAAW,EACXC,wBAAwB,EACxBC,wBAAwB,QACnB,mBAAmB;AAC1B,SAASC,gBAAgB,EAAEC,oBAAoB,QAAQ,kBAAkB;AACzE,SAASC,uBAAuB,QAAQ,uBAAuB;;AAS/D;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,YAAYA,CAACC,EAAY,EAAiB;EACjD,IAAIA,EAAE,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAChC,IAAID,EAAE,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOD,EAAE,CAAC,CAAC,CAAC;EACjC,OAAOA,EAAE,CAACE,IAAI,CAAC,GAAG,CAAC;AACrB;;AAEA;AACA;AACA;AACA;AACA,SAASC,mBAAmBA,CAC1BC,KAAmB,EACnBC,MAAmB,EACL;EACd,IAAID,KAAK,CAACH,MAAM,IAAI,CAAC,EAAE,OAAOG,KAAK;EAEnC,MAAME,MAAoB,GAAG,EAAE;EAC/B,IAAIC,CAAC,GAAG,CAAC;EAET,OAAOA,CAAC,GAAGH,KAAK,CAACH,MAAM,EAAE;IACvB,MAAMO,IAAI,GAAGJ,KAAK,CAACG,CAAC,CAAC,CAAEC,IAAI;;IAE3B;IACA;IACA;IACA;IACA,IAAIC,CAAC,GAAGF,CAAC,GAAG,CAAC;IACb,IAAI,CAACH,KAAK,CAACG,CAAC,CAAC,CAAEG,OAAO,EAAE;MACtB,OACED,CAAC,GAAGL,KAAK,CAACH,MAAM,IAChBG,KAAK,CAACK,CAAC,CAAC,CAAED,IAAI,KAAKA,IAAI,IACvB,CAACJ,KAAK,CAACK,CAAC,CAAC,CAAEC,OAAO,EAClB;QACAD,CAAC,EAAE;MACL;IACF;IAEA,IAAIA,CAAC,GAAGF,CAAC,KAAK,CAAC,EAAE;MACfD,MAAM,CAACK,IAAI,CAACP,KAAK,CAACG,CAAC,CAAE,CAAC;IACxB,CAAC,MAAM;MACL,MAAMK,KAAK,GAAGR,KAAK,CAACS,KAAK,CAACN,CAAC,EAAEE,CAAC,CAAC;MAC/B,MAAMK,MAAM,GAAGf,YAAY,CAACa,KAAK,CAACG,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,CAAC,CAAC,CAAC;MAClD,IAAIH,MAAM,EAAE;QACVT,MAAM,EAAEa,IAAI,CACV,gBAAgBN,KAAK,CAACX,MAAM,2BAA2BO,IAAI,GAC7D,CAAC;QACDF,MAAM,CAACK,IAAI,CAAC;UAAEM,CAAC,EAAEH,MAAM;UAAEN;QAAK,CAAC,CAAC;MAClC,CAAC,MAAM;QACLF,MAAM,CAACK,IAAI,CAAC,GAAGC,KAAK,CAAC;MACvB;IACF;IACAL,CAAC,GAAGE,CAAC;EACP;EACA,OAAOH,MAAM;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAea,WAAWA,CAC/BC,MAAsB,EACtBhB,KAAoB,EACpBiB,OAAqD,EAC5B;EACzB,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC5B,MAAMnB,MAAM,GAAGgB,OAAO,EAAEhB,MAAM;EAE9BA,MAAM,EAAEoB,MAAM,CAAC,aAAaL,MAAM,CAACM,UAAU,IAAI,CAAC;EAElDrC,SAAS,CAACe,KAAK,CAACuB,SAAS,CAAC;EAE1B,MAAMC,KAAK,GAAG,CAAC,MAAM7C,GAAG,CAAC8C,OAAO,CAACzB,KAAK,CAAC0B,QAAQ,CAAC,EAAEC,MAAM,CAAEC,CAAC,IACzDA,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,MAAM,CACjC,CAAC;EAED,MAAMC,QAAsB,GAAG;IAC7BC,CAAC,EAAE;MACDJ,CAAC,EAAEZ,MAAM,CAACM,UAAU;MACpBW,CAAC,EAAEjB,MAAM,CAACkB,GAAG;MACbC,CAAC,EAAEnB,MAAM,CAACoB,QAAQ;MAClBC,CAAC,EAAErB,MAAM,CAACsB,YAAY;MACtB,IAAItB,MAAM,CAACuB,OAAO,KAAK,SAAS,GAAG;QAAEC,CAAC,EAAE;MAAa,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IACDrC,CAAC,EAAE,CAAC;EACN,CAAC;EAED,IAAIsC,cAAc,GAAGzB,MAAM,CAACsB,YAAY;EACxC,MAAMI,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;EACjD,MAAMC,SAAsB,GAAG,EAAE;EAEjC,MAAMC,OAAO,GAAG,MAAM7D,cAAc,CAAC8D,WAAW,CAAC,CAAC;EAElD,KAAK,MAAMC,IAAI,IAAIvB,KAAK,EAAE;IACxB,MAAMwB,QAAQ,GAAGpE,IAAI,CAACqE,KAAK,CAACF,IAAI,CAAC,CAACG,IAAI;IACtC,MAAMC,QAAQ,GAAGvE,IAAI,CAACkB,IAAI,CAACE,KAAK,CAAC0B,QAAQ,EAAEqB,IAAI,CAAC;IAEhD9C,MAAM,EAAEa,IAAI,CAAC,cAAciC,IAAI,EAAE,CAAC;IAElC,MAAMK,UAAU,GAAG,MAAMzE,GAAG,CAAC0E,QAAQ,CAACF,QAAQ,EAAE,OAAO,CAAC;IAExD,MAAMG,UAAU,GAAGjE,WAAW,CAAC+D,UAAU,CAAC;IAC1C,IAAIE,UAAU,CAACC,KAAK,KAAK,KAAK,EAAE;MAC9BtD,MAAM,EAAEuD,IAAI,CACV,aAAaxC,MAAM,CAACM,UAAU,IAAIyB,IAAI,MAAMO,UAAU,CAACG,MAAM,EAC/D,CAAC;MACD;IACF;IAEA,MAAMC,YAAY,GAAGvE,aAAa,CAACiE,UAAU,CAAC;;IAE9C;IACA;IACA;IACA,MAAMO,iBAAiB,GAAGrE,wBAAwB,CAACoE,YAAY,CAAC;IAEhE,MAAME,YAAY,GAAG,MAAM7E,YAAY,CAACoE,QAAQ,EAAEO,YAAY,CAAC;IAC/D,MAAMG,MAAM,GAAG3E,iBAAiB,CAAC0E,YAAY,EAAE;MAC7CE,UAAU,EAAGC,QAAQ,IAAK;QACxB9D,MAAM,EAAEa,IAAI,CACV,0BAA0BiC,IAAI,gEAChC,CAAC;QACD9C,MAAM,EAAEa,IAAI,CAAC,iBAAiBiD,QAAQ,CAACtD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;MACzD;IACF,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA,IAAIkD,iBAAiB,CAAC9D,MAAM,GAAG,CAAC,EAAE;MAChCN,wBAAwB,CAACsE,MAAM,CAAC7D,KAAK,EAAE2D,iBAAiB,CAAC;IAC3D;IACA,KAAK,MAAM/C,CAAC,IAAIiD,MAAM,CAAC7D,KAAK,EAAE;MAC5B,IAAIY,CAAC,CAACoD,QAAQ,KAAK,SAAS,EAAE;QAC5B/D,MAAM,EAAEa,IAAI,CACV,sDAAsDiC,IAAI,GAC5D,CAAC;QACDnC,CAAC,CAACC,CAAC,GAAGnB,uBAAuB,CAACmD,OAAO,EAAEjC,CAAC,CAACC,CAAC,CAAC;QAC3C,OAAOD,CAAC,CAACoD,QAAQ;QAChBpD,CAAC,CAAgBN,OAAO,GAAG,IAAI;MAClC;IACF;;IAEA;IACA,MAAM2D,WAAW,GAAGlE,mBAAmB,CAAC8D,MAAM,CAAC7D,KAAK,EAAEC,MAAM,CAAC;IAE7D,MAAM;MAAEiE,EAAE;MAAEC,EAAE;MAAEC,KAAK;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAI,CAAC,GAAG/E,gBAAgB,CAAC;MAC1D0C,GAAG,EAAElB,MAAM,CAACkB,GAAG;MACfE,QAAQ,EAAEpB,MAAM,CAACoB,QAAQ;MACzBoC,OAAO,EAAEX,MAAM,CAACW;IAClB,CAAC,CAAC;IAEF,MAAMC,MAAoB,GAAG,EAAE;IAE/B,KAAK,MAAM7D,CAAC,IAAIqD,WAAW,EAAE;MAC3B,IAAI7E,cAAc,CAACwB,CAAC,CAACC,CAAC,EAAED,CAAC,CAACR,IAAI,CAAC,EAAE;MAEjC,MAAMsE,EAAE,GAAGjC,cAAc,EAAE;MAC3BC,eAAe,CAACiC,GAAG,CAACD,EAAE,EAAE1B,QAAQ,CAAC;MAEjC,MAAM4B,KAAK,GAAGnF,oBAAoB,CAACoD,OAAO,EAAEjC,CAAC,CAACC,CAAC,EAAE;QAC/CqD,EAAE;QACFC,EAAE;QACFC,KAAK;QACLC,IAAI;QACJC,IAAI;QACJpC,GAAG,EAAElB,MAAM,CAACkB;MACd,CAAC,CAAC;MAEFU,SAAS,CAACrC,IAAI,CAAC;QACbsE,SAAS,EAAEH,EAAE;QACbI,YAAY,EAAEP,GAAG;QACjB1D,CAAC,EAAE+D;MACL,CAAC,CAAC;MAEFH,MAAM,CAAClE,IAAI,CAAC,CAACmE,EAAE,EAAE9D,CAAC,CAACR,IAAI,IAAI,OAAO,CAAC,CAAC;IACtC;IAEA,IAAIqE,MAAM,CAAC5E,MAAM,GAAG,CAAC,EAAE;MACrBkC,QAAQ,CAAC5B,CAAC,CAAC6C,QAAQ,CAAC,GAAG,CAACuB,GAAG,EAAEE,MAAM,CAAC;IACtC;EACF;EAEA,MAAMM,YAAY,GAAGnG,IAAI,CAACkB,IAAI,CAC5BE,KAAK,CAACuB,SAAS,EACf,GAAGP,MAAM,CAACM,UAAU,gBACtB,CAAC;EAED,IAAIL,OAAO,EAAE+D,SAAS,EAAE;IACtBjD,QAAQ,CAACC,CAAC,CAACiD,CAAC,GAAGhE,OAAO,CAAC+D,SAAS;EAClC;EACA,MAAMrG,GAAG,CAACuG,SAAS,CAACH,YAAY,EAAEI,IAAI,CAACC,SAAS,CAACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;EAEnE9B,MAAM,EAAEa,IAAI,CAAC,gBAAgB,CAAC;EAC9B,MAAMuE,OAAO,GAAGzG,IAAI,CAACkB,IAAI,CAACE,KAAK,CAACuB,SAAS,EAAE,GAAGP,MAAM,CAACM,UAAU,MAAM,CAAC;EAEtE,IAAI;IACF,MAAMzC,oBAAoB,CAAC;MACzByG,MAAM,EAAE1C,SAAS;MACjB2C,UAAU,EAAEF,OAAO;MACnBG,QAAQ,EAAExE,MAAM,CAACM,UAAU;MAC3BY,GAAG,EAAElB,MAAM,CAACkB,GAAG;MACfuD,MAAM,EAAEzE,MAAM,CAACkB,GAAG;MAClBwD,OAAO,EAAE;IACX,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOC,GAAY,EAAE;IACrB7G,8BAA8B,CAAC6G,GAAG,EAAEjD,eAAe,CAAC;EACtD;EAEA,MAAMkD,SAAS,GAAGC,MAAM,CAACC,IAAI,CAAC/D,QAAQ,CAAC5B,CAAC,CAAC,CAACN,MAAM;EAChD,MAAMkG,OAAO,GAAG5E,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS;EACtCjB,MAAM,EAAE+F,OAAO,CACb,SAAShF,MAAM,CAACM,UAAU,SAASsE,SAAS,QAC1CA,SAAS,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,OACrBG,OAAO,KAChB,CAAC;EAED,OAAO;IAAEV,OAAO;IAAEN;EAAa,CAAC;AAClC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["fsp","path","roundInt","n","Math","round","computePlacement","opts","vx","vy","vw","vh","viewBox","safeVh","scale","safeZone","totalPadding","upm","scaledW","scaledH","adv","max","xOff","yOff","writeLayerSvg","hex","codepoint","toString","padStart","layerSvg","d","trim","writeFile","join","tempDir","transformPathForFont","PathKit","p","FromSVGString","scaleX","scaleY","transX","transY","transform","result","toSVGString","delete"],"sourceRoot":"../../../../src","sources":["core/svg/layers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fsp","path","roundInt","n","Math","round","computePlacement","opts","vx","vy","vw","vh","viewBox","safeVh","scale","safeZone","totalPadding","upm","scaledW","scaledH","adv","max","xOff","yOff","writeLayerSvg","hex","codepoint","toString","padStart","layerSvg","d","trim","writeFile","join","tempDir","transformPathForFont","PathKit","p","FromSVGString","scaleX","scaleY","transX","transY","transform","result","toSVGString","delete"],"sourceRoot":"../../../../src","sources":["core/svg/layers.ts"],"mappings":"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","ignoreList":[]}