@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.
- package/dist/build-components/BIcon/BIconProps.generated.d.ts +1 -1
- package/dist/build-components/Checkbox/Checkbox.d.ts +6 -0
- package/dist/build-components/Checkbox/CheckboxProps.generated.d.ts +67 -0
- package/dist/build-components/CountDown/CountDownProps.generated.d.ts +1 -1
- package/dist/build-components/FormCheckbox/FormCheckbox.d.ts +3 -0
- package/dist/build-components/FormCheckbox/FormCheckboxProps.generated.d.ts +69 -0
- package/dist/build-components/FormErrorText/FormErrorText.d.ts +3 -0
- package/dist/build-components/FormErrorText/FormErrorTextProps.generated.d.ts +61 -0
- package/dist/build-components/FormProvider/FormProvider.d.ts +11 -0
- package/dist/build-components/FormProvider/FormProviderProps.generated.d.ts +55 -0
- package/dist/build-components/FormSubmitButton/FormSubmitButton.d.ts +2 -0
- package/dist/build-components/FormSubmitButton/FormSubmitButtonProps.generated.d.ts +73 -0
- package/dist/build-components/GlobalProvider/GlobalContext.d.ts +28 -0
- package/dist/build-components/GlobalProvider/GlobalProvider.d.ts +5 -0
- package/dist/build-components/GlobalProvider/GlobalProviderProps.generated.d.ts +60 -0
- package/dist/build-components/GlobalProvider/globalProviderUtils.d.ts +37 -0
- package/dist/build-components/GlobalProvider/useGlobalNavigation.d.ts +19 -0
- package/dist/build-components/OnboardButton/OnboardButtonProps.generated.d.ts +17 -10
- package/dist/build-components/OnboardFooter/OnboardFooterProps.generated.d.ts +1 -1
- package/dist/build-components/OnboardProvider/OnboardProviderProps.generated.d.ts +2 -0
- package/dist/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.d.ts +1 -1
- package/dist/build-components/OnboardTitle/OnboardTitleProps.generated.d.ts +1 -1
- package/dist/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.d.ts +1 -1
- package/dist/build-components/PaywallFooter/PaywallFooterProps.generated.d.ts +1 -1
- package/dist/build-components/PaywallProvider/PaywallProviderProps.generated.d.ts +2 -0
- package/dist/build-components/PriceTag/PriceTagProps.generated.d.ts +1 -1
- package/dist/build-components/Pricing/PricingProps.generated.d.ts +1 -1
- package/dist/build-components/Promo/PromoProps.generated.d.ts +1 -1
- package/dist/build-components/SystemButton/SystemButton.d.ts +7 -0
- package/dist/build-components/SystemButton/SystemButtonProps.generated.d.ts +71 -0
- package/dist/build-components/SystemButton/usePlacementButtonEvents.d.ts +28 -0
- package/dist/build-components/TermsProvider/TermsProvider.d.ts +5 -0
- package/dist/build-components/TermsProvider/TermsProviderProps.generated.d.ts +55 -0
- package/dist/build-components/Text/TextProps.generated.d.ts +1 -1
- package/dist/build-components/WebView/WebView.d.ts +2 -0
- package/dist/build-components/WebView/WebViewProps.generated.d.ts +59 -0
- package/dist/build-components/index.d.ts +10 -1
- package/dist/build-components/patterns.generated.d.ts +5507 -1543
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.web.cjs.js +5 -5
- package/dist/index.web.cjs.js.map +1 -1
- package/dist/index.web.d.ts +1 -0
- package/dist/index.web.esm.js +4 -4
- package/dist/index.web.esm.js.map +1 -1
- package/dist/mockOS/context/MockOSContextBase.d.ts +3 -1
- package/dist/styles.css +1 -1
- package/dist/types/PreviewConfig.d.ts +1 -1
- package/package.json +2 -1
- package/src/RenderPage.tsx +4 -1
- package/src/assets/meta.json +1 -1
- package/src/assets/prompt-scheme-onboard.generated.ts +1 -1
- package/src/assets/prompt-scheme-paywall.generated.ts +1 -1
- package/src/assets/samples/getSamples.ts +7 -0
- package/src/assets/samples/global-onboard-flow.json +729 -0
- package/src/assets/samples/paywall-1.json +2 -2
- package/src/assets/samples/terms-and-privacy-no-form.json +108 -0
- package/src/assets/samples/terms-and-privacy.json +130 -0
- package/src/attributes-editor/FallbackLocalizationField.tsx +725 -250
- package/src/build-components/BIcon/BIconProps.generated.ts +1 -1
- package/src/build-components/Checkbox/Checkbox.tsx +165 -0
- package/src/build-components/Checkbox/CheckboxProps.generated.ts +84 -0
- package/src/build-components/Checkbox/pattern.json +83 -0
- package/src/build-components/CountDown/CountDownProps.generated.ts +1 -1
- package/src/build-components/FormCheckbox/FormCheckbox.tsx +106 -0
- package/src/build-components/FormCheckbox/FormCheckboxProps.generated.ts +86 -0
- package/src/build-components/FormCheckbox/pattern.json +39 -0
- package/src/build-components/FormErrorText/FormErrorText.tsx +34 -0
- package/src/build-components/FormErrorText/FormErrorTextProps.generated.ts +78 -0
- package/src/build-components/FormErrorText/pattern.json +21 -0
- package/src/build-components/FormProvider/FormProvider.tsx +131 -0
- package/src/build-components/FormProvider/FormProviderProps.generated.ts +72 -0
- package/src/build-components/FormProvider/pattern.json +33 -0
- package/src/build-components/FormSubmitButton/FormSubmitButton.tsx +49 -0
- package/src/build-components/FormSubmitButton/FormSubmitButtonProps.generated.ts +91 -0
- package/src/build-components/FormSubmitButton/pattern.json +33 -0
- package/src/build-components/GlobalProvider/GlobalContext.ts +48 -0
- package/src/build-components/GlobalProvider/GlobalProvider.tsx +191 -0
- package/src/build-components/GlobalProvider/GlobalProviderProps.generated.ts +78 -0
- package/src/build-components/GlobalProvider/globalProviderUtils.ts +163 -0
- package/src/build-components/GlobalProvider/pattern.json +55 -0
- package/src/build-components/GlobalProvider/useGlobalNavigation.ts +70 -0
- package/src/build-components/OnboardButton/OnboardButton.tsx +41 -36
- package/src/build-components/OnboardButton/OnboardButtonProps.generated.ts +17 -10
- package/src/build-components/OnboardButton/pattern.json +5 -4
- package/src/build-components/OnboardFooter/OnboardFooterProps.generated.ts +1 -1
- package/src/build-components/OnboardProvider/OnboardProviderProps.generated.ts +12 -0
- package/src/build-components/OnboardProvider/pattern.json +9 -1
- package/src/build-components/OnboardSubtitle/OnboardSubtitleProps.generated.ts +1 -1
- package/src/build-components/OnboardTitle/OnboardTitleProps.generated.ts +1 -1
- package/src/build-components/PaywallCloseButton/PaywallCloseButtonProps.generated.ts +1 -1
- package/src/build-components/PaywallFooter/PaywallFooterProps.generated.ts +1 -1
- package/src/build-components/PaywallProvider/PaywallProviderProps.generated.ts +12 -0
- package/src/build-components/PaywallProvider/pattern.json +9 -1
- package/src/build-components/PriceTag/PriceTagProps.generated.ts +1 -1
- package/src/build-components/Pricing/PricingProps.generated.ts +1 -1
- package/src/build-components/Promo/PromoProps.generated.ts +1 -1
- package/src/build-components/RenderNode.generated.tsx +46 -1
- package/src/build-components/SystemButton/SystemButton.tsx +71 -0
- package/src/build-components/SystemButton/SystemButtonProps.generated.ts +89 -0
- package/src/build-components/SystemButton/pattern.json +61 -0
- package/src/build-components/SystemButton/usePlacementButtonEvents.ts +101 -0
- package/src/build-components/TermsProvider/TermsProvider.tsx +45 -0
- package/src/build-components/TermsProvider/TermsProviderProps.generated.ts +82 -0
- package/src/build-components/TermsProvider/pattern.json +35 -0
- package/src/build-components/Text/Text.tsx +5 -4
- package/src/build-components/Text/TextProps.generated.ts +1 -1
- package/src/build-components/Text/pattern.json +2 -1
- package/src/build-components/WebView/WebView.tsx +149 -0
- package/src/build-components/WebView/WebViewProps.generated.ts +76 -0
- package/src/build-components/WebView/pattern.json +71 -0
- package/src/build-components/index.ts +45 -0
- package/src/build-components/patterns.generated.ts +5712 -1559
- package/src/hooks/useSafeAreaViewStyle.ts +1 -11
- package/src/index.web.ts +3 -0
- package/src/mockOS/components/MockOSRouter.tsx +21 -0
- package/src/mockOS/context/MockOSContext.tsx +7 -0
- package/src/mockOS/context/MockOSContextBase.ts +4 -0
- package/src/styles/components/_checkbox.scss +19 -0
- package/src/styles/components/_global-provider.scss +131 -0
- package/src/styles/components/_webview.scss +52 -0
- package/src/styles/index.scss +4 -0
- package/src/types/PreviewConfig.ts +19 -0
- package/src/utils/analyseNodeByPatterns.ts +5 -2
- package/src/utils/extractViewStyle/extractViewStyle.ts +0 -1
- package/src/utils/projectColors.ts +4 -0
- package/src/utils/useMergedStyle.ts +1 -1
- package/src/.DS_Store +0 -0
- package/src/assets/.DS_Store +0 -0
|
@@ -34,10 +34,6 @@ export function useSafeAreaViewStyle(
|
|
|
34
34
|
const statusBarOverrideTranslucent = useRenderStore(
|
|
35
35
|
(s) => s.statusBarOverrideTranslucent,
|
|
36
36
|
);
|
|
37
|
-
const navBarOverrideTranslucent = useRenderStore(
|
|
38
|
-
(s) => s.navBarOverrideTranslucent,
|
|
39
|
-
);
|
|
40
|
-
|
|
41
37
|
return useMemo(() => {
|
|
42
38
|
if (!enabled) return baseStyle;
|
|
43
39
|
|
|
@@ -74,11 +70,5 @@ export function useSafeAreaViewStyle(
|
|
|
74
70
|
width: subtractInset(baseStyle.width ?? '100%', horizontal),
|
|
75
71
|
height: subtractInset(baseStyle.height ?? '100%', vertical),
|
|
76
72
|
};
|
|
77
|
-
}, [
|
|
78
|
-
enabled,
|
|
79
|
-
baseStyle,
|
|
80
|
-
device,
|
|
81
|
-
statusBarOverrideTranslucent,
|
|
82
|
-
navBarOverrideTranslucent,
|
|
83
|
-
]);
|
|
73
|
+
}, [enabled, baseStyle, device, statusBarOverrideTranslucent]);
|
|
84
74
|
}
|
package/src/index.web.ts
CHANGED
|
@@ -12,6 +12,9 @@ export * from './build-components';
|
|
|
12
12
|
export { default as useNode } from './build-components/useNode';
|
|
13
13
|
export type { EventObjectGenerated } from './build-components/OnboardButton/OnboardButtonProps.generated';
|
|
14
14
|
|
|
15
|
+
// Host-app API: store (tema vb. builder içinde kullanılır; örn. tema toggle'ı builder'a senkronize etmek için).
|
|
16
|
+
export { useRenderStore } from './store';
|
|
17
|
+
|
|
15
18
|
// Host-app API: let parent apps inject a custom "Text" field renderer.
|
|
16
19
|
import { useRenderStore } from './store';
|
|
17
20
|
import type { ComponentType } from 'react';
|
|
@@ -35,6 +35,17 @@ function OnboardComponent() {
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
function TermsComponent() {
|
|
39
|
+
return (
|
|
40
|
+
<div className="mockos-screen mockos-screen--terms">
|
|
41
|
+
<div className="mockos-screen__heading">Terms and Privacy</div>
|
|
42
|
+
<div className="mockos-screen__text">
|
|
43
|
+
Please review our terms and conditions.
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
38
49
|
function SubscriptionComponent() {
|
|
39
50
|
return (
|
|
40
51
|
<div className="mockos-screen mockos-screen--subscription">
|
|
@@ -68,6 +79,14 @@ function ScreenRenderer({
|
|
|
68
79
|
return <>{children}</>;
|
|
69
80
|
}
|
|
70
81
|
|
|
82
|
+
// app_launch flow: terms route shows builder (terms UI); onboard route shows default onboard screen
|
|
83
|
+
if (children && childrenBelongTo === 'app' && currentRoute === 'terms') {
|
|
84
|
+
return <>{children}</>;
|
|
85
|
+
}
|
|
86
|
+
if (childrenBelongTo === 'app' && currentRoute === 'onboard') {
|
|
87
|
+
return <OnboardComponent />;
|
|
88
|
+
}
|
|
89
|
+
|
|
71
90
|
// Otherwise render default screens based on route
|
|
72
91
|
switch (currentRoute) {
|
|
73
92
|
case 'launchscreen':
|
|
@@ -78,6 +97,8 @@ function ScreenRenderer({
|
|
|
78
97
|
return <HomeComponent />;
|
|
79
98
|
case 'onboard':
|
|
80
99
|
return <OnboardComponent />;
|
|
100
|
+
case 'terms':
|
|
101
|
+
return <TermsComponent />;
|
|
81
102
|
case 'subscription':
|
|
82
103
|
return <SubscriptionComponent />;
|
|
83
104
|
default:
|
|
@@ -80,8 +80,12 @@ export function MockOSProvider({
|
|
|
80
80
|
const [navigationStack, setNavigationStack] = useState<RouteStackItem[]>([
|
|
81
81
|
{ route: defaultRoute, timestamp: Date.now() },
|
|
82
82
|
]);
|
|
83
|
+
const [termsAccepted, setTermsAccepted] = useState(false);
|
|
83
84
|
|
|
84
85
|
const navigation = useCallback((route: RouteType) => {
|
|
86
|
+
if (route === 'terms') {
|
|
87
|
+
setTermsAccepted(false);
|
|
88
|
+
}
|
|
85
89
|
setCurrentRoute(route);
|
|
86
90
|
|
|
87
91
|
// If navigating from launchscreen and the last item in stack is launchscreen,
|
|
@@ -179,6 +183,8 @@ export function MockOSProvider({
|
|
|
179
183
|
navigation,
|
|
180
184
|
goBack,
|
|
181
185
|
navigationStack,
|
|
186
|
+
termsAccepted,
|
|
187
|
+
setTermsAccepted,
|
|
182
188
|
}),
|
|
183
189
|
[
|
|
184
190
|
permission,
|
|
@@ -188,6 +194,7 @@ export function MockOSProvider({
|
|
|
188
194
|
navigation,
|
|
189
195
|
goBack,
|
|
190
196
|
navigationStack,
|
|
197
|
+
termsAccepted,
|
|
191
198
|
],
|
|
192
199
|
);
|
|
193
200
|
|
|
@@ -6,6 +6,7 @@ export type RouteType =
|
|
|
6
6
|
| 'app'
|
|
7
7
|
| 'home'
|
|
8
8
|
| 'onboard'
|
|
9
|
+
| 'terms'
|
|
9
10
|
| 'subscription';
|
|
10
11
|
|
|
11
12
|
export interface RouteStackItem {
|
|
@@ -26,6 +27,9 @@ export interface MockOSContextValue {
|
|
|
26
27
|
navigation: (route: RouteType) => void;
|
|
27
28
|
goBack: () => boolean;
|
|
28
29
|
navigationStack: RouteStackItem[];
|
|
30
|
+
// Terms and Privacy sample: accept button proceeds only when checkbox is checked
|
|
31
|
+
termsAccepted: boolean;
|
|
32
|
+
setTermsAccepted: (value: boolean) => void;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
/**
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/* Checkbox build-component: layout in CSS; only dynamic values (sizes, colors) inline. */
|
|
2
|
+
|
|
3
|
+
.rb-checkbox {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: flex-start;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.rb-checkbox__box {
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
display: flex;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
align-items: center;
|
|
13
|
+
margin-top: 2px;
|
|
14
|
+
transition: all 0.2s;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.rb-checkbox__label {
|
|
18
|
+
flex: 1;
|
|
19
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/* Page transition animations for GlobalProvider (platform-style names). */
|
|
2
|
+
$page-transition-duration: 0.3s;
|
|
3
|
+
$page-transition-easing: cubic-bezier(0.32, 0.72, 0, 1);
|
|
4
|
+
|
|
5
|
+
.global-provider-page {
|
|
6
|
+
flex: 1;
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
height: 100%;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.global-provider-page--none {
|
|
14
|
+
animation: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.global-provider-page--default {
|
|
18
|
+
animation: global-provider-fade $page-transition-duration $page-transition-easing;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.global-provider-page--fade {
|
|
22
|
+
animation: global-provider-fade $page-transition-duration $page-transition-easing;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@keyframes global-provider-fade {
|
|
26
|
+
from {
|
|
27
|
+
opacity: 0;
|
|
28
|
+
}
|
|
29
|
+
to {
|
|
30
|
+
opacity: 1;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.global-provider-page--fade_from_bottom {
|
|
35
|
+
animation: global-provider-fade-from-bottom $page-transition-duration $page-transition-easing;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@keyframes global-provider-fade-from-bottom {
|
|
39
|
+
from {
|
|
40
|
+
opacity: 0;
|
|
41
|
+
transform: translateY(24px);
|
|
42
|
+
}
|
|
43
|
+
to {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
transform: translateY(0);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.global-provider-page--fade_from_right {
|
|
50
|
+
animation: global-provider-fade-from-right $page-transition-duration $page-transition-easing;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@keyframes global-provider-fade-from-right {
|
|
54
|
+
from {
|
|
55
|
+
opacity: 0;
|
|
56
|
+
transform: translateX(24px);
|
|
57
|
+
}
|
|
58
|
+
to {
|
|
59
|
+
opacity: 1;
|
|
60
|
+
transform: translateX(0);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.global-provider-page--reveal_from_bottom {
|
|
65
|
+
animation: global-provider-reveal-from-bottom $page-transition-duration $page-transition-easing;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@keyframes global-provider-reveal-from-bottom {
|
|
69
|
+
from {
|
|
70
|
+
opacity: 0;
|
|
71
|
+
transform: translateY(100%);
|
|
72
|
+
}
|
|
73
|
+
to {
|
|
74
|
+
opacity: 1;
|
|
75
|
+
transform: translateY(0);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.global-provider-page--scale_from_center {
|
|
80
|
+
animation: global-provider-scale-from-center $page-transition-duration $page-transition-easing;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@keyframes global-provider-scale-from-center {
|
|
84
|
+
from {
|
|
85
|
+
opacity: 0;
|
|
86
|
+
transform: scale(0.95);
|
|
87
|
+
}
|
|
88
|
+
to {
|
|
89
|
+
opacity: 1;
|
|
90
|
+
transform: scale(1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.global-provider-page--slide_from_right {
|
|
95
|
+
animation: global-provider-slide-from-right $page-transition-duration $page-transition-easing;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@keyframes global-provider-slide-from-right {
|
|
99
|
+
from {
|
|
100
|
+
transform: translateX(100%);
|
|
101
|
+
}
|
|
102
|
+
to {
|
|
103
|
+
transform: translateX(0);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.global-provider-page--slide_from_left {
|
|
108
|
+
animation: global-provider-slide-from-left $page-transition-duration $page-transition-easing;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@keyframes global-provider-slide-from-left {
|
|
112
|
+
from {
|
|
113
|
+
transform: translateX(-100%);
|
|
114
|
+
}
|
|
115
|
+
to {
|
|
116
|
+
transform: translateX(0);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.global-provider-page--slide_from_bottom {
|
|
121
|
+
animation: global-provider-slide-from-bottom $page-transition-duration $page-transition-easing;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@keyframes global-provider-slide-from-bottom {
|
|
125
|
+
from {
|
|
126
|
+
transform: translateY(100%);
|
|
127
|
+
}
|
|
128
|
+
to {
|
|
129
|
+
transform: translateY(0);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* WebView build-component: web-only layout/structure. Numeric values come from pattern defaults via CSS vars (shared with native). */
|
|
2
|
+
|
|
3
|
+
.rb-webview {
|
|
4
|
+
position: relative;
|
|
5
|
+
overflow: hidden;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.rb-webview__overlay {
|
|
9
|
+
position: absolute;
|
|
10
|
+
inset: 0;
|
|
11
|
+
z-index: 1;
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.rb-webview__loader {
|
|
18
|
+
width: var(--rb-webview-loader-size, 30px);
|
|
19
|
+
height: var(--rb-webview-loader-size, 30px);
|
|
20
|
+
border-radius: 50%;
|
|
21
|
+
border: var(--rb-webview-loader-border-width, 3px) solid transparent;
|
|
22
|
+
border-top-color: currentColor;
|
|
23
|
+
animation: rb-webview-spin var(--rb-webview-loader-duration, 1s) linear infinite;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@keyframes rb-webview-spin {
|
|
27
|
+
0% {
|
|
28
|
+
transform: rotate(0deg);
|
|
29
|
+
}
|
|
30
|
+
100% {
|
|
31
|
+
transform: rotate(360deg);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.rb-webview__frame-wrapper {
|
|
36
|
+
display: flex;
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
position: relative;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.rb-webview__frame-inner {
|
|
42
|
+
flex: 1;
|
|
43
|
+
min-height: 0;
|
|
44
|
+
position: relative;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.rb-webview__frame {
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: 100%;
|
|
50
|
+
border: none;
|
|
51
|
+
transition: opacity 0.3s ease-in-out;
|
|
52
|
+
}
|
package/src/styles/index.scss
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
@use './components/mockos-router';
|
|
17
17
|
@use './components/bottom-bar';
|
|
18
18
|
@use './components/onboard';
|
|
19
|
+
@use './components/global-provider';
|
|
20
|
+
|
|
21
|
+
@use './components/webview';
|
|
22
|
+
@use './components/checkbox';
|
|
19
23
|
|
|
20
24
|
@use './modals/modal-shell';
|
|
21
25
|
@use './modals/add-component';
|
|
@@ -57,6 +57,12 @@ export type LocalizationKey =
|
|
|
57
57
|
| 'base.builder.paywall.footer.description'
|
|
58
58
|
| 'base.builder.paywall.btnPrivacy'
|
|
59
59
|
| 'base.builder.paywall.btnTerms'
|
|
60
|
+
// terms and privacy
|
|
61
|
+
| 'view.terms.header.title'
|
|
62
|
+
| 'view.terms.accept.button'
|
|
63
|
+
| 'view.terms.checkbox.label'
|
|
64
|
+
| 'view.terms.error.must_accept'
|
|
65
|
+
| 'form.error.validation_required'
|
|
60
66
|
| (string & {});
|
|
61
67
|
|
|
62
68
|
export type Localication = Record<
|
|
@@ -138,6 +144,12 @@ export const defaultLocalization: Localication = {
|
|
|
138
144
|
'By clicking continue, you will be accepting the Terms of service and privacy policy',
|
|
139
145
|
'base.builder.paywall.btnPrivacy': 'Privacy Policy',
|
|
140
146
|
'base.builder.paywall.btnTerms': 'Terms of Service',
|
|
147
|
+
// terms and privacy
|
|
148
|
+
'view.terms.header.title': 'Terms & Privacy',
|
|
149
|
+
'view.terms.accept.button': 'Accept',
|
|
150
|
+
'view.terms.checkbox.label': 'I accept the terms and privacy policy',
|
|
151
|
+
'view.terms.error.must_accept': 'You must accept to continue',
|
|
152
|
+
'form.error.validation_required': 'Please complete the required fields.',
|
|
141
153
|
},
|
|
142
154
|
tr: {
|
|
143
155
|
// paywall – period
|
|
@@ -181,6 +193,13 @@ export const defaultLocalization: Localication = {
|
|
|
181
193
|
'Devam et butonuna tıklayarak Hizmet Şartları ve Gizlilik Politikası kabul etmiş olursunuz',
|
|
182
194
|
'base.builder.paywall.btnPrivacy': 'Gizlilik Politikası',
|
|
183
195
|
'base.builder.paywall.btnTerms': 'Hizmet Şartları',
|
|
196
|
+
|
|
197
|
+
// terms and privacy
|
|
198
|
+
'view.terms.header.title': 'Gizlilik ve Hizmet Şartları',
|
|
199
|
+
'view.terms.accept.button': 'Kabul Et',
|
|
200
|
+
'view.terms.checkbox.label': 'Gizlilik ve Hizmet Şartlarını kabul ediyorum',
|
|
201
|
+
'view.terms.error.must_accept': 'Kabul etmeden geçiş yapılamaz',
|
|
202
|
+
'form.error.validation_required': 'Lütfen zorunlu alanları tamamlayın.',
|
|
184
203
|
},
|
|
185
204
|
};
|
|
186
205
|
|
|
@@ -432,12 +432,15 @@ function validateAttributesByPattern(
|
|
|
432
432
|
if (
|
|
433
433
|
attrName === 'title' ||
|
|
434
434
|
attrName === 'description' ||
|
|
435
|
-
attrName === 'testID'
|
|
435
|
+
attrName === 'testID' ||
|
|
436
|
+
attrName === 'animation'
|
|
436
437
|
) {
|
|
437
438
|
const res = validateAttributeValue(
|
|
438
439
|
pattern.pattern.type,
|
|
439
440
|
attrValue,
|
|
440
|
-
attrName === 'testID'
|
|
441
|
+
attrName === 'testID' || attrName === 'animation'
|
|
442
|
+
? 'string'
|
|
443
|
+
: attrName,
|
|
441
444
|
joinPath(path, attrName),
|
|
442
445
|
);
|
|
443
446
|
if (!res.valid) return res;
|
|
@@ -8,7 +8,6 @@ import type { BaseSize } from '../../types/PreviewConfig';
|
|
|
8
8
|
import { parseSize } from '../../size-matters';
|
|
9
9
|
import { parseColor } from '../parseColor';
|
|
10
10
|
import { getStyleBag, toAttributeRecord } from '../attributeStyle';
|
|
11
|
-
import { getDefaultDevice } from '../getDevices';
|
|
12
11
|
|
|
13
12
|
export type ExtractViewStyleOptions = {
|
|
14
13
|
projectColors?: ProjectColors;
|
|
@@ -27,6 +27,8 @@ export const defaultProjectColors: ProjectColors = {
|
|
|
27
27
|
ONBOARD_SUBTITLE: '#44454D',
|
|
28
28
|
ONBOARD_BUTTON_SECONDARY_TEXT: '#81838F',
|
|
29
29
|
ONBOARD_FOOTER_TEXT: '#81838F',
|
|
30
|
+
CHECKBOX_ACTIVE_COLOR: '#0066FF',
|
|
31
|
+
FORM_ERROR_TEXT_COLOR: '#B91C1C',
|
|
30
32
|
},
|
|
31
33
|
dark: {
|
|
32
34
|
TEXT: '#E9EBF9',
|
|
@@ -37,6 +39,8 @@ export const defaultProjectColors: ProjectColors = {
|
|
|
37
39
|
ONBOARD_SUBTITLE: '#C7C7C7',
|
|
38
40
|
ONBOARD_BUTTON_SECONDARY_TEXT: '#A9AAAC',
|
|
39
41
|
ONBOARD_FOOTER_TEXT: '#A2A4B1',
|
|
42
|
+
CHECKBOX_ACTIVE_COLOR: '#0066FF',
|
|
43
|
+
FORM_ERROR_TEXT_COLOR: '#B91C1C',
|
|
40
44
|
},
|
|
41
45
|
},
|
|
42
46
|
};
|
|
@@ -6,7 +6,6 @@ const EMPTY_STYLE: CSSProperties = {};
|
|
|
6
6
|
export function useMergedStyle(
|
|
7
7
|
...args: (CSSProperties | undefined | null | false)[]
|
|
8
8
|
): CSSProperties {
|
|
9
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps -- spread args intentionally
|
|
10
9
|
return useMemo(() => {
|
|
11
10
|
const validStyles = args.filter((arg): arg is CSSProperties => !!arg);
|
|
12
11
|
|
|
@@ -14,5 +13,6 @@ export function useMergedStyle(
|
|
|
14
13
|
if (validStyles.length === 1) return validStyles[0];
|
|
15
14
|
|
|
16
15
|
return Object.assign({}, ...validStyles);
|
|
16
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
17
17
|
}, args);
|
|
18
18
|
}
|
package/src/.DS_Store
DELETED
|
Binary file
|
package/src/assets/.DS_Store
DELETED
|
Binary file
|