@rocapine/react-native-onboarding-ui 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/UI/Pages/ComposableScreen/elements/BaseBoxProps.d.ts +9 -0
  2. package/dist/UI/Pages/ComposableScreen/elements/BaseBoxProps.d.ts.map +1 -1
  3. package/dist/UI/Pages/ComposableScreen/elements/BaseBoxProps.js +1 -0
  4. package/dist/UI/Pages/ComposableScreen/elements/BaseBoxProps.js.map +1 -1
  5. package/dist/UI/Pages/ComposableScreen/elements/CheckboxGroupElement.d.ts +86 -0
  6. package/dist/UI/Pages/ComposableScreen/elements/CheckboxGroupElement.d.ts.map +1 -0
  7. package/dist/UI/Pages/ComposableScreen/elements/CheckboxGroupElement.js +143 -0
  8. package/dist/UI/Pages/ComposableScreen/elements/CheckboxGroupElement.js.map +1 -0
  9. package/dist/UI/Pages/ComposableScreen/elements/IconElement.d.ts +8 -0
  10. package/dist/UI/Pages/ComposableScreen/elements/IconElement.d.ts.map +1 -1
  11. package/dist/UI/Pages/ComposableScreen/elements/ImageElement.d.ts +8 -0
  12. package/dist/UI/Pages/ComposableScreen/elements/ImageElement.d.ts.map +1 -1
  13. package/dist/UI/Pages/ComposableScreen/elements/InputElement.d.ts +8 -0
  14. package/dist/UI/Pages/ComposableScreen/elements/InputElement.d.ts.map +1 -1
  15. package/dist/UI/Pages/ComposableScreen/elements/InputElement.js +14 -16
  16. package/dist/UI/Pages/ComposableScreen/elements/InputElement.js.map +1 -1
  17. package/dist/UI/Pages/ComposableScreen/elements/LottieElement.d.ts +8 -0
  18. package/dist/UI/Pages/ComposableScreen/elements/LottieElement.d.ts.map +1 -1
  19. package/dist/UI/Pages/ComposableScreen/elements/RadioGroupElement.d.ts +8 -0
  20. package/dist/UI/Pages/ComposableScreen/elements/RadioGroupElement.d.ts.map +1 -1
  21. package/dist/UI/Pages/ComposableScreen/elements/RadioGroupElement.js +2 -1
  22. package/dist/UI/Pages/ComposableScreen/elements/RadioGroupElement.js.map +1 -1
  23. package/dist/UI/Pages/ComposableScreen/elements/RiveElement.d.ts +8 -0
  24. package/dist/UI/Pages/ComposableScreen/elements/RiveElement.d.ts.map +1 -1
  25. package/dist/UI/Pages/ComposableScreen/elements/StackElement.d.ts +9 -0
  26. package/dist/UI/Pages/ComposableScreen/elements/StackElement.d.ts.map +1 -1
  27. package/dist/UI/Pages/ComposableScreen/elements/StackElement.js +3 -1
  28. package/dist/UI/Pages/ComposableScreen/elements/StackElement.js.map +1 -1
  29. package/dist/UI/Pages/ComposableScreen/elements/VideoElement.d.ts +8 -0
  30. package/dist/UI/Pages/ComposableScreen/elements/VideoElement.d.ts.map +1 -1
  31. package/dist/UI/Pages/ComposableScreen/elements/renderElement.d.ts.map +1 -1
  32. package/dist/UI/Pages/ComposableScreen/elements/renderElement.js +4 -0
  33. package/dist/UI/Pages/ComposableScreen/elements/renderElement.js.map +1 -1
  34. package/dist/UI/Pages/ComposableScreen/types.d.ts +7 -0
  35. package/dist/UI/Pages/ComposableScreen/types.d.ts.map +1 -1
  36. package/dist/UI/Pages/ComposableScreen/types.js +7 -0
  37. package/dist/UI/Pages/ComposableScreen/types.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/UI/Pages/ComposableScreen/elements/BaseBoxProps.ts +2 -0
  40. package/src/UI/Pages/ComposableScreen/elements/CheckboxGroupElement.tsx +200 -0
  41. package/src/UI/Pages/ComposableScreen/elements/InputElement.tsx +26 -32
  42. package/src/UI/Pages/ComposableScreen/elements/RadioGroupElement.tsx +2 -1
  43. package/src/UI/Pages/ComposableScreen/elements/StackElement.tsx +4 -1
  44. package/src/UI/Pages/ComposableScreen/elements/renderElement.tsx +5 -0
  45. package/src/UI/Pages/ComposableScreen/types.ts +14 -0
@@ -20,6 +20,7 @@ exports.StackElementPropsSchema = zod_1.z.object({
20
20
  minHeight: zod_1.z.number().optional(),
21
21
  maxHeight: zod_1.z.number().optional(),
22
22
  alignItems: zod_1.z.enum(["flex-start", "center", "flex-end", "stretch"]).optional(),
23
+ alignSelf: zod_1.z.enum(["auto", "flex-start", "flex-end", "center", "stretch", "baseline"]).optional(),
23
24
  justifyContent: zod_1.z.enum(["flex-start", "center", "flex-end", "space-between", "space-around"]).optional(),
24
25
  backgroundColor: zod_1.z.string().optional(),
25
26
  flexWrap: zod_1.z.enum(["wrap", "nowrap"]).optional(),
@@ -34,6 +35,8 @@ const StackElementComponent = ({ element, ctx, parentType }) => {
34
35
  var _a;
35
36
  return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: {
36
37
  flexDirection: element.type === "XStack" ? "row" : "column",
38
+ alignSelf: element.props.alignSelf,
39
+ alignItems: element.props.alignItems,
37
40
  gap: element.props.gap,
38
41
  padding: element.props.padding,
39
42
  paddingHorizontal: element.props.paddingHorizontal,
@@ -50,7 +53,6 @@ const StackElementComponent = ({ element, ctx, parentType }) => {
50
53
  maxHeight: element.props.maxHeight,
51
54
  flexShrink: (_a = element.props.flexShrink) !== null && _a !== void 0 ? _a : (parentType === "XStack" ? 1 : undefined),
52
55
  flexWrap: element.props.flexWrap,
53
- alignItems: element.props.alignItems,
54
56
  justifyContent: element.props.justifyContent,
55
57
  backgroundColor: element.props.backgroundColor,
56
58
  borderWidth: element.props.borderWidth,
@@ -1 +1 @@
1
- {"version":3,"file":"StackElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/StackElement.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StackElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/StackElement.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,14 @@ export type VideoElementProps = BaseBoxProps & {
13
13
  export declare const VideoElementPropsSchema: z.ZodObject<{
14
14
  width: z.ZodOptional<z.ZodNumber>;
15
15
  height: z.ZodOptional<z.ZodNumber>;
16
+ alignSelf: z.ZodOptional<z.ZodEnum<{
17
+ auto: "auto";
18
+ center: "center";
19
+ "flex-start": "flex-start";
20
+ "flex-end": "flex-end";
21
+ stretch: "stretch";
22
+ baseline: "baseline";
23
+ }>>;
16
24
  opacity: z.ZodOptional<z.ZodNumber>;
17
25
  margin: z.ZodOptional<z.ZodNumber>;
18
26
  marginHorizontal: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/VideoElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,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,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;iBAMlC,CAAC;AAEH,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAmC5D,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,aAAa,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,kBAAkB,KAAK,KAAG,KAAK,CAAC,YAiCpE,CAAC"}
1
+ {"version":3,"file":"VideoElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/VideoElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,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,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMlC,CAAC;AAEH,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAmC5D,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,aAAa,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,kBAAkB,KAAK,KAAG,KAAK,CAAC,YAiCpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/renderElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAYzC,eAAO,MAAM,aAAa,GACxB,SAAS,SAAS,EAClB,KAAK,aAAa,EAClB,aAAa,QAAQ,GAAG,QAAQ,KAC/B,KAAK,CAAC,SA0CR,CAAC"}
1
+ {"version":3,"file":"renderElement.d.ts","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/renderElement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAazC,eAAO,MAAM,aAAa,GACxB,SAAS,SAAS,EAClB,KAAK,aAAa,EAClB,aAAa,QAAQ,GAAG,QAAQ,KAC/B,KAAK,CAAC,SA8CR,CAAC"}
@@ -11,6 +11,7 @@ const IconElement_1 = require("./IconElement");
11
11
  const VideoElement_1 = require("./VideoElement");
12
12
  const InputElement_1 = require("./InputElement");
13
13
  const RadioGroupElement_1 = require("./RadioGroupElement");
14
+ const CheckboxGroupElement_1 = require("./CheckboxGroupElement");
14
15
  const ButtonElement_1 = require("./ButtonElement");
15
16
  const renderElement = (element, ctx, parentType) => {
16
17
  if (element.type === "YStack" || element.type === "XStack") {
@@ -40,6 +41,9 @@ const renderElement = (element, ctx, parentType) => {
40
41
  if (element.type === "RadioGroup") {
41
42
  return (0, jsx_runtime_1.jsx)(RadioGroupElement_1.RadioGroupComponent, { element: element, ctx: ctx }, element.id);
42
43
  }
44
+ if (element.type === "CheckboxGroup") {
45
+ return (0, jsx_runtime_1.jsx)(CheckboxGroupElement_1.CheckboxGroupComponent, { element: element, ctx: ctx }, element.id);
46
+ }
43
47
  if (element.type === "Button") {
44
48
  return (0, jsx_runtime_1.jsx)(ButtonElement_1.ButtonElementComponent, { element: element, ctx: ctx }, element.id);
45
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renderElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/renderElement.tsx"],"names":[],"mappings":";;;;AAGA,iDAAuD;AACvD,+CAAqD;AACrD,iDAAuD;AACvD,mDAAyD;AACzD,+CAAoD;AACpD,+CAAqD;AACrD,iDAAsD;AACtD,iDAAuD;AACvD,2DAA0D;AAC1D,mDAAyD;AAElD,MAAM,aAAa,GAAG,CAC3B,OAAkB,EAClB,GAAkB,EAClB,UAAgC,EACf,EAAE;IACnB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,uBAAC,oCAAqB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,IAA9D,OAAO,CAAC,EAAE,CAAwD,CAAC;IACxG,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,uBAAC,kCAAoB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,IAA9D,OAAO,CAAC,EAAE,CAAwD,CAAC;IACvG,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,uBAAC,oCAAqB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,uBAAC,sCAAsB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IACjF,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,uBAAC,iCAAmB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,uBAAC,kCAAoB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,uBAAC,mCAAoB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,uBAAC,oCAAqB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,uBAAC,uCAAmB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,uBAAC,sCAAsB,IAAkB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAtC,OAAO,CAAC,EAAE,CAAgC,CAAC;IACjF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA9CW,QAAA,aAAa,iBA8CxB"}
1
+ {"version":3,"file":"renderElement.js","sourceRoot":"","sources":["../../../../../src/UI/Pages/ComposableScreen/elements/renderElement.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { type VideoElementProps } from "./elements/VideoElement";
9
9
  import { type InputElementProps } from "./elements/InputElement";
10
10
  import { type ButtonElementProps } from "./elements/ButtonElement";
11
11
  import { type RadioGroupElementProps } from "./elements/RadioGroupElement";
12
+ import { type CheckboxGroupElementProps } from "./elements/CheckboxGroupElement";
12
13
  export type { BaseBoxProps } from "./elements/BaseBoxProps";
13
14
  export { BaseBoxPropsSchema } from "./elements/BaseBoxProps";
14
15
  export type { StackElementProps } from "./elements/StackElement";
@@ -21,6 +22,7 @@ export type { VideoElementProps } from "./elements/VideoElement";
21
22
  export type { InputElementProps } from "./elements/InputElement";
22
23
  export type { ButtonElementProps } from "./elements/ButtonElement";
23
24
  export type { RadioGroupElementProps } from "./elements/RadioGroupElement";
25
+ export type { CheckboxGroupElementProps } from "./elements/CheckboxGroupElement";
24
26
  export type UIElement = {
25
27
  id: string;
26
28
  name?: string;
@@ -72,6 +74,11 @@ export type UIElement = {
72
74
  name?: string;
73
75
  type: "RadioGroup";
74
76
  props: RadioGroupElementProps;
77
+ } | {
78
+ id: string;
79
+ name?: string;
80
+ type: "CheckboxGroup";
81
+ props: CheckboxGroupElementProps;
75
82
  };
76
83
  export declare const UIElementSchema: z.ZodType<UIElement>;
77
84
  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":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/UI/Pages/ComposableScreen/types.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const VideoElement_1 = require("./elements/VideoElement");
13
13
  const InputElement_1 = require("./elements/InputElement");
14
14
  const ButtonElement_1 = require("./elements/ButtonElement");
15
15
  const RadioGroupElement_1 = require("./elements/RadioGroupElement");
16
+ const CheckboxGroupElement_1 = require("./elements/CheckboxGroupElement");
16
17
  var BaseBoxProps_1 = require("./elements/BaseBoxProps");
17
18
  Object.defineProperty(exports, "BaseBoxPropsSchema", { enumerable: true, get: function () { return BaseBoxProps_1.BaseBoxPropsSchema; } });
18
19
  exports.UIElementSchema = zod_1.z.lazy(() => zod_1.z.union([
@@ -77,6 +78,12 @@ exports.UIElementSchema = zod_1.z.lazy(() => zod_1.z.union([
77
78
  type: zod_1.z.literal("RadioGroup"),
78
79
  props: RadioGroupElement_1.RadioGroupElementPropsSchema,
79
80
  }),
81
+ zod_1.z.object({
82
+ id: zod_1.z.string(),
83
+ name: zod_1.z.string().optional(),
84
+ type: zod_1.z.literal("CheckboxGroup"),
85
+ props: CheckboxGroupElement_1.CheckboxGroupElementPropsSchema,
86
+ }),
80
87
  ]));
81
88
  exports.ComposableScreenStepPayloadSchema = zod_1.z.object({
82
89
  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":"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"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocapine/react-native-onboarding-ui",
3
- "version": "1.8.0",
3
+ "version": "1.9.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",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@react-native-picker/picker": "*",
46
- "@rocapine/react-native-onboarding": "^1.8.0",
46
+ "@rocapine/react-native-onboarding": "^1.9.0",
47
47
  "@shopify/react-native-skia": ">=1.0.0",
48
48
  "@tanstack/react-query": ">=5.0.0",
49
49
  "@types/react": "*",
@@ -3,6 +3,7 @@ import { z } from "zod";
3
3
  export type BaseBoxProps = {
4
4
  width?: number;
5
5
  height?: number;
6
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
6
7
  opacity?: number;
7
8
  margin?: number;
8
9
  marginHorizontal?: number;
@@ -18,6 +19,7 @@ export type BaseBoxProps = {
18
19
  export const BaseBoxPropsSchema = z.object({
19
20
  width: z.number().min(0).optional(),
20
21
  height: z.number().min(0).optional(),
22
+ alignSelf: z.enum(["auto", "flex-start", "flex-end", "center", "stretch", "baseline"]).optional(),
21
23
  opacity: z.number().min(0).max(1).optional(),
22
24
  margin: z.number().optional(),
23
25
  marginHorizontal: z.number().optional(),
@@ -0,0 +1,200 @@
1
+ import React, { useEffect } from "react";
2
+ import { z } from "zod";
3
+ import { View, Text, TouchableOpacity } from "react-native";
4
+ import { BaseBoxProps, BaseBoxPropsSchema } from "./BaseBoxProps";
5
+ import type { UIElement } from "../types";
6
+ import type { RenderContext } from "./shared";
7
+
8
+ export type CheckboxGroupElementProps = BaseBoxProps & {
9
+ variableName?: string;
10
+ defaultValues?: string[];
11
+ gap?: number;
12
+ direction?: "vertical" | "horizontal";
13
+ items: Array<{ label: string; value: string }>;
14
+ itemBackgroundColor?: string;
15
+ itemSelectedBackgroundColor?: string;
16
+ itemBorderColor?: string;
17
+ itemSelectedBorderColor?: string;
18
+ itemBorderRadius?: number;
19
+ itemBorderWidth?: number;
20
+ itemColor?: string;
21
+ itemSelectedColor?: string;
22
+ itemFontSize?: number;
23
+ itemFontWeight?: string;
24
+ itemFontFamily?: string;
25
+ itemPadding?: number;
26
+ itemPaddingHorizontal?: number;
27
+ itemPaddingVertical?: number;
28
+ };
29
+
30
+ export const CheckboxGroupElementPropsSchema = BaseBoxPropsSchema.extend({
31
+ variableName: z.string().optional(),
32
+ defaultValues: z.array(z.string()).optional(),
33
+ gap: z.number().optional(),
34
+ direction: z.enum(["vertical", "horizontal"]).optional(),
35
+ items: z.array(z.object({ label: z.string().trim().min(1, "item label must not be empty"), value: z.string().trim().min(1, "item value must not be empty") })).min(1, "items must not be empty"),
36
+ itemBackgroundColor: z.string().optional(),
37
+ itemSelectedBackgroundColor: z.string().optional(),
38
+ itemBorderColor: z.string().optional(),
39
+ itemSelectedBorderColor: z.string().optional(),
40
+ itemBorderRadius: z.number().optional(),
41
+ itemBorderWidth: z.number().optional(),
42
+ itemColor: z.string().optional(),
43
+ itemSelectedColor: z.string().optional(),
44
+ itemFontSize: z.number().optional(),
45
+ itemFontWeight: z.string().optional(),
46
+ itemFontFamily: z.string().optional(),
47
+ itemPadding: z.number().optional(),
48
+ itemPaddingHorizontal: z.number().optional(),
49
+ itemPaddingVertical: z.number().optional(),
50
+ }).superRefine((data, ctx) => {
51
+ const values = data.items.map((i) => i.value);
52
+ const unique = new Set(values);
53
+ if (unique.size !== values.length) {
54
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "item values must be unique", path: ["items"] });
55
+ }
56
+ if (data.defaultValues !== undefined) {
57
+ data.defaultValues.forEach((dv, i) => {
58
+ if (!unique.has(dv)) {
59
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `defaultValues entry "${dv}" must match one of the item values`, path: ["defaultValues", i] });
60
+ }
61
+ });
62
+ }
63
+ });
64
+
65
+ type CheckboxGroupUIElement = Extract<UIElement, { type: "CheckboxGroup" }>;
66
+
67
+ type Props = {
68
+ element: CheckboxGroupUIElement;
69
+ ctx: RenderContext;
70
+ };
71
+
72
+ export const CheckboxGroupComponent = ({ element, ctx }: Props): React.ReactElement => {
73
+ const { theme, variables, setVariable } = ctx;
74
+ // The variable stores a JSON-serialised string[] to stay compatible with the string-based variable system.
75
+ const rawValue = element.props.variableName ? variables[element.props.variableName]?.value : undefined;
76
+ const selectedValues: string[] | undefined = (() => {
77
+ if (typeof rawValue !== "string") return undefined;
78
+ try { return JSON.parse(rawValue) as string[]; } catch { return undefined; }
79
+ })();
80
+
81
+ useEffect(() => {
82
+ if (element.props.variableName && element.props.defaultValues && selectedValues === undefined) {
83
+ const defaultLabels = element.props.defaultValues.map((dv) => element.props.items.find((i) => i.value === dv)?.label ?? dv);
84
+ setVariable(element.props.variableName, {
85
+ value: JSON.stringify(element.props.defaultValues),
86
+ label: defaultLabels.join(", "),
87
+ });
88
+ }
89
+ }, [element.props.variableName, element.props.defaultValues, element.props.items, selectedValues]);
90
+
91
+ const handleToggle = (value: string, label: string) => {
92
+ if (!element.props.variableName) return;
93
+ const current: string[] = selectedValues ?? [];
94
+ const next = current.includes(value) ? current.filter((v) => v !== value) : [...current, value];
95
+ const nextLabels = next.map((v) => element.props.items.find((i) => i.value === v)?.label ?? v);
96
+ setVariable(element.props.variableName, {
97
+ value: JSON.stringify(next),
98
+ label: nextLabels.join(", "),
99
+ });
100
+ };
101
+
102
+ const isHorizontal = element.props.direction === "horizontal";
103
+
104
+ return (
105
+ <View
106
+ accessibilityRole="list"
107
+ style={{
108
+ flexDirection: isHorizontal ? "row" : "column",
109
+ flexWrap: isHorizontal ? "wrap" : undefined,
110
+ alignSelf: element.props.alignSelf,
111
+ gap: element.props.gap ?? 8,
112
+ width: element.props.width,
113
+ height: element.props.height,
114
+ margin: element.props.margin,
115
+ marginHorizontal: element.props.marginHorizontal,
116
+ marginVertical: element.props.marginVertical,
117
+ padding: element.props.padding,
118
+ paddingHorizontal: element.props.paddingHorizontal,
119
+ paddingVertical: element.props.paddingVertical,
120
+ borderWidth: element.props.borderWidth,
121
+ borderRadius: element.props.borderRadius,
122
+ borderColor: element.props.borderColor,
123
+ opacity: element.props.opacity,
124
+ }}
125
+ >
126
+ {element.props.items.map((item) => {
127
+ const isSelected = (selectedValues ?? []).includes(item.value);
128
+ const bgColor = isSelected
129
+ ? (element.props.itemSelectedBackgroundColor ?? (theme.colors.primary.startsWith("#") ? theme.colors.primary + "1A" : theme.colors.primary))
130
+ : (element.props.itemBackgroundColor ?? "transparent");
131
+ const textColor = isSelected
132
+ ? (element.props.itemSelectedColor ?? theme.colors.primary)
133
+ : (element.props.itemColor ?? theme.colors.text.primary);
134
+ const borderColor = isSelected
135
+ ? (element.props.itemSelectedBorderColor ?? theme.colors.primary)
136
+ : (element.props.itemBorderColor ?? theme.colors.neutral.low);
137
+
138
+ return (
139
+ <TouchableOpacity
140
+ key={item.value}
141
+ activeOpacity={0.7}
142
+ onPress={() => handleToggle(item.value, item.label)}
143
+ accessibilityRole="checkbox"
144
+ accessibilityState={{ checked: isSelected }}
145
+ accessibilityLabel={item.label}
146
+ style={{
147
+ flexDirection: "row",
148
+ alignItems: "center",
149
+ gap: 12,
150
+ backgroundColor: bgColor,
151
+ borderRadius: element.props.itemBorderRadius ?? 8,
152
+ borderWidth: element.props.itemBorderWidth ?? 1,
153
+ borderColor: borderColor,
154
+ padding: element.props.itemPadding ?? (element.props.itemPaddingHorizontal === undefined && element.props.itemPaddingVertical === undefined ? 12 : undefined),
155
+ paddingHorizontal: element.props.itemPaddingHorizontal,
156
+ paddingVertical: element.props.itemPaddingVertical,
157
+ }}
158
+ >
159
+ <View
160
+ style={{
161
+ width: 20,
162
+ height: 20,
163
+ borderRadius: 4,
164
+ borderWidth: 2,
165
+ borderColor: isSelected ? theme.colors.primary : theme.colors.neutral.medium,
166
+ alignItems: "center",
167
+ justifyContent: "center",
168
+ backgroundColor: isSelected ? theme.colors.primary : "transparent",
169
+ }}
170
+ >
171
+ {isSelected && (
172
+ <Text
173
+ style={{
174
+ color: "#fff",
175
+ fontSize: 12,
176
+ fontWeight: "700",
177
+ lineHeight: 14,
178
+ }}
179
+ >
180
+
181
+ </Text>
182
+ )}
183
+ </View>
184
+ <Text
185
+ style={{
186
+ flexShrink: 1,
187
+ color: textColor,
188
+ fontSize: element.props.itemFontSize ?? theme.typography.textStyles.body.fontSize,
189
+ fontWeight: (element.props.itemFontWeight as any) ?? theme.typography.textStyles.body.fontWeight,
190
+ fontFamily: element.props.itemFontFamily,
191
+ }}
192
+ >
193
+ {item.label}
194
+ </Text>
195
+ </TouchableOpacity>
196
+ );
197
+ })}
198
+ </View>
199
+ );
200
+ };
@@ -71,45 +71,39 @@ export const InputElementComponent = ({ element, ctx }: Props): React.ReactEleme
71
71
  };
72
72
 
73
73
  return (
74
- <View
74
+ <TextInput
75
+ value={value}
76
+ onChangeText={handleChange}
77
+ placeholder={element.props.placeholder}
78
+ placeholderTextColor={element.props.placeholderColor ?? theme.colors.text.tertiary}
79
+ keyboardType={element.props.keyboardType ?? "default"}
80
+ returnKeyType={element.props.returnKeyType ?? "done"}
81
+ autoCapitalize={element.props.autoCapitalize ?? "sentences"}
82
+ secureTextEntry={element.props.secureTextEntry ?? false}
83
+ maxLength={element.props.maxLength}
84
+ multiline={element.props.multiline ?? false}
85
+ numberOfLines={element.props.numberOfLines}
86
+ editable={element.props.editable ?? true}
75
87
  style={{
76
- backgroundColor: element.props.backgroundColor ?? theme.colors.neutral.lowest,
77
- borderWidth: element.props.borderWidth ?? 1,
78
- borderRadius: element.props.borderRadius ?? 8,
79
- borderColor: element.props.borderColor ?? theme.colors.neutral.low,
88
+ alignSelf: element.props.alignSelf,
80
89
  width: element.props.width,
81
90
  height: element.props.height,
82
91
  opacity: element.props.opacity,
83
92
  margin: element.props.margin,
84
93
  marginHorizontal: element.props.marginHorizontal,
85
94
  marginVertical: element.props.marginVertical,
86
- overflow: "hidden",
95
+ backgroundColor: element.props.backgroundColor ?? theme.colors.neutral.lowest,
96
+ borderWidth: element.props.borderWidth ?? 1,
97
+ borderRadius: element.props.borderRadius ?? 8,
98
+ borderColor: element.props.borderColor ?? theme.colors.neutral.low,
99
+ color: element.props.color ?? theme.colors.text.primary,
100
+ fontSize: element.props.fontSize ?? theme.typography.textStyles.body.fontSize,
101
+ fontWeight: element.props.fontWeight as any,
102
+ textAlign: element.props.textAlign,
103
+ padding: element.props.padding ?? 12,
104
+ paddingHorizontal: element.props.paddingHorizontal,
105
+ paddingVertical: element.props.paddingVertical,
87
106
  }}
88
- >
89
- <TextInput
90
- value={value}
91
- onChangeText={handleChange}
92
- placeholder={element.props.placeholder}
93
- placeholderTextColor={element.props.placeholderColor ?? theme.colors.text.tertiary}
94
- keyboardType={element.props.keyboardType ?? "default"}
95
- returnKeyType={element.props.returnKeyType ?? "done"}
96
- autoCapitalize={element.props.autoCapitalize ?? "sentences"}
97
- secureTextEntry={element.props.secureTextEntry ?? false}
98
- maxLength={element.props.maxLength}
99
- multiline={element.props.multiline ?? false}
100
- numberOfLines={element.props.numberOfLines}
101
- editable={element.props.editable ?? true}
102
- style={{
103
- flex: 1,
104
- color: element.props.color ?? theme.colors.text.primary,
105
- fontSize: element.props.fontSize ?? theme.typography.textStyles.body.fontSize,
106
- fontWeight: element.props.fontWeight as any,
107
- textAlign: element.props.textAlign,
108
- padding: element.props.padding ?? 12,
109
- paddingHorizontal: element.props.paddingHorizontal,
110
- paddingVertical: element.props.paddingVertical,
111
- }}
112
- />
113
- </View>
107
+ />
114
108
  );
115
109
  };
@@ -90,6 +90,7 @@ export const RadioGroupComponent = ({ element, ctx }: Props): React.ReactElement
90
90
  style={{
91
91
  flexDirection: isHorizontal ? "row" : "column",
92
92
  flexWrap: isHorizontal ? "wrap" : undefined,
93
+ alignSelf: element.props.alignSelf,
93
94
  gap: element.props.gap ?? 8,
94
95
  width: element.props.width,
95
96
  height: element.props.height,
@@ -164,7 +165,7 @@ export const RadioGroupComponent = ({ element, ctx }: Props): React.ReactElement
164
165
  </View>
165
166
  <Text
166
167
  style={{
167
- flex: 1,
168
+ flexShrink: 1,
168
169
  color: textColor,
169
170
  fontSize: element.props.itemFontSize ?? theme.typography.textStyles.body.fontSize,
170
171
  fontWeight: (element.props.itemFontWeight as any) ?? theme.typography.textStyles.body.fontWeight,
@@ -20,6 +20,7 @@ export type StackElementProps = {
20
20
  minHeight?: number;
21
21
  maxHeight?: number;
22
22
  alignItems?: "flex-start" | "center" | "flex-end" | "stretch";
23
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
23
24
  justifyContent?: "flex-start" | "center" | "flex-end" | "space-between" | "space-around";
24
25
  backgroundColor?: string;
25
26
  flexWrap?: "wrap" | "nowrap";
@@ -47,6 +48,7 @@ export const StackElementPropsSchema = z.object({
47
48
  minHeight: z.number().optional(),
48
49
  maxHeight: z.number().optional(),
49
50
  alignItems: z.enum(["flex-start", "center", "flex-end", "stretch"]).optional(),
51
+ alignSelf: z.enum(["auto", "flex-start", "flex-end", "center", "stretch", "baseline"]).optional(),
50
52
  justifyContent: z.enum(["flex-start", "center", "flex-end", "space-between", "space-around"]).optional(),
51
53
  backgroundColor: z.string().optional(),
52
54
  flexWrap: z.enum(["wrap", "nowrap"]).optional(),
@@ -71,6 +73,8 @@ export const StackElementComponent = ({ element, ctx, parentType }: Props): Reac
71
73
  <View
72
74
  style={{
73
75
  flexDirection: element.type === "XStack" ? "row" : "column",
76
+ alignSelf: element.props.alignSelf,
77
+ alignItems: element.props.alignItems,
74
78
  gap: element.props.gap,
75
79
  padding: element.props.padding,
76
80
  paddingHorizontal: element.props.paddingHorizontal,
@@ -87,7 +91,6 @@ export const StackElementComponent = ({ element, ctx, parentType }: Props): Reac
87
91
  maxHeight: element.props.maxHeight,
88
92
  flexShrink: element.props.flexShrink ?? (parentType === "XStack" ? 1 : undefined),
89
93
  flexWrap: element.props.flexWrap,
90
- alignItems: element.props.alignItems,
91
94
  justifyContent: element.props.justifyContent,
92
95
  backgroundColor: element.props.backgroundColor,
93
96
  borderWidth: element.props.borderWidth,
@@ -10,6 +10,7 @@ import { IconElementComponent } from "./IconElement";
10
10
  import { VideoElementRenderer } from "./VideoElement";
11
11
  import { InputElementComponent } from "./InputElement";
12
12
  import { RadioGroupComponent } from "./RadioGroupElement";
13
+ import { CheckboxGroupComponent } from "./CheckboxGroupElement";
13
14
  import { ButtonElementComponent } from "./ButtonElement";
14
15
 
15
16
  export const renderElement = (
@@ -53,6 +54,10 @@ export const renderElement = (
53
54
  return <RadioGroupComponent key={element.id} element={element} ctx={ctx} />;
54
55
  }
55
56
 
57
+ if (element.type === "CheckboxGroup") {
58
+ return <CheckboxGroupComponent key={element.id} element={element} ctx={ctx} />;
59
+ }
60
+
56
61
  if (element.type === "Button") {
57
62
  return <ButtonElementComponent key={element.id} element={element} ctx={ctx} />;
58
63
  }
@@ -10,6 +10,7 @@ import { type VideoElementProps, VideoElementPropsSchema } from "./elements/Vide
10
10
  import { type InputElementProps, InputElementPropsSchema } from "./elements/InputElement";
11
11
  import { type ButtonElementProps, ButtonElementPropsSchema } from "./elements/ButtonElement";
12
12
  import { type RadioGroupElementProps, RadioGroupElementPropsSchema } from "./elements/RadioGroupElement";
13
+ import { type CheckboxGroupElementProps, CheckboxGroupElementPropsSchema } from "./elements/CheckboxGroupElement";
13
14
 
14
15
  export type { BaseBoxProps } from "./elements/BaseBoxProps";
15
16
  export { BaseBoxPropsSchema } from "./elements/BaseBoxProps";
@@ -23,6 +24,7 @@ export type { VideoElementProps } from "./elements/VideoElement";
23
24
  export type { InputElementProps } from "./elements/InputElement";
24
25
  export type { ButtonElementProps } from "./elements/ButtonElement";
25
26
  export type { RadioGroupElementProps } from "./elements/RadioGroupElement";
27
+ export type { CheckboxGroupElementProps } from "./elements/CheckboxGroupElement";
26
28
 
27
29
  // UIElement union — must live here (not in elements/) to avoid circular deps
28
30
  // because the Stack variant's children: UIElement[] references itself.
@@ -87,6 +89,12 @@ export type UIElement =
87
89
  name?: string;
88
90
  type: "RadioGroup";
89
91
  props: RadioGroupElementProps;
92
+ }
93
+ | {
94
+ id: string;
95
+ name?: string;
96
+ type: "CheckboxGroup";
97
+ props: CheckboxGroupElementProps;
90
98
  };
91
99
 
92
100
  export const UIElementSchema: z.ZodType<UIElement> = z.lazy(() =>
@@ -152,6 +160,12 @@ export const UIElementSchema: z.ZodType<UIElement> = z.lazy(() =>
152
160
  type: z.literal("RadioGroup"),
153
161
  props: RadioGroupElementPropsSchema,
154
162
  }),
163
+ z.object({
164
+ id: z.string(),
165
+ name: z.string().optional(),
166
+ type: z.literal("CheckboxGroup"),
167
+ props: CheckboxGroupElementPropsSchema,
168
+ }),
155
169
  ])
156
170
  );
157
171