@rocapine/react-native-onboarding-ui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/UI/Pages/ComposableScreen/Renderer.d.ts.map +1 -1
- package/dist/UI/Pages/ComposableScreen/Renderer.js +22 -3
- package/dist/UI/Pages/ComposableScreen/Renderer.js.map +1 -1
- package/dist/UI/Pages/ComposableScreen/types.d.ts +21 -0
- package/dist/UI/Pages/ComposableScreen/types.d.ts.map +1 -1
- package/dist/UI/Pages/ComposableScreen/types.js +23 -0
- package/dist/UI/Pages/ComposableScreen/types.js.map +1 -1
- package/package.json +2 -1
- package/src/UI/Pages/ComposableScreen/Renderer.tsx +30 -3
- package/src/UI/Pages/ComposableScreen/types.ts +46 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAA6C,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO1C,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AA8JF,eAAO,MAAM,wBAAwB;;;CAAsE,CAAC"}
|
|
@@ -3,14 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ComposableScreenRenderer = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_native_1 = require("react-native");
|
|
6
|
-
const react_native_safe_area_context_1 = require("react-native-safe-area-context");
|
|
7
6
|
const types_1 = require("./types");
|
|
8
7
|
const defaultTheme_1 = require("../../Theme/defaultTheme");
|
|
9
8
|
const helpers_1 = require("../../Theme/helpers");
|
|
10
9
|
const ErrorBoundary_1 = require("../../ErrorBoundary");
|
|
11
10
|
const OnboardingTemplate_1 = require("../../Templates/OnboardingTemplate");
|
|
12
11
|
const renderElement = (element, theme, parentType) => {
|
|
13
|
-
var _a, _b;
|
|
12
|
+
var _a, _b, _c, _d, _e;
|
|
14
13
|
if (element.type === "YStack" || element.type === "XStack") {
|
|
15
14
|
return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: {
|
|
16
15
|
flexDirection: element.type === "XStack" ? "row" : "column",
|
|
@@ -62,10 +61,30 @@ const renderElement = (element, theme, parentType) => {
|
|
|
62
61
|
flexShrink: parentType === "XStack" ? 1 : undefined,
|
|
63
62
|
}, children: element.props.content }, element.id));
|
|
64
63
|
}
|
|
64
|
+
if (element.type === "Image") {
|
|
65
|
+
const hasExplicitHeight = element.props.height !== undefined;
|
|
66
|
+
const aspectRatio = hasExplicitHeight
|
|
67
|
+
? undefined
|
|
68
|
+
: ((_c = element.props.aspectRatio) !== null && _c !== void 0 ? _c : 16 / 9);
|
|
69
|
+
return ((0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: element.props.url }, resizeMode: (_d = element.props.resizeMode) !== null && _d !== void 0 ? _d : "cover", style: {
|
|
70
|
+
width: (_e = element.props.width) !== null && _e !== void 0 ? _e : "100%",
|
|
71
|
+
height: element.props.height,
|
|
72
|
+
aspectRatio,
|
|
73
|
+
borderRadius: element.props.borderRadius,
|
|
74
|
+
borderWidth: element.props.borderWidth,
|
|
75
|
+
borderColor: element.props.borderColor,
|
|
76
|
+
opacity: element.props.opacity,
|
|
77
|
+
margin: element.props.margin,
|
|
78
|
+
marginHorizontal: element.props.marginHorizontal,
|
|
79
|
+
marginVertical: element.props.marginVertical,
|
|
80
|
+
padding: element.props.padding,
|
|
81
|
+
paddingHorizontal: element.props.paddingHorizontal,
|
|
82
|
+
paddingVertical: element.props.paddingVertical,
|
|
83
|
+
} }, element.id));
|
|
84
|
+
}
|
|
65
85
|
return null;
|
|
66
86
|
};
|
|
67
87
|
const ComposableScreenRendererBase = ({ step, onContinue, theme = defaultTheme_1.defaultTheme }) => {
|
|
68
|
-
const { top, bottom } = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
|
|
69
88
|
const validatedData = types_1.ComposableScreenStepTypeSchema.parse(step);
|
|
70
89
|
const { elements } = validatedData.payload;
|
|
71
90
|
return ((0, jsx_runtime_1.jsx)(OnboardingTemplate_1.OnboardingTemplate, { step: step, onContinue: onContinue, theme: theme, children: (0, jsx_runtime_1.jsxs)(react_native_1.ScrollView, { contentContainerStyle: styles.scrollContent, showsVerticalScrollIndicator: false, alwaysBounceVertical: false, children: [elements.map((element) => renderElement(element, theme)), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.bottomSection, children: (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { style: [styles.ctaButton, { backgroundColor: theme.colors.primary }], onPress: onContinue, activeOpacity: 0.8, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":";;;;AACA,+
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,27 @@ export type UIElement = {
|
|
|
54
54
|
borderColor?: string;
|
|
55
55
|
opacity?: number;
|
|
56
56
|
};
|
|
57
|
+
} | {
|
|
58
|
+
id: string;
|
|
59
|
+
name?: string;
|
|
60
|
+
type: "Image";
|
|
61
|
+
props: {
|
|
62
|
+
url: string;
|
|
63
|
+
width?: number;
|
|
64
|
+
height?: number;
|
|
65
|
+
aspectRatio?: number;
|
|
66
|
+
resizeMode?: "cover" | "contain" | "stretch" | "center";
|
|
67
|
+
borderRadius?: number;
|
|
68
|
+
borderWidth?: number;
|
|
69
|
+
borderColor?: string;
|
|
70
|
+
opacity?: number;
|
|
71
|
+
margin?: number;
|
|
72
|
+
marginHorizontal?: number;
|
|
73
|
+
marginVertical?: number;
|
|
74
|
+
padding?: number;
|
|
75
|
+
paddingHorizontal?: number;
|
|
76
|
+
paddingVertical?: number;
|
|
77
|
+
};
|
|
57
78
|
};
|
|
58
79
|
export declare const UIElementSchema: z.ZodType<UIElement>;
|
|
59
80
|
export declare const ComposableScreenStepPayloadSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,SAAS,GACjB;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,KAAK,EAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QAC9D,cAAc,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,GAAG,cAAc,CAAC;QACzF,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,GACD;IACE,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACxC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,23 @@ const TextElementPropsSchema = zod_1.z.object({
|
|
|
49
49
|
borderColor: zod_1.z.string().optional(),
|
|
50
50
|
opacity: zod_1.z.number().min(0).max(1).optional(),
|
|
51
51
|
});
|
|
52
|
+
const ImageElementPropsSchema = zod_1.z.object({
|
|
53
|
+
url: zod_1.z.string(),
|
|
54
|
+
width: zod_1.z.number().optional(),
|
|
55
|
+
height: zod_1.z.number().optional(),
|
|
56
|
+
aspectRatio: zod_1.z.number().optional(),
|
|
57
|
+
resizeMode: zod_1.z.enum(["cover", "contain", "stretch", "center"]).optional(),
|
|
58
|
+
borderRadius: zod_1.z.number().optional(),
|
|
59
|
+
borderWidth: zod_1.z.number().optional(),
|
|
60
|
+
borderColor: zod_1.z.string().optional(),
|
|
61
|
+
opacity: zod_1.z.number().min(0).max(1).optional(),
|
|
62
|
+
margin: zod_1.z.number().optional(),
|
|
63
|
+
marginHorizontal: zod_1.z.number().optional(),
|
|
64
|
+
marginVertical: zod_1.z.number().optional(),
|
|
65
|
+
padding: zod_1.z.number().optional(),
|
|
66
|
+
paddingHorizontal: zod_1.z.number().optional(),
|
|
67
|
+
paddingVertical: zod_1.z.number().optional(),
|
|
68
|
+
});
|
|
52
69
|
exports.UIElementSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
53
70
|
zod_1.z.object({
|
|
54
71
|
id: zod_1.z.string(),
|
|
@@ -63,6 +80,12 @@ exports.UIElementSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
|
63
80
|
type: zod_1.z.literal("Text"),
|
|
64
81
|
props: TextElementPropsSchema,
|
|
65
82
|
}),
|
|
83
|
+
zod_1.z.object({
|
|
84
|
+
id: zod_1.z.string(),
|
|
85
|
+
name: zod_1.z.string().optional(),
|
|
86
|
+
type: zod_1.z.literal("Image"),
|
|
87
|
+
props: ImageElementPropsSchema,
|
|
88
|
+
}),
|
|
66
89
|
]));
|
|
67
90
|
exports.ComposableScreenStepPayloadSchema = zod_1.z.object({
|
|
68
91
|
elements: zod_1.z.array(exports.UIElementSchema),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/types.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAA+C;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocapine/react-native-onboarding-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "UI components and renderers for Rocapine Onboarding Studio - Built on top of the headless SDK",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc && cp -r src/assets dist/",
|
|
9
9
|
"watch": "tsc --watch",
|
|
10
|
+
"type:check": "tsc --noEmit",
|
|
10
11
|
"patch": "npm version patch && npm run build && npm publish"
|
|
11
12
|
},
|
|
12
13
|
"keywords": [
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { View, Text, ScrollView, StyleSheet, TouchableOpacity } from "react-native";
|
|
3
|
-
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
2
|
+
import { View, Text, Image, ScrollView, StyleSheet, TouchableOpacity } from "react-native";
|
|
4
3
|
import { ComposableScreenStepType, ComposableScreenStepTypeSchema, UIElement } from "./types";
|
|
5
4
|
import { Theme } from "../../Theme/types";
|
|
6
5
|
import { defaultTheme } from "../../Theme/defaultTheme";
|
|
@@ -83,11 +82,39 @@ const renderElement = (element: UIElement, theme: Theme, parentType?: "XStack" |
|
|
|
83
82
|
);
|
|
84
83
|
}
|
|
85
84
|
|
|
85
|
+
if (element.type === "Image") {
|
|
86
|
+
const hasExplicitHeight = element.props.height !== undefined;
|
|
87
|
+
const aspectRatio = hasExplicitHeight
|
|
88
|
+
? undefined
|
|
89
|
+
: (element.props.aspectRatio ?? 16 / 9);
|
|
90
|
+
return (
|
|
91
|
+
<Image
|
|
92
|
+
key={element.id}
|
|
93
|
+
source={{ uri: element.props.url }}
|
|
94
|
+
resizeMode={element.props.resizeMode ?? "cover"}
|
|
95
|
+
style={{
|
|
96
|
+
width: element.props.width ?? "100%",
|
|
97
|
+
height: element.props.height,
|
|
98
|
+
aspectRatio,
|
|
99
|
+
borderRadius: element.props.borderRadius,
|
|
100
|
+
borderWidth: element.props.borderWidth,
|
|
101
|
+
borderColor: element.props.borderColor,
|
|
102
|
+
opacity: element.props.opacity,
|
|
103
|
+
margin: element.props.margin,
|
|
104
|
+
marginHorizontal: element.props.marginHorizontal,
|
|
105
|
+
marginVertical: element.props.marginVertical,
|
|
106
|
+
padding: element.props.padding,
|
|
107
|
+
paddingHorizontal: element.props.paddingHorizontal,
|
|
108
|
+
paddingVertical: element.props.paddingVertical,
|
|
109
|
+
}}
|
|
110
|
+
/>
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
86
114
|
return null;
|
|
87
115
|
};
|
|
88
116
|
|
|
89
117
|
const ComposableScreenRendererBase = ({ step, onContinue, theme = defaultTheme }: ContentProps) => {
|
|
90
|
-
const { top, bottom } = useSafeAreaInsets();
|
|
91
118
|
const validatedData = ComposableScreenStepTypeSchema.parse(step);
|
|
92
119
|
const { elements } = validatedData.payload;
|
|
93
120
|
return (
|
|
@@ -58,6 +58,28 @@ export type UIElement =
|
|
|
58
58
|
borderColor?: string;
|
|
59
59
|
opacity?: number;
|
|
60
60
|
};
|
|
61
|
+
}
|
|
62
|
+
| {
|
|
63
|
+
id: string;
|
|
64
|
+
name?: string;
|
|
65
|
+
type: "Image";
|
|
66
|
+
props: {
|
|
67
|
+
url: string;
|
|
68
|
+
width?: number;
|
|
69
|
+
height?: number;
|
|
70
|
+
aspectRatio?: number;
|
|
71
|
+
resizeMode?: "cover" | "contain" | "stretch" | "center";
|
|
72
|
+
borderRadius?: number;
|
|
73
|
+
borderWidth?: number;
|
|
74
|
+
borderColor?: string;
|
|
75
|
+
opacity?: number;
|
|
76
|
+
margin?: number;
|
|
77
|
+
marginHorizontal?: number;
|
|
78
|
+
marginVertical?: number;
|
|
79
|
+
padding?: number;
|
|
80
|
+
paddingHorizontal?: number;
|
|
81
|
+
paddingVertical?: number;
|
|
82
|
+
};
|
|
61
83
|
};
|
|
62
84
|
|
|
63
85
|
const StackElementPropsSchema = z.object({
|
|
@@ -108,6 +130,24 @@ const TextElementPropsSchema = z.object({
|
|
|
108
130
|
opacity: z.number().min(0).max(1).optional(),
|
|
109
131
|
});
|
|
110
132
|
|
|
133
|
+
const ImageElementPropsSchema = z.object({
|
|
134
|
+
url: z.string(),
|
|
135
|
+
width: z.number().optional(),
|
|
136
|
+
height: z.number().optional(),
|
|
137
|
+
aspectRatio: z.number().optional(),
|
|
138
|
+
resizeMode: z.enum(["cover", "contain", "stretch", "center"]).optional(),
|
|
139
|
+
borderRadius: z.number().optional(),
|
|
140
|
+
borderWidth: z.number().optional(),
|
|
141
|
+
borderColor: z.string().optional(),
|
|
142
|
+
opacity: z.number().min(0).max(1).optional(),
|
|
143
|
+
margin: z.number().optional(),
|
|
144
|
+
marginHorizontal: z.number().optional(),
|
|
145
|
+
marginVertical: z.number().optional(),
|
|
146
|
+
padding: z.number().optional(),
|
|
147
|
+
paddingHorizontal: z.number().optional(),
|
|
148
|
+
paddingVertical: z.number().optional(),
|
|
149
|
+
});
|
|
150
|
+
|
|
111
151
|
export const UIElementSchema: z.ZodType<UIElement> = z.lazy(() =>
|
|
112
152
|
z.union([
|
|
113
153
|
z.object({
|
|
@@ -123,6 +163,12 @@ export const UIElementSchema: z.ZodType<UIElement> = z.lazy(() =>
|
|
|
123
163
|
type: z.literal("Text"),
|
|
124
164
|
props: TextElementPropsSchema,
|
|
125
165
|
}),
|
|
166
|
+
z.object({
|
|
167
|
+
id: z.string(),
|
|
168
|
+
name: z.string().optional(),
|
|
169
|
+
type: z.literal("Image"),
|
|
170
|
+
props: ImageElementPropsSchema,
|
|
171
|
+
}),
|
|
126
172
|
])
|
|
127
173
|
);
|
|
128
174
|
|