@rocapine/react-native-onboarding 1.17.0 → 1.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/infra/fonts/registry.d.ts.map +1 -1
- package/dist/infra/fonts/registry.js +29 -6
- package/dist/infra/fonts/registry.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/infra/fonts/registry.ts +38 -6
- package/src/types.ts +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/infra/fonts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/infra/fonts/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EAEb,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAUlE,eAAO,MAAM,eAAe,GAAI,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KAAG,MAOlF,CAAC;AA8CF,eAAO,MAAM,aAAa,GAAU,UAAU,aAAa,GAAG,SAAS,KAAG,OAAO,CAAC,YAAY,CAgC7F,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,UAAU,YAAY,GAAG,IAAI,GAAG,SAAS,EACzC,QAAQ,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACzC,MAAM,GAAG,SA0BX,CAAC"}
|
|
@@ -34,6 +34,31 @@ const loadExpoFont = () => {
|
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
+
const normalizeFamilyVariants = (input) => {
|
|
38
|
+
if (!input)
|
|
39
|
+
return [];
|
|
40
|
+
if (Array.isArray(input)) {
|
|
41
|
+
const byWeight = new Map();
|
|
42
|
+
for (const entry of input) {
|
|
43
|
+
if (!entry || typeof entry.url !== "string" || !entry.url)
|
|
44
|
+
continue;
|
|
45
|
+
const weight = (0, exports.normalizeWeight)(entry.weight);
|
|
46
|
+
const existing = byWeight.get(weight);
|
|
47
|
+
const isNormalStyle = !entry.style || entry.style === "normal";
|
|
48
|
+
if (!existing || isNormalStyle) {
|
|
49
|
+
byWeight.set(weight, { weight, url: entry.url });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return Array.from(byWeight.values());
|
|
53
|
+
}
|
|
54
|
+
const out = [];
|
|
55
|
+
for (const [weightKey, url] of Object.entries(input)) {
|
|
56
|
+
if (typeof url !== "string" || !url)
|
|
57
|
+
continue;
|
|
58
|
+
out.push({ weight: (0, exports.normalizeWeight)(weightKey), url });
|
|
59
|
+
}
|
|
60
|
+
return out;
|
|
61
|
+
};
|
|
37
62
|
const registerFonts = async (manifest) => {
|
|
38
63
|
var _a;
|
|
39
64
|
const registry = {};
|
|
@@ -43,14 +68,12 @@ const registerFonts = async (manifest) => {
|
|
|
43
68
|
if (!Font)
|
|
44
69
|
return registry;
|
|
45
70
|
const loads = [];
|
|
46
|
-
for (const [family,
|
|
47
|
-
|
|
71
|
+
for (const [family, variantsInput] of Object.entries(manifest)) {
|
|
72
|
+
const variants = normalizeFamilyVariants(variantsInput);
|
|
73
|
+
if (variants.length === 0)
|
|
48
74
|
continue;
|
|
49
75
|
registry[family] = (_a = registry[family]) !== null && _a !== void 0 ? _a : {};
|
|
50
|
-
for (const
|
|
51
|
-
if (!url)
|
|
52
|
-
continue;
|
|
53
|
-
const weight = (0, exports.normalizeWeight)(weightKey);
|
|
76
|
+
for (const { weight, url } of variants) {
|
|
54
77
|
const registeredName = buildRegisteredName(family, weight);
|
|
55
78
|
registry[family][weight] = registeredName;
|
|
56
79
|
loads.push(Font.loadAsync({ [registeredName]: { uri: url } }).catch((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/infra/fonts/registry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/infra/fonts/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -38,7 +38,13 @@ export interface OnboardingMetadata {
|
|
|
38
38
|
}
|
|
39
39
|
export type FontWeightKey = "regular" | "medium" | "semibold" | "bold" | "extrabold" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900";
|
|
40
40
|
export type FontFamilyManifest = Partial<Record<FontWeightKey, string>>;
|
|
41
|
-
export
|
|
41
|
+
export interface FontVariantEntry {
|
|
42
|
+
weight: FontWeightKey | number;
|
|
43
|
+
style?: "normal" | "italic" | string;
|
|
44
|
+
url: string;
|
|
45
|
+
}
|
|
46
|
+
export type FontFamilyManifestInput = FontFamilyManifest | FontVariantEntry[];
|
|
47
|
+
export type FontsManifest = Record<string, FontFamilyManifestInput>;
|
|
42
48
|
export interface Onboarding<StepType extends BaseStepType = BaseStepType> {
|
|
43
49
|
metadata: OnboardingMetadata;
|
|
44
50
|
steps: StepType[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,6BAA6B,CACvC,QAAQ,SAAS,YAAY,GAAG,YAAY,IAC1C;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAExE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,6BAA6B,CACvC,QAAQ,SAAS,YAAY,GAAG,YAAY,IAC1C;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,MAAM,GACN,WAAW,GACX,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,CAAC;AAE9E,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAEpE,MAAM,WAAW,UAAU,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY;IACtE,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocapine/react-native-onboarding",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.1",
|
|
4
4
|
"description": "Headless React Native SDK for Rocapine Onboarding Studio - Data fetching, state management, and hooks",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
FontFamilyManifest,
|
|
3
|
+
FontFamilyManifestInput,
|
|
4
|
+
FontsManifest,
|
|
5
|
+
FontVariantEntry,
|
|
6
|
+
FontWeightKey,
|
|
7
|
+
} from "../../types";
|
|
2
8
|
|
|
3
9
|
export type FontRegistry = Record<string, Record<number, string>>;
|
|
4
10
|
|
|
@@ -36,6 +42,33 @@ const loadExpoFont = (): typeof import("expo-font") | null => {
|
|
|
36
42
|
}
|
|
37
43
|
};
|
|
38
44
|
|
|
45
|
+
type NormalizedVariant = { weight: number; url: string };
|
|
46
|
+
|
|
47
|
+
const normalizeFamilyVariants = (input: FontFamilyManifestInput | undefined): NormalizedVariant[] => {
|
|
48
|
+
if (!input) return [];
|
|
49
|
+
|
|
50
|
+
if (Array.isArray(input)) {
|
|
51
|
+
const byWeight = new Map<number, NormalizedVariant>();
|
|
52
|
+
for (const entry of input as FontVariantEntry[]) {
|
|
53
|
+
if (!entry || typeof entry.url !== "string" || !entry.url) continue;
|
|
54
|
+
const weight = normalizeWeight(entry.weight as FontWeightKey | number);
|
|
55
|
+
const existing = byWeight.get(weight);
|
|
56
|
+
const isNormalStyle = !entry.style || entry.style === "normal";
|
|
57
|
+
if (!existing || isNormalStyle) {
|
|
58
|
+
byWeight.set(weight, { weight, url: entry.url });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return Array.from(byWeight.values());
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const out: NormalizedVariant[] = [];
|
|
65
|
+
for (const [weightKey, url] of Object.entries(input as FontFamilyManifest)) {
|
|
66
|
+
if (typeof url !== "string" || !url) continue;
|
|
67
|
+
out.push({ weight: normalizeWeight(weightKey as FontWeightKey), url });
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
};
|
|
71
|
+
|
|
39
72
|
export const registerFonts = async (manifest: FontsManifest | undefined): Promise<FontRegistry> => {
|
|
40
73
|
const registry: FontRegistry = {};
|
|
41
74
|
if (!manifest || Object.keys(manifest).length === 0) return registry;
|
|
@@ -45,13 +78,12 @@ export const registerFonts = async (manifest: FontsManifest | undefined): Promis
|
|
|
45
78
|
|
|
46
79
|
const loads: Array<Promise<void>> = [];
|
|
47
80
|
|
|
48
|
-
for (const [family,
|
|
49
|
-
|
|
81
|
+
for (const [family, variantsInput] of Object.entries(manifest)) {
|
|
82
|
+
const variants = normalizeFamilyVariants(variantsInput);
|
|
83
|
+
if (variants.length === 0) continue;
|
|
50
84
|
registry[family] = registry[family] ?? {};
|
|
51
85
|
|
|
52
|
-
for (const
|
|
53
|
-
if (!url) continue;
|
|
54
|
-
const weight = normalizeWeight(weightKey as FontWeightKey);
|
|
86
|
+
for (const { weight, url } of variants) {
|
|
55
87
|
const registeredName = buildRegisteredName(family, weight);
|
|
56
88
|
registry[family][weight] = registeredName;
|
|
57
89
|
|
package/src/types.ts
CHANGED
|
@@ -62,7 +62,15 @@ export type FontWeightKey =
|
|
|
62
62
|
|
|
63
63
|
export type FontFamilyManifest = Partial<Record<FontWeightKey, string>>;
|
|
64
64
|
|
|
65
|
-
export
|
|
65
|
+
export interface FontVariantEntry {
|
|
66
|
+
weight: FontWeightKey | number;
|
|
67
|
+
style?: "normal" | "italic" | string;
|
|
68
|
+
url: string;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type FontFamilyManifestInput = FontFamilyManifest | FontVariantEntry[];
|
|
72
|
+
|
|
73
|
+
export type FontsManifest = Record<string, FontFamilyManifestInput>;
|
|
66
74
|
|
|
67
75
|
export interface Onboarding<StepType extends BaseStepType = BaseStepType> {
|
|
68
76
|
metadata: OnboardingMetadata;
|