@developer_tribe/react-builder 1.2.36 → 1.2.38

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 (157) hide show
  1. package/dist/build-components/BIcon/BIconProps.generated.d.ts +1 -0
  2. package/dist/build-components/BackgroundImage/BackgroundImageProps.generated.d.ts +1 -0
  3. package/dist/build-components/Button/ButtonProps.generated.d.ts +1 -0
  4. package/dist/build-components/Carousel/CarouselProps.generated.d.ts +1 -0
  5. package/dist/build-components/CarouselButtons/CarouselButtonsProps.generated.d.ts +1 -0
  6. package/dist/build-components/CarouselDots/CarouselDotsProps.generated.d.ts +1 -0
  7. package/dist/build-components/CarouselItem/CarouselItemProps.generated.d.ts +1 -0
  8. package/dist/build-components/CarouselProvider/CarouselProviderProps.generated.d.ts +1 -0
  9. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +1 -0
  10. package/dist/build-components/Image/ImageProps.generated.d.ts +1 -0
  11. package/dist/build-components/Main/MainProps.generated.d.ts +1 -0
  12. package/dist/build-components/NavigationBarColor/NavigationBarColorProps.generated.d.ts +1 -0
  13. package/dist/build-components/Onboard/OnboardProps.generated.d.ts +1 -0
  14. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +2 -0
  15. package/dist/build-components/OnboardButtons/OnboardButtonsProps.generated.d.ts +1 -0
  16. package/dist/build-components/OnboardDot/OnboardDotProps.generated.d.ts +1 -0
  17. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +1 -0
  18. package/dist/build-components/OnboardImage/OnboardImageProps.generated.d.ts +1 -0
  19. package/dist/build-components/OnboardItem/OnboardItemProps.generated.d.ts +1 -0
  20. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +1 -0
  21. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +1 -0
  22. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +1 -0
  23. package/dist/build-components/PaywallBackground/PaywallBackgroundProps.generated.d.ts +1 -0
  24. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +1 -0
  25. package/dist/build-components/PaywallOptions/PaywallOptionsProps.generated.d.ts +1 -0
  26. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +1 -0
  27. package/dist/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.d.ts +1 -0
  28. package/dist/build-components/PriceTag/PriceTagProps.generated.d.ts +1 -0
  29. package/dist/build-components/Pricing/PricingProps.generated.d.ts +1 -0
  30. package/dist/build-components/Promo/PromoProps.generated.d.ts +1 -0
  31. package/dist/build-components/RadioButton/RadioButtonProps.generated.d.ts +1 -0
  32. package/dist/build-components/Separator/SeparatorProps.generated.d.ts +1 -0
  33. package/dist/build-components/StatusBarColor/StatusBarColorProps.generated.d.ts +1 -39
  34. package/dist/build-components/Text/TextProps.generated.d.ts +1 -0
  35. package/dist/build-components/View/ViewProps.generated.d.ts +1 -0
  36. package/dist/build-components/patterns.generated.d.ts +1445 -1015
  37. package/dist/index.cjs.js +1 -1
  38. package/dist/index.cjs.js.map +1 -1
  39. package/dist/index.esm.js +1 -1
  40. package/dist/index.esm.js.map +1 -1
  41. package/dist/index.web.cjs.js +4 -4
  42. package/dist/index.web.cjs.js.map +1 -1
  43. package/dist/index.web.esm.js +4 -4
  44. package/dist/index.web.esm.js.map +1 -1
  45. package/dist/mockOS/context/MockOSContextBase.d.ts +1 -0
  46. package/dist/mockOS/managers/mockPermissionManager.d.ts +1 -1
  47. package/dist/pages/tabs/SideTool.d.ts +8 -1
  48. package/dist/types/PreviewConfig.d.ts +1 -1
  49. package/package.json +1 -1
  50. package/scripts/prebuild/utils/validateAllComponentsOrThrow.js +18 -0
  51. package/src/RenderPage.tsx +1 -4
  52. package/src/assets/meta.json +1 -1
  53. package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
  54. package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
  55. package/src/assets/samples/carousel-sample.json +49 -23
  56. package/src/assets/samples/paywall-1.json +61 -29
  57. package/src/assets/samples/paywall-2.json +53 -25
  58. package/src/assets/samples/paywall-app-delete-offer.json +55 -26
  59. package/src/assets/samples/paywall-app-open-offer.json +55 -26
  60. package/src/assets/samples/paywall-back-offer.json +55 -26
  61. package/src/assets/samples/paywall-notification-offer.json +55 -26
  62. package/src/assets/samples/simple-1.json +9 -3
  63. package/src/assets/samples/simple-2.json +51 -24
  64. package/src/assets/samples/unmigrated-builder-1.1.1.json +15 -6
  65. package/src/assets/samples/unmigrated-builder1.json +9 -3
  66. package/src/assets/samples/unvalidated-builder1.json +9 -3
  67. package/src/assets/samples/unvalidated-crash1.json +5 -1
  68. package/src/assets/samples/unvalidated-crashcomponent1.json +5 -1
  69. package/src/assets/samples/vpn-onboard-1.json +90 -51
  70. package/src/assets/samples/vpn-onboard-2.json +90 -51
  71. package/src/assets/samples/vpn-onboard-3.json +84 -48
  72. package/src/assets/samples/vpn-onboard-4.json +84 -48
  73. package/src/assets/samples/vpn-onboard-5.json +126 -73
  74. package/src/assets/samples/vpn-onboard-6.json +90 -51
  75. package/src/assets/samples/vpn-onboard-7.json +88 -50
  76. package/src/build-components/BIcon/BIconProps.generated.ts +1 -0
  77. package/src/build-components/BIcon/pattern.json +2 -1
  78. package/src/build-components/BackgroundImage/BackgroundImageProps.generated.ts +1 -0
  79. package/src/build-components/BackgroundImage/pattern.json +2 -1
  80. package/src/build-components/Button/ButtonProps.generated.ts +1 -0
  81. package/src/build-components/Button/pattern.json +2 -1
  82. package/src/build-components/Carousel/CarouselProps.generated.ts +1 -0
  83. package/src/build-components/Carousel/pattern.json +2 -1
  84. package/src/build-components/CarouselButtons/CarouselButtonsProps.generated.ts +1 -0
  85. package/src/build-components/CarouselButtons/pattern.json +2 -1
  86. package/src/build-components/CarouselDots/CarouselDotsProps.generated.ts +1 -0
  87. package/src/build-components/CarouselDots/pattern.json +2 -1
  88. package/src/build-components/CarouselItem/CarouselItemProps.generated.ts +1 -0
  89. package/src/build-components/CarouselItem/pattern.json +4 -1
  90. package/src/build-components/CarouselProvider/CarouselProviderProps.generated.ts +1 -0
  91. package/src/build-components/CarouselProvider/pattern.json +3 -0
  92. package/src/build-components/CountDown/CountDownProps.generated.ts +1 -0
  93. package/src/build-components/CountDown/pattern.json +2 -1
  94. package/src/build-components/Image/ImageProps.generated.ts +1 -0
  95. package/src/build-components/Image/pattern.json +2 -1
  96. package/src/build-components/Main/MainProps.generated.ts +1 -0
  97. package/src/build-components/Main/pattern.json +2 -1
  98. package/src/build-components/NavigationBarColor/NavigationBarColorProps.generated.ts +1 -0
  99. package/src/build-components/NavigationBarColor/pattern.json +2 -1
  100. package/src/build-components/Onboard/OnboardProps.generated.ts +1 -0
  101. package/src/build-components/Onboard/pattern.json +4 -1
  102. package/src/build-components/OnboardButton/OnboardButton.tsx +6 -6
  103. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +2 -0
  104. package/src/build-components/OnboardButton/pattern.json +2 -1
  105. package/src/build-components/OnboardButtons/OnboardButtonsProps.generated.ts +1 -0
  106. package/src/build-components/OnboardButtons/pattern.json +2 -1
  107. package/src/build-components/OnboardDot/OnboardDotProps.generated.ts +1 -0
  108. package/src/build-components/OnboardDot/pattern.json +2 -1
  109. package/src/build-components/OnboardFooter/OnboardFooter.tsx +2 -3
  110. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +1 -0
  111. package/src/build-components/OnboardFooter/pattern.json +2 -1
  112. package/src/build-components/OnboardImage/OnboardImageProps.generated.ts +1 -0
  113. package/src/build-components/OnboardImage/pattern.json +2 -1
  114. package/src/build-components/OnboardItem/OnboardItemProps.generated.ts +1 -0
  115. package/src/build-components/OnboardItem/pattern.json +2 -1
  116. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +1 -0
  117. package/src/build-components/OnboardProvider/pattern.json +2 -1
  118. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +1 -0
  119. package/src/build-components/OnboardSubtitle/pattern.json +4 -1
  120. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +1 -0
  121. package/src/build-components/OnboardTitle/pattern.json +4 -1
  122. package/src/build-components/PaywallBackground/PaywallBackgroundProps.generated.ts +1 -0
  123. package/src/build-components/PaywallBackground/pattern.json +3 -0
  124. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +1 -0
  125. package/src/build-components/PaywallCloseButton/pattern.json +4 -1
  126. package/src/build-components/PaywallOptions/PaywallOptionsProps.generated.ts +1 -0
  127. package/src/build-components/PaywallOptions/pattern.json +4 -1
  128. package/src/build-components/PaywallProvider/PaywallProvider.tsx +0 -10
  129. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +1 -0
  130. package/src/build-components/PaywallProvider/pattern.json +2 -1
  131. package/src/build-components/PaywallSubscribeButton/PaywallSubscribeButtonProps.generated.ts +1 -0
  132. package/src/build-components/PaywallSubscribeButton/pattern.json +4 -1
  133. package/src/build-components/PriceTag/PriceTagProps.generated.ts +1 -0
  134. package/src/build-components/PriceTag/pattern.json +2 -1
  135. package/src/build-components/Pricing/PricingProps.generated.ts +1 -0
  136. package/src/build-components/Pricing/pattern.json +4 -1
  137. package/src/build-components/Promo/PromoProps.generated.ts +1 -0
  138. package/src/build-components/Promo/pattern.json +4 -1
  139. package/src/build-components/RadioButton/RadioButtonProps.generated.ts +1 -0
  140. package/src/build-components/RadioButton/pattern.json +2 -1
  141. package/src/build-components/Separator/SeparatorProps.generated.ts +1 -0
  142. package/src/build-components/Separator/pattern.json +2 -1
  143. package/src/build-components/StatusBarColor/StatusBarColorProps.generated.ts +1 -51
  144. package/src/build-components/StatusBarColor/pattern.json +2 -2
  145. package/src/build-components/Text/TextProps.generated.ts +1 -0
  146. package/src/build-components/Text/pattern.json +3 -2
  147. package/src/build-components/View/ViewProps.generated.ts +1 -0
  148. package/src/build-components/View/pattern.json +2 -1
  149. package/src/build-components/patterns.generated.ts +1544 -1136
  150. package/src/mockOS/context/MockOSContext.tsx +32 -0
  151. package/src/mockOS/context/MockOSContextBase.ts +3 -0
  152. package/src/mockOS/managers/mockPermissionManager.ts +9 -3
  153. package/src/modals/InspectModal.tsx +37 -8
  154. package/src/pages/tabs/SideTool.tsx +2 -0
  155. package/src/product-base/buildPaywallLocalizationParams.ts +12 -3
  156. package/src/types/PreviewConfig.ts +70 -46
  157. package/src/utils/useMergedStyle.ts +1 -1
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "node",
8
- "extends": "View"
8
+ "extends": "View",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "meta": {
11
14
  "desiredParent": ["=OnboardProvider"],
@@ -16,7 +16,7 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
16
16
  useLogRender('OnboardButton');
17
17
  node = useNode(node);
18
18
  const attributeName = node.sourceType ?? node.type ?? 'OnboardButton';
19
- const { emblaApi } = useContext(onboardContext) ?? {};
19
+ const { emblaApi, selectedIndex } = useContext(onboardContext) ?? {};
20
20
  const { selectedTheme: theme, projectColors } = useBuilderParams();
21
21
  const context = useMockOSContext();
22
22
  const mockPermissionManager = useMockPermission(context);
@@ -30,7 +30,7 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
30
30
  const rawTextColor = attrs?.styles?.color as string | undefined;
31
31
  const textColor = parseColor(rawTextColor, { projectColors, theme });
32
32
  const viewStyle = useExtractViewStyle(node);
33
- const handleClick = () => {
33
+ const handleClick = async () => {
34
34
  //TODO: any ??
35
35
  const events: EventObjectGenerated[] = attrs?.events ?? [];
36
36
 
@@ -42,20 +42,17 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
42
42
 
43
43
  if (e.type === 'Permission') {
44
44
  const permission = e.permission ?? 'camera';
45
- mockPermissionManager.requestPermission(permission);
45
+ await mockPermissionManager.requestPermission(permission);
46
46
  handledEventsRef.current.push(e);
47
- //TODO: cause user to click second time
48
47
  } else if (e.type === 'Navigate') {
49
48
  const eventTargetIndex = e.targetIndex;
50
49
  if (typeof eventTargetIndex === 'number') {
51
50
  emblaApi?.scrollTo(eventTargetIndex);
52
51
  handledEventsRef.current.push(e);
53
- //TODO: cause user to click second time
54
52
  } else if (e.navigate_to) {
55
53
  const eventTarget = e.navigate_to;
56
54
  if (typeof eventTarget === 'string') {
57
55
  handledEventsRef.current.push(e);
58
- //TODO: cause user to click second time
59
56
  if (context) {
60
57
  context.navigation(eventTarget as any);
61
58
  } else {
@@ -70,6 +67,9 @@ export function OnboardButton({ node }: OnboardButtonComponentProps) {
70
67
 
71
68
  return (
72
69
  <button
70
+ {...(attrs?.testID
71
+ ? { 'data-testid': `${attrs.testID}-${selectedIndex ?? 0}` }
72
+ : {})}
73
73
  attribute-name={attributeName}
74
74
  attribute-key={attributeKey}
75
75
  onClick={handleClick}
@@ -4,6 +4,7 @@ import type { NodeData } from '../../types/Node';
4
4
 
5
5
  export type TypeOptionType = 'Permission' | 'Navigate';
6
6
  export type PermissionOptionType = 'att' | 'notification' | 'rating' | 'GDPR';
7
+ export type TestIDOptionType = 'onboardSkip' | 'onboardNext';
7
8
  export type AnimationOptionType =
8
9
  | 'simple-animation'
9
10
  | 'line-animation'
@@ -77,6 +78,7 @@ export interface OnboardButtonPropsGenerated {
77
78
  attributes: {
78
79
  styles?: OnboardButtonStyleGenerated;
79
80
  scrollable?: boolean;
81
+ testID?: TestIDOptionType;
80
82
  labelKey?: string;
81
83
  animation?: AnimationOptionType;
82
84
  animation_color?: string;
@@ -19,7 +19,8 @@
19
19
  "events": "EventObject[]",
20
20
  "styles": {
21
21
  "color": "color"
22
- }
22
+ },
23
+ "testID": ["onboardSkip", "onboardNext"]
23
24
  },
24
25
  "defaults": {
25
26
  "styles": {
@@ -67,6 +67,7 @@ export interface OnboardButtonsPropsGenerated {
67
67
  attributes: {
68
68
  styles?: OnboardButtonsStyleGenerated;
69
69
  scrollable?: boolean;
70
+ testID?: string;
70
71
  buttonType?: ButtonTypeOptionType;
71
72
  skipNumber?: number;
72
73
  buttons_direction?: ButtonsDirectionOptionType;
@@ -13,7 +13,8 @@
13
13
  "forIndex": "number",
14
14
  "seperatorColor": "color",
15
15
  "condition": ["carousel-index"],
16
- "conditionVariable": "number"
16
+ "conditionVariable": "number",
17
+ "testID": "string"
17
18
  },
18
19
  "defaults": {
19
20
  "styles": {
@@ -68,6 +68,7 @@ export interface OnboardDotPropsGenerated {
68
68
  attributes: {
69
69
  styles?: OnboardDotStyleGenerated;
70
70
  scrollable?: boolean;
71
+ testID?: string;
71
72
  dotType?: DotTypeOptionType;
72
73
  flexDirection?: never;
73
74
  alignItems?: never;
@@ -21,7 +21,8 @@
21
21
  "dot_thickness": "size",
22
22
  "inactive_dot_opacity": "number",
23
23
  "inactive_dot_color": "color",
24
- "active_dot_color": "color"
24
+ "active_dot_color": "color",
25
+ "testID": "string"
25
26
  }
26
27
  },
27
28
  "defaults": {
@@ -94,7 +94,6 @@ function buildSegments(
94
94
  function OnboardFooter({ node }: OnboardFooterComponentProps) {
95
95
  useLogRender('OnboardFooter');
96
96
  node = useNode(node);
97
- console.log('node', node);
98
97
  const attributeName = node.sourceType ?? node.type ?? 'OnboardFooter';
99
98
  const {
100
99
  localization: builderLocalization,
@@ -115,8 +114,8 @@ function OnboardFooter({ node }: OnboardFooterComponentProps) {
115
114
  const textStyle = useExtractTextStyle(node, true);
116
115
  const viewStyle = useExtractViewStyle(node);
117
116
 
118
- const rawFirstColor = attrRecord.linkedWordFirstColor as string | undefined;
119
- const rawSecondColor = attrRecord.linkedWordSecondColor as string | undefined;
117
+ const rawFirstColor = attrRecord.linkedWordSecondColor as string | undefined;
118
+ const rawSecondColor = attrRecord.linkedWordFirstColor as string | undefined;
120
119
 
121
120
  // Parse colors for linked words
122
121
  const parsedFirstColor = useMemo(
@@ -68,6 +68,7 @@ export interface OnboardFooterPropsGenerated {
68
68
  adjustsFontSizeToFit?: boolean;
69
69
  showEllipsis?: boolean;
70
70
  translateCounter?: number;
71
+ testID?: string;
71
72
  scrollable?: boolean;
72
73
  textLocalizationKey?: string;
73
74
  linkedWordFirstLocalizationKey?: string;
@@ -13,7 +13,8 @@
13
13
  "linkedWordFirstPage": "string",
14
14
  "linkedWordSecondLocalizationKey": "string",
15
15
  "linkedWordSecondColor": "color",
16
- "linkedWordSecondPage": "string"
16
+ "linkedWordSecondPage": "string",
17
+ "testID": "string"
17
18
  }
18
19
  },
19
20
  "defaults": {
@@ -63,6 +63,7 @@ export interface OnboardImagePropsGenerated {
63
63
  attributes: {
64
64
  styles?: OnboardImageStyleGenerated;
65
65
  src?: string;
66
+ testID?: string;
66
67
  scrollable?: boolean;
67
68
  video_url?: string;
68
69
  lottie?: string;
@@ -8,7 +8,8 @@
8
8
  "extends": "Image",
9
9
  "attributes": {
10
10
  "video_url": "string",
11
- "lottie": "string"
11
+ "lottie": "string",
12
+ "testID": "string"
12
13
  }
13
14
  },
14
15
  "meta": {
@@ -62,6 +62,7 @@ export interface OnboardItemPropsGenerated {
62
62
  attributes: {
63
63
  styles?: OnboardItemStyleGenerated;
64
64
  scrollable?: boolean;
65
+ testID?: string;
65
66
  display?: DisplayOptionType;
66
67
  };
67
68
  }
@@ -12,7 +12,8 @@
12
12
  "gap": "size",
13
13
  "flexDirection": ["row", "column"],
14
14
  "paddingHorizontal": "size"
15
- }
15
+ },
16
+ "testID": "string"
16
17
  }
17
18
  },
18
19
  "defaults": {
@@ -62,6 +62,7 @@ export interface OnboardProviderPropsGenerated {
62
62
  attributes: {
63
63
  styles?: OnboardProviderStyleGenerated;
64
64
  scrollable?: boolean;
65
+ testID?: string;
65
66
  theme?: ThemeOptionType;
66
67
  borderRadius?: never;
67
68
  };
@@ -8,7 +8,8 @@
8
8
  "extends": "View",
9
9
  "attributes": {
10
10
  "theme": ["light", "dark", "all"],
11
- "borderRadius": "never"
11
+ "borderRadius": "never",
12
+ "testID": "string"
12
13
  }
13
14
  },
14
15
  "defaults": {
@@ -68,6 +68,7 @@ export interface OnboardSubtitlePropsGenerated {
68
68
  adjustsFontSizeToFit?: boolean;
69
69
  showEllipsis?: boolean;
70
70
  translateCounter?: number;
71
+ testID?: string;
71
72
  scrollable?: boolean;
72
73
  };
73
74
  }
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "string",
8
- "extends": "Text"
8
+ "extends": "Text",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "defaults": {
11
14
  "styles": {
@@ -68,6 +68,7 @@ export interface OnboardTitlePropsGenerated {
68
68
  adjustsFontSizeToFit?: boolean;
69
69
  showEllipsis?: boolean;
70
70
  translateCounter?: number;
71
+ testID?: string;
71
72
  scrollable?: boolean;
72
73
  };
73
74
  }
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "string",
8
- "extends": "Text"
8
+ "extends": "Text",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "defaults": {
11
14
  "styles": {
@@ -63,6 +63,7 @@ export interface PaywallBackgroundPropsGenerated {
63
63
  styles?: PaywallBackgroundStyleGenerated;
64
64
  src?: string;
65
65
  resizeMode?: ResizeModeOptionType;
66
+ testID?: string;
66
67
  scrollable?: boolean;
67
68
  };
68
69
  }
@@ -17,6 +17,9 @@
17
17
  "right": 0,
18
18
  "bottom": 0
19
19
  }
20
+ },
21
+ "attributes": {
22
+ "testID": "string"
20
23
  }
21
24
  },
22
25
  "meta": {
@@ -68,6 +68,7 @@ export interface PaywallCloseButtonPropsGenerated {
68
68
  iconType?: string;
69
69
  size?: number;
70
70
  strokeWidth?: number;
71
+ testID?: string;
71
72
  adjustsFontSizeToFit?: boolean;
72
73
  showEllipsis?: boolean;
73
74
  translateCounter?: number;
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "never",
8
- "extends": "BIcon"
8
+ "extends": "BIcon",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "meta": {
11
14
  "desiredParent": [">PaywallProvider"],
@@ -61,6 +61,7 @@ export interface PaywallOptionsPropsGenerated {
61
61
  attributes: {
62
62
  styles?: PaywallOptionsStyleGenerated;
63
63
  scrollable?: boolean;
64
+ testID?: string;
64
65
  };
65
66
  }
66
67
 
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "extends": "View",
8
- "children": "node"
8
+ "children": "node",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "meta": {
11
14
  "desiredParent": [">PaywallProvider"],
@@ -107,16 +107,6 @@ function PaywallProvider({ node }: PaywallProviderComponentProps) {
107
107
  localize,
108
108
  },
109
109
  );
110
-
111
- console.log('[PaywallProvider] extraction debug', {
112
- platform: platformForExtraction,
113
- selectedProductId,
114
- hasSubscriptionOffers: !!selectedProduct?.subscriptionOffers?.length,
115
- subscriptionOffersCount: selectedProduct?.subscriptionOffers?.length ?? 0,
116
- detailedProductParams,
117
- selectedProduct,
118
- });
119
-
120
110
  const handleClose = useCallback(() => {
121
111
  if (!isBackAllowed) {
122
112
  return;
@@ -61,6 +61,7 @@ export interface PaywallProviderPropsGenerated {
61
61
  attributes: {
62
62
  styles?: PaywallProviderStyleGenerated;
63
63
  scrollable?: boolean;
64
+ testID?: string;
64
65
  delay?: number;
65
66
  };
66
67
  }
@@ -7,7 +7,8 @@
7
7
  "children": "node",
8
8
  "extends": "View",
9
9
  "attributes": {
10
- "delay": "number"
10
+ "delay": "number",
11
+ "testID": "string"
11
12
  }
12
13
  },
13
14
  "defaults": {
@@ -75,6 +75,7 @@ export interface PaywallSubscribeButtonPropsGenerated {
75
75
  child: string;
76
76
  attributes: {
77
77
  styles?: PaywallSubscribeButtonStyleGenerated;
78
+ testID?: string;
78
79
  scrollable?: boolean;
79
80
  };
80
81
  }
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "string",
8
- "extends": "Button"
8
+ "extends": "Button",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "defaults": {
11
14
  "styles": {
@@ -73,6 +73,7 @@ export interface PriceTagPropsGenerated {
73
73
  adjustsFontSizeToFit?: boolean;
74
74
  showEllipsis?: boolean;
75
75
  translateCounter?: number;
76
+ testID?: string;
76
77
  scrollable?: boolean;
77
78
  showOriginalPricePossible?: boolean;
78
79
  hideIfItsNotDiscount?: boolean;
@@ -11,7 +11,8 @@
11
11
  "hideIfItsNotDiscount": "boolean",
12
12
  "styles": {
13
13
  "textDecorationLine": ["none", "underline", "line-through"]
14
- }
14
+ },
15
+ "testID": "string"
15
16
  }
16
17
  },
17
18
  "defaults": {
@@ -68,6 +68,7 @@ export interface PricingPropsGenerated {
68
68
  adjustsFontSizeToFit?: boolean;
69
69
  showEllipsis?: boolean;
70
70
  translateCounter?: number;
71
+ testID?: string;
71
72
  scrollable?: boolean;
72
73
  };
73
74
  }
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "base.builder.paywall.pricing.default.text",
7
7
  "children": "string",
8
- "extends": "Text"
8
+ "extends": "Text",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "defaults": {
11
14
  "translateCounter": 2,
@@ -68,6 +68,7 @@ export interface PromoPropsGenerated {
68
68
  adjustsFontSizeToFit?: boolean;
69
69
  showEllipsis?: boolean;
70
70
  translateCounter?: number;
71
+ testID?: string;
71
72
  scrollable?: boolean;
72
73
  };
73
74
  }
@@ -5,7 +5,10 @@
5
5
  "title": "title",
6
6
  "description": "base.builder.paywall.promo.default.text",
7
7
  "children": "string",
8
- "extends": "Text"
8
+ "extends": "Text",
9
+ "attributes": {
10
+ "testID": "string"
11
+ }
9
12
  },
10
13
  "defaults": {
11
14
  "translateCounter": 2,
@@ -61,6 +61,7 @@ export interface RadioButtonPropsGenerated {
61
61
  attributes: {
62
62
  styles?: RadioButtonStyleGenerated;
63
63
  scrollable?: boolean;
64
+ testID?: string;
64
65
  selected?: boolean;
65
66
  color?: string;
66
67
  size?: number;
@@ -9,7 +9,8 @@
9
9
  "attributes": {
10
10
  "selected": "boolean",
11
11
  "color": "color",
12
- "size": "number"
12
+ "size": "number",
13
+ "testID": "string"
13
14
  }
14
15
  },
15
16
  "meta": {
@@ -16,6 +16,7 @@ export interface SeparatorPropsGenerated {
16
16
  child: string;
17
17
  attributes: {
18
18
  styles?: SeparatorStyleGenerated;
19
+ testID?: string;
19
20
  };
20
21
  }
21
22
 
@@ -14,7 +14,8 @@
14
14
  "marginVertical": "size",
15
15
  "marginTop": "size",
16
16
  "marginBottom": "size"
17
- }
17
+ },
18
+ "testID": "string"
18
19
  }
19
20
  },
20
21
  "meta": {
@@ -2,65 +2,15 @@
2
2
 
3
3
  import type { NodeData } from '../../types/Node';
4
4
 
5
- export type FlexDirectionOptionType = 'row' | 'column';
6
- export type FlexWrapOptionType = 'nowrap' | 'wrap' | 'wrap-reverse';
7
- export type AlignItemsOptionType =
8
- | 'flex-start'
9
- | 'center'
10
- | 'flex-end'
11
- | 'stretch'
12
- | 'baseline';
13
- export type JustifyContentOptionType =
14
- | 'flex-start'
15
- | 'center'
16
- | 'flex-end'
17
- | 'space-between'
18
- | 'space-around'
19
- | 'space-evenly';
20
- export type PositionOptionType = 'relative' | 'absolute';
21
-
22
5
  export interface StatusBarColorStyleGenerated {
23
- flexDirection?: FlexDirectionOptionType;
24
- flexWrap?: FlexWrapOptionType;
25
- alignItems?: AlignItemsOptionType;
26
- justifyContent?: JustifyContentOptionType;
27
- gap?: string;
28
- padding?: string;
29
- paddingHorizontal?: string;
30
- paddingVertical?: string;
31
- paddingTop?: string;
32
- paddingBottom?: string;
33
- paddingLeft?: string;
34
- paddingRight?: string;
35
- margin?: string;
36
- marginHorizontal?: string;
37
- marginVertical?: string;
38
- marginTop?: string;
39
- marginBottom?: string;
40
- marginLeft?: string;
41
- marginRight?: string;
42
6
  backgroundColor?: string;
43
- borderRadius?: string;
44
- width?: string;
45
- minWidth?: string;
46
- maxWidth?: string;
47
- height?: string;
48
- minHeight?: string;
49
- maxHeight?: string;
50
- flex?: number;
51
- position?: PositionOptionType;
52
- top?: string;
53
- bottom?: string;
54
- left?: string;
55
- right?: string;
56
- zIndex?: number;
57
7
  }
58
8
 
59
9
  export interface StatusBarColorPropsGenerated {
60
10
  child: string;
61
11
  attributes: {
62
12
  styles?: StatusBarColorStyleGenerated;
63
- scrollable?: boolean;
13
+ testID?: string;
64
14
  };
65
15
  }
66
16
 
@@ -5,11 +5,11 @@
5
5
  "title": "title",
6
6
  "description": "description",
7
7
  "children": "never",
8
- "extends": "View",
9
8
  "attributes": {
10
9
  "styles": {
11
10
  "backgroundColor": "color"
12
- }
11
+ },
12
+ "testID": "string"
13
13
  }
14
14
  },
15
15
  "meta": {
@@ -66,6 +66,7 @@ export interface TextPropsGenerated {
66
66
  attributes: {
67
67
  styles?: TextStyleGenerated;
68
68
  scrollable?: boolean;
69
+ testID?: string;
69
70
  adjustsFontSizeToFit?: boolean;
70
71
  showEllipsis?: boolean;
71
72
  translateCounter?: number;
@@ -16,7 +16,8 @@
16
16
  "fontFamily": "fontFamily",
17
17
  "fontWeight": "fontWeight",
18
18
  "textAlign": "string"
19
- }
19
+ },
20
+ "testID": "string"
20
21
  },
21
22
  "defaults": {
22
23
  "translateCounter": 1,
@@ -45,7 +46,7 @@
45
46
  "category": "style",
46
47
  "specialCategory": null,
47
48
  "sort": 2,
48
- "preferredScale": "s"
49
+ "preferredScale": "f"
49
50
  },
50
51
  "fontFamily": {
51
52
  "label": "Font Family",
@@ -61,6 +61,7 @@ export interface ViewPropsGenerated {
61
61
  attributes: {
62
62
  styles?: ViewStyleGenerated;
63
63
  scrollable?: boolean;
64
+ testID?: string;
64
65
  };
65
66
  }
66
67
 
@@ -55,7 +55,8 @@
55
55
  "left": "size",
56
56
  "right": "size",
57
57
  "zIndex": "number"
58
- }
58
+ },
59
+ "testID": "string"
59
60
  }
60
61
  },
61
62
  "meta": {