@developer_tribe/react-builder 1.2.42 → 1.2.44-test.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/build-components/BIcon/BIconProps.generated.d.ts +1 -1
  2. package/dist/build-components/Checkbox/Checkbox.d.ts +6 -0
  3. package/dist/build-components/Checkbox/CheckboxProps.generated.d.ts +67 -0
  4. package/dist/build-components/CountDown/CountDownProps.generated.d.ts +1 -1
  5. package/dist/build-components/FormCheckbox/FormCheckbox.d.ts +3 -0
  6. package/dist/build-components/FormCheckbox/FormCheckboxProps.generated.d.ts +69 -0
  7. package/dist/build-components/FormErrorText/FormErrorText.d.ts +3 -0
  8. package/dist/build-components/FormErrorText/FormErrorTextProps.generated.d.ts +61 -0
  9. package/dist/build-components/FormProvider/FormProvider.d.ts +11 -0
  10. package/dist/build-components/FormProvider/FormProviderProps.generated.d.ts +55 -0
  11. package/dist/build-components/FormSubmitButton/FormSubmitButton.d.ts +2 -0
  12. package/dist/build-components/FormSubmitButton/FormSubmitButtonProps.generated.d.ts +73 -0
  13. package/dist/build-components/GlobalProvider/GlobalContext.d.ts +28 -0
  14. package/dist/build-components/GlobalProvider/GlobalProvider.d.ts +5 -0
  15. package/dist/build-components/GlobalProvider/GlobalProviderProps.generated.d.ts +60 -0
  16. package/dist/build-components/GlobalProvider/globalProviderUtils.d.ts +37 -0
  17. package/dist/build-components/GlobalProvider/useGlobalNavigation.d.ts +19 -0
  18. package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +17 -10
  19. package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +1 -1
  20. package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
  21. package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +1 -1
  22. package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +1 -1
  23. package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +1 -1
  24. package/dist/build-components/PaywallFooter/PaywallFooterProps.generated.d.ts +1 -1
  25. package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
  26. package/dist/build-components/PriceTag/PriceTagProps.generated.d.ts +1 -1
  27. package/dist/build-components/Pricing/PricingProps.generated.d.ts +1 -1
  28. package/dist/build-components/Promo/PromoProps.generated.d.ts +1 -1
  29. package/dist/build-components/SystemButton/SystemButton.d.ts +7 -0
  30. package/dist/build-components/SystemButton/SystemButtonProps.generated.d.ts +71 -0
  31. package/dist/build-components/SystemButton/usePlacementButtonEvents.d.ts +28 -0
  32. package/dist/build-components/TermsProvider/TermsProvider.d.ts +5 -0
  33. package/dist/build-components/TermsProvider/TermsProviderProps.generated.d.ts +55 -0
  34. package/dist/build-components/Text/TextProps.generated.d.ts +1 -1
  35. package/dist/build-components/WebView/WebView.d.ts +2 -0
  36. package/dist/build-components/WebView/WebViewProps.generated.d.ts +59 -0
  37. package/dist/build-components/index.d.ts +10 -1
  38. package/dist/build-components/patterns.generated.d.ts +5507 -1543
  39. package/dist/index.cjs.js +1 -1
  40. package/dist/index.cjs.js.map +1 -1
  41. package/dist/index.esm.js +1 -1
  42. package/dist/index.esm.js.map +1 -1
  43. package/dist/index.web.cjs.js +5 -5
  44. package/dist/index.web.cjs.js.map +1 -1
  45. package/dist/index.web.d.ts +1 -0
  46. package/dist/index.web.esm.js +4 -4
  47. package/dist/index.web.esm.js.map +1 -1
  48. package/dist/mockOS/context/MockOSContextBase.d.ts +3 -1
  49. package/dist/styles.css +1 -1
  50. package/dist/types/PreviewConfig.d.ts +1 -1
  51. package/package.json +2 -1
  52. package/src/RenderPage.tsx +4 -1
  53. package/src/assets/meta.json +1 -1
  54. package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
  55. package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
  56. package/src/assets/samples/getSamples.ts +7 -0
  57. package/src/assets/samples/global-onboard-flow.json +729 -0
  58. package/src/assets/samples/paywall-1.json +2 -2
  59. package/src/assets/samples/terms-and-privacy-no-form.json +108 -0
  60. package/src/assets/samples/terms-and-privacy.json +130 -0
  61. package/src/attributes-editor/FallbackLocalizationField.tsx +725 -250
  62. package/src/build-components/BIcon/BIconProps.generated.ts +1 -1
  63. package/src/build-components/Checkbox/Checkbox.tsx +165 -0
  64. package/src/build-components/Checkbox/CheckboxProps.generated.ts +84 -0
  65. package/src/build-components/Checkbox/pattern.json +83 -0
  66. package/src/build-components/CountDown/CountDownProps.generated.ts +1 -1
  67. package/src/build-components/FormCheckbox/FormCheckbox.tsx +106 -0
  68. package/src/build-components/FormCheckbox/FormCheckboxProps.generated.ts +86 -0
  69. package/src/build-components/FormCheckbox/pattern.json +39 -0
  70. package/src/build-components/FormErrorText/FormErrorText.tsx +34 -0
  71. package/src/build-components/FormErrorText/FormErrorTextProps.generated.ts +78 -0
  72. package/src/build-components/FormErrorText/pattern.json +21 -0
  73. package/src/build-components/FormProvider/FormProvider.tsx +131 -0
  74. package/src/build-components/FormProvider/FormProviderProps.generated.ts +72 -0
  75. package/src/build-components/FormProvider/pattern.json +33 -0
  76. package/src/build-components/FormSubmitButton/FormSubmitButton.tsx +49 -0
  77. package/src/build-components/FormSubmitButton/FormSubmitButtonProps.generated.ts +91 -0
  78. package/src/build-components/FormSubmitButton/pattern.json +33 -0
  79. package/src/build-components/GlobalProvider/GlobalContext.ts +48 -0
  80. package/src/build-components/GlobalProvider/GlobalProvider.tsx +191 -0
  81. package/src/build-components/GlobalProvider/GlobalProviderProps.generated.ts +78 -0
  82. package/src/build-components/GlobalProvider/globalProviderUtils.ts +163 -0
  83. package/src/build-components/GlobalProvider/pattern.json +55 -0
  84. package/src/build-components/GlobalProvider/useGlobalNavigation.ts +70 -0
  85. package/src/build-components/OnboardButton/OnboardButton.tsx +41 -36
  86. package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +17 -10
  87. package/src/build-components/OnboardButton/pattern.json +5 -4
  88. package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +1 -1
  89. package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +12 -0
  90. package/src/build-components/OnboardProvider/pattern.json +9 -1
  91. package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +1 -1
  92. package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +1 -1
  93. package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +1 -1
  94. package/src/build-components/PaywallFooter/PaywallFooterProps.generated.ts +1 -1
  95. package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +12 -0
  96. package/src/build-components/PaywallProvider/pattern.json +9 -1
  97. package/src/build-components/PriceTag/PriceTagProps.generated.ts +1 -1
  98. package/src/build-components/Pricing/PricingProps.generated.ts +1 -1
  99. package/src/build-components/Promo/PromoProps.generated.ts +1 -1
  100. package/src/build-components/RenderNode.generated.tsx +46 -1
  101. package/src/build-components/SystemButton/SystemButton.tsx +71 -0
  102. package/src/build-components/SystemButton/SystemButtonProps.generated.ts +89 -0
  103. package/src/build-components/SystemButton/pattern.json +61 -0
  104. package/src/build-components/SystemButton/usePlacementButtonEvents.ts +101 -0
  105. package/src/build-components/TermsProvider/TermsProvider.tsx +45 -0
  106. package/src/build-components/TermsProvider/TermsProviderProps.generated.ts +82 -0
  107. package/src/build-components/TermsProvider/pattern.json +35 -0
  108. package/src/build-components/Text/Text.tsx +5 -4
  109. package/src/build-components/Text/TextProps.generated.ts +1 -1
  110. package/src/build-components/Text/pattern.json +2 -1
  111. package/src/build-components/WebView/WebView.tsx +149 -0
  112. package/src/build-components/WebView/WebViewProps.generated.ts +76 -0
  113. package/src/build-components/WebView/pattern.json +71 -0
  114. package/src/build-components/index.ts +45 -0
  115. package/src/build-components/patterns.generated.ts +5712 -1559
  116. package/src/hooks/useSafeAreaViewStyle.ts +1 -11
  117. package/src/index.web.ts +3 -0
  118. package/src/mockOS/components/MockOSRouter.tsx +21 -0
  119. package/src/mockOS/context/MockOSContext.tsx +7 -0
  120. package/src/mockOS/context/MockOSContextBase.ts +4 -0
  121. package/src/styles/components/_checkbox.scss +19 -0
  122. package/src/styles/components/_global-provider.scss +131 -0
  123. package/src/styles/components/_webview.scss +52 -0
  124. package/src/styles/index.scss +4 -0
  125. package/src/types/PreviewConfig.ts +19 -0
  126. package/src/utils/analyseNodeByPatterns.ts +5 -2
  127. package/src/utils/extractViewStyle/extractViewStyle.ts +0 -1
  128. package/src/utils/projectColors.ts +4 -0
  129. package/src/utils/useMergedStyle.ts +1 -1
  130. package/src/.DS_Store +0 -0
  131. package/src/assets/.DS_Store +0 -0
@@ -0,0 +1,35 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "pattern": {
4
+ "type": "TermsProvider",
5
+ "title": "title",
6
+ "description": "description",
7
+ "children": "node",
8
+ "extends": "View",
9
+ "attributes": {
10
+ "animation": ["default", "fade", "fade_from_bottom", "fade_from_right", "reveal_from_bottom", "scale_from_center", "slide_from_right", "slide_from_left", "slide_from_bottom", "none"]
11
+ }
12
+ },
13
+ "defaults": {
14
+ "styles": {
15
+ "width": "100%",
16
+ "height": "100%",
17
+ "flex": 1
18
+ }
19
+ },
20
+ "meta": {
21
+ "desiredParent": ["root", "GlobalProvider"],
22
+ "label": "Terms Provider",
23
+ "description": "Provider for terms & privacy page (e.g. WebView + form). Use as a GlobalProvider page.",
24
+ "attributes": {
25
+ "animation": {
26
+ "label": "Page transition animation",
27
+ "description": "When this component is a GlobalProvider page: animation used when navigating to this screen.",
28
+ "category": "other",
29
+ "specialCategory": null,
30
+ "sort": 1
31
+ }
32
+ },
33
+ "styles": {}
34
+ }
35
+ }
@@ -44,9 +44,10 @@ export function Text({ node }: TextComponentProps) {
44
44
  | undefined;
45
45
  const adjustsFontSizeToFit = styleBag?.adjustsFontSizeToFit ?? false;
46
46
  const showEllipsis = styleBag?.showEllipsis ?? false;
47
+ const numberOfLines = (node.attributes as any)?.numberOfLines;
47
48
 
48
49
  useLayoutEffect(() => {
49
- if (!adjustsFontSizeToFit) {
50
+ if (numberOfLines !== 1 || !adjustsFontSizeToFit) {
50
51
  setAutoFontSizePx(null);
51
52
  return;
52
53
  }
@@ -95,12 +96,12 @@ export function Text({ node }: TextComponentProps) {
95
96
  ro?.disconnect();
96
97
  window.removeEventListener('resize', compute);
97
98
  };
98
- }, [adjustsFontSizeToFit, localizedText]);
99
+ }, [adjustsFontSizeToFit, localizedText, numberOfLines]);
99
100
 
100
101
  const extraStyle = useMemo((): React.CSSProperties | undefined => {
101
102
  let next: React.CSSProperties | undefined;
102
103
 
103
- if (showEllipsis) {
104
+ if (numberOfLines == 1 && adjustsFontSizeToFit) {
104
105
  next = {
105
106
  ...(next ?? {}),
106
107
  overflow: 'hidden',
@@ -117,7 +118,7 @@ export function Text({ node }: TextComponentProps) {
117
118
  }
118
119
 
119
120
  return next;
120
- }, [showEllipsis, autoFontSizePx]);
121
+ }, [showEllipsis, autoFontSizePx, numberOfLines, adjustsFontSizeToFit]);
121
122
 
122
123
  const style = useMergedStyle(
123
124
  useMergedStyle(textStyle, extraStyle),
@@ -68,7 +68,7 @@ export interface TextPropsGenerated {
68
68
  scrollable?: boolean;
69
69
  testID?: string;
70
70
  adjustsFontSizeToFit?: boolean;
71
- showEllipsis?: boolean;
71
+ numberOfLines?: number;
72
72
  translateCounter?: number;
73
73
  };
74
74
  }
@@ -8,7 +8,7 @@
8
8
  "extends": "View",
9
9
  "attributes": {
10
10
  "adjustsFontSizeToFit": "boolean",
11
- "showEllipsis": "boolean",
11
+ "numberOfLines": "number",
12
12
  "translateCounter": "number",
13
13
  "styles": {
14
14
  "color": "color",
@@ -20,6 +20,7 @@
20
20
  },
21
21
  "defaults": {
22
22
  "translateCounter": 1,
23
+ "numberOfLines": 1,
23
24
  "styles": {
24
25
  "color": "THEME_COLORS.TEXT",
25
26
  "fontSize": "16@fs",
@@ -0,0 +1,149 @@
1
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
2
+ import { WebViewComponentProps } from './WebViewProps.generated';
3
+ import useNode from '../useNode';
4
+ import { useLogRender } from '../../utils/useLogRender';
5
+ import { useExtractViewStyle } from '../../attribute-analyser/style/web/useExtractViewStyle';
6
+ import { useBuilderParams } from '../../components/BuilderProvider';
7
+ import { parseColor } from '../../utils/parseColor';
8
+ import { useMergedStyle } from '../../utils/useMergedStyle';
9
+
10
+ export function WebView({ node }: WebViewComponentProps) {
11
+ useLogRender('WebView');
12
+ node = useNode(node);
13
+ const attrs = node.attributes;
14
+ const viewStyle = useExtractViewStyle(node as any);
15
+ const { selectedTheme: theme, projectColors, device } = useBuilderParams();
16
+ const iframeRef = useRef<HTMLIFrameElement>(null);
17
+
18
+ const [loading, setLoading] = useState(true);
19
+
20
+ const platform = device?.platform || 'ios';
21
+ const url = platform === 'ios' ? attrs?.iosUrl : attrs?.androidUrl;
22
+
23
+ const effectiveTheme = theme ?? 'dark';
24
+ const colorOpts = { projectColors, theme };
25
+
26
+ const backgroundColor =
27
+ parseColor('THEME_COLORS.BACKGROUND', colorOpts) ??
28
+ parseColor('STATIC_COLORS.WHITE', colorOpts) ??
29
+ undefined;
30
+ const textColor =
31
+ parseColor('THEME_COLORS.TEXT', colorOpts) ??
32
+ parseColor('STATIC_COLORS.BLACK', colorOpts) ??
33
+ undefined;
34
+
35
+ const loaderColor =
36
+ parseColor(attrs?.styles?.loaderColor as string, colorOpts) ?? textColor;
37
+
38
+ const loaderSize = attrs?.styles?.loaderSize ?? 30;
39
+ const loaderBorderWidth = attrs?.styles?.loaderBorderWidth ?? 3;
40
+ const loaderAnimationDuration = attrs?.styles?.loaderAnimationDuration ?? 1;
41
+
42
+ const themeStyle = useMergedStyle(
43
+ backgroundColor != null ? { backgroundColor } : undefined,
44
+ textColor != null ? { color: textColor } : undefined,
45
+ );
46
+ const containerStyle = useMergedStyle(viewStyle, themeStyle, {
47
+ ['--rb-webview-loader-size' as string]: `${loaderSize}px`,
48
+ ['--rb-webview-loader-border-width' as string]: `${loaderBorderWidth}px`,
49
+ ['--rb-webview-loader-duration' as string]: `${loaderAnimationDuration}s`,
50
+ });
51
+ const overlayStyle = useMergedStyle(themeStyle);
52
+ const frameWrapperStyle = useMergedStyle(themeStyle, {
53
+ flex: 1,
54
+ minHeight: 0,
55
+ });
56
+
57
+ // Same-origin iframe: inject/update theme styles. Idempotent: updates existing
58
+ // style[data-rb-webview-theme] so theme change does not require iframe reload.
59
+ const injectThemeStyles = useCallback(() => {
60
+ if (backgroundColor == null || textColor == null) return;
61
+ const doc = iframeRef.current?.contentDocument;
62
+ if (!doc?.head) {
63
+ if (url) {
64
+ console.debug(
65
+ '[WebView] Theme styles not injected: contentDocument not accessible (cross-origin).',
66
+ 'URL:',
67
+ url,
68
+ '— Use same-origin URL or rely on the wrapper filter for dark mode.',
69
+ );
70
+ }
71
+ return;
72
+ }
73
+ const existing = doc.querySelector('style[data-rb-webview-theme]');
74
+ const css = [
75
+ `body{background-color:${backgroundColor};color:${textColor}}`,
76
+ `*{color:${textColor}}`,
77
+ `span{background-color:${backgroundColor}}`,
78
+ ].join(' ');
79
+ if (existing) {
80
+ existing.textContent = css;
81
+ } else {
82
+ const style = doc.createElement('style');
83
+ style.setAttribute('data-rb-webview-theme', '');
84
+ style.textContent = css;
85
+ doc.head.appendChild(style);
86
+ }
87
+ }, [backgroundColor, textColor, url]);
88
+
89
+ const handleIframeLoad = useCallback(() => {
90
+ setLoading(false);
91
+ injectThemeStyles();
92
+ }, [injectThemeStyles]);
93
+
94
+ // Tema değişince iframe yeniden yüklemeden stil güncelle (same-origin). Cross-origin
95
+ // için sadece wrapper filter kullanılıyor, re-render yeterli.
96
+ useEffect(() => {
97
+ if (loading) return;
98
+ injectThemeStyles();
99
+ }, [theme, backgroundColor, textColor, loading, injectThemeStyles]);
100
+
101
+ // Cross-origin iframe'lere stil enjekte edilemez. Dark modda içeriği görsel olarak
102
+ // koyu göstermek için sadece iframe saran div'e CSS filter uyguluyoruz.
103
+ // Tema değişiminde iframe yeniden render edilmez (kullanıcı konumu/inputlar korunur).
104
+ const useForceDarkFilter = effectiveTheme === 'dark';
105
+
106
+ return (
107
+ <div
108
+ className="rb-webview"
109
+ style={containerStyle}
110
+ data-testid={attrs?.testID}
111
+ >
112
+ {loading && (
113
+ <div className="rb-webview__overlay" style={overlayStyle}>
114
+ <div
115
+ className="rb-webview__loader"
116
+ style={{
117
+ borderColor: loaderColor != null ? `${loaderColor}40` : undefined,
118
+ borderTopColor: loaderColor ?? undefined,
119
+ }}
120
+ />
121
+ </div>
122
+ )}
123
+
124
+ <div className="rb-webview__frame-wrapper" style={frameWrapperStyle}>
125
+ <div
126
+ className="rb-webview__frame-inner"
127
+ style={
128
+ useForceDarkFilter
129
+ ? {
130
+ width: '100%',
131
+ height: '100%',
132
+ filter: 'invert(1) hue-rotate(180deg)',
133
+ }
134
+ : { width: '100%', height: '100%' }
135
+ }
136
+ >
137
+ <iframe
138
+ ref={iframeRef}
139
+ src={url}
140
+ className="rb-webview__frame"
141
+ style={{ opacity: loading ? 0 : 1, backgroundColor: 'transparent' }}
142
+ onLoad={handleIframeLoad}
143
+ title="WebView Content"
144
+ />
145
+ </div>
146
+ </div>
147
+ </div>
148
+ );
149
+ }
@@ -0,0 +1,76 @@
1
+ /* AUTO-GENERATED FILE - DO NOT EDIT */
2
+
3
+ import type { NodeData } from '../../types/Node';
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
+ export interface WebViewStyleGenerated {
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
+ 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
+ loaderColor?: string;
58
+ loaderSize?: number;
59
+ loaderBorderWidth?: number;
60
+ loaderAnimationDuration?: number;
61
+ }
62
+
63
+ export interface WebViewPropsGenerated {
64
+ child: string;
65
+ attributes: {
66
+ styles?: WebViewStyleGenerated;
67
+ scrollable?: boolean;
68
+ testID?: string;
69
+ iosUrl?: string;
70
+ androidUrl?: string;
71
+ };
72
+ }
73
+
74
+ export interface WebViewComponentProps {
75
+ node: NodeData<WebViewPropsGenerated['attributes']>;
76
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "pattern": {
4
+ "type": "WebView",
5
+ "title": "WebView",
6
+ "description": "A component to display web content.",
7
+ "children": "never",
8
+ "extends": "View",
9
+ "attributes": {
10
+ "iosUrl": "string",
11
+ "androidUrl": "string",
12
+ "styles": {
13
+ "loaderColor": "color",
14
+ "loaderSize": "number",
15
+ "loaderBorderWidth": "number",
16
+ "loaderAnimationDuration": "number"
17
+ }
18
+ }
19
+ },
20
+ "defaults": {
21
+ "styles": {
22
+ "loaderSize": 30,
23
+ "loaderBorderWidth": 3,
24
+ "loaderAnimationDuration": 1
25
+ }
26
+ },
27
+ "meta": {
28
+ "label": "Web View",
29
+ "description": "Embeds web content using an iframe on web and WebView on mobile.",
30
+ "attributes": {
31
+ "iosUrl": {
32
+ "label": "iOS URL",
33
+ "description": "The iOS URL to load in the web view.",
34
+ "category": "other",
35
+ "sort": 1
36
+ },
37
+ "androidUrl": {
38
+ "label": "Android URL",
39
+ "description": "The Android URL to load in the web view.",
40
+ "category": "other",
41
+ "sort": 2
42
+ },
43
+ "styles": {
44
+ "loaderColor": {
45
+ "label": "Loader color",
46
+ "description": "Loading spinner color. Defaults to THEME_COLORS.TEXT.",
47
+ "category": "style",
48
+ "sort": 1
49
+ },
50
+ "loaderSize": {
51
+ "label": "Loader size",
52
+ "description": "Size of the loading spinner (px). Shared by web and native.",
53
+ "category": "style",
54
+ "sort": 2
55
+ },
56
+ "loaderBorderWidth": {
57
+ "label": "Loader border width",
58
+ "description": "Border width of the loading spinner (px). Shared by web and native.",
59
+ "category": "style",
60
+ "sort": 3
61
+ },
62
+ "loaderAnimationDuration": {
63
+ "label": "Loader animation duration",
64
+ "description": "Duration of one full spin (seconds). Shared by web and native.",
65
+ "category": "style",
66
+ "sort": 4
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
@@ -13,7 +13,13 @@ export const allcomponentNames = [
13
13
  'CarouselDots',
14
14
  'CarouselItem',
15
15
  'CarouselProvider',
16
+ 'Checkbox',
16
17
  'CountDown',
18
+ 'FormCheckbox',
19
+ 'FormErrorText',
20
+ 'FormProvider',
21
+ 'FormSubmitButton',
22
+ 'GlobalProvider',
17
23
  'Image',
18
24
  'Main',
19
25
  'NavigationBarColor',
@@ -39,8 +45,11 @@ export const allcomponentNames = [
39
45
  'RadioButton',
40
46
  'Separator',
41
47
  'StatusBarColor',
48
+ 'SystemButton',
49
+ 'TermsProvider',
42
50
  'Text',
43
51
  'View',
52
+ 'WebView',
44
53
  ] as const;
45
54
 
46
55
  export type {
@@ -75,10 +84,34 @@ export type {
75
84
  CarouselProviderPropsGenerated,
76
85
  CarouselProviderComponentProps,
77
86
  } from './CarouselProvider/CarouselProviderProps.generated';
87
+ export type {
88
+ CheckboxPropsGenerated,
89
+ CheckboxComponentProps,
90
+ } from './Checkbox/CheckboxProps.generated';
78
91
  export type {
79
92
  CountDownPropsGenerated,
80
93
  CountDownComponentProps,
81
94
  } from './CountDown/CountDownProps.generated';
95
+ export type {
96
+ FormCheckboxPropsGenerated,
97
+ FormCheckboxComponentProps,
98
+ } from './FormCheckbox/FormCheckboxProps.generated';
99
+ export type {
100
+ FormErrorTextPropsGenerated,
101
+ FormErrorTextComponentProps,
102
+ } from './FormErrorText/FormErrorTextProps.generated';
103
+ export type {
104
+ FormProviderPropsGenerated,
105
+ FormProviderComponentProps,
106
+ } from './FormProvider/FormProviderProps.generated';
107
+ export type {
108
+ FormSubmitButtonPropsGenerated,
109
+ FormSubmitButtonComponentProps,
110
+ } from './FormSubmitButton/FormSubmitButtonProps.generated';
111
+ export type {
112
+ GlobalProviderPropsGenerated,
113
+ GlobalProviderComponentProps,
114
+ } from './GlobalProvider/GlobalProviderProps.generated';
82
115
  export type {
83
116
  ImagePropsGenerated,
84
117
  ImageComponentProps,
@@ -179,6 +212,14 @@ export type {
179
212
  StatusBarColorPropsGenerated,
180
213
  StatusBarColorComponentProps,
181
214
  } from './StatusBarColor/StatusBarColorProps.generated';
215
+ export type {
216
+ SystemButtonPropsGenerated,
217
+ SystemButtonComponentProps,
218
+ } from './SystemButton/SystemButtonProps.generated';
219
+ export type {
220
+ TermsProviderPropsGenerated,
221
+ TermsProviderComponentProps,
222
+ } from './TermsProvider/TermsProviderProps.generated';
182
223
  export type {
183
224
  TextPropsGenerated,
184
225
  TextComponentProps,
@@ -187,3 +228,7 @@ export type {
187
228
  ViewPropsGenerated,
188
229
  ViewComponentProps,
189
230
  } from './View/ViewProps.generated';
231
+ export type {
232
+ WebViewPropsGenerated,
233
+ WebViewComponentProps,
234
+ } from './WebView/WebViewProps.generated';