react-native-nano-icons 0.1.2 → 0.1.4

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 (91) hide show
  1. package/README.md +20 -164
  2. package/android/build.gradle +28 -0
  3. package/android/src/main/java/com/nanoicons/NanoIconView.kt +78 -0
  4. package/android/src/main/java/com/nanoicons/NanoIconViewManager.kt +84 -0
  5. package/android/src/main/java/com/nanoicons/NanoIconsPackage.kt +22 -0
  6. package/ios/NanoIconView.h +4 -0
  7. package/ios/NanoIconView.mm +286 -0
  8. package/lib/commonjs/cli/build.js +1 -1
  9. package/lib/commonjs/cli/config.d.ts +2 -2
  10. package/lib/commonjs/cli/config.js +7 -6
  11. package/lib/commonjs/scripts/cli.js +15 -5
  12. package/lib/commonjs/src/core/font/compile.d.ts +13 -2
  13. package/lib/commonjs/src/core/font/compile.js +49 -46
  14. package/lib/commonjs/src/core/pipeline/managers.js +19 -3
  15. package/lib/commonjs/src/core/pipeline/run.js +121 -32
  16. package/lib/commonjs/src/core/svg/layers.d.ts +16 -0
  17. package/lib/commonjs/src/core/svg/layers.js +27 -0
  18. package/lib/commonjs/src/core/svg/svg_dom.d.ts +29 -1
  19. package/lib/commonjs/src/core/svg/svg_dom.js +78 -2
  20. package/lib/commonjs/src/core/svg/svg_pathops.d.ts +11 -0
  21. package/lib/commonjs/src/core/svg/svg_pathops.js +209 -19
  22. package/lib/commonjs/src/core/types.d.ts +30 -15
  23. package/lib/module/core/font/compile.js +52 -41
  24. package/lib/module/core/font/compile.js.map +1 -1
  25. package/lib/module/core/pipeline/managers.js +17 -3
  26. package/lib/module/core/pipeline/managers.js.map +1 -1
  27. package/lib/module/core/pipeline/run.js +131 -44
  28. package/lib/module/core/pipeline/run.js.map +1 -1
  29. package/lib/module/core/shims/picosvg-0.22.3-py3-none-any.whl +0 -0
  30. package/lib/module/core/svg/layers.js +34 -0
  31. package/lib/module/core/svg/layers.js.map +1 -1
  32. package/lib/module/core/svg/svg_dom.js +91 -4
  33. package/lib/module/core/svg/svg_dom.js.map +1 -1
  34. package/lib/module/core/svg/svg_pathops.js +203 -19
  35. package/lib/module/core/svg/svg_pathops.js.map +1 -1
  36. package/lib/module/createNanoIconsSet.js +3 -79
  37. package/lib/module/createNanoIconsSet.js.map +1 -1
  38. package/lib/module/createNanoIconsSet.native.js +108 -0
  39. package/lib/module/createNanoIconsSet.native.js.map +1 -0
  40. package/lib/module/createNanoIconsSet.shared.js +91 -0
  41. package/lib/module/createNanoIconsSet.shared.js.map +1 -0
  42. package/lib/module/index.js +1 -2
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/specs/NanoIconViewNativeComponent.ts +15 -0
  45. package/lib/module/types.js +4 -0
  46. package/lib/module/types.js.map +1 -0
  47. package/lib/module/utils/shallowEqualColor.js +15 -0
  48. package/lib/module/utils/shallowEqualColor.js.map +1 -0
  49. package/lib/typescript/src/core/font/compile.d.ts +13 -2
  50. package/lib/typescript/src/core/font/compile.d.ts.map +1 -1
  51. package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -1
  52. package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -1
  53. package/lib/typescript/src/core/svg/layers.d.ts +16 -0
  54. package/lib/typescript/src/core/svg/layers.d.ts.map +1 -1
  55. package/lib/typescript/src/core/svg/svg_dom.d.ts +29 -1
  56. package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -1
  57. package/lib/typescript/src/core/svg/svg_pathops.d.ts +11 -0
  58. package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -1
  59. package/lib/typescript/src/core/types.d.ts +30 -15
  60. package/lib/typescript/src/core/types.d.ts.map +1 -1
  61. package/lib/typescript/src/createNanoIconsSet.d.ts +5 -18
  62. package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -1
  63. package/lib/typescript/src/createNanoIconsSet.native.d.ts +7 -0
  64. package/lib/typescript/src/createNanoIconsSet.native.d.ts.map +1 -0
  65. package/lib/typescript/src/createNanoIconsSet.shared.d.ts +11 -0
  66. package/lib/typescript/src/createNanoIconsSet.shared.d.ts.map +1 -0
  67. package/lib/typescript/src/index.d.ts.map +1 -1
  68. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts +14 -0
  69. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts.map +1 -0
  70. package/lib/typescript/src/types.d.ts +19 -0
  71. package/lib/typescript/src/types.d.ts.map +1 -0
  72. package/lib/typescript/src/utils/shallowEqualColor.d.ts +4 -0
  73. package/lib/typescript/src/utils/shallowEqualColor.d.ts.map +1 -0
  74. package/package.json +22 -5
  75. package/react-native-nano-icons.podspec +18 -0
  76. package/scripts/cli.ts +14 -5
  77. package/src/core/font/compile.ts +65 -61
  78. package/src/core/pipeline/managers.ts +26 -3
  79. package/src/core/pipeline/run.ts +156 -38
  80. package/src/core/shims/picosvg-0.22.3-py3-none-any.whl +0 -0
  81. package/src/core/svg/layers.ts +44 -0
  82. package/src/core/svg/svg_dom.ts +96 -4
  83. package/src/core/svg/svg_pathops.ts +245 -27
  84. package/src/core/types.ts +21 -10
  85. package/src/createNanoIconsSet.native.tsx +140 -0
  86. package/src/createNanoIconsSet.shared.tsx +121 -0
  87. package/src/createNanoIconsSet.tsx +7 -126
  88. package/src/index.ts +1 -2
  89. package/src/specs/NanoIconViewNativeComponent.ts +15 -0
  90. package/src/types.ts +27 -0
  91. package/src/utils/shallowEqualColor.ts +17 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo } from 'react';
4
+ import { PixelRatio, Platform, Text, View } from 'react-native';
5
+ import { shallowEqualColor } from "./utils/shallowEqualColor.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export { shallowEqualColor };
8
+ const DEFAULT_ICON_SIZE = 12;
9
+
10
+ /**
11
+ * JS implementation using <View> + <Text> layers.
12
+ * Used on web and as a fallback when native component is unavailable (e.g. Expo Go).
13
+ */
14
+ export function createJSIconSet(glyphMap) {
15
+ const fontBasename = glyphMap.m.f;
16
+ const fontReference = Platform.select({
17
+ windows: `/Assets/${fontBasename}`,
18
+ default: fontBasename
19
+ });
20
+ const styleOverrides = {
21
+ fontFamily: fontReference,
22
+ fontWeight: 'normal',
23
+ fontStyle: 'normal',
24
+ position: 'absolute',
25
+ includeFontPadding: false,
26
+ bottom: 0
27
+ };
28
+ const unitsPerEm = glyphMap.m.u;
29
+ const resolveEntry = name => {
30
+ return glyphMap.i[name] ?? [unitsPerEm, [[63, 'black']]];
31
+ };
32
+ const codepointCache = new Map();
33
+ const getChar = codepoint => {
34
+ let ch = codepointCache.get(codepoint);
35
+ if (ch === undefined) {
36
+ ch = String.fromCodePoint(codepoint);
37
+ codepointCache.set(codepoint, ch);
38
+ }
39
+ return ch;
40
+ };
41
+ const Icon = /*#__PURE__*/memo(({
42
+ name,
43
+ size = DEFAULT_ICON_SIZE,
44
+ color,
45
+ style,
46
+ allowFontScaling = true,
47
+ accessible,
48
+ accessibilityLabel,
49
+ accessibilityRole = 'image',
50
+ testID,
51
+ ref
52
+ }) => {
53
+ const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
54
+ const [adv, layers] = resolveEntry(name);
55
+ const scaledSize = size * fontScale;
56
+ const width = adv / unitsPerEm * scaledSize;
57
+ const colorArray = Array.isArray(color) ? color : [color];
58
+ const lastPaletteColor = colorArray?.length ? colorArray[colorArray.length - 1] : undefined;
59
+ const containerStyle = useMemo(() => [{
60
+ height: scaledSize,
61
+ width,
62
+ bottom: 0
63
+ }, style], [scaledSize, width, style]);
64
+ const sizeStyle = useMemo(() => ({
65
+ fontSize: size
66
+ }), [size]);
67
+ return /*#__PURE__*/_jsx(View, {
68
+ ref: ref,
69
+ style: containerStyle,
70
+ accessible: accessible,
71
+ accessibilityRole: accessibilityRole,
72
+ accessibilityLabel: accessibilityLabel ?? name,
73
+ testID: testID,
74
+ children: layers.map(([codepoint, srcColor], i) => {
75
+ const layerColor = colorArray?.[i] ?? lastPaletteColor ?? srcColor ?? 'black';
76
+ return /*#__PURE__*/_jsx(Text, {
77
+ selectable: false,
78
+ accessible: false,
79
+ allowFontScaling: allowFontScaling,
80
+ style: [styleOverrides, sizeStyle, {
81
+ color: layerColor
82
+ }],
83
+ children: getChar(codepoint)
84
+ }, i);
85
+ })
86
+ });
87
+ }, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
88
+ Icon.displayName = `NanoIcon(${fontBasename})`;
89
+ return Icon;
90
+ }
91
+ //# sourceMappingURL=createNanoIconsSet.shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","PixelRatio","Platform","Text","View","shallowEqualColor","jsx","_jsx","DEFAULT_ICON_SIZE","createJSIconSet","glyphMap","fontBasename","m","f","fontReference","select","windows","default","styleOverrides","fontFamily","fontWeight","fontStyle","position","includeFontPadding","bottom","unitsPerEm","u","resolveEntry","name","i","codepointCache","Map","getChar","codepoint","ch","get","undefined","String","fromCodePoint","set","Icon","size","color","style","allowFontScaling","accessible","accessibilityLabel","accessibilityRole","testID","ref","fontScale","getFontScale","adv","layers","scaledSize","width","colorArray","Array","isArray","lastPaletteColor","length","containerStyle","height","sizeStyle","fontSize","children","map","srcColor","layerColor","selectable","prev","next","displayName"],"sourceRoot":"../../src","sources":["createNanoIconsSet.shared.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
2
 
3
- // Extension-less so Metro can resolve when example uses path alias to ../src
4
- export { createIconSet as createNanoIconSet } from "./createNanoIconsSet.js";
3
+ export { createIconSet as createNanoIconSet } from './createNanoIconsSet';
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createIconSet","createNanoIconSet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SACEA,aAAa,IAAIC,iBAAiB,QAG7B,yBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["createIconSet","createNanoIconSet"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,aAAa,IAAIC,iBAAiB,QAG7B,sBAAsB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { codegenNativeComponent } from 'react-native';
2
+ import type { CodegenTypes as CT, ViewProps } from 'react-native';
3
+
4
+ export interface NativeProps extends ViewProps {
5
+ fontFamily: string;
6
+ codepoints: ReadonlyArray<CT.Int32>;
7
+ colors: ReadonlyArray<CT.Int32>;
8
+ fontSize: CT.Float;
9
+ advanceWidth: CT.Int32;
10
+ unitsPerEm: CT.Int32;
11
+ iconWidth: CT.Float;
12
+ iconHeight: CT.Float;
13
+ }
14
+
15
+ export default codegenNativeComponent<NativeProps>('NanoIconView');
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ /** Shallow-compare two color props (single value or array) instead of arr ref for memo equality. */
4
+ export function shallowEqualColor(a, b) {
5
+ if (a === b) return true;
6
+ if (Array.isArray(a) && Array.isArray(b)) {
7
+ if (a.length !== b.length) return false;
8
+ for (let i = 0; i < a.length; i++) {
9
+ if (a[i] !== b[i]) return false;
10
+ }
11
+ return true;
12
+ }
13
+ return false;
14
+ }
15
+ //# sourceMappingURL=shallowEqualColor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["shallowEqualColor","a","b","Array","isArray","length","i"],"sourceRoot":"../../../src","sources":["utils/shallowEqualColor.ts"],"mappings":";;AAEA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,CAAwC,EACxCC,CAAwC,EAC/B;EACT,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,IAAI;EACxB,IAAIC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIE,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC,EAAE;IACxC,IAAID,CAAC,CAACI,MAAM,KAAKH,CAAC,CAACG,MAAM,EAAE,OAAO,KAAK;IACvC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,CAAC,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;MACjC,IAAIL,CAAC,CAACK,CAAC,CAAC,KAAKJ,CAAC,CAACI,CAAC,CAAC,EAAE,OAAO,KAAK;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -1,5 +1,16 @@
1
- export declare function compileTtfFromGlyphSVGs(opts: {
2
- glyphDir: string;
1
+ export type FontGlyph = {
2
+ codepoint: number;
3
+ advanceWidth: number;
4
+ /** Path data already in font coordinates (Y-up, placement applied). */
5
+ d: string;
6
+ };
7
+ export declare function parseCompileTtfFromGlyphsError(err: unknown, codepointToIcon: Map<number, string>): void;
8
+ /**
9
+ * Compile a TTF font from pre-transformed glyph data.
10
+ * Builds SVG font XML directly (no intermediate files), then converts via svg2ttf.
11
+ */
12
+ export declare function compileTtfFromGlyphs(opts: {
13
+ glyphs: FontGlyph[];
3
14
  outTtfPath: string;
4
15
  fontName: string;
5
16
  upm: number;
@@ -1 +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"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../../../src/core/font/compile.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqCF,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAarC;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,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,CAsBhB"}
@@ -1 +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"}
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;WAkErC,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"}
@@ -1 +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"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../../src/core/pipeline/run.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAerB,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;AA0EF;;;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,CAwJzB"}
@@ -1,3 +1,4 @@
1
+ import type { PathKitModule } from '../types.js';
1
2
  export declare function computePlacement(opts: {
2
3
  upm: number;
3
4
  safeZone: number;
@@ -22,4 +23,19 @@ export declare function writeLayerSvg(opts: {
22
23
  d: string;
23
24
  codepoint: number;
24
25
  }): Promise<void>;
26
+ /**
27
+ * Transform an SVG path `d` string from source SVG coordinates into font
28
+ * glyph coordinates (Y-up, with placement scaling and centering applied).
29
+ *
30
+ * Combines placement transform (translate + scale + translate) with the
31
+ * SVG→font Y-axis flip into a single affine transform applied via PathKit.
32
+ */
33
+ export declare function transformPathForFont(PathKit: PathKitModule, d: string, opts: {
34
+ vx: number;
35
+ vy: number;
36
+ scale: number;
37
+ xOff: number;
38
+ yOff: number;
39
+ upm: number;
40
+ }): string;
25
41
  //# sourceMappingURL=layers.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../../../../src/core/svg/layers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMjD,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;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE;IACJ,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,GAAG,EAAE,MAAM,CAAC;CACb,GACA,MAAM,CAsBR"}
@@ -3,14 +3,27 @@ export type ParsedFlatSvg = {
3
3
  paths: Array<{
4
4
  d: string;
5
5
  fill: string | null;
6
+ fillRule?: 'evenodd';
6
7
  }>;
7
8
  };
8
9
  export declare function calculateOpColor(fill: string | null, opacity: number, el: Element): `rgba(${number},${number},${number},${number})`;
10
+ /**
11
+ * If a flattened path lost its initial moveto (e.g. picosvg dropped an empty
12
+ * `Mx y z` subpath), prepend `M` using the path's last coordinate pair.
13
+ * For closed icon shapes the endpoint equals the start point.
14
+ */
15
+ export declare function sanitizePathData(d: string): {
16
+ d: string;
17
+ sanitized: boolean;
18
+ };
9
19
  export declare const parsePath: (p: Element) => {
10
20
  d: string;
11
21
  fill: string | null;
22
+ fillRule?: "evenodd";
12
23
  };
13
- export declare function parseFlattenedSvg(flattenedSvg: string): ParsedFlatSvg;
24
+ export declare function parseFlattenedSvg(flattenedSvg: string, options?: {
25
+ onSanitize?: (original: string) => void;
26
+ }): ParsedFlatSvg;
14
27
  export declare function shouldSkipPath(d: string, fill: string | null): boolean;
15
28
  export type SvgValidation = {
16
29
  valid: true;
@@ -19,5 +32,20 @@ export type SvgValidation = {
19
32
  reason: string;
20
33
  };
21
34
  export declare function validateSvg(content: string): SvgValidation;
35
+ /**
36
+ * Extract the original `d` strings of evenodd paths from the raw SVG
37
+ * BEFORE picosvg processes it. Picosvg's simplify (via our PathKit shim)
38
+ * can drop contours from multi-subpath evenodd paths, so we preserve
39
+ * the originals and apply our own winding conversion later.
40
+ *
41
+ * Returns one `d` string per evenodd path, in document order.
42
+ */
43
+ export declare function extractOriginalEvenoddDs(svgContent: string): string[];
44
+ /**
45
+ * Replace picosvg's (potentially damaged) evenodd path data with the
46
+ * preserved originals. Matches by position: the Nth evenodd path in
47
+ * the parsed output gets the Nth original `d` string.
48
+ */
49
+ export declare function restoreOriginalEvenoddDs(paths: ParsedFlatSvg['paths'], originalDs: string[]): void;
22
50
  export declare function preprocessSvg(content: string): string;
23
51
  //# sourceMappingURL=svg_dom.d.ts.map
@@ -1 +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"}
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,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CACxE,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;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgB7E;AAED,eAAO,MAAM,SAAS,GACpB,GAAG,OAAO,KACT;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CA6BxD,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GACpD,aAAa,CA6Bf;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;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBrE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI,CAQN;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGrD"}
@@ -1,4 +1,15 @@
1
1
  import type { PathKitModule, WrappedPath, Point } from '../types.js';
2
+ /**
3
+ * Convert a path `d` string with evenodd fill semantics to an equivalent
4
+ * path that renders identically under nonzero winding.
5
+ *
6
+ * Steps:
7
+ * 1. Parse via PathKit, set fill type to EVENODD, simplify (resolve topology)
8
+ * 2. Split into contours, compute containment depths
9
+ * 3. Fix winding: even depth = CCW (outer), odd depth = CW (hole)
10
+ * 4. Reconstruct d string
11
+ */
12
+ export declare function convertEvenoddToWinding(PathKit: PathKitModule, d: string): string;
2
13
  export declare function buildPathopsBackend(PathKit: PathKitModule): {
3
14
  create_path(fillTypeInt: number): WrappedPath;
4
15
  clone_path(h: WrappedPath): WrappedPath;
@@ -1 +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"}
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;AAsnBrB;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,EACtB,CAAC,EAAE,MAAM,GACR,MAAM,CAsDR;AAGD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa;6BAoF7B,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"}
@@ -99,23 +99,38 @@ export type PyodideModule = {
99
99
  get: (key: string) => unknown;
100
100
  };
101
101
  };
102
- export type GlyphLayer = {
103
- codepoint: number;
104
- color: string;
105
- };
106
- export type GlyphEntry = {
107
- adv: number;
108
- layers: GlyphLayer[];
109
- };
102
+ export type GlyphLayer = [codepoint: number, color: string];
103
+ export type GlyphEntry = [adv: number, layers: GlyphLayer[]];
110
104
  export type IconsMap = Record<string, GlyphEntry>;
105
+ /**
106
+ * m - metadata,
107
+ * f - font family,
108
+ * u - units per em,
109
+ * z - safe zone,
110
+ * s - start unicode,
111
+ * h - hash,
112
+ * i - icons,
113
+ * adv - advance width,
114
+ */
111
115
  export type NanoGlyphMap = {
112
- meta: {
113
- fontFamily: string;
114
- upm: number;
115
- safeZone: number;
116
- startUnicode: number;
117
- hash?: string;
116
+ m: {
117
+ f: string;
118
+ u: number;
119
+ z: number;
120
+ s: number;
121
+ h?: string;
122
+ };
123
+ i: IconsMap;
124
+ };
125
+ /** Accepts JSON-inferred types where arrays aren't tuples. */
126
+ export type NanoGlyphMapInput = {
127
+ m: {
128
+ f: string;
129
+ u: number;
130
+ z: number;
131
+ s: number;
132
+ h?: string;
118
133
  };
119
- icons: IconsMap;
134
+ i: Record<string, readonly unknown[]>;
120
135
  };
121
136
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,6 @@
1
- import { type ComponentRef, type Ref } from 'react';
2
- import { View, type ColorValue, type TextProps } from 'react-native';
3
- import type { NanoGlyphMap } from './core/types';
4
- type ViewRef = ComponentRef<typeof View>;
5
- export type IconProps<Name> = TextProps & {
6
- name: Name;
7
- size?: number;
8
- colorPalette?: ColorValue[];
9
- innerRef?: Ref<ViewRef>;
10
- };
11
- export type IconComponent<GM extends NanoGlyphMap> = React.FC<TextProps & {
12
- name: keyof GM['icons'];
13
- size?: number;
14
- colorPalette?: ColorValue[];
15
- innerRef?: Ref<ViewRef>;
16
- } & React.RefAttributes<ViewRef>>;
17
- export declare function createIconSet<GM extends NanoGlyphMap>(glyphMap: GM): IconComponent<GM>;
18
- export {};
1
+ import type { NanoGlyphMapInput } from './core/types';
2
+ import type { IconComponent } from './types';
3
+ export type { IconComponent, IconProps } from './types';
4
+ export { shallowEqualColor } from './utils/shallowEqualColor';
5
+ export declare function createIconSet<GM extends NanoGlyphMapInput>(glyphMap: GM): IconComponent<GM>;
19
6
  //# sourceMappingURL=createNanoIconsSet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createNanoIconsSet.d.ts","sourceRoot":"","sources":["../../../src/createNanoIconsSet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAGL,IAAI,EAEJ,KAAK,UAAU,EACf,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,cAAc,CAAC;AAI7D,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,SAAS,CAAC,IAAI,IAAI,SAAS,GAAG;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,YAAY,IAAI,KAAK,CAAC,EAAE,CAC3D,SAAS,GAAG;IACV,IAAI,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CACzB,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CACjC,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,SAAS,YAAY,EACnD,QAAQ,EAAE,EAAE,GACX,aAAa,CAAC,EAAE,CAAC,CAgGnB"}
1
+ {"version":3,"file":"createNanoIconsSet.d.ts","sourceRoot":"","sources":["../../../src/createNanoIconsSet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,wBAAgB,aAAa,CAAC,EAAE,SAAS,iBAAiB,EACxD,QAAQ,EAAE,EAAE,GACX,aAAa,CAAC,EAAE,CAAC,CAEnB"}
@@ -0,0 +1,7 @@
1
+ import type { NanoGlyphMapInput } from './core/types';
2
+ import type { IconComponent, IconProps } from './types';
3
+ import { shallowEqualColor } from './utils/shallowEqualColor';
4
+ export type { IconComponent, IconProps };
5
+ export { shallowEqualColor };
6
+ export declare function createIconSet<GM extends NanoGlyphMapInput>(glyphMap: GM): IconComponent<GM>;
7
+ //# sourceMappingURL=createNanoIconsSet.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNanoIconsSet.native.d.ts","sourceRoot":"","sources":["../../../src/createNanoIconsSet.native.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAkB7B,wBAAgB,aAAa,CAAC,EAAE,SAAS,iBAAiB,EACxD,QAAQ,EAAE,EAAE,GACX,aAAa,CAAC,EAAE,CAAC,CA8GnB"}
@@ -0,0 +1,11 @@
1
+ import type { NanoGlyphMapInput } from './core/types';
2
+ import type { IconComponent, IconProps } from './types';
3
+ import { shallowEqualColor } from './utils/shallowEqualColor';
4
+ export type { IconComponent, IconProps };
5
+ export { shallowEqualColor };
6
+ /**
7
+ * JS implementation using <View> + <Text> layers.
8
+ * Used on web and as a fallback when native component is unavailable (e.g. Expo Go).
9
+ */
10
+ export declare function createJSIconSet<GM extends NanoGlyphMapInput>(glyphMap: GM): IconComponent<GM>;
11
+ //# sourceMappingURL=createNanoIconsSet.shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNanoIconsSet.shared.d.ts","sourceRoot":"","sources":["../../../src/createNanoIconsSet.shared.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAI7B;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAC1D,QAAQ,EAAE,EAAE,GACX,aAAa,CAAC,EAAE,CAAC,CAuGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,IAAI,iBAAiB,EAClC,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,IAAI,iBAAiB,EAClC,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CodegenTypes as CT, ViewProps } from 'react-native';
2
+ export interface NativeProps extends ViewProps {
3
+ fontFamily: string;
4
+ codepoints: ReadonlyArray<CT.Int32>;
5
+ colors: ReadonlyArray<CT.Int32>;
6
+ fontSize: CT.Float;
7
+ advanceWidth: CT.Int32;
8
+ unitsPerEm: CT.Int32;
9
+ iconWidth: CT.Float;
10
+ iconHeight: CT.Float;
11
+ }
12
+ declare const _default: import("react-native/types_generated/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
13
+ export default _default;
14
+ //# sourceMappingURL=NanoIconViewNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NanoIconViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/specs/NanoIconViewNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAChC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC;IACnB,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC;IACvB,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC;IACrB,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;IACpB,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC;CACtB;;AAED,wBAAmE"}
@@ -0,0 +1,19 @@
1
+ import type { ComponentRef, Ref } from 'react';
2
+ import type { AccessibilityRole, ColorValue, View, ViewStyle } from 'react-native';
3
+ import type { NanoGlyphMapInput } from './core/types';
4
+ type ViewRef = ComponentRef<typeof View>;
5
+ export type IconProps<Name> = {
6
+ name: Name;
7
+ size?: number;
8
+ color?: ColorValue | ColorValue[];
9
+ allowFontScaling?: boolean;
10
+ style?: ViewStyle;
11
+ accessible?: boolean;
12
+ accessibilityLabel?: string;
13
+ accessibilityRole?: AccessibilityRole;
14
+ ref?: Ref<ViewRef>;
15
+ testID?: string;
16
+ };
17
+ export type IconComponent<GM extends NanoGlyphMapInput> = React.FC<IconProps<keyof GM['i']>>;
18
+ export {};
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,IAAI,EACJ,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,SAAS,CAAC,IAAI,IAAI;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,EAAE,SAAS,iBAAiB,IAAI,KAAK,CAAC,EAAE,CAChE,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CACzB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ColorValue } from 'react-native';
2
+ /** Shallow-compare two color props (single value or array) instead of arr ref for memo equality. */
3
+ export declare function shallowEqualColor(a: ColorValue | ColorValue[] | undefined, b: ColorValue | ColorValue[] | undefined): boolean;
4
+ //# sourceMappingURL=shallowEqualColor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shallowEqualColor.d.ts","sourceRoot":"","sources":["../../../../src/utils/shallowEqualColor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,oGAAoG;AACpG,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,EACxC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,SAAS,GACvC,OAAO,CAUT"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-nano-icons",
3
- "version": "0.1.2",
4
- "description": "Use any svg as font. High-performance, build-time icon font generation for React Native & Expo.",
3
+ "version": "0.1.4",
4
+ "description": "Use any svg as font. High-performance, build-time icon font generation and rendering for React Native & Expo.",
5
5
  "react-native": "src/index.ts",
6
6
  "source": "src/index.ts",
7
7
  "bin": "lib/commonjs/scripts/cli.js",
@@ -14,7 +14,10 @@
14
14
  "src",
15
15
  "lib",
16
16
  "plugin",
17
- "scripts"
17
+ "scripts",
18
+ "ios",
19
+ "android",
20
+ "react-native-nano-icons.podspec"
18
21
  ],
19
22
  "scripts": {
20
23
  "build": "yarn build:node-entry && bob build && yarn build:core && yarn build:cli && yarn build:plugin && yarn build:scripts",
@@ -30,8 +33,7 @@
30
33
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
31
34
  "lint-js": "eslint 'src/**/*.{js,ts,tsx}' && prettier --check 'src/**/*.{js,jsx,ts,tsx}'",
32
35
  "format-js": "prettier --write --list-different 'src/**/*.{js,jsx,ts,tsx}'",
33
- "test": "jest",
34
- "postinstall": "patch-package"
36
+ "test": "jest"
35
37
  },
36
38
  "dependencies": {
37
39
  "@expo/config-plugins": ">=9.0.0",
@@ -159,5 +161,20 @@
159
161
  "release-it"
160
162
  ],
161
163
  "version": "0.57.2"
164
+ },
165
+ "codegenConfig": {
166
+ "name": "RNNanoIconsSpec",
167
+ "type": "components",
168
+ "jsSrcsDir": "./src/specs",
169
+ "android": {
170
+ "javaPackageName": "com.nanoicons"
171
+ },
172
+ "ios": {
173
+ "components": {
174
+ "NanoIconView": {
175
+ "className": "NanoIconView"
176
+ }
177
+ }
178
+ }
162
179
  }
163
180
  }
@@ -0,0 +1,18 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = "react-native-nano-icons"
7
+ s.version = package["version"]
8
+ s.summary = package["description"]
9
+ s.homepage = package["homepage"]
10
+ s.license = package["license"]
11
+ s.author = package["author"]
12
+ s.source = { :git => package["repository"], :tag => "#{s.version}" }
13
+ s.platforms = { :ios => "15.1" }
14
+ s.source_files = "ios/**/*.{h,m,mm,cpp}"
15
+ s.requires_arc = true
16
+
17
+ install_modules_dependencies(s)
18
+ end