@hook-sdk/template 0.4.0 → 0.4.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/index.cjs +322 -245
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +322 -245
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -402,14 +402,8 @@ function useInstallPrompt(slug) {
|
|
|
402
402
|
setIsDismissedPermanent(true);
|
|
403
403
|
track("pwa_install_permanent_dismiss", { slug, platform, prior_skip_count: skipCount });
|
|
404
404
|
}, [slug, platform, skipCount]);
|
|
405
|
-
const
|
|
406
|
-
|
|
407
|
-
track("pwa_install_redirect_to_safari", { slug });
|
|
408
|
-
const url = `safari-https://${location.host}${location.pathname}${location.search}${location.hash}`;
|
|
409
|
-
try {
|
|
410
|
-
window.location.href = url;
|
|
411
|
-
} catch {
|
|
412
|
-
}
|
|
405
|
+
const showIOSOtherHelp = useCallback2(() => {
|
|
406
|
+
track("pwa_install_ios_other_help_shown", { slug });
|
|
413
407
|
}, [slug]);
|
|
414
408
|
const copyLink = useCallback2(async () => {
|
|
415
409
|
if (typeof navigator === "undefined" || typeof location === "undefined") return;
|
|
@@ -449,7 +443,7 @@ function useInstallPrompt(slug) {
|
|
|
449
443
|
promptInstall,
|
|
450
444
|
dismissSession,
|
|
451
445
|
dismissPermanent,
|
|
452
|
-
|
|
446
|
+
showIOSOtherHelp,
|
|
453
447
|
copyLink,
|
|
454
448
|
reset
|
|
455
449
|
};
|
|
@@ -515,7 +509,17 @@ var INSTALL_COPY = {
|
|
|
515
509
|
ctaSecondary: "Copiar link",
|
|
516
510
|
copiedToast: "Link copiado. Cole no Safari.",
|
|
517
511
|
skip: "Continuar mesmo assim",
|
|
518
|
-
skipPermanent: "N\xE3o me pergunte mais"
|
|
512
|
+
skipPermanent: "N\xE3o me pergunte mais",
|
|
513
|
+
help: {
|
|
514
|
+
step1: {
|
|
515
|
+
title: "Toque em \u22EF ou no bot\xE3o compartilhar",
|
|
516
|
+
subtitle: "Na barra inferior ou superior do navegador"
|
|
517
|
+
},
|
|
518
|
+
step2: {
|
|
519
|
+
title: 'Escolha "Abrir no Safari"',
|
|
520
|
+
subtitle: "O app vai abrir direto no Safari"
|
|
521
|
+
}
|
|
522
|
+
}
|
|
519
523
|
},
|
|
520
524
|
inApp: {
|
|
521
525
|
instagram: {
|
|
@@ -908,22 +912,70 @@ function Step({ n, icon, children }) {
|
|
|
908
912
|
);
|
|
909
913
|
}
|
|
910
914
|
|
|
911
|
-
// src/components/InstallGate/
|
|
915
|
+
// src/components/InstallGate/Step.tsx
|
|
912
916
|
import { jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
917
|
+
function Step2({
|
|
918
|
+
n,
|
|
919
|
+
title,
|
|
920
|
+
subtitle,
|
|
921
|
+
visual
|
|
922
|
+
}) {
|
|
923
|
+
return /* @__PURE__ */ jsxs5(
|
|
924
|
+
"div",
|
|
925
|
+
{
|
|
926
|
+
style: {
|
|
927
|
+
display: "flex",
|
|
928
|
+
alignItems: "flex-start",
|
|
929
|
+
gap: 12,
|
|
930
|
+
marginBottom: 16,
|
|
931
|
+
textAlign: "left"
|
|
932
|
+
},
|
|
933
|
+
children: [
|
|
934
|
+
/* @__PURE__ */ jsx11(
|
|
935
|
+
"div",
|
|
936
|
+
{
|
|
937
|
+
style: {
|
|
938
|
+
width: 32,
|
|
939
|
+
height: 32,
|
|
940
|
+
borderRadius: 10,
|
|
941
|
+
background: "var(--hook-color-primary)",
|
|
942
|
+
color: "#fff",
|
|
943
|
+
display: "flex",
|
|
944
|
+
alignItems: "center",
|
|
945
|
+
justifyContent: "center",
|
|
946
|
+
fontSize: 15,
|
|
947
|
+
fontWeight: 700,
|
|
948
|
+
flexShrink: 0
|
|
949
|
+
},
|
|
950
|
+
children: n
|
|
951
|
+
}
|
|
952
|
+
),
|
|
953
|
+
/* @__PURE__ */ jsxs5("div", { style: { flex: 1 }, children: [
|
|
954
|
+
/* @__PURE__ */ jsx11("p", { style: { margin: 0, fontSize: 15, fontWeight: 500, color: "#111", lineHeight: 1.3 }, children: title }),
|
|
955
|
+
subtitle && /* @__PURE__ */ jsx11("p", { style: { margin: "4px 0 0 0", fontSize: 13, color: "#777" }, children: subtitle }),
|
|
956
|
+
visual
|
|
957
|
+
] })
|
|
958
|
+
]
|
|
959
|
+
}
|
|
960
|
+
);
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
// src/components/InstallGate/variants/IOSafariVariant.tsx
|
|
964
|
+
import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
913
965
|
function IOSafariVariant({
|
|
914
966
|
state,
|
|
915
967
|
actions
|
|
916
968
|
}) {
|
|
917
969
|
const copy = INSTALL_COPY.iosSafari;
|
|
918
970
|
const showPermanent = shouldShowPermanentOption(state);
|
|
919
|
-
return /* @__PURE__ */
|
|
920
|
-
/* @__PURE__ */
|
|
971
|
+
return /* @__PURE__ */ jsxs6(InstallSplash, { title: copy.title, subtitle: copy.subtitle, children: [
|
|
972
|
+
/* @__PURE__ */ jsx12(
|
|
921
973
|
Step2,
|
|
922
974
|
{
|
|
923
975
|
n: 1,
|
|
924
976
|
title: copy.step1.title,
|
|
925
977
|
subtitle: copy.step1.subtitle,
|
|
926
|
-
visual: /* @__PURE__ */
|
|
978
|
+
visual: /* @__PURE__ */ jsx12(
|
|
927
979
|
"div",
|
|
928
980
|
{
|
|
929
981
|
style: {
|
|
@@ -935,17 +987,17 @@ function IOSafariVariant({
|
|
|
935
987
|
padding: "12px 0",
|
|
936
988
|
marginTop: 8
|
|
937
989
|
},
|
|
938
|
-
children: /* @__PURE__ */
|
|
990
|
+
children: /* @__PURE__ */ jsx12(ShareIconIOS, { size: 32, style: { color: "var(--hook-color-primary)" } })
|
|
939
991
|
}
|
|
940
992
|
)
|
|
941
993
|
}
|
|
942
994
|
),
|
|
943
|
-
/* @__PURE__ */
|
|
995
|
+
/* @__PURE__ */ jsx12(
|
|
944
996
|
Step2,
|
|
945
997
|
{
|
|
946
998
|
n: 2,
|
|
947
999
|
title: copy.step2.title,
|
|
948
|
-
visual: /* @__PURE__ */
|
|
1000
|
+
visual: /* @__PURE__ */ jsxs6(
|
|
949
1001
|
"div",
|
|
950
1002
|
{
|
|
951
1003
|
style: {
|
|
@@ -958,19 +1010,19 @@ function IOSafariVariant({
|
|
|
958
1010
|
marginTop: 8
|
|
959
1011
|
},
|
|
960
1012
|
children: [
|
|
961
|
-
/* @__PURE__ */
|
|
962
|
-
/* @__PURE__ */
|
|
1013
|
+
/* @__PURE__ */ jsx12(SquarePlusIcon, { size: 22, style: { color: "#555" } }),
|
|
1014
|
+
/* @__PURE__ */ jsx12("span", { style: { fontSize: 14, color: "#333" }, children: copy.step2.iconLabel })
|
|
963
1015
|
]
|
|
964
1016
|
}
|
|
965
1017
|
)
|
|
966
1018
|
}
|
|
967
1019
|
),
|
|
968
|
-
/* @__PURE__ */
|
|
1020
|
+
/* @__PURE__ */ jsx12(
|
|
969
1021
|
Step2,
|
|
970
1022
|
{
|
|
971
1023
|
n: 3,
|
|
972
1024
|
title: copy.step3.title,
|
|
973
|
-
visual: /* @__PURE__ */
|
|
1025
|
+
visual: /* @__PURE__ */ jsx12(
|
|
974
1026
|
"div",
|
|
975
1027
|
{
|
|
976
1028
|
style: {
|
|
@@ -981,7 +1033,7 @@ function IOSafariVariant({
|
|
|
981
1033
|
padding: "10px 14px",
|
|
982
1034
|
marginTop: 8
|
|
983
1035
|
},
|
|
984
|
-
children: /* @__PURE__ */
|
|
1036
|
+
children: /* @__PURE__ */ jsx12(
|
|
985
1037
|
"span",
|
|
986
1038
|
{
|
|
987
1039
|
style: {
|
|
@@ -996,7 +1048,7 @@ function IOSafariVariant({
|
|
|
996
1048
|
)
|
|
997
1049
|
}
|
|
998
1050
|
),
|
|
999
|
-
/* @__PURE__ */
|
|
1051
|
+
/* @__PURE__ */ jsx12(
|
|
1000
1052
|
"button",
|
|
1001
1053
|
{
|
|
1002
1054
|
"data-testid": "install-prompt-skip-session",
|
|
@@ -1006,7 +1058,7 @@ function IOSafariVariant({
|
|
|
1006
1058
|
children: copy.skip
|
|
1007
1059
|
}
|
|
1008
1060
|
),
|
|
1009
|
-
showPermanent && /* @__PURE__ */
|
|
1061
|
+
showPermanent && /* @__PURE__ */ jsx12(
|
|
1010
1062
|
"button",
|
|
1011
1063
|
{
|
|
1012
1064
|
"data-testid": "install-prompt-skip-permanent",
|
|
@@ -1018,55 +1070,10 @@ function IOSafariVariant({
|
|
|
1018
1070
|
)
|
|
1019
1071
|
] });
|
|
1020
1072
|
}
|
|
1021
|
-
function Step2({
|
|
1022
|
-
n,
|
|
1023
|
-
title,
|
|
1024
|
-
subtitle,
|
|
1025
|
-
visual
|
|
1026
|
-
}) {
|
|
1027
|
-
return /* @__PURE__ */ jsxs5(
|
|
1028
|
-
"div",
|
|
1029
|
-
{
|
|
1030
|
-
style: {
|
|
1031
|
-
display: "flex",
|
|
1032
|
-
alignItems: "flex-start",
|
|
1033
|
-
gap: 12,
|
|
1034
|
-
marginBottom: 16,
|
|
1035
|
-
textAlign: "left"
|
|
1036
|
-
},
|
|
1037
|
-
children: [
|
|
1038
|
-
/* @__PURE__ */ jsx11(
|
|
1039
|
-
"div",
|
|
1040
|
-
{
|
|
1041
|
-
style: {
|
|
1042
|
-
width: 32,
|
|
1043
|
-
height: 32,
|
|
1044
|
-
borderRadius: 10,
|
|
1045
|
-
background: "var(--hook-color-primary)",
|
|
1046
|
-
color: "#fff",
|
|
1047
|
-
display: "flex",
|
|
1048
|
-
alignItems: "center",
|
|
1049
|
-
justifyContent: "center",
|
|
1050
|
-
fontSize: 15,
|
|
1051
|
-
fontWeight: 700,
|
|
1052
|
-
flexShrink: 0
|
|
1053
|
-
},
|
|
1054
|
-
children: n
|
|
1055
|
-
}
|
|
1056
|
-
),
|
|
1057
|
-
/* @__PURE__ */ jsxs5("div", { style: { flex: 1 }, children: [
|
|
1058
|
-
/* @__PURE__ */ jsx11("p", { style: { margin: 0, fontSize: 15, fontWeight: 500, color: "#111", lineHeight: 1.3 }, children: title }),
|
|
1059
|
-
subtitle && /* @__PURE__ */ jsx11("p", { style: { margin: "4px 0 0 0", fontSize: 13, color: "#777" }, children: subtitle }),
|
|
1060
|
-
visual
|
|
1061
|
-
] })
|
|
1062
|
-
]
|
|
1063
|
-
}
|
|
1064
|
-
);
|
|
1065
|
-
}
|
|
1066
1073
|
|
|
1067
1074
|
// src/components/InstallGate/variants/IOSOtherVariant.tsx
|
|
1068
1075
|
import { useState as useState4 } from "react";
|
|
1069
|
-
import { jsx as
|
|
1076
|
+
import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1070
1077
|
function IOSOtherVariant({
|
|
1071
1078
|
state,
|
|
1072
1079
|
actions
|
|
@@ -1074,23 +1081,29 @@ function IOSOtherVariant({
|
|
|
1074
1081
|
const copy = INSTALL_COPY.iosOther;
|
|
1075
1082
|
const showPermanent = shouldShowPermanentOption(state);
|
|
1076
1083
|
const [copied, setCopied] = useState4(false);
|
|
1084
|
+
const [helpOpen, setHelpOpen] = useState4(false);
|
|
1077
1085
|
const handleCopy = async () => {
|
|
1078
1086
|
await actions.copyLink();
|
|
1079
1087
|
setCopied(true);
|
|
1080
1088
|
setTimeout(() => setCopied(false), 2e3);
|
|
1081
1089
|
};
|
|
1082
|
-
|
|
1083
|
-
|
|
1090
|
+
const handleShowHelp = () => {
|
|
1091
|
+
if (!helpOpen) actions.showIOSOtherHelp();
|
|
1092
|
+
setHelpOpen(true);
|
|
1093
|
+
};
|
|
1094
|
+
return /* @__PURE__ */ jsxs7(InstallSplash, { title: copy.title, subtitle: copy.subtitle, children: [
|
|
1095
|
+
/* @__PURE__ */ jsx13(
|
|
1084
1096
|
"button",
|
|
1085
1097
|
{
|
|
1086
1098
|
"data-testid": "install-prompt-cta-ios-other-primary",
|
|
1087
1099
|
type: "button",
|
|
1088
|
-
onClick:
|
|
1100
|
+
onClick: handleShowHelp,
|
|
1101
|
+
"aria-expanded": helpOpen,
|
|
1089
1102
|
style: primaryButtonStyle,
|
|
1090
1103
|
children: copy.ctaPrimary
|
|
1091
1104
|
}
|
|
1092
1105
|
),
|
|
1093
|
-
/* @__PURE__ */
|
|
1106
|
+
/* @__PURE__ */ jsx13(
|
|
1094
1107
|
"button",
|
|
1095
1108
|
{
|
|
1096
1109
|
"data-testid": "install-prompt-cta-ios-other-secondary",
|
|
@@ -1100,7 +1113,71 @@ function IOSOtherVariant({
|
|
|
1100
1113
|
children: copied ? copy.copiedToast : copy.ctaSecondary
|
|
1101
1114
|
}
|
|
1102
1115
|
),
|
|
1103
|
-
/* @__PURE__ */
|
|
1116
|
+
helpOpen && /* @__PURE__ */ jsxs7(
|
|
1117
|
+
"div",
|
|
1118
|
+
{
|
|
1119
|
+
"data-testid": "install-prompt-ios-other-help",
|
|
1120
|
+
style: { marginTop: 20, textAlign: "left" },
|
|
1121
|
+
children: [
|
|
1122
|
+
/* @__PURE__ */ jsx13(
|
|
1123
|
+
Step2,
|
|
1124
|
+
{
|
|
1125
|
+
n: 1,
|
|
1126
|
+
title: copy.help.step1.title,
|
|
1127
|
+
subtitle: copy.help.step1.subtitle,
|
|
1128
|
+
visual: /* @__PURE__ */ jsx13(
|
|
1129
|
+
"div",
|
|
1130
|
+
{
|
|
1131
|
+
style: {
|
|
1132
|
+
display: "flex",
|
|
1133
|
+
justifyContent: "center",
|
|
1134
|
+
alignItems: "center",
|
|
1135
|
+
background: "#f5f5f7",
|
|
1136
|
+
borderRadius: 12,
|
|
1137
|
+
padding: "12px 0",
|
|
1138
|
+
marginTop: 8
|
|
1139
|
+
},
|
|
1140
|
+
children: /* @__PURE__ */ jsx13(
|
|
1141
|
+
MenuDotsHorizontalIcon,
|
|
1142
|
+
{
|
|
1143
|
+
size: 28,
|
|
1144
|
+
style: { color: "var(--hook-color-primary)" }
|
|
1145
|
+
}
|
|
1146
|
+
)
|
|
1147
|
+
}
|
|
1148
|
+
)
|
|
1149
|
+
}
|
|
1150
|
+
),
|
|
1151
|
+
/* @__PURE__ */ jsx13(
|
|
1152
|
+
Step2,
|
|
1153
|
+
{
|
|
1154
|
+
n: 2,
|
|
1155
|
+
title: copy.help.step2.title,
|
|
1156
|
+
subtitle: copy.help.step2.subtitle,
|
|
1157
|
+
visual: /* @__PURE__ */ jsxs7(
|
|
1158
|
+
"div",
|
|
1159
|
+
{
|
|
1160
|
+
style: {
|
|
1161
|
+
display: "flex",
|
|
1162
|
+
alignItems: "center",
|
|
1163
|
+
gap: 10,
|
|
1164
|
+
background: "#f5f5f7",
|
|
1165
|
+
borderRadius: 12,
|
|
1166
|
+
padding: "12px 14px",
|
|
1167
|
+
marginTop: 8
|
|
1168
|
+
},
|
|
1169
|
+
children: [
|
|
1170
|
+
/* @__PURE__ */ jsx13(ExternalLinkIcon, { size: 22, style: { color: "#555" } }),
|
|
1171
|
+
/* @__PURE__ */ jsx13("span", { style: { fontSize: 14, color: "#333" }, children: "Abrir no Safari" })
|
|
1172
|
+
]
|
|
1173
|
+
}
|
|
1174
|
+
)
|
|
1175
|
+
}
|
|
1176
|
+
)
|
|
1177
|
+
]
|
|
1178
|
+
}
|
|
1179
|
+
),
|
|
1180
|
+
/* @__PURE__ */ jsx13(
|
|
1104
1181
|
"button",
|
|
1105
1182
|
{
|
|
1106
1183
|
"data-testid": "install-prompt-skip-session",
|
|
@@ -1110,7 +1187,7 @@ function IOSOtherVariant({
|
|
|
1110
1187
|
children: copy.skip
|
|
1111
1188
|
}
|
|
1112
1189
|
),
|
|
1113
|
-
showPermanent && /* @__PURE__ */
|
|
1190
|
+
showPermanent && /* @__PURE__ */ jsx13(
|
|
1114
1191
|
"button",
|
|
1115
1192
|
{
|
|
1116
1193
|
"data-testid": "install-prompt-skip-permanent",
|
|
@@ -1125,7 +1202,7 @@ function IOSOtherVariant({
|
|
|
1125
1202
|
|
|
1126
1203
|
// src/components/InstallGate/variants/InAppBrowserVariant.tsx
|
|
1127
1204
|
import { useState as useState5 } from "react";
|
|
1128
|
-
import { jsx as
|
|
1205
|
+
import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1129
1206
|
function InAppBrowserVariant({
|
|
1130
1207
|
state,
|
|
1131
1208
|
actions
|
|
@@ -1141,10 +1218,10 @@ function InAppBrowserVariant({
|
|
|
1141
1218
|
setTimeout(() => setCopied(false), 2e3);
|
|
1142
1219
|
};
|
|
1143
1220
|
const DotsIcon = app === "facebook" || app === "telegram" ? MenuDotsVerticalIcon : MenuDotsHorizontalIcon;
|
|
1144
|
-
return /* @__PURE__ */
|
|
1145
|
-
/* @__PURE__ */
|
|
1146
|
-
/* @__PURE__ */
|
|
1147
|
-
/* @__PURE__ */
|
|
1221
|
+
return /* @__PURE__ */ jsxs8(InstallSplash, { title: appCopy.title, children: [
|
|
1222
|
+
/* @__PURE__ */ jsx14(Step3, { n: 1, icon: /* @__PURE__ */ jsx14(DotsIcon, { size: 20 }), children: appCopy.step1 }),
|
|
1223
|
+
/* @__PURE__ */ jsx14(Step3, { n: 2, icon: /* @__PURE__ */ jsx14(ExternalLinkIcon, { size: 18 }), children: appCopy.step2 }),
|
|
1224
|
+
/* @__PURE__ */ jsx14(
|
|
1148
1225
|
"button",
|
|
1149
1226
|
{
|
|
1150
1227
|
"data-testid": "install-prompt-cta-inapp-copy",
|
|
@@ -1154,7 +1231,7 @@ function InAppBrowserVariant({
|
|
|
1154
1231
|
children: copied ? copy.copiedToast : copy.copy
|
|
1155
1232
|
}
|
|
1156
1233
|
),
|
|
1157
|
-
/* @__PURE__ */
|
|
1234
|
+
/* @__PURE__ */ jsx14(
|
|
1158
1235
|
"button",
|
|
1159
1236
|
{
|
|
1160
1237
|
"data-testid": "install-prompt-skip-session",
|
|
@@ -1164,7 +1241,7 @@ function InAppBrowserVariant({
|
|
|
1164
1241
|
children: copy.skip
|
|
1165
1242
|
}
|
|
1166
1243
|
),
|
|
1167
|
-
showPermanent && /* @__PURE__ */
|
|
1244
|
+
showPermanent && /* @__PURE__ */ jsx14(
|
|
1168
1245
|
"button",
|
|
1169
1246
|
{
|
|
1170
1247
|
"data-testid": "install-prompt-skip-permanent",
|
|
@@ -1181,7 +1258,7 @@ function Step3({
|
|
|
1181
1258
|
icon,
|
|
1182
1259
|
children
|
|
1183
1260
|
}) {
|
|
1184
|
-
return /* @__PURE__ */
|
|
1261
|
+
return /* @__PURE__ */ jsxs8(
|
|
1185
1262
|
"div",
|
|
1186
1263
|
{
|
|
1187
1264
|
style: {
|
|
@@ -1195,7 +1272,7 @@ function Step3({
|
|
|
1195
1272
|
textAlign: "left"
|
|
1196
1273
|
},
|
|
1197
1274
|
children: [
|
|
1198
|
-
/* @__PURE__ */
|
|
1275
|
+
/* @__PURE__ */ jsx14(
|
|
1199
1276
|
"div",
|
|
1200
1277
|
{
|
|
1201
1278
|
style: {
|
|
@@ -1214,15 +1291,15 @@ function Step3({
|
|
|
1214
1291
|
children: n
|
|
1215
1292
|
}
|
|
1216
1293
|
),
|
|
1217
|
-
/* @__PURE__ */
|
|
1218
|
-
/* @__PURE__ */
|
|
1294
|
+
/* @__PURE__ */ jsx14("div", { style: { flex: 1, fontSize: 14, color: "#333" }, children }),
|
|
1295
|
+
/* @__PURE__ */ jsx14("div", { style: { color: "#888", flexShrink: 0 }, children: icon })
|
|
1219
1296
|
]
|
|
1220
1297
|
}
|
|
1221
1298
|
);
|
|
1222
1299
|
}
|
|
1223
1300
|
|
|
1224
1301
|
// src/components/InstallGate/variants/DesktopVariant.tsx
|
|
1225
|
-
import { jsx as
|
|
1302
|
+
import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1226
1303
|
function DesktopVariant({
|
|
1227
1304
|
state,
|
|
1228
1305
|
actions
|
|
@@ -1231,21 +1308,21 @@ function DesktopVariant({
|
|
|
1231
1308
|
const copy = INSTALL_COPY.desktop;
|
|
1232
1309
|
const iconUrl = theme.icon_url || theme.logo_url || null;
|
|
1233
1310
|
if (!state.isInstallable) return null;
|
|
1234
|
-
return /* @__PURE__ */
|
|
1311
|
+
return /* @__PURE__ */ jsxs9(
|
|
1235
1312
|
"div",
|
|
1236
1313
|
{
|
|
1237
1314
|
role: "complementary",
|
|
1238
1315
|
"aria-label": copy.title,
|
|
1239
1316
|
style: bannerStyle,
|
|
1240
1317
|
children: [
|
|
1241
|
-
iconUrl ? /* @__PURE__ */
|
|
1318
|
+
iconUrl ? /* @__PURE__ */ jsx15(
|
|
1242
1319
|
"img",
|
|
1243
1320
|
{
|
|
1244
1321
|
src: iconUrl,
|
|
1245
1322
|
alt: "",
|
|
1246
1323
|
style: { width: 40, height: 40, borderRadius: 10, objectFit: "cover", flexShrink: 0 }
|
|
1247
1324
|
}
|
|
1248
|
-
) : /* @__PURE__ */
|
|
1325
|
+
) : /* @__PURE__ */ jsx15(
|
|
1249
1326
|
"div",
|
|
1250
1327
|
{
|
|
1251
1328
|
style: {
|
|
@@ -1264,11 +1341,11 @@ function DesktopVariant({
|
|
|
1264
1341
|
children: name.charAt(0).toUpperCase()
|
|
1265
1342
|
}
|
|
1266
1343
|
),
|
|
1267
|
-
/* @__PURE__ */
|
|
1268
|
-
/* @__PURE__ */
|
|
1269
|
-
/* @__PURE__ */
|
|
1344
|
+
/* @__PURE__ */ jsxs9("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
1345
|
+
/* @__PURE__ */ jsx15("div", { style: { fontSize: 14, fontWeight: 600, color: "#111" }, children: copy.title }),
|
|
1346
|
+
/* @__PURE__ */ jsx15("div", { style: { fontSize: 12, color: "#666" }, children: copy.subtitle })
|
|
1270
1347
|
] }),
|
|
1271
|
-
/* @__PURE__ */
|
|
1348
|
+
/* @__PURE__ */ jsxs9(
|
|
1272
1349
|
"button",
|
|
1273
1350
|
{
|
|
1274
1351
|
"data-testid": "install-prompt-cta-desktop",
|
|
@@ -1289,12 +1366,12 @@ function DesktopVariant({
|
|
|
1289
1366
|
flexShrink: 0
|
|
1290
1367
|
},
|
|
1291
1368
|
children: [
|
|
1292
|
-
/* @__PURE__ */
|
|
1369
|
+
/* @__PURE__ */ jsx15(DownloadIcon, { size: 14 }),
|
|
1293
1370
|
copy.cta
|
|
1294
1371
|
]
|
|
1295
1372
|
}
|
|
1296
1373
|
),
|
|
1297
|
-
/* @__PURE__ */
|
|
1374
|
+
/* @__PURE__ */ jsx15(
|
|
1298
1375
|
"button",
|
|
1299
1376
|
{
|
|
1300
1377
|
"data-testid": "install-prompt-desktop-close",
|
|
@@ -1309,7 +1386,7 @@ function DesktopVariant({
|
|
|
1309
1386
|
padding: 4,
|
|
1310
1387
|
flexShrink: 0
|
|
1311
1388
|
},
|
|
1312
|
-
children: /* @__PURE__ */
|
|
1389
|
+
children: /* @__PURE__ */ jsx15(XIcon, { size: 16 })
|
|
1313
1390
|
}
|
|
1314
1391
|
)
|
|
1315
1392
|
]
|
|
@@ -1333,7 +1410,7 @@ var bannerStyle = {
|
|
|
1333
1410
|
};
|
|
1334
1411
|
|
|
1335
1412
|
// src/components/InstallGate/InstallGate.tsx
|
|
1336
|
-
import { Fragment as Fragment4, jsx as
|
|
1413
|
+
import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1337
1414
|
function InstallGate({ children }) {
|
|
1338
1415
|
const { slug, features_enabled } = useTemplateConfig();
|
|
1339
1416
|
const enabled = features_enabled.includes("install_prompt");
|
|
@@ -1354,35 +1431,35 @@ function InstallGate({ children }) {
|
|
|
1354
1431
|
variant: installState.variant
|
|
1355
1432
|
});
|
|
1356
1433
|
}, [shouldBlock, slug, installState.variant, installState.platform, installState.iosBrowser, installState.androidBrowser, installState.inAppApp]);
|
|
1357
|
-
if (!enabled) return /* @__PURE__ */
|
|
1358
|
-
if (installState.isInstalled) return /* @__PURE__ */
|
|
1434
|
+
if (!enabled) return /* @__PURE__ */ jsx16(Fragment4, { children });
|
|
1435
|
+
if (installState.isInstalled) return /* @__PURE__ */ jsx16(Fragment4, { children });
|
|
1359
1436
|
if (installState.variant === "desktop") {
|
|
1360
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsxs10(Fragment4, { children: [
|
|
1361
1438
|
children,
|
|
1362
|
-
/* @__PURE__ */
|
|
1439
|
+
/* @__PURE__ */ jsx16(DesktopVariant, { state: installState, actions: installState })
|
|
1363
1440
|
] });
|
|
1364
1441
|
}
|
|
1365
|
-
if (!shouldBlock) return /* @__PURE__ */
|
|
1442
|
+
if (!shouldBlock) return /* @__PURE__ */ jsx16(Fragment4, { children });
|
|
1366
1443
|
switch (installState.variant) {
|
|
1367
1444
|
case "android-native":
|
|
1368
|
-
return /* @__PURE__ */
|
|
1445
|
+
return /* @__PURE__ */ jsx16(AndroidNativeVariant, { state: installState, actions: installState });
|
|
1369
1446
|
case "android-manual":
|
|
1370
|
-
return /* @__PURE__ */
|
|
1447
|
+
return /* @__PURE__ */ jsx16(AndroidManualVariant, { state: installState, actions: installState });
|
|
1371
1448
|
case "ios-safari":
|
|
1372
|
-
return /* @__PURE__ */
|
|
1449
|
+
return /* @__PURE__ */ jsx16(IOSafariVariant, { state: installState, actions: installState });
|
|
1373
1450
|
case "ios-other":
|
|
1374
|
-
return /* @__PURE__ */
|
|
1451
|
+
return /* @__PURE__ */ jsx16(IOSOtherVariant, { state: installState, actions: installState });
|
|
1375
1452
|
case "in-app":
|
|
1376
|
-
return /* @__PURE__ */
|
|
1453
|
+
return /* @__PURE__ */ jsx16(InAppBrowserVariant, { state: installState, actions: installState });
|
|
1377
1454
|
case "none":
|
|
1378
1455
|
default:
|
|
1379
|
-
return /* @__PURE__ */
|
|
1456
|
+
return /* @__PURE__ */ jsx16(Fragment4, { children });
|
|
1380
1457
|
}
|
|
1381
1458
|
}
|
|
1382
1459
|
|
|
1383
1460
|
// src/defaults/ErrorBoundary.tsx
|
|
1384
1461
|
import { Component } from "react";
|
|
1385
|
-
import { Fragment as Fragment5, jsx as
|
|
1462
|
+
import { Fragment as Fragment5, jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1386
1463
|
var ErrorBoundary = class extends Component {
|
|
1387
1464
|
state = { error: null };
|
|
1388
1465
|
static getDerivedStateFromError(error) {
|
|
@@ -1393,12 +1470,12 @@ var ErrorBoundary = class extends Component {
|
|
|
1393
1470
|
}
|
|
1394
1471
|
render() {
|
|
1395
1472
|
if (this.state.error) {
|
|
1396
|
-
return this.props.fallback ?? /* @__PURE__ */
|
|
1397
|
-
/* @__PURE__ */
|
|
1398
|
-
/* @__PURE__ */
|
|
1473
|
+
return this.props.fallback ?? /* @__PURE__ */ jsxs11("div", { role: "alert", style: { padding: 24, textAlign: "center" }, children: [
|
|
1474
|
+
/* @__PURE__ */ jsx17("h2", { children: "Algo deu errado" }),
|
|
1475
|
+
/* @__PURE__ */ jsx17("p", { style: { opacity: 0.7 }, children: "Recarregue a p\xE1gina pra tentar de novo." })
|
|
1399
1476
|
] });
|
|
1400
1477
|
}
|
|
1401
|
-
return /* @__PURE__ */
|
|
1478
|
+
return /* @__PURE__ */ jsx17(Fragment5, { children: this.props.children });
|
|
1402
1479
|
}
|
|
1403
1480
|
};
|
|
1404
1481
|
|
|
@@ -1485,13 +1562,13 @@ function useLoginForm() {
|
|
|
1485
1562
|
}
|
|
1486
1563
|
|
|
1487
1564
|
// src/internal/GoogleSignInButton.tsx
|
|
1488
|
-
import { jsx as
|
|
1565
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1489
1566
|
function GoogleSignInButton({
|
|
1490
1567
|
onClick,
|
|
1491
1568
|
testId = "oauth-google",
|
|
1492
1569
|
label = "Continuar com Google"
|
|
1493
1570
|
}) {
|
|
1494
|
-
return /* @__PURE__ */
|
|
1571
|
+
return /* @__PURE__ */ jsxs12(
|
|
1495
1572
|
"button",
|
|
1496
1573
|
{
|
|
1497
1574
|
"data-testid": testId,
|
|
@@ -1514,36 +1591,36 @@ function GoogleSignInButton({
|
|
|
1514
1591
|
fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
1515
1592
|
},
|
|
1516
1593
|
children: [
|
|
1517
|
-
/* @__PURE__ */
|
|
1594
|
+
/* @__PURE__ */ jsx18(GoogleGlyph, {}),
|
|
1518
1595
|
label
|
|
1519
1596
|
]
|
|
1520
1597
|
}
|
|
1521
1598
|
);
|
|
1522
1599
|
}
|
|
1523
1600
|
function GoogleGlyph() {
|
|
1524
|
-
return /* @__PURE__ */
|
|
1525
|
-
/* @__PURE__ */
|
|
1601
|
+
return /* @__PURE__ */ jsxs12("svg", { width: "18", height: "18", viewBox: "0 0 18 18", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: [
|
|
1602
|
+
/* @__PURE__ */ jsx18(
|
|
1526
1603
|
"path",
|
|
1527
1604
|
{
|
|
1528
1605
|
d: "M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844a4.14 4.14 0 0 1-1.796 2.716v2.259h2.908c1.702-1.567 2.684-3.874 2.684-6.615z",
|
|
1529
1606
|
fill: "#4285F4"
|
|
1530
1607
|
}
|
|
1531
1608
|
),
|
|
1532
|
-
/* @__PURE__ */
|
|
1609
|
+
/* @__PURE__ */ jsx18(
|
|
1533
1610
|
"path",
|
|
1534
1611
|
{
|
|
1535
1612
|
d: "M9 18c2.43 0 4.467-.806 5.956-2.18l-2.908-2.259c-.806.54-1.837.86-3.048.86-2.344 0-4.328-1.584-5.036-3.711H.957v2.332A8.997 8.997 0 0 0 9 18z",
|
|
1536
1613
|
fill: "#34A853"
|
|
1537
1614
|
}
|
|
1538
1615
|
),
|
|
1539
|
-
/* @__PURE__ */
|
|
1616
|
+
/* @__PURE__ */ jsx18(
|
|
1540
1617
|
"path",
|
|
1541
1618
|
{
|
|
1542
1619
|
d: "M3.964 10.71A5.41 5.41 0 0 1 3.682 9c0-.593.102-1.17.282-1.71V4.958H.957A8.996 8.996 0 0 0 0 9c0 1.452.348 2.827.957 4.042l3.007-2.332z",
|
|
1543
1620
|
fill: "#FBBC05"
|
|
1544
1621
|
}
|
|
1545
1622
|
),
|
|
1546
|
-
/* @__PURE__ */
|
|
1623
|
+
/* @__PURE__ */ jsx18(
|
|
1547
1624
|
"path",
|
|
1548
1625
|
{
|
|
1549
1626
|
d: "M9 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.463.891 11.426 0 9 0A8.997 8.997 0 0 0 .957 4.958L3.964 7.29C4.672 5.163 6.656 3.58 9 3.58z",
|
|
@@ -1555,7 +1632,7 @@ function GoogleGlyph() {
|
|
|
1555
1632
|
|
|
1556
1633
|
// src/internal/OAuthErrorBanner.tsx
|
|
1557
1634
|
import { useEffect as useEffect5, useState as useState7 } from "react";
|
|
1558
|
-
import { jsx as
|
|
1635
|
+
import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1559
1636
|
var ERROR_MESSAGES = {
|
|
1560
1637
|
invalid_state: "Sess\xE3o expirou, tente de novo.",
|
|
1561
1638
|
access_denied: "Voc\xEA cancelou o login com Google.",
|
|
@@ -1581,7 +1658,7 @@ function OAuthErrorBanner() {
|
|
|
1581
1658
|
}, [code]);
|
|
1582
1659
|
if (!code) return null;
|
|
1583
1660
|
const message = ERROR_MESSAGES[code] ?? "N\xE3o conseguimos conectar ao Google. Tente de novo.";
|
|
1584
|
-
return /* @__PURE__ */
|
|
1661
|
+
return /* @__PURE__ */ jsxs13(
|
|
1585
1662
|
"div",
|
|
1586
1663
|
{
|
|
1587
1664
|
role: "alert",
|
|
@@ -1596,7 +1673,7 @@ function OAuthErrorBanner() {
|
|
|
1596
1673
|
},
|
|
1597
1674
|
children: [
|
|
1598
1675
|
message,
|
|
1599
|
-
/* @__PURE__ */
|
|
1676
|
+
/* @__PURE__ */ jsx19(
|
|
1600
1677
|
"button",
|
|
1601
1678
|
{
|
|
1602
1679
|
type: "button",
|
|
@@ -1621,16 +1698,16 @@ function OAuthErrorBanner() {
|
|
|
1621
1698
|
}
|
|
1622
1699
|
|
|
1623
1700
|
// src/defaults/DefaultLoginScreen.tsx
|
|
1624
|
-
import { jsx as
|
|
1701
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1625
1702
|
function DefaultLoginScreen({ onNavigate }) {
|
|
1626
1703
|
const { name } = useTemplateConfig();
|
|
1627
1704
|
const f = useLoginForm();
|
|
1628
|
-
return /* @__PURE__ */
|
|
1629
|
-
/* @__PURE__ */
|
|
1630
|
-
/* @__PURE__ */
|
|
1631
|
-
/* @__PURE__ */
|
|
1632
|
-
/* @__PURE__ */
|
|
1633
|
-
/* @__PURE__ */
|
|
1705
|
+
return /* @__PURE__ */ jsxs14("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto" }, children: [
|
|
1706
|
+
/* @__PURE__ */ jsx20("h1", { style: { marginBottom: 8 }, children: name }),
|
|
1707
|
+
/* @__PURE__ */ jsx20("p", { style: { opacity: 0.7, marginBottom: 24 }, children: "Entre na sua conta" }),
|
|
1708
|
+
/* @__PURE__ */ jsx20(OAuthErrorBanner, {}),
|
|
1709
|
+
/* @__PURE__ */ jsx20(GoogleSignInButton, { onClick: f.loginWithGoogle, testId: "login-oauth-google" }),
|
|
1710
|
+
/* @__PURE__ */ jsxs14(
|
|
1634
1711
|
"div",
|
|
1635
1712
|
{
|
|
1636
1713
|
"aria-hidden": "true",
|
|
@@ -1643,19 +1720,19 @@ function DefaultLoginScreen({ onNavigate }) {
|
|
|
1643
1720
|
fontSize: 12
|
|
1644
1721
|
},
|
|
1645
1722
|
children: [
|
|
1646
|
-
/* @__PURE__ */
|
|
1723
|
+
/* @__PURE__ */ jsx20("span", { style: { flex: 1, height: 1, background: "rgba(0,0,0,0.1)" } }),
|
|
1647
1724
|
"ou",
|
|
1648
|
-
/* @__PURE__ */
|
|
1725
|
+
/* @__PURE__ */ jsx20("span", { style: { flex: 1, height: 1, background: "rgba(0,0,0,0.1)" } })
|
|
1649
1726
|
]
|
|
1650
1727
|
}
|
|
1651
1728
|
),
|
|
1652
|
-
/* @__PURE__ */
|
|
1729
|
+
/* @__PURE__ */ jsxs14("form", { onSubmit: (e) => {
|
|
1653
1730
|
e.preventDefault();
|
|
1654
1731
|
void f.submit();
|
|
1655
1732
|
}, children: [
|
|
1656
|
-
/* @__PURE__ */
|
|
1733
|
+
/* @__PURE__ */ jsxs14("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1657
1734
|
"E-mail",
|
|
1658
|
-
/* @__PURE__ */
|
|
1735
|
+
/* @__PURE__ */ jsx20(
|
|
1659
1736
|
"input",
|
|
1660
1737
|
{
|
|
1661
1738
|
"data-testid": "login-email",
|
|
@@ -1665,11 +1742,11 @@ function DefaultLoginScreen({ onNavigate }) {
|
|
|
1665
1742
|
style: { display: "block", width: "100%" }
|
|
1666
1743
|
}
|
|
1667
1744
|
),
|
|
1668
|
-
f.emailError && /* @__PURE__ */
|
|
1745
|
+
f.emailError && /* @__PURE__ */ jsx20("small", { style: { color: "#c00" }, children: f.emailError })
|
|
1669
1746
|
] }),
|
|
1670
|
-
/* @__PURE__ */
|
|
1747
|
+
/* @__PURE__ */ jsxs14("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1671
1748
|
"Senha",
|
|
1672
|
-
/* @__PURE__ */
|
|
1749
|
+
/* @__PURE__ */ jsx20(
|
|
1673
1750
|
"input",
|
|
1674
1751
|
{
|
|
1675
1752
|
"data-testid": "login-password",
|
|
@@ -1679,10 +1756,10 @@ function DefaultLoginScreen({ onNavigate }) {
|
|
|
1679
1756
|
style: { display: "block", width: "100%" }
|
|
1680
1757
|
}
|
|
1681
1758
|
),
|
|
1682
|
-
f.passwordError && /* @__PURE__ */
|
|
1759
|
+
f.passwordError && /* @__PURE__ */ jsx20("small", { style: { color: "#c00" }, children: f.passwordError })
|
|
1683
1760
|
] }),
|
|
1684
|
-
f.error && /* @__PURE__ */
|
|
1685
|
-
/* @__PURE__ */
|
|
1761
|
+
f.error && /* @__PURE__ */ jsx20("div", { role: "alert", style: { color: "#c00", marginBottom: 12 }, children: f.error.message }),
|
|
1762
|
+
/* @__PURE__ */ jsx20(
|
|
1686
1763
|
"button",
|
|
1687
1764
|
{
|
|
1688
1765
|
"data-testid": "login-submit",
|
|
@@ -1701,9 +1778,9 @@ function DefaultLoginScreen({ onNavigate }) {
|
|
|
1701
1778
|
}
|
|
1702
1779
|
)
|
|
1703
1780
|
] }),
|
|
1704
|
-
/* @__PURE__ */
|
|
1705
|
-
/* @__PURE__ */
|
|
1706
|
-
/* @__PURE__ */
|
|
1781
|
+
/* @__PURE__ */ jsxs14("div", { style: { marginTop: 16, display: "flex", justifyContent: "space-between" }, children: [
|
|
1782
|
+
/* @__PURE__ */ jsx20("button", { "data-testid": "login-goto-signup", type: "button", onClick: () => onNavigate("signup"), style: { background: "none", border: "none", cursor: "pointer" }, children: "Criar conta" }),
|
|
1783
|
+
/* @__PURE__ */ jsx20("button", { "data-testid": "login-goto-forgot", type: "button", onClick: () => onNavigate("forgot"), style: { background: "none", border: "none", cursor: "pointer" }, children: "Esqueci senha" })
|
|
1707
1784
|
] })
|
|
1708
1785
|
] });
|
|
1709
1786
|
}
|
|
@@ -1769,16 +1846,16 @@ function useSignupForm() {
|
|
|
1769
1846
|
}
|
|
1770
1847
|
|
|
1771
1848
|
// src/defaults/DefaultSignupScreen.tsx
|
|
1772
|
-
import { jsx as
|
|
1849
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1773
1850
|
function DefaultSignupScreen({ onNavigate }) {
|
|
1774
1851
|
const { name } = useTemplateConfig();
|
|
1775
1852
|
const f = useSignupForm();
|
|
1776
|
-
return /* @__PURE__ */
|
|
1777
|
-
/* @__PURE__ */
|
|
1778
|
-
/* @__PURE__ */
|
|
1779
|
-
/* @__PURE__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
/* @__PURE__ */
|
|
1853
|
+
return /* @__PURE__ */ jsxs15("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto" }, children: [
|
|
1854
|
+
/* @__PURE__ */ jsx21("h1", { style: { marginBottom: 8 }, children: name }),
|
|
1855
|
+
/* @__PURE__ */ jsx21("p", { style: { opacity: 0.7, marginBottom: 24 }, children: "Criar sua conta" }),
|
|
1856
|
+
/* @__PURE__ */ jsx21(OAuthErrorBanner, {}),
|
|
1857
|
+
/* @__PURE__ */ jsx21(GoogleSignInButton, { onClick: f.loginWithGoogle, testId: "signup-oauth-google" }),
|
|
1858
|
+
/* @__PURE__ */ jsxs15(
|
|
1782
1859
|
"div",
|
|
1783
1860
|
{
|
|
1784
1861
|
"aria-hidden": "true",
|
|
@@ -1791,35 +1868,35 @@ function DefaultSignupScreen({ onNavigate }) {
|
|
|
1791
1868
|
fontSize: 12
|
|
1792
1869
|
},
|
|
1793
1870
|
children: [
|
|
1794
|
-
/* @__PURE__ */
|
|
1871
|
+
/* @__PURE__ */ jsx21("span", { style: { flex: 1, height: 1, background: "rgba(0,0,0,0.1)" } }),
|
|
1795
1872
|
"ou",
|
|
1796
|
-
/* @__PURE__ */
|
|
1873
|
+
/* @__PURE__ */ jsx21("span", { style: { flex: 1, height: 1, background: "rgba(0,0,0,0.1)" } })
|
|
1797
1874
|
]
|
|
1798
1875
|
}
|
|
1799
1876
|
),
|
|
1800
|
-
/* @__PURE__ */
|
|
1877
|
+
/* @__PURE__ */ jsxs15("form", { onSubmit: (e) => {
|
|
1801
1878
|
e.preventDefault();
|
|
1802
1879
|
void f.submit();
|
|
1803
1880
|
}, children: [
|
|
1804
|
-
/* @__PURE__ */
|
|
1881
|
+
/* @__PURE__ */ jsxs15("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1805
1882
|
"Nome",
|
|
1806
|
-
/* @__PURE__ */
|
|
1807
|
-
f.nameError && /* @__PURE__ */
|
|
1883
|
+
/* @__PURE__ */ jsx21("input", { "data-testid": "signup-name", value: f.name, onChange: (e) => f.setName(e.target.value), style: { display: "block", width: "100%" } }),
|
|
1884
|
+
f.nameError && /* @__PURE__ */ jsx21("small", { style: { color: "#c00" }, children: f.nameError })
|
|
1808
1885
|
] }),
|
|
1809
|
-
/* @__PURE__ */
|
|
1886
|
+
/* @__PURE__ */ jsxs15("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1810
1887
|
"E-mail",
|
|
1811
|
-
/* @__PURE__ */
|
|
1812
|
-
f.emailError && /* @__PURE__ */
|
|
1888
|
+
/* @__PURE__ */ jsx21("input", { "data-testid": "signup-email", type: "email", value: f.email, onChange: (e) => f.setEmail(e.target.value), style: { display: "block", width: "100%" } }),
|
|
1889
|
+
f.emailError && /* @__PURE__ */ jsx21("small", { style: { color: "#c00" }, children: f.emailError })
|
|
1813
1890
|
] }),
|
|
1814
|
-
/* @__PURE__ */
|
|
1891
|
+
/* @__PURE__ */ jsxs15("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1815
1892
|
"Senha",
|
|
1816
|
-
/* @__PURE__ */
|
|
1817
|
-
f.passwordError && /* @__PURE__ */
|
|
1893
|
+
/* @__PURE__ */ jsx21("input", { "data-testid": "signup-password", type: "password", value: f.password, onChange: (e) => f.setPassword(e.target.value), style: { display: "block", width: "100%" } }),
|
|
1894
|
+
f.passwordError && /* @__PURE__ */ jsx21("small", { style: { color: "#c00" }, children: f.passwordError })
|
|
1818
1895
|
] }),
|
|
1819
|
-
f.error && /* @__PURE__ */
|
|
1820
|
-
/* @__PURE__ */
|
|
1896
|
+
f.error && /* @__PURE__ */ jsx21("div", { role: "alert", style: { color: "#c00", marginBottom: 12 }, children: f.error.message }),
|
|
1897
|
+
/* @__PURE__ */ jsx21("button", { "data-testid": "signup-submit", type: "submit", disabled: !f.canSubmit, style: { width: "100%", padding: 12, background: "var(--hook-color-primary)", color: "#fff", border: "none", borderRadius: 8, opacity: f.canSubmit ? 1 : 0.5 }, children: f.submitting ? "Criando..." : "Criar conta" })
|
|
1821
1898
|
] }),
|
|
1822
|
-
/* @__PURE__ */
|
|
1899
|
+
/* @__PURE__ */ jsx21("div", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsx21("button", { "data-testid": "signup-goto-login", type: "button", onClick: () => onNavigate("login"), style: { background: "none", border: "none", cursor: "pointer" }, children: "J\xE1 tem conta? Entre" }) })
|
|
1823
1900
|
] });
|
|
1824
1901
|
}
|
|
1825
1902
|
|
|
@@ -1867,33 +1944,33 @@ function useForgotForm() {
|
|
|
1867
1944
|
}
|
|
1868
1945
|
|
|
1869
1946
|
// src/defaults/DefaultForgotScreen.tsx
|
|
1870
|
-
import { jsx as
|
|
1947
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1871
1948
|
function DefaultForgotScreen({ onNavigate }) {
|
|
1872
1949
|
const { name } = useTemplateConfig();
|
|
1873
1950
|
const f = useForgotForm();
|
|
1874
1951
|
if (f.sent) {
|
|
1875
|
-
return /* @__PURE__ */
|
|
1876
|
-
/* @__PURE__ */
|
|
1877
|
-
/* @__PURE__ */
|
|
1878
|
-
/* @__PURE__ */
|
|
1952
|
+
return /* @__PURE__ */ jsxs16("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto", textAlign: "center" }, children: [
|
|
1953
|
+
/* @__PURE__ */ jsx22("h1", { children: "Verifique seu e-mail" }),
|
|
1954
|
+
/* @__PURE__ */ jsx22("p", { style: { opacity: 0.7 }, children: "Enviamos um link pra redefinir sua senha." }),
|
|
1955
|
+
/* @__PURE__ */ jsx22("button", { "data-testid": "forgot-back-login", type: "button", onClick: () => onNavigate("login"), children: "Voltar pro login" })
|
|
1879
1956
|
] });
|
|
1880
1957
|
}
|
|
1881
|
-
return /* @__PURE__ */
|
|
1882
|
-
/* @__PURE__ */
|
|
1883
|
-
/* @__PURE__ */
|
|
1884
|
-
/* @__PURE__ */
|
|
1958
|
+
return /* @__PURE__ */ jsxs16("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto" }, children: [
|
|
1959
|
+
/* @__PURE__ */ jsx22("h1", { style: { marginBottom: 8 }, children: name }),
|
|
1960
|
+
/* @__PURE__ */ jsx22("p", { style: { opacity: 0.7, marginBottom: 24 }, children: "Redefinir senha" }),
|
|
1961
|
+
/* @__PURE__ */ jsxs16("form", { onSubmit: (e) => {
|
|
1885
1962
|
e.preventDefault();
|
|
1886
1963
|
void f.submit();
|
|
1887
1964
|
}, children: [
|
|
1888
|
-
/* @__PURE__ */
|
|
1965
|
+
/* @__PURE__ */ jsxs16("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1889
1966
|
"E-mail",
|
|
1890
|
-
/* @__PURE__ */
|
|
1891
|
-
f.emailError && /* @__PURE__ */
|
|
1967
|
+
/* @__PURE__ */ jsx22("input", { "data-testid": "forgot-email", type: "email", value: f.email, onChange: (e) => f.setEmail(e.target.value), style: { display: "block", width: "100%" } }),
|
|
1968
|
+
f.emailError && /* @__PURE__ */ jsx22("small", { style: { color: "#c00" }, children: f.emailError })
|
|
1892
1969
|
] }),
|
|
1893
|
-
f.error && /* @__PURE__ */
|
|
1894
|
-
/* @__PURE__ */
|
|
1970
|
+
f.error && /* @__PURE__ */ jsx22("div", { role: "alert", style: { color: "#c00", marginBottom: 12 }, children: f.error.message }),
|
|
1971
|
+
/* @__PURE__ */ jsx22("button", { "data-testid": "forgot-submit", type: "submit", disabled: !f.canSubmit, style: { width: "100%", padding: 12, background: "var(--hook-color-primary)", color: "#fff", border: "none", borderRadius: 8, opacity: f.canSubmit ? 1 : 0.5 }, children: f.submitting ? "Enviando..." : "Enviar link" })
|
|
1895
1972
|
] }),
|
|
1896
|
-
/* @__PURE__ */
|
|
1973
|
+
/* @__PURE__ */ jsx22("div", { style: { marginTop: 16 }, children: /* @__PURE__ */ jsx22("button", { "data-testid": "forgot-goto-login", type: "button", onClick: () => onNavigate("login"), style: { background: "none", border: "none", cursor: "pointer" }, children: "Voltar pro login" }) })
|
|
1897
1974
|
] });
|
|
1898
1975
|
}
|
|
1899
1976
|
|
|
@@ -1962,50 +2039,50 @@ function useResetForm() {
|
|
|
1962
2039
|
}
|
|
1963
2040
|
|
|
1964
2041
|
// src/defaults/DefaultResetScreen.tsx
|
|
1965
|
-
import { jsx as
|
|
2042
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1966
2043
|
function DefaultResetScreen({ onNavigate }) {
|
|
1967
2044
|
const { name } = useTemplateConfig();
|
|
1968
2045
|
const f = useResetForm();
|
|
1969
2046
|
if (f.done) {
|
|
1970
|
-
return /* @__PURE__ */
|
|
1971
|
-
/* @__PURE__ */
|
|
1972
|
-
/* @__PURE__ */
|
|
1973
|
-
/* @__PURE__ */
|
|
2047
|
+
return /* @__PURE__ */ jsxs17("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto", textAlign: "center" }, children: [
|
|
2048
|
+
/* @__PURE__ */ jsx23("h1", { children: "Senha alterada" }),
|
|
2049
|
+
/* @__PURE__ */ jsx23("p", { style: { opacity: 0.7 }, children: "Agora \xE9 s\xF3 fazer login com a nova senha." }),
|
|
2050
|
+
/* @__PURE__ */ jsx23("button", { "data-testid": "reset-back-login", type: "button", onClick: () => onNavigate("login"), children: "Ir pro login" })
|
|
1974
2051
|
] });
|
|
1975
2052
|
}
|
|
1976
2053
|
if (f.token === null) {
|
|
1977
|
-
return /* @__PURE__ */
|
|
1978
|
-
/* @__PURE__ */
|
|
1979
|
-
/* @__PURE__ */
|
|
1980
|
-
/* @__PURE__ */
|
|
2054
|
+
return /* @__PURE__ */ jsxs17("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto", textAlign: "center" }, children: [
|
|
2055
|
+
/* @__PURE__ */ jsx23("h1", { children: "Link inv\xE1lido" }),
|
|
2056
|
+
/* @__PURE__ */ jsx23("p", { style: { opacity: 0.7 }, children: "Pe\xE7a um novo link de reset." }),
|
|
2057
|
+
/* @__PURE__ */ jsx23("button", { "data-testid": "reset-goto-forgot", type: "button", onClick: () => onNavigate("forgot"), children: "Pedir novo link" })
|
|
1981
2058
|
] });
|
|
1982
2059
|
}
|
|
1983
|
-
return /* @__PURE__ */
|
|
1984
|
-
/* @__PURE__ */
|
|
1985
|
-
/* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
2060
|
+
return /* @__PURE__ */ jsxs17("main", { style: { padding: 24, maxWidth: 360, margin: "0 auto" }, children: [
|
|
2061
|
+
/* @__PURE__ */ jsx23("h1", { style: { marginBottom: 8 }, children: name }),
|
|
2062
|
+
/* @__PURE__ */ jsx23("p", { style: { opacity: 0.7, marginBottom: 24 }, children: "Escolha uma nova senha" }),
|
|
2063
|
+
/* @__PURE__ */ jsxs17("form", { onSubmit: (e) => {
|
|
1987
2064
|
e.preventDefault();
|
|
1988
2065
|
void f.submit();
|
|
1989
2066
|
}, children: [
|
|
1990
|
-
/* @__PURE__ */
|
|
2067
|
+
/* @__PURE__ */ jsxs17("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1991
2068
|
"Nova senha",
|
|
1992
|
-
/* @__PURE__ */
|
|
1993
|
-
f.passwordError && /* @__PURE__ */
|
|
2069
|
+
/* @__PURE__ */ jsx23("input", { "data-testid": "reset-password", type: "password", value: f.password, onChange: (e) => f.setPassword(e.target.value), style: { display: "block", width: "100%" }, autoComplete: "new-password" }),
|
|
2070
|
+
f.passwordError && /* @__PURE__ */ jsx23("small", { style: { color: "#c00" }, children: f.passwordError })
|
|
1994
2071
|
] }),
|
|
1995
|
-
/* @__PURE__ */
|
|
2072
|
+
/* @__PURE__ */ jsxs17("label", { style: { display: "block", marginBottom: 12 }, children: [
|
|
1996
2073
|
"Confirmar senha",
|
|
1997
|
-
/* @__PURE__ */
|
|
1998
|
-
f.confirmError && /* @__PURE__ */
|
|
2074
|
+
/* @__PURE__ */ jsx23("input", { "data-testid": "reset-confirm", type: "password", value: f.confirm, onChange: (e) => f.setConfirm(e.target.value), style: { display: "block", width: "100%" }, autoComplete: "new-password" }),
|
|
2075
|
+
f.confirmError && /* @__PURE__ */ jsx23("small", { style: { color: "#c00" }, children: f.confirmError })
|
|
1999
2076
|
] }),
|
|
2000
|
-
f.error && /* @__PURE__ */
|
|
2001
|
-
/* @__PURE__ */
|
|
2077
|
+
f.error && /* @__PURE__ */ jsx23("div", { role: "alert", style: { color: "#c00", marginBottom: 12 }, children: f.error.message }),
|
|
2078
|
+
/* @__PURE__ */ jsx23("button", { "data-testid": "reset-submit", type: "submit", disabled: !f.canSubmit, style: { width: "100%", padding: 12, background: "var(--hook-color-primary)", color: "#fff", border: "none", borderRadius: 8, opacity: f.canSubmit ? 1 : 0.5 }, children: f.submitting ? "Alterando..." : "Alterar senha" })
|
|
2002
2079
|
] })
|
|
2003
2080
|
] });
|
|
2004
2081
|
}
|
|
2005
2082
|
|
|
2006
2083
|
// src/defaults/DefaultPaywall.tsx
|
|
2007
2084
|
import { useState as useState11 } from "react";
|
|
2008
|
-
import { jsx as
|
|
2085
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2009
2086
|
function DefaultPaywall() {
|
|
2010
2087
|
const config = useTemplateConfig();
|
|
2011
2088
|
const { checkout, opening, error } = usePaywallState();
|
|
@@ -2013,16 +2090,16 @@ function DefaultPaywall() {
|
|
|
2013
2090
|
const [cpf, setCpf] = useState11("");
|
|
2014
2091
|
const cpfDigits = cpf.replace(/\D/g, "");
|
|
2015
2092
|
const canCheckout = cpfDigits.length === 11 && !opening;
|
|
2016
|
-
return /* @__PURE__ */
|
|
2017
|
-
/* @__PURE__ */
|
|
2018
|
-
p.subtitle && /* @__PURE__ */
|
|
2019
|
-
/* @__PURE__ */
|
|
2020
|
-
/* @__PURE__ */
|
|
2021
|
-
/* @__PURE__ */
|
|
2093
|
+
return /* @__PURE__ */ jsxs18("main", { style: { padding: 24, maxWidth: 440, margin: "0 auto", textAlign: "center" }, children: [
|
|
2094
|
+
/* @__PURE__ */ jsx24("h1", { style: { marginBottom: 8 }, children: p.title }),
|
|
2095
|
+
p.subtitle && /* @__PURE__ */ jsx24("p", { style: { opacity: 0.7, marginBottom: 24 }, children: p.subtitle }),
|
|
2096
|
+
/* @__PURE__ */ jsx24("ul", { style: { listStyle: "none", padding: 0, textAlign: "left", marginBottom: 24 }, children: p.benefits.map((b) => /* @__PURE__ */ jsxs18("li", { style: { padding: "8px 0", display: "flex", alignItems: "center" }, children: [
|
|
2097
|
+
/* @__PURE__ */ jsx24("span", { "aria-hidden": true, style: { marginRight: 8 }, children: "\u2713" }),
|
|
2098
|
+
/* @__PURE__ */ jsx24("span", { children: b })
|
|
2022
2099
|
] }, b)) }),
|
|
2023
|
-
/* @__PURE__ */
|
|
2024
|
-
/* @__PURE__ */
|
|
2025
|
-
/* @__PURE__ */
|
|
2100
|
+
/* @__PURE__ */ jsxs18("div", { style: { textAlign: "left", marginBottom: 16 }, children: [
|
|
2101
|
+
/* @__PURE__ */ jsx24("label", { style: { display: "block", fontSize: 14, opacity: 0.7, marginBottom: 4 }, children: "Seu CPF (pra emiss\xE3o de recibo)" }),
|
|
2102
|
+
/* @__PURE__ */ jsx24(
|
|
2026
2103
|
"input",
|
|
2027
2104
|
{
|
|
2028
2105
|
"data-testid": "paywall-cpf",
|
|
@@ -2035,8 +2112,8 @@ function DefaultPaywall() {
|
|
|
2035
2112
|
}
|
|
2036
2113
|
)
|
|
2037
2114
|
] }),
|
|
2038
|
-
error && /* @__PURE__ */
|
|
2039
|
-
/* @__PURE__ */
|
|
2115
|
+
error && /* @__PURE__ */ jsx24("div", { role: "alert", style: { color: "#c00", marginBottom: 12 }, children: error.message }),
|
|
2116
|
+
/* @__PURE__ */ jsx24(
|
|
2040
2117
|
"button",
|
|
2041
2118
|
{
|
|
2042
2119
|
"data-testid": "paywall-cta",
|
|
@@ -2057,13 +2134,13 @@ function DefaultPaywall() {
|
|
|
2057
2134
|
children: opening ? "Abrindo..." : p.cta
|
|
2058
2135
|
}
|
|
2059
2136
|
),
|
|
2060
|
-
p.priceHint && /* @__PURE__ */
|
|
2061
|
-
p.footerNote && /* @__PURE__ */
|
|
2137
|
+
p.priceHint && /* @__PURE__ */ jsx24("p", { style: { opacity: 0.6, marginTop: 12 }, children: p.priceHint }),
|
|
2138
|
+
p.footerNote && /* @__PURE__ */ jsx24("p", { style: { opacity: 0.5, marginTop: 16, fontSize: 12 }, children: p.footerNote })
|
|
2062
2139
|
] });
|
|
2063
2140
|
}
|
|
2064
2141
|
|
|
2065
2142
|
// src/AppRoot.tsx
|
|
2066
|
-
import { Fragment as Fragment6, jsx as
|
|
2143
|
+
import { Fragment as Fragment6, jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2067
2144
|
var BACKOFF_MS = [2e3, 5e3, 1e4, 2e4, 4e4];
|
|
2068
2145
|
function PaymentReturnHandler({ children }) {
|
|
2069
2146
|
const { subscription } = useHook8();
|
|
@@ -2110,7 +2187,7 @@ function PaymentReturnHandler({ children }) {
|
|
|
2110
2187
|
};
|
|
2111
2188
|
}, [runPoll]);
|
|
2112
2189
|
if (state === "confirming") {
|
|
2113
|
-
return /* @__PURE__ */
|
|
2190
|
+
return /* @__PURE__ */ jsx25(
|
|
2114
2191
|
"div",
|
|
2115
2192
|
{
|
|
2116
2193
|
role: "status",
|
|
@@ -2121,9 +2198,9 @@ function PaymentReturnHandler({ children }) {
|
|
|
2121
2198
|
);
|
|
2122
2199
|
}
|
|
2123
2200
|
if (state === "waiting") {
|
|
2124
|
-
return /* @__PURE__ */
|
|
2125
|
-
/* @__PURE__ */
|
|
2126
|
-
/* @__PURE__ */
|
|
2201
|
+
return /* @__PURE__ */ jsx25("div", { role: "status", "aria-live": "polite", style: overlayStyle2, children: /* @__PURE__ */ jsxs19("div", { style: { maxWidth: 320, textAlign: "center", lineHeight: 1.5 }, children: [
|
|
2202
|
+
/* @__PURE__ */ jsx25("div", { style: { marginBottom: 16 }, children: "Pagamento aceito. Estamos confirmando com o banco \u2014 pode levar alguns minutos." }),
|
|
2203
|
+
/* @__PURE__ */ jsx25(
|
|
2127
2204
|
"button",
|
|
2128
2205
|
{
|
|
2129
2206
|
type: "button",
|
|
@@ -2134,7 +2211,7 @@ function PaymentReturnHandler({ children }) {
|
|
|
2134
2211
|
)
|
|
2135
2212
|
] }) });
|
|
2136
2213
|
}
|
|
2137
|
-
return /* @__PURE__ */
|
|
2214
|
+
return /* @__PURE__ */ jsx25(Fragment6, { children });
|
|
2138
2215
|
}
|
|
2139
2216
|
var overlayStyle2 = {
|
|
2140
2217
|
position: "fixed",
|
|
@@ -2167,9 +2244,9 @@ function AppRoot({
|
|
|
2167
2244
|
Reset = DefaultResetScreen,
|
|
2168
2245
|
Paywall = DefaultPaywall
|
|
2169
2246
|
}) {
|
|
2170
|
-
return /* @__PURE__ */
|
|
2247
|
+
return /* @__PURE__ */ jsx25(PaymentReturnHandler, { children: /* @__PURE__ */ jsx25(TemplateConfigProvider, { config, children: /* @__PURE__ */ jsx25(ErrorBoundary, { children: /* @__PURE__ */ jsx25(ThemeProvider, { children: /* @__PURE__ */ jsx25(InstallGate, { children: /* @__PURE__ */ jsx25(AuthGate, { Login, Signup, Forgot, Reset, children: /* @__PURE__ */ jsx25(PersistedKeysPrefetch, { children: /* @__PURE__ */ jsxs19(SubscriptionGate, { Paywall, children: [
|
|
2171
2248
|
children,
|
|
2172
|
-
/* @__PURE__ */
|
|
2249
|
+
/* @__PURE__ */ jsx25(PushPrompt, {})
|
|
2173
2250
|
] }) }) }) }) }) }) }) });
|
|
2174
2251
|
}
|
|
2175
2252
|
|
|
@@ -2231,31 +2308,31 @@ function usePush() {
|
|
|
2231
2308
|
}
|
|
2232
2309
|
|
|
2233
2310
|
// src/components/PushPrompt.tsx
|
|
2234
|
-
import { jsx as
|
|
2311
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2235
2312
|
function PushPrompt2({ texts, onSubscribed, onDeclined, onInstallRequested, className }) {
|
|
2236
2313
|
const { state, subscribe } = usePush();
|
|
2237
2314
|
if (state.kind === "subscribed") return null;
|
|
2238
2315
|
if (state.kind === "ios_needs_install") {
|
|
2239
|
-
return /* @__PURE__ */
|
|
2240
|
-
/* @__PURE__ */
|
|
2241
|
-
/* @__PURE__ */
|
|
2242
|
-
onInstallRequested && texts.iosInstallCta && /* @__PURE__ */
|
|
2316
|
+
return /* @__PURE__ */ jsxs20("div", { className, role: "region", "aria-label": texts.iosInstallTitle, children: [
|
|
2317
|
+
/* @__PURE__ */ jsx26("h3", { children: texts.iosInstallTitle }),
|
|
2318
|
+
/* @__PURE__ */ jsx26("p", { children: texts.iosInstallBody }),
|
|
2319
|
+
onInstallRequested && texts.iosInstallCta && /* @__PURE__ */ jsx26("button", { onClick: onInstallRequested, children: texts.iosInstallCta })
|
|
2243
2320
|
] });
|
|
2244
2321
|
}
|
|
2245
2322
|
if (state.kind === "denied") {
|
|
2246
|
-
return /* @__PURE__ */
|
|
2247
|
-
/* @__PURE__ */
|
|
2248
|
-
/* @__PURE__ */
|
|
2323
|
+
return /* @__PURE__ */ jsxs20("div", { className, role: "region", "aria-label": texts.deniedTitle, children: [
|
|
2324
|
+
/* @__PURE__ */ jsx26("h3", { children: texts.deniedTitle }),
|
|
2325
|
+
/* @__PURE__ */ jsx26("p", { children: texts.deniedBody })
|
|
2249
2326
|
] });
|
|
2250
2327
|
}
|
|
2251
2328
|
if (state.kind === "unsupported") {
|
|
2252
|
-
return /* @__PURE__ */
|
|
2329
|
+
return /* @__PURE__ */ jsx26("div", { className, role: "region", children: /* @__PURE__ */ jsx26("p", { children: texts.unsupportedBody }) });
|
|
2253
2330
|
}
|
|
2254
2331
|
if (state.kind === "error") {
|
|
2255
|
-
return /* @__PURE__ */
|
|
2332
|
+
return /* @__PURE__ */ jsx26("div", { className, role: "region", "aria-label": "error", children: /* @__PURE__ */ jsx26("p", { children: state.message }) });
|
|
2256
2333
|
}
|
|
2257
|
-
return /* @__PURE__ */
|
|
2258
|
-
/* @__PURE__ */
|
|
2334
|
+
return /* @__PURE__ */ jsxs20("div", { className, role: "region", children: [
|
|
2335
|
+
/* @__PURE__ */ jsx26(
|
|
2259
2336
|
"button",
|
|
2260
2337
|
{
|
|
2261
2338
|
type: "button",
|
|
@@ -2269,17 +2346,17 @@ function PushPrompt2({ texts, onSubscribed, onDeclined, onInstallRequested, clas
|
|
|
2269
2346
|
children: texts.cta
|
|
2270
2347
|
}
|
|
2271
2348
|
),
|
|
2272
|
-
onDeclined && /* @__PURE__ */
|
|
2349
|
+
onDeclined && /* @__PURE__ */ jsx26("button", { type: "button", onClick: onDeclined, children: texts.declineCta })
|
|
2273
2350
|
] });
|
|
2274
2351
|
}
|
|
2275
2352
|
|
|
2276
2353
|
// src/defaults/EmptyState.tsx
|
|
2277
|
-
import { jsx as
|
|
2354
|
+
import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2278
2355
|
function EmptyState({ title, description, action }) {
|
|
2279
|
-
return /* @__PURE__ */
|
|
2280
|
-
/* @__PURE__ */
|
|
2281
|
-
description && /* @__PURE__ */
|
|
2282
|
-
action && /* @__PURE__ */
|
|
2356
|
+
return /* @__PURE__ */ jsxs21("div", { role: "status", style: { padding: 32, textAlign: "center" }, children: [
|
|
2357
|
+
/* @__PURE__ */ jsx27("h2", { style: { marginBottom: 8 }, children: title }),
|
|
2358
|
+
description && /* @__PURE__ */ jsx27("p", { style: { opacity: 0.7 }, children: description }),
|
|
2359
|
+
action && /* @__PURE__ */ jsx27("div", { style: { marginTop: 16 }, children: action })
|
|
2283
2360
|
] });
|
|
2284
2361
|
}
|
|
2285
2362
|
|