@rocapine/react-native-onboarding-ui 1.15.0 → 1.16.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 +2 -1
- package/dist/UI/Pages/ComposableScreen/Renderer.js.map +1 -1
- package/dist/UI/Pages/ComposableScreen/elements/ButtonElement.d.ts +27 -0
- package/dist/UI/Pages/ComposableScreen/elements/ButtonElement.d.ts.map +1 -1
- package/dist/UI/Pages/ComposableScreen/elements/ButtonElement.js +37 -7
- package/dist/UI/Pages/ComposableScreen/elements/ButtonElement.js.map +1 -1
- package/dist/UI/Pages/ComposableScreen/elements/shared.d.ts +2 -0
- package/dist/UI/Pages/ComposableScreen/elements/shared.d.ts.map +1 -1
- package/dist/UI/Pages/ComposableScreen/elements/shared.js.map +1 -1
- package/dist/UI/Provider/OnboardingProgressProvider.d.ts +2 -4
- package/dist/UI/Provider/OnboardingProgressProvider.d.ts.map +1 -1
- package/dist/UI/Provider/OnboardingProgressProvider.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/UI/Pages/ComposableScreen/Renderer.tsx +2 -1
- package/src/UI/Pages/ComposableScreen/elements/ButtonElement.tsx +57 -6
- package/src/UI/Pages/ComposableScreen/elements/shared.ts +2 -0
- package/src/UI/Provider/OnboardingProgressProvider.tsx +3 -2
- package/src/index.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAA6C,MAAM,SAAS,CAAC;AAQ9F,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAA6C,MAAM,SAAS,CAAC;AAQ9F,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAqDF,eAAO,MAAM,wBAAwB;;;CAAsE,CAAC"}
|
|
@@ -16,7 +16,7 @@ const ComposableScreenRendererBase = ({ step, onContinue }) => {
|
|
|
16
16
|
const validatedData = (0, react_1.useMemo)(() => types_1.ComposableScreenStepTypeSchema.parse(step), [step]);
|
|
17
17
|
const { elements } = validatedData.payload;
|
|
18
18
|
const { composableVariables, setComposableVariable } = (0, react_1.useContext)(OnboardingProgressProvider_1.OnboardingProgressContext);
|
|
19
|
-
const { setVariable: setHeadlessVariable } = (0, react_1.useContext)(react_native_onboarding_1.OnboardingProgressContext);
|
|
19
|
+
const { setVariable: setHeadlessVariable, customActions } = (0, react_1.useContext)(react_native_onboarding_1.OnboardingProgressContext);
|
|
20
20
|
const setVariableAndSync = (0, react_1.useCallback)((key, entry) => {
|
|
21
21
|
setComposableVariable(key, entry);
|
|
22
22
|
setHeadlessVariable(key, entry.value);
|
|
@@ -27,6 +27,7 @@ const ComposableScreenRendererBase = ({ step, onContinue }) => {
|
|
|
27
27
|
variables: composableVariables,
|
|
28
28
|
setVariable: setVariableAndSync,
|
|
29
29
|
onContinue,
|
|
30
|
+
customActions,
|
|
30
31
|
renderChildren,
|
|
31
32
|
};
|
|
32
33
|
return ((0, jsx_runtime_1.jsx)(OnboardingTemplate_1.OnboardingTemplate, { step: validatedData, onContinue: onContinue, theme: theme, children: (0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { contentContainerStyle: styles.scrollContent, showsVerticalScrollIndicator: false, alwaysBounceVertical: false, keyboardShouldPersistTaps: "handled", children: elements.map((element) => (0, renderElement_1.renderElement)(element, ctx)) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyD;AACzD,+CAAsD;AACtD,+EAAyG;AACzG,mCAA8F;AAC9F,uDAAwD;AACxD,2EAAwE;AACxE,0FAA+G;AAC/G,mDAAgD;AAEhD,4DAAyD;AAOzD,MAAM,4BAA4B,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAgB,EAAE,EAAE;IAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,sCAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;IAC3C,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,IAAA,kBAAU,EAAC,sDAAyB,CAAC,CAAC;IAC7F,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAA,kBAAU,EAAC,mDAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/Renderer.tsx"],"names":[],"mappings":";;;;AAAA,iCAAyD;AACzD,+CAAsD;AACtD,+EAAyG;AACzG,mCAA8F;AAC9F,uDAAwD;AACxD,2EAAwE;AACxE,0FAA+G;AAC/G,mDAAgD;AAEhD,4DAAyD;AAOzD,MAAM,4BAA4B,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAgB,EAAE,EAAE;IAC1E,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,sCAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;IAC3C,MAAM,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,GAAG,IAAA,kBAAU,EAAC,sDAAyB,CAAC,CAAC;IAC7F,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,IAAA,kBAAU,EAAC,mDAAuB,CAAC,CAAC;IAEhG,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,CAAC,GAAW,EAAE,KAA8B,EAAE,EAAE;QAC9C,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAClC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,EACD,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAC7C,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,QAAqB,EAAE,UAA0C,EAAE,EAAE,CAC3F,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,6BAAa,EAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAkB;QACzB,KAAK;QACL,SAAS,EAAE,mBAAmB;QAC9B,WAAW,EAAE,kBAAkB;QAC/B,UAAU;QACV,aAAa;QACb,cAAc;KACf,CAAC;IAEF,OAAO,CACL,uBAAC,uCAAkB,IACjB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,YAEZ,uBAAC,yBAAU,IACT,qBAAqB,EAAE,MAAM,CAAC,aAAa,EAC3C,4BAA4B,EAAE,KAAK,EACnC,oBAAoB,EAAE,KAAK,EAC3B,yBAAyB,EAAC,SAAS,YAElC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,6BAAa,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAC5C,GACM,CACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC;KACZ;CACF,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,IAAA,iCAAiB,EAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC"}
|
|
@@ -3,8 +3,30 @@ import { z } from "zod";
|
|
|
3
3
|
import { BaseBoxProps } from "./BaseBoxProps";
|
|
4
4
|
import { UIElement } from "../types";
|
|
5
5
|
import { RenderContext } from "./shared";
|
|
6
|
+
export type CustomButtonAction = {
|
|
7
|
+
type: "custom";
|
|
8
|
+
function: string;
|
|
9
|
+
variables?: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare const CustomButtonActionSchema: z.ZodObject<{
|
|
12
|
+
type: z.ZodLiteral<"custom">;
|
|
13
|
+
function: z.ZodString;
|
|
14
|
+
variables: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type ButtonAction = "continue" | CustomButtonAction;
|
|
17
|
+
export declare const ButtonActionSchema: z.ZodUnion<readonly [z.ZodLiteral<"continue">, z.ZodObject<{
|
|
18
|
+
type: z.ZodLiteral<"custom">;
|
|
19
|
+
function: z.ZodString;
|
|
20
|
+
variables: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
21
|
+
}, z.core.$strip>]>;
|
|
6
22
|
export type ButtonElementProps = BaseBoxProps & {
|
|
7
23
|
label: string;
|
|
24
|
+
/**
|
|
25
|
+
* Ordered list of actions to run on press. Sequential, await async handlers,
|
|
26
|
+
* abort on error, `"continue"` is terminal.
|
|
27
|
+
*/
|
|
28
|
+
actions?: ButtonAction[];
|
|
29
|
+
/** @deprecated Use `actions` instead. */
|
|
8
30
|
action?: "continue";
|
|
9
31
|
variant?: "filled" | "outlined" | "ghost";
|
|
10
32
|
backgroundColor?: string;
|
|
@@ -75,6 +97,11 @@ export declare const ButtonElementPropsSchema: z.ZodObject<{
|
|
|
75
97
|
borderRadius: z.ZodOptional<z.ZodNumber>;
|
|
76
98
|
borderColor: z.ZodOptional<z.ZodString>;
|
|
77
99
|
label: z.ZodString;
|
|
100
|
+
actions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodLiteral<"continue">, z.ZodObject<{
|
|
101
|
+
type: z.ZodLiteral<"custom">;
|
|
102
|
+
function: z.ZodString;
|
|
103
|
+
variables: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
104
|
+
}, z.core.$strip>]>>>;
|
|
78
105
|
action: z.ZodOptional<z.ZodEnum<{
|
|
79
106
|
continue: "continue";
|
|
80
107
|
}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/ButtonElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ButtonElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/ButtonElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAO,MAAM,UAAU,CAAC;AAI9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;iBAInC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAE3D,eAAO,MAAM,kBAAkB;;;;mBAG7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWnC,CAAC;AAEH,KAAK,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAE9D,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,eAAe,CAAC;IACzB,GAAG,EAAE,aAAa,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,kBAAkB,KAAK,KAAG,KAAK,CAAC,YA0HtE,CAAC"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ButtonElementComponent = exports.ButtonElementPropsSchema = void 0;
|
|
3
|
+
exports.ButtonElementComponent = exports.ButtonElementPropsSchema = exports.ButtonActionSchema = exports.CustomButtonActionSchema = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
const react_native_1 = require("react-native");
|
|
7
7
|
const BaseBoxProps_1 = require("./BaseBoxProps");
|
|
8
8
|
const shared_1 = require("./shared");
|
|
9
9
|
const GradientBox_1 = require("./GradientBox");
|
|
10
|
+
exports.CustomButtonActionSchema = zod_1.z.object({
|
|
11
|
+
type: zod_1.z.literal("custom"),
|
|
12
|
+
function: zod_1.z.string().min(1, "function must not be empty"),
|
|
13
|
+
variables: zod_1.z.array(zod_1.z.string()).optional(),
|
|
14
|
+
});
|
|
15
|
+
exports.ButtonActionSchema = zod_1.z.union([
|
|
16
|
+
zod_1.z.literal("continue"),
|
|
17
|
+
exports.CustomButtonActionSchema,
|
|
18
|
+
]);
|
|
10
19
|
exports.ButtonElementPropsSchema = BaseBoxProps_1.BaseBoxPropsSchema.extend({
|
|
11
20
|
label: zod_1.z.string().min(1, "label must not be empty"),
|
|
21
|
+
actions: zod_1.z.array(exports.ButtonActionSchema).optional(),
|
|
12
22
|
action: zod_1.z.enum(["continue"]).optional(),
|
|
13
23
|
variant: zod_1.z.enum(["filled", "outlined", "ghost"]).optional(),
|
|
14
24
|
backgroundColor: zod_1.z.string().optional(),
|
|
@@ -20,13 +30,33 @@ exports.ButtonElementPropsSchema = BaseBoxProps_1.BaseBoxPropsSchema.extend({
|
|
|
20
30
|
});
|
|
21
31
|
const ButtonElementComponent = ({ element, ctx }) => {
|
|
22
32
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
23
|
-
const { theme, onContinue } = ctx;
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
const { theme, onContinue, customActions, variables } = ctx;
|
|
34
|
+
const handlePress = async () => {
|
|
35
|
+
var _a;
|
|
36
|
+
const { actions, action } = element.props;
|
|
37
|
+
const effective = actions !== null && actions !== void 0 ? actions : (action === "continue" ? ["continue"] : []);
|
|
38
|
+
for (const act of effective) {
|
|
39
|
+
if (act === "continue") {
|
|
40
|
+
onContinue();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const handler = customActions[act.function];
|
|
44
|
+
if (!handler) {
|
|
45
|
+
console.warn(`[ComposableScreen] No customAction registered for "${act.function}"`);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const requested = (_a = act.variables) !== null && _a !== void 0 ? _a : [];
|
|
49
|
+
const vars = {};
|
|
50
|
+
for (const name of requested)
|
|
51
|
+
vars[name] = variables[name];
|
|
52
|
+
try {
|
|
53
|
+
await handler({ variables: vars });
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
console.error(`[ComposableScreen] customAction "${act.function}" threw:`, err);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
28
59
|
}
|
|
29
|
-
// other action values are no-ops
|
|
30
60
|
};
|
|
31
61
|
const variant = (_a = element.props.variant) !== null && _a !== void 0 ? _a : "filled";
|
|
32
62
|
const isFilled = variant === "filled";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/ButtonElement.tsx"],"names":[],"mappings":";;;;AACA,6BAAwB;AACxB,+CAAsD;AACtD,iDAAkE;AAElE,qCAA8C;AAC9C,+CAA4C;
|
|
1
|
+
{"version":3,"file":"ButtonElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/ButtonElement.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { CustomActions } from "@rocapine/react-native-onboarding";
|
|
2
3
|
import { UIElement } from "../types";
|
|
3
4
|
import { Theme } from "../../../Theme/types";
|
|
4
5
|
import { ComposableVariableEntry } from "../../../Provider/OnboardingProgressProvider";
|
|
@@ -7,6 +8,7 @@ export type RenderContext = {
|
|
|
7
8
|
variables: Record<string, ComposableVariableEntry>;
|
|
8
9
|
setVariable: (key: string, entry: ComposableVariableEntry) => void;
|
|
9
10
|
onContinue: () => void;
|
|
11
|
+
customActions: CustomActions;
|
|
10
12
|
renderChildren: (elements: UIElement[], parentType: "XStack" | "YStack" | "ZStack") => React.ReactNode;
|
|
11
13
|
};
|
|
12
14
|
export declare const interpolate: (template: string, variables: Record<string, ComposableVariableEntry>) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACnD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;CACxG,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,KAAG,MACM,CAAC;AAG1G,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KAAG,OAAO,cAAc,EAAE,cAAc,GAAG,SACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACnD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACnE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC;CACxG,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,WAAW,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,KAAG,MACM,CAAC;AAG1G,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KAAG,OAAO,cAAc,EAAE,cAAc,GAAG,SACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/shared.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/shared.ts"],"names":[],"mappings":";;;AAeO,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,SAAkD,EAAU,EAAE,CAC1G,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,uBAAC,OAAA,MAAA,MAAA,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,KAAK,mCAAI,MAAA,SAAS,CAAC,GAAG,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;AAD7F,QAAA,WAAW,eACkF;AAE1G,uFAAuF;AAChF,MAAM,GAAG,GAAG,CAAC,CAA8B,EAAqD,EAAE,CACvG,CAAsD,CAAC;AAD5C,QAAA,GAAG,OACyC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
+
import type { ComposableVariableEntry } from "@rocapine/react-native-onboarding";
|
|
1
2
|
import { ColorScheme } from "../Theme/types";
|
|
3
|
+
export type { ComposableVariableEntry };
|
|
2
4
|
export declare const OnboardingProgressProvider: ({ children, initialColorScheme, }: {
|
|
3
5
|
children: React.ReactNode;
|
|
4
6
|
initialColorScheme?: ColorScheme;
|
|
5
7
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export type ComposableVariableEntry = {
|
|
7
|
-
value: string;
|
|
8
|
-
label?: string;
|
|
9
|
-
};
|
|
10
8
|
export declare const OnboardingProgressContext: import("react").Context<{
|
|
11
9
|
activeStep: {
|
|
12
10
|
number: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingProgressProvider.d.ts","sourceRoot":"","sources":["../../../src/UI/Provider/OnboardingProgressProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OnboardingProgressProvider.d.ts","sourceRoot":"","sources":["../../../src/UI/Provider/OnboardingProgressProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EAAE,uBAAuB,EAAE,CAAC;AAExC,eAAO,MAAM,0BAA0B,GAAI,mCAGxC;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,CAAC,EAAE,WAAW,CAAC;CAClC,4CAwBA,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;2BAEb;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,qBAAqB,EAAE,OAAO,CAAC;KAChC;;4BAEuB,MAAM;yBACH,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;kCACpC,MAAM,UAAU,uBAAuB,GAAG,MAAM;EAC9E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingProgressProvider.js","sourceRoot":"","sources":["../../../src/UI/Provider/OnboardingProgressProvider.tsx"],"names":[],"mappings":";;;;AAAA,iCAA6D;AAC7D,mFAAkE;
|
|
1
|
+
{"version":3,"file":"OnboardingProgressProvider.js","sourceRoot":"","sources":["../../../src/UI/Provider/OnboardingProgressProvider.tsx"],"names":[],"mappings":";;;;AAAA,iCAA6D;AAC7D,mFAAkE;AAElE,0DAAuD;AAKhD,MAAM,0BAA0B,GAAG,CAAC,EACzC,QAAQ,EACR,kBAAkB,GAAG,OAAO,GAI7B,EAAE,EAAE;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC;QAC3C,MAAM,EAAE,CAAC;QACT,qBAAqB,EAAE,KAAK;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,IAAA,gBAAQ,EAA0C,EAAE,CAAC,CAAC;IAE5G,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,CAAC,GAAW,EAAE,KAAuC,EAAE,EAAE;QACjG,MAAM,eAAe,GAA4B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACtG,sBAAsB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,CAAC,GAAG,CAAC,EAAE,eAAe,IAAG,CAAC,CAAC;IAC1E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,uBAAC,iDAAgB,cACf,uBAAC,6BAAa,IAAC,kBAAkB,EAAE,kBAAkB,YACnD,uBAAC,iCAAyB,CAAC,QAAQ,IACjC,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAE1G,QAAQ,GAC0B,GACvB,GACC,CACpB,CAAC;AACJ,CAAC,CAAC;AA9BW,QAAA,0BAA0B,8BA8BrC;AAEW,QAAA,yBAAyB,GAAG,IAAA,qBAAa,EAAC;IACrD,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE;IACvD,aAAa,EAAE,CAAC,KAGf,EAAE,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,GAAG,CAAC;IACtC,mBAAmB,EAAE,EAA6C;IAClE,qBAAqB,EAAE,CAAC,IAAY,EAAE,MAAwC,EAAE,EAAE,GAAG,CAAC;CACvF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { BaseStepType, Onboarding, OnboardingMetadata, OnboardingStudioClientOptions, } from "@rocapine/react-native-onboarding";
|
|
1
|
+
export type { BaseStepType, Onboarding, OnboardingMetadata, OnboardingStudioClientOptions, CustomActionHandler, CustomActions, ButtonAction, CustomButtonAction, ComposableVariableEntry, } from "@rocapine/react-native-onboarding";
|
|
2
2
|
export { OnboardingPage } from "./UI/OnboardingPage";
|
|
3
3
|
export * from "./UI/Pages";
|
|
4
4
|
export * from "./UI/Templates";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,YAAY,CAAC;AAG3B,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAGjH,cAAc,YAAY,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAaA,2BAA2B;AAC3B,sDAAqD;AAA5C,gHAAA,cAAc,OAAA;AAEvB,+BAA+B;AAC/B,6CAA2B;AAE3B,kCAAkC;AAClC,iDAA+B;AAC/B,kDAAgC;AAEhC,eAAe;AACf,6CAA2B;AAE3B,iBAAiB;AACjB,qDAAmC;AAEnC,WAAW;AACX,uFAAiH;AAAxG,wIAAA,0BAA0B,OAAA;AAAE,uIAAA,yBAAyB,OAAA;AAE9D,oBAAoB;AACpB,6CAA2B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocapine/react-native-onboarding-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.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",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@react-native-community/datetimepicker": "*",
|
|
48
48
|
"@react-native-picker/picker": "*",
|
|
49
|
-
"@rocapine/react-native-onboarding": "^1.
|
|
49
|
+
"@rocapine/react-native-onboarding": "^1.16.0",
|
|
50
50
|
"@shopify/react-native-skia": ">=1.0.0",
|
|
51
51
|
"@tanstack/react-query": ">=5.0.0",
|
|
52
52
|
"@types/react": "*",
|
|
@@ -19,7 +19,7 @@ const ComposableScreenRendererBase = ({ step, onContinue }: ContentProps) => {
|
|
|
19
19
|
const validatedData = useMemo(() => ComposableScreenStepTypeSchema.parse(step), [step]);
|
|
20
20
|
const { elements } = validatedData.payload;
|
|
21
21
|
const { composableVariables, setComposableVariable } = useContext(OnboardingProgressContext);
|
|
22
|
-
const { setVariable: setHeadlessVariable } = useContext(HeadlessProgressContext);
|
|
22
|
+
const { setVariable: setHeadlessVariable, customActions } = useContext(HeadlessProgressContext);
|
|
23
23
|
|
|
24
24
|
const setVariableAndSync = useCallback(
|
|
25
25
|
(key: string, entry: ComposableVariableEntry) => {
|
|
@@ -37,6 +37,7 @@ const ComposableScreenRendererBase = ({ step, onContinue }: ContentProps) => {
|
|
|
37
37
|
variables: composableVariables,
|
|
38
38
|
setVariable: setVariableAndSync,
|
|
39
39
|
onContinue,
|
|
40
|
+
customActions,
|
|
40
41
|
renderChildren,
|
|
41
42
|
};
|
|
42
43
|
|
|
@@ -5,9 +5,35 @@ import { BaseBoxProps, BaseBoxPropsSchema } from "./BaseBoxProps";
|
|
|
5
5
|
import { UIElement } from "../types";
|
|
6
6
|
import { RenderContext, dim } from "./shared";
|
|
7
7
|
import { GradientBox } from "./GradientBox";
|
|
8
|
+
import { ComposableVariableEntry } from "../../../Provider/OnboardingProgressProvider";
|
|
9
|
+
|
|
10
|
+
export type CustomButtonAction = {
|
|
11
|
+
type: "custom";
|
|
12
|
+
function: string;
|
|
13
|
+
variables?: string[];
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export const CustomButtonActionSchema = z.object({
|
|
17
|
+
type: z.literal("custom"),
|
|
18
|
+
function: z.string().min(1, "function must not be empty"),
|
|
19
|
+
variables: z.array(z.string()).optional(),
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export type ButtonAction = "continue" | CustomButtonAction;
|
|
23
|
+
|
|
24
|
+
export const ButtonActionSchema = z.union([
|
|
25
|
+
z.literal("continue"),
|
|
26
|
+
CustomButtonActionSchema,
|
|
27
|
+
]);
|
|
8
28
|
|
|
9
29
|
export type ButtonElementProps = BaseBoxProps & {
|
|
10
30
|
label: string;
|
|
31
|
+
/**
|
|
32
|
+
* Ordered list of actions to run on press. Sequential, await async handlers,
|
|
33
|
+
* abort on error, `"continue"` is terminal.
|
|
34
|
+
*/
|
|
35
|
+
actions?: ButtonAction[];
|
|
36
|
+
/** @deprecated Use `actions` instead. */
|
|
11
37
|
action?: "continue";
|
|
12
38
|
variant?: "filled" | "outlined" | "ghost";
|
|
13
39
|
backgroundColor?: string;
|
|
@@ -20,6 +46,7 @@ export type ButtonElementProps = BaseBoxProps & {
|
|
|
20
46
|
|
|
21
47
|
export const ButtonElementPropsSchema = BaseBoxPropsSchema.extend({
|
|
22
48
|
label: z.string().min(1, "label must not be empty"),
|
|
49
|
+
actions: z.array(ButtonActionSchema).optional(),
|
|
23
50
|
action: z.enum(["continue"]).optional(),
|
|
24
51
|
variant: z.enum(["filled", "outlined", "ghost"]).optional(),
|
|
25
52
|
backgroundColor: z.string().optional(),
|
|
@@ -38,13 +65,37 @@ type Props = {
|
|
|
38
65
|
};
|
|
39
66
|
|
|
40
67
|
export const ButtonElementComponent = ({ element, ctx }: Props): React.ReactElement => {
|
|
41
|
-
const { theme, onContinue } = ctx;
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
68
|
+
const { theme, onContinue, customActions, variables } = ctx;
|
|
69
|
+
const handlePress = async () => {
|
|
70
|
+
const { actions, action } = element.props;
|
|
71
|
+
const effective: ButtonAction[] =
|
|
72
|
+
actions ?? (action === "continue" ? ["continue"] : []);
|
|
73
|
+
|
|
74
|
+
for (const act of effective) {
|
|
75
|
+
if (act === "continue") {
|
|
76
|
+
onContinue();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const handler = customActions[act.function];
|
|
80
|
+
if (!handler) {
|
|
81
|
+
console.warn(
|
|
82
|
+
`[ComposableScreen] No customAction registered for "${act.function}"`
|
|
83
|
+
);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const requested = act.variables ?? [];
|
|
87
|
+
const vars: Record<string, ComposableVariableEntry | undefined> = {};
|
|
88
|
+
for (const name of requested) vars[name] = variables[name];
|
|
89
|
+
try {
|
|
90
|
+
await handler({ variables: vars });
|
|
91
|
+
} catch (err) {
|
|
92
|
+
console.error(
|
|
93
|
+
`[ComposableScreen] customAction "${act.function}" threw:`,
|
|
94
|
+
err
|
|
95
|
+
);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
46
98
|
}
|
|
47
|
-
// other action values are no-ops
|
|
48
99
|
};
|
|
49
100
|
const variant = element.props.variant ?? "filled";
|
|
50
101
|
const isFilled = variant === "filled";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { CustomActions } from "@rocapine/react-native-onboarding";
|
|
2
3
|
import { UIElement } from "../types";
|
|
3
4
|
import { Theme } from "../../../Theme/types";
|
|
4
5
|
import { ComposableVariableEntry } from "../../../Provider/OnboardingProgressProvider";
|
|
@@ -8,6 +9,7 @@ export type RenderContext = {
|
|
|
8
9
|
variables: Record<string, ComposableVariableEntry>;
|
|
9
10
|
setVariable: (key: string, entry: ComposableVariableEntry) => void;
|
|
10
11
|
onContinue: () => void;
|
|
12
|
+
customActions: CustomActions;
|
|
11
13
|
renderChildren: (elements: UIElement[], parentType: "XStack" | "YStack" | "ZStack") => React.ReactNode;
|
|
12
14
|
};
|
|
13
15
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createContext, useState, useCallback } from "react";
|
|
2
2
|
import { SafeAreaProvider } from "react-native-safe-area-context";
|
|
3
|
+
import type { ComposableVariableEntry } from "@rocapine/react-native-onboarding";
|
|
3
4
|
import { ThemeProvider } from "../Theme/ThemeProvider";
|
|
4
5
|
import { ColorScheme } from "../Theme/types";
|
|
5
6
|
|
|
7
|
+
export type { ComposableVariableEntry };
|
|
8
|
+
|
|
6
9
|
export const OnboardingProgressProvider = ({
|
|
7
10
|
children,
|
|
8
11
|
initialColorScheme = "light",
|
|
@@ -35,8 +38,6 @@ export const OnboardingProgressProvider = ({
|
|
|
35
38
|
);
|
|
36
39
|
};
|
|
37
40
|
|
|
38
|
-
export type ComposableVariableEntry = { value: string; label?: string };
|
|
39
|
-
|
|
40
41
|
export const OnboardingProgressContext = createContext({
|
|
41
42
|
activeStep: { number: 0, displayProgressHeader: false },
|
|
42
43
|
setActiveStep: (_step: {
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,11 @@ export type {
|
|
|
4
4
|
Onboarding,
|
|
5
5
|
OnboardingMetadata,
|
|
6
6
|
OnboardingStudioClientOptions,
|
|
7
|
+
CustomActionHandler,
|
|
8
|
+
CustomActions,
|
|
9
|
+
ButtonAction,
|
|
10
|
+
CustomButtonAction,
|
|
11
|
+
ComposableVariableEntry,
|
|
7
12
|
} from "@rocapine/react-native-onboarding";
|
|
8
13
|
|
|
9
14
|
// UI Components and Router
|