@splpi/estore-shared-components 0.0.5 → 7.0.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.js +1207 -892
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +942 -631
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -49,7 +49,6 @@ module.exports = __toCommonJS(index_exports);
|
|
|
49
49
|
|
|
50
50
|
// src/NewSaleForm/LifePlanApplication1.tsx
|
|
51
51
|
var import_react3 = require("@chakra-ui/react");
|
|
52
|
-
var import_react4 = require("react");
|
|
53
52
|
|
|
54
53
|
// src/lib/theme/layout-tokens.ts
|
|
55
54
|
var RESPONSIVE_LAYOUT_TOKENS = {
|
|
@@ -270,6 +269,9 @@ var STANDARD_ICON_BUTTON_STYLES = {
|
|
|
270
269
|
}
|
|
271
270
|
};
|
|
272
271
|
|
|
272
|
+
// src/NewSaleForm/LifePlanApplication1.tsx
|
|
273
|
+
var import_react4 = require("react");
|
|
274
|
+
|
|
273
275
|
// src/NewSaleForm/ui/FloatingLabelInput.tsx
|
|
274
276
|
var import_react = require("@chakra-ui/react");
|
|
275
277
|
var import_react2 = require("react");
|
|
@@ -395,8 +397,13 @@ var LifePlanApplication1 = ({
|
|
|
395
397
|
if (OCRValue != null) {
|
|
396
398
|
try {
|
|
397
399
|
const ocrData = JSON.parse(OCRValue);
|
|
398
|
-
|
|
399
|
-
|
|
400
|
+
let formattedBirthDate = "";
|
|
401
|
+
if (typeof ocrData?.birthDate === "string") {
|
|
402
|
+
const [month, day, year] = ocrData.birthDate.split("/").map((part) => part.trim());
|
|
403
|
+
if (month && day && year) {
|
|
404
|
+
formattedBirthDate = `${year}-${month.padStart(2, "0")}-${day.padStart(2, "0")}`;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
400
407
|
let mappedIdType = "";
|
|
401
408
|
if (ocrData?.idType) {
|
|
402
409
|
const normalizedIdType = ocrData.idType.toLowerCase().replace(/\s+/g, "_").replace(/'/g, "");
|
|
@@ -648,6 +655,36 @@ var LifePlanApplication1_default = LifePlanApplication1;
|
|
|
648
655
|
// src/NewSaleForm/LifePlanApplication2.tsx
|
|
649
656
|
var import_react5 = require("@chakra-ui/react");
|
|
650
657
|
var import_react6 = require("react");
|
|
658
|
+
|
|
659
|
+
// src/lib/theme/brand-colors.ts
|
|
660
|
+
var BRAND_COLORS = {
|
|
661
|
+
primaryGreen: "#109448",
|
|
662
|
+
darkGreen: "#006838",
|
|
663
|
+
softGreen: "#92DDBF",
|
|
664
|
+
pastelPeaGreen: "#ACD6A6",
|
|
665
|
+
seafoamGreen: "#92DDBF",
|
|
666
|
+
lightCyan: "#D3EDEE",
|
|
667
|
+
successBg: "#F0FDF4",
|
|
668
|
+
warningBg: "#FFF7ED",
|
|
669
|
+
warningText: "#F1592B",
|
|
670
|
+
warningBorder: "#F4845F",
|
|
671
|
+
errorBg: "#FEF2F2",
|
|
672
|
+
destructiveRed: "#BF1F2F",
|
|
673
|
+
errorRed: "#EF4444",
|
|
674
|
+
neutralText: "#22223B",
|
|
675
|
+
neutralBorder: "#E5E7EB",
|
|
676
|
+
mutedBg: "#F3F4F6",
|
|
677
|
+
subtleBg: "#F9FAFB",
|
|
678
|
+
white: "#FFFFFF",
|
|
679
|
+
black: "#000000",
|
|
680
|
+
grey: "#808080",
|
|
681
|
+
ashWhite: "#ECECEC",
|
|
682
|
+
gold: "#CBA135",
|
|
683
|
+
brightGold: "#FFD026",
|
|
684
|
+
paleGold: "#FFF48E"
|
|
685
|
+
};
|
|
686
|
+
|
|
687
|
+
// src/NewSaleForm/LifePlanApplication2.tsx
|
|
651
688
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
652
689
|
var provinceOptions = [
|
|
653
690
|
"Abra",
|
|
@@ -857,6 +894,16 @@ var LifePlanApplication2 = ({
|
|
|
857
894
|
const [province, setProvince] = (0, import_react6.useState)("Metro Manila");
|
|
858
895
|
const [district, setDistrict] = (0, import_react6.useState)("Taguig");
|
|
859
896
|
const [barangay, setBarangay] = (0, import_react6.useState)("San Juan");
|
|
897
|
+
(0, import_react6.useEffect)(() => {
|
|
898
|
+
onAddressUpdate?.({
|
|
899
|
+
lot,
|
|
900
|
+
street,
|
|
901
|
+
barangay,
|
|
902
|
+
district,
|
|
903
|
+
city,
|
|
904
|
+
province
|
|
905
|
+
});
|
|
906
|
+
}, [lot, street, barangay, city, province, district]);
|
|
860
907
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
861
908
|
import_react5.Box,
|
|
862
909
|
{
|
|
@@ -1105,7 +1152,66 @@ var RowItem = ({
|
|
|
1105
1152
|
),
|
|
1106
1153
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_react9.Text, { fontWeight: "medium", textAlign: "right", whiteSpace: "nowrap", children: value ?? "-" })
|
|
1107
1154
|
] });
|
|
1108
|
-
|
|
1155
|
+
|
|
1156
|
+
// src/lib/applicationData.ts
|
|
1157
|
+
var LIFE_PLAN_APPLICATION_KEY = "LifePlanApplication";
|
|
1158
|
+
var createEmptyApplicationData = () => ({
|
|
1159
|
+
personalInfo: {
|
|
1160
|
+
firstName: "",
|
|
1161
|
+
middleName: "",
|
|
1162
|
+
lastName: "",
|
|
1163
|
+
suffix: "",
|
|
1164
|
+
birthDate: "",
|
|
1165
|
+
idType: "",
|
|
1166
|
+
idNumber: "",
|
|
1167
|
+
height: 0,
|
|
1168
|
+
weight: 0,
|
|
1169
|
+
gender: "",
|
|
1170
|
+
civilStatus: "",
|
|
1171
|
+
nationality: "",
|
|
1172
|
+
mobileNumber: "",
|
|
1173
|
+
emailAddress: "",
|
|
1174
|
+
mailingAddress: "",
|
|
1175
|
+
landLineNumber: ""
|
|
1176
|
+
},
|
|
1177
|
+
address: {
|
|
1178
|
+
lot: "",
|
|
1179
|
+
street: "",
|
|
1180
|
+
barangay: "",
|
|
1181
|
+
district: "",
|
|
1182
|
+
city: "",
|
|
1183
|
+
province: ""
|
|
1184
|
+
},
|
|
1185
|
+
employment: {
|
|
1186
|
+
occupation: "",
|
|
1187
|
+
employerName: "",
|
|
1188
|
+
employmentStatus: "",
|
|
1189
|
+
officeAddress: "",
|
|
1190
|
+
TIN: "",
|
|
1191
|
+
SSS: "",
|
|
1192
|
+
sourceOfIncome: ""
|
|
1193
|
+
},
|
|
1194
|
+
beneficiaries: [],
|
|
1195
|
+
healthDeclaration: {
|
|
1196
|
+
healthDeclaration1: false,
|
|
1197
|
+
healthDeclaration2: false,
|
|
1198
|
+
healthDeclaration3: false,
|
|
1199
|
+
healthDeclaration4: false
|
|
1200
|
+
}
|
|
1201
|
+
});
|
|
1202
|
+
var loadApplicationDataFromLocalStorage = (storageKey = LIFE_PLAN_APPLICATION_KEY) => {
|
|
1203
|
+
if (typeof window === "undefined") return null;
|
|
1204
|
+
try {
|
|
1205
|
+
const stored = window.localStorage.getItem(storageKey);
|
|
1206
|
+
return stored ? JSON.parse(stored) : null;
|
|
1207
|
+
} catch {
|
|
1208
|
+
return null;
|
|
1209
|
+
}
|
|
1210
|
+
};
|
|
1211
|
+
var saveApplicationDataToLocalStorage = (data, storageKey = LIFE_PLAN_APPLICATION_KEY) => {
|
|
1212
|
+
if (typeof window === "undefined") return;
|
|
1213
|
+
window.localStorage.setItem(storageKey, JSON.stringify(data));
|
|
1214
|
+
};
|
|
1109
1215
|
|
|
1110
1216
|
// src/NewSaleForm/beneficiary.tsx
|
|
1111
1217
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
@@ -1126,7 +1232,7 @@ var relationshipTypes = (0, import_react10.createListCollection)({
|
|
|
1126
1232
|
});
|
|
1127
1233
|
var ReviewRows = ({
|
|
1128
1234
|
rows
|
|
1129
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.VStack, { align: "stretch", gap: 1, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
1235
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.VStack, { align: "stretch", gap: 1, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(RowItem, { label: row.label, value: row.value }, row.label)) });
|
|
1130
1236
|
var Beneficiary = ({ onUpdate }) => {
|
|
1131
1237
|
const isMobile = (0, import_react10.useBreakpointValue)({ base: true, md: false });
|
|
1132
1238
|
const [principalBeneficiaries, setPrincipalBeneficiaries] = (0, import_react11.useState)([]);
|
|
@@ -1152,6 +1258,65 @@ var Beneficiary = ({ onUpdate }) => {
|
|
|
1152
1258
|
relationship: "",
|
|
1153
1259
|
beneficiaryClass: "principal"
|
|
1154
1260
|
});
|
|
1261
|
+
const syncBeneficiaries = (principal, contingent) => {
|
|
1262
|
+
const allBeneficiaries = [...principal, ...contingent];
|
|
1263
|
+
onUpdate?.(
|
|
1264
|
+
principal.length > 0 ? principal[0] : void 0,
|
|
1265
|
+
contingent.length > 0 ? contingent[0] : void 0,
|
|
1266
|
+
allBeneficiaries
|
|
1267
|
+
);
|
|
1268
|
+
const currentData = loadApplicationDataFromLocalStorage() ?? createEmptyApplicationData();
|
|
1269
|
+
const {
|
|
1270
|
+
principalBeneficiary: _oldPrincipal,
|
|
1271
|
+
contingentBeneficiary: _oldContingent,
|
|
1272
|
+
...restData
|
|
1273
|
+
} = currentData;
|
|
1274
|
+
saveApplicationDataToLocalStorage({
|
|
1275
|
+
...restData,
|
|
1276
|
+
beneficiaries: allBeneficiaries,
|
|
1277
|
+
...principal[0] ? { principalBeneficiary: principal[0] } : {},
|
|
1278
|
+
...contingent[0] ? { contingentBeneficiary: contingent[0] } : {}
|
|
1279
|
+
});
|
|
1280
|
+
};
|
|
1281
|
+
(0, import_react11.useEffect)(() => {
|
|
1282
|
+
const timeoutId = window.setTimeout(() => {
|
|
1283
|
+
const currentData = loadApplicationDataFromLocalStorage();
|
|
1284
|
+
if (!currentData) return;
|
|
1285
|
+
const storedBeneficiaries = currentData.beneficiaries ?? [];
|
|
1286
|
+
let principalFromStorage = storedBeneficiaries.filter(
|
|
1287
|
+
(beneficiary) => beneficiary.beneficiaryClass === "principal"
|
|
1288
|
+
);
|
|
1289
|
+
let contingentFromStorage = storedBeneficiaries.filter(
|
|
1290
|
+
(beneficiary) => beneficiary.beneficiaryClass === "contingent"
|
|
1291
|
+
);
|
|
1292
|
+
if (storedBeneficiaries.length === 0) {
|
|
1293
|
+
if (currentData.principalBeneficiary) {
|
|
1294
|
+
principalFromStorage = [
|
|
1295
|
+
{
|
|
1296
|
+
...currentData.principalBeneficiary,
|
|
1297
|
+
beneficiaryClass: currentData.principalBeneficiary.beneficiaryClass || "principal"
|
|
1298
|
+
}
|
|
1299
|
+
];
|
|
1300
|
+
}
|
|
1301
|
+
if (currentData.contingentBeneficiary) {
|
|
1302
|
+
contingentFromStorage = [
|
|
1303
|
+
{
|
|
1304
|
+
...currentData.contingentBeneficiary,
|
|
1305
|
+
beneficiaryClass: currentData.contingentBeneficiary.beneficiaryClass || "contingent"
|
|
1306
|
+
}
|
|
1307
|
+
];
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
setPrincipalBeneficiaries(principalFromStorage);
|
|
1311
|
+
setContingentBeneficiaries(contingentFromStorage);
|
|
1312
|
+
onUpdate?.(
|
|
1313
|
+
principalFromStorage.length > 0 ? principalFromStorage[0] : void 0,
|
|
1314
|
+
contingentFromStorage.length > 0 ? contingentFromStorage[0] : void 0,
|
|
1315
|
+
[...principalFromStorage, ...contingentFromStorage]
|
|
1316
|
+
);
|
|
1317
|
+
}, 0);
|
|
1318
|
+
return () => window.clearTimeout(timeoutId);
|
|
1319
|
+
}, [onUpdate]);
|
|
1155
1320
|
const handleSaveAddBeneficiary = () => {
|
|
1156
1321
|
if (!addFormBeneficiary.firstName || !addFormBeneficiary.lastName || !addFormBeneficiary.birthDate || !addFormBeneficiary.relationship || !addFormBeneficiary.address) {
|
|
1157
1322
|
alert("Please fill in all required fields");
|
|
@@ -1177,6 +1342,7 @@ var Beneficiary = ({ onUpdate }) => {
|
|
|
1177
1342
|
});
|
|
1178
1343
|
setAddDialogOpen(false);
|
|
1179
1344
|
console.log("Beneficiary added:", addFormBeneficiary);
|
|
1345
|
+
syncBeneficiaries(newPrincipal, newContingent);
|
|
1180
1346
|
};
|
|
1181
1347
|
const formatFullName = (beneficiary) => {
|
|
1182
1348
|
return [
|
|
@@ -1200,9 +1366,6 @@ var Beneficiary = ({ onUpdate }) => {
|
|
|
1200
1366
|
setFormBeneficiary({ ...beneficiary });
|
|
1201
1367
|
setEditDialogOpen(true);
|
|
1202
1368
|
};
|
|
1203
|
-
function handleDeleteBeneficiary(arg0, idx) {
|
|
1204
|
-
throw new Error("Function not implemented.");
|
|
1205
|
-
}
|
|
1206
1369
|
const handleSaveEdit = () => {
|
|
1207
1370
|
if (!selectedBeneficiary) return;
|
|
1208
1371
|
let updatedPrincipal = principalBeneficiaries;
|
|
@@ -1218,9 +1381,26 @@ var Beneficiary = ({ onUpdate }) => {
|
|
|
1218
1381
|
);
|
|
1219
1382
|
setContingentBeneficiaries(updatedContingent);
|
|
1220
1383
|
}
|
|
1384
|
+
syncBeneficiaries(updatedPrincipal, updatedContingent);
|
|
1221
1385
|
setEditDialogOpen(false);
|
|
1222
1386
|
setSelectedBeneficiary(null);
|
|
1223
1387
|
};
|
|
1388
|
+
const handleDeleteBeneficiary = (type, index) => {
|
|
1389
|
+
let updatedPrincipal = principalBeneficiaries;
|
|
1390
|
+
let updatedContingent = contingentBeneficiaries;
|
|
1391
|
+
if (type === "principal") {
|
|
1392
|
+
updatedPrincipal = principalBeneficiaries.filter(
|
|
1393
|
+
(_, beneficiaryIndex) => beneficiaryIndex !== index
|
|
1394
|
+
);
|
|
1395
|
+
setPrincipalBeneficiaries(updatedPrincipal);
|
|
1396
|
+
} else {
|
|
1397
|
+
updatedContingent = contingentBeneficiaries.filter(
|
|
1398
|
+
(_, beneficiaryIndex) => beneficiaryIndex !== index
|
|
1399
|
+
);
|
|
1400
|
+
setContingentBeneficiaries(updatedContingent);
|
|
1401
|
+
}
|
|
1402
|
+
syncBeneficiaries(updatedPrincipal, updatedContingent);
|
|
1403
|
+
};
|
|
1224
1404
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
|
|
1225
1405
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
1226
1406
|
import_react10.Flex,
|
|
@@ -1240,14 +1420,14 @@ var Beneficiary = ({ onUpdate }) => {
|
|
|
1240
1420
|
{
|
|
1241
1421
|
placement: "center",
|
|
1242
1422
|
motionPreset: "slide-in-bottom",
|
|
1243
|
-
size: { mdDown: "full", md: "
|
|
1423
|
+
size: { mdDown: "full", md: "xl" },
|
|
1244
1424
|
open: addDialogOpen,
|
|
1245
1425
|
onOpenChange: (details) => setAddDialogOpen(details.open),
|
|
1246
1426
|
children: [
|
|
1247
1427
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Button, { w: { base: "full", md: "auto" }, children: "Add Beneficiary" }) }),
|
|
1248
1428
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react10.Portal, { children: [
|
|
1249
1429
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Backdrop, {}),
|
|
1250
|
-
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react10.Dialog.Content, {
|
|
1430
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react10.Dialog.Content, { children: [
|
|
1251
1431
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Title, { children: "Add Beneficiary" }) }),
|
|
1252
1432
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react10.Dialog.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_react10.VStack, { gap: 5, w: "full", align: "stretch", children: [
|
|
1253
1433
|
/* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
|
|
@@ -1753,6 +1933,29 @@ var HealthDeclaration = () => {
|
|
|
1753
1933
|
healthDeclaration3: false,
|
|
1754
1934
|
healthDeclaration4: false
|
|
1755
1935
|
});
|
|
1936
|
+
(0, import_react12.useEffect)(() => {
|
|
1937
|
+
let appData = loadApplicationDataFromLocalStorage();
|
|
1938
|
+
if (!appData) {
|
|
1939
|
+
appData = createEmptyApplicationData();
|
|
1940
|
+
saveApplicationDataToLocalStorage(appData);
|
|
1941
|
+
}
|
|
1942
|
+
if (appData && appData.healthDeclaration) {
|
|
1943
|
+
setHealthDeclarationValues(appData.healthDeclaration);
|
|
1944
|
+
}
|
|
1945
|
+
}, []);
|
|
1946
|
+
(0, import_react12.useEffect)(() => {
|
|
1947
|
+
return () => {
|
|
1948
|
+
const appData = loadApplicationDataFromLocalStorage();
|
|
1949
|
+
if (appData) {
|
|
1950
|
+
appData.healthDeclaration = healthDeclarationValues;
|
|
1951
|
+
saveApplicationDataToLocalStorage(appData);
|
|
1952
|
+
console.log(
|
|
1953
|
+
"Health Declaration saved to localStorage",
|
|
1954
|
+
healthDeclarationValues
|
|
1955
|
+
);
|
|
1956
|
+
}
|
|
1957
|
+
};
|
|
1958
|
+
}, [healthDeclarationValues]);
|
|
1756
1959
|
const items = [
|
|
1757
1960
|
{
|
|
1758
1961
|
value: "first-item",
|
|
@@ -1889,76 +2092,15 @@ var HealthDeclaration = () => {
|
|
|
1889
2092
|
var HealthDeclaration_default = HealthDeclaration;
|
|
1890
2093
|
|
|
1891
2094
|
// src/NewSaleForm/LifePlanApplicationFormWrapper.tsx
|
|
1892
|
-
var
|
|
2095
|
+
var import_react17 = require("@chakra-ui/react");
|
|
1893
2096
|
var import_fa2 = require("react-icons/fa");
|
|
1894
2097
|
var import_io = require("react-icons/io");
|
|
1895
2098
|
var import_lu3 = require("react-icons/lu");
|
|
1896
|
-
var
|
|
1897
|
-
var import_st_peter_ui3 = require("st-peter-ui");
|
|
1898
|
-
|
|
1899
|
-
// src/lib/applicationData.ts
|
|
1900
|
-
var LIFE_PLAN_APPLICATION_KEY = "LifePlanApplication";
|
|
1901
|
-
var createEmptyApplicationData = () => ({
|
|
1902
|
-
personalInfo: {
|
|
1903
|
-
firstName: "",
|
|
1904
|
-
middleName: "",
|
|
1905
|
-
lastName: "",
|
|
1906
|
-
suffix: "",
|
|
1907
|
-
birthDate: "",
|
|
1908
|
-
idType: "",
|
|
1909
|
-
idNumber: "",
|
|
1910
|
-
height: 0,
|
|
1911
|
-
weight: 0,
|
|
1912
|
-
gender: "",
|
|
1913
|
-
civilStatus: "",
|
|
1914
|
-
nationality: "",
|
|
1915
|
-
mobileNumber: "",
|
|
1916
|
-
emailAddress: "",
|
|
1917
|
-
mailingAddress: "",
|
|
1918
|
-
landLineNumber: ""
|
|
1919
|
-
},
|
|
1920
|
-
address: {
|
|
1921
|
-
lot: "",
|
|
1922
|
-
street: "",
|
|
1923
|
-
barangay: "",
|
|
1924
|
-
district: "",
|
|
1925
|
-
city: "",
|
|
1926
|
-
province: ""
|
|
1927
|
-
},
|
|
1928
|
-
employment: {
|
|
1929
|
-
occupation: "",
|
|
1930
|
-
employerName: "",
|
|
1931
|
-
employmentStatus: "",
|
|
1932
|
-
officeAddress: "",
|
|
1933
|
-
TIN: "",
|
|
1934
|
-
SSS: "",
|
|
1935
|
-
sourceOfIncome: ""
|
|
1936
|
-
},
|
|
1937
|
-
beneficiaries: [],
|
|
1938
|
-
healthDeclaration: {
|
|
1939
|
-
healthDeclaration1: false,
|
|
1940
|
-
healthDeclaration2: false,
|
|
1941
|
-
healthDeclaration3: false,
|
|
1942
|
-
healthDeclaration4: false
|
|
1943
|
-
}
|
|
1944
|
-
});
|
|
1945
|
-
var loadApplicationDataFromLocalStorage = (storageKey = LIFE_PLAN_APPLICATION_KEY) => {
|
|
1946
|
-
if (typeof window === "undefined") return null;
|
|
1947
|
-
try {
|
|
1948
|
-
const stored = window.localStorage.getItem(storageKey);
|
|
1949
|
-
return stored ? JSON.parse(stored) : null;
|
|
1950
|
-
} catch {
|
|
1951
|
-
return null;
|
|
1952
|
-
}
|
|
1953
|
-
};
|
|
1954
|
-
var saveApplicationDataToLocalStorage = (data, storageKey = LIFE_PLAN_APPLICATION_KEY) => {
|
|
1955
|
-
if (typeof window === "undefined") return;
|
|
1956
|
-
window.localStorage.setItem(storageKey, JSON.stringify(data));
|
|
1957
|
-
};
|
|
2099
|
+
var import_react18 = require("react");
|
|
1958
2100
|
|
|
1959
2101
|
// src/NewSaleForm/ui/info-card.tsx
|
|
1960
|
-
var import_react14 = require("react");
|
|
1961
|
-
var
|
|
2102
|
+
var import_react14 = require("@chakra-ui/react");
|
|
2103
|
+
var import_st_peter_ui3 = require("st-peter-ui");
|
|
1962
2104
|
var import_hi = require("react-icons/hi");
|
|
1963
2105
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1964
2106
|
var InfoCard = ({
|
|
@@ -1966,28 +2108,35 @@ var InfoCard = ({
|
|
|
1966
2108
|
icon = import_hi.HiInformationCircle
|
|
1967
2109
|
}) => {
|
|
1968
2110
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
|
|
1969
|
-
|
|
2111
|
+
import_react14.HStack,
|
|
1970
2112
|
{
|
|
1971
|
-
gap:
|
|
2113
|
+
gap: STANDARD_SPACING.sm,
|
|
1972
2114
|
align: "center",
|
|
1973
2115
|
p: "8px",
|
|
1974
|
-
borderRadius:
|
|
2116
|
+
borderRadius: STANDARD_RADIUS.md,
|
|
1975
2117
|
bg: "#ebf4fb",
|
|
1976
2118
|
borderWidth: "1px",
|
|
1977
2119
|
borderColor: "#1976d2",
|
|
1978
|
-
color:
|
|
2120
|
+
color: BRAND_COLORS.darkGreen,
|
|
1979
2121
|
children: [
|
|
1980
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1981
|
-
|
|
2122
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2123
|
+
import_react14.Box,
|
|
2124
|
+
{
|
|
2125
|
+
as: icon,
|
|
2126
|
+
boxSize: STANDARD_SIZES.iconButton.sm,
|
|
2127
|
+
color: "#1976d2",
|
|
2128
|
+
flexShrink: 0
|
|
2129
|
+
}
|
|
2130
|
+
),
|
|
2131
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react14.Text, { color: "#1976d2", fontSize: "xs", children })
|
|
1982
2132
|
]
|
|
1983
2133
|
}
|
|
1984
2134
|
);
|
|
1985
2135
|
};
|
|
1986
|
-
var info_card_default = InfoCard;
|
|
1987
2136
|
|
|
1988
2137
|
// src/NewSaleForm/ui/input-card-accordion.tsx
|
|
1989
|
-
var
|
|
1990
|
-
var
|
|
2138
|
+
var import_react15 = require("@chakra-ui/react");
|
|
2139
|
+
var import_react16 = require("react");
|
|
1991
2140
|
var import_lu2 = require("react-icons/lu");
|
|
1992
2141
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1993
2142
|
function InputCardAccordion({
|
|
@@ -2001,7 +2150,7 @@ function InputCardAccordion({
|
|
|
2001
2150
|
onToggle,
|
|
2002
2151
|
isComplete
|
|
2003
2152
|
}) {
|
|
2004
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
2153
|
+
const [internalOpen, setInternalOpen] = (0, import_react16.useState)(defaultOpen);
|
|
2005
2154
|
const isControlled = controlledOpen !== void 0;
|
|
2006
2155
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
2007
2156
|
const toggle = () => {
|
|
@@ -2019,7 +2168,7 @@ function InputCardAccordion({
|
|
|
2019
2168
|
};
|
|
2020
2169
|
const activeIcon = isOpen && openedIcon ? openedIcon : icon;
|
|
2021
2170
|
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2022
|
-
|
|
2171
|
+
import_react15.Box,
|
|
2023
2172
|
{
|
|
2024
2173
|
w: "full",
|
|
2025
2174
|
position: "relative",
|
|
@@ -2033,7 +2182,7 @@ function InputCardAccordion({
|
|
|
2033
2182
|
cursor: "pointer",
|
|
2034
2183
|
children: [
|
|
2035
2184
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2036
|
-
|
|
2185
|
+
import_react15.Flex,
|
|
2037
2186
|
{
|
|
2038
2187
|
align: "center",
|
|
2039
2188
|
justify: "space-between",
|
|
@@ -2048,9 +2197,9 @@ function InputCardAccordion({
|
|
|
2048
2197
|
_hover: { bg: "gray.50" },
|
|
2049
2198
|
transition: "background 0.15s ease",
|
|
2050
2199
|
children: [
|
|
2051
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2200
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react15.Flex, { align: "center", gap: 2, children: [
|
|
2052
2201
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2053
|
-
|
|
2202
|
+
import_react15.Box,
|
|
2054
2203
|
{
|
|
2055
2204
|
p: 2,
|
|
2056
2205
|
borderRadius: "full",
|
|
@@ -2060,28 +2209,29 @@ function InputCardAccordion({
|
|
|
2060
2209
|
children: activeIcon
|
|
2061
2210
|
}
|
|
2062
2211
|
),
|
|
2063
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2064
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2065
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2212
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react15.Box, { children: [
|
|
2213
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react15.Text, { fontWeight: "bold", fontSize: "md", lineHeight: "1.2", children: title }),
|
|
2214
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react15.Flex, { align: "center", gap: 1, fontSize: "xs", color: "gray.500", children: [
|
|
2066
2215
|
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lu2.LuHash, { size: 12 }),
|
|
2067
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2216
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react15.Text, { children: subtitle })
|
|
2068
2217
|
] })
|
|
2069
2218
|
] })
|
|
2070
2219
|
] }),
|
|
2071
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
2072
|
-
isComplete && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2073
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2220
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_react15.Flex, { align: "center", gap: 1.5, flexShrink: 0, children: [
|
|
2221
|
+
isComplete && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react15.Box, { color: "green.500", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lu2.LuCheck, { size: 16 }) }),
|
|
2222
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react15.Box, { color: "gray.400", children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lu2.LuChevronUp, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lu2.LuChevronDown, { size: 16 }) })
|
|
2074
2223
|
] })
|
|
2075
2224
|
]
|
|
2076
2225
|
}
|
|
2077
2226
|
),
|
|
2078
|
-
isOpen && children && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2227
|
+
isOpen && children && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_react15.Box, { p: 4, borderTopWidth: 1, borderColor: "gray.100", children })
|
|
2079
2228
|
]
|
|
2080
2229
|
}
|
|
2081
2230
|
);
|
|
2082
2231
|
}
|
|
2083
2232
|
|
|
2084
2233
|
// src/NewSaleForm/LifePlanApplicationFormWrapper.tsx
|
|
2234
|
+
var import_st_peter_ui4 = require("st-peter-ui");
|
|
2085
2235
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2086
2236
|
var hasText = (value) => String(value ?? "").trim() !== "";
|
|
2087
2237
|
var isPersonalComplete = (p) => !!p && [
|
|
@@ -2112,12 +2262,12 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2112
2262
|
openSectionKey,
|
|
2113
2263
|
onValidChange
|
|
2114
2264
|
}) => {
|
|
2115
|
-
const [applicationData, setApplicationData] = (0,
|
|
2265
|
+
const [applicationData, setApplicationData] = (0, import_react18.useState)(
|
|
2116
2266
|
createEmptyApplicationData
|
|
2117
2267
|
);
|
|
2118
|
-
const [hydrated, setHydrated] = (0,
|
|
2119
|
-
const [openSections, setOpenSections] = (0,
|
|
2120
|
-
(0,
|
|
2268
|
+
const [hydrated, setHydrated] = (0, import_react18.useState)(false);
|
|
2269
|
+
const [openSections, setOpenSections] = (0, import_react18.useState)(["personal"]);
|
|
2270
|
+
(0, import_react18.useEffect)(() => {
|
|
2121
2271
|
const timeoutId = window.setTimeout(() => {
|
|
2122
2272
|
const saved = loadApplicationDataFromLocalStorage();
|
|
2123
2273
|
if (saved) setApplicationData(saved);
|
|
@@ -2125,15 +2275,15 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2125
2275
|
}, 0);
|
|
2126
2276
|
return () => window.clearTimeout(timeoutId);
|
|
2127
2277
|
}, []);
|
|
2128
|
-
(0,
|
|
2278
|
+
(0, import_react18.useEffect)(() => {
|
|
2129
2279
|
if (!hydrated) return;
|
|
2130
2280
|
saveApplicationDataToLocalStorage(applicationData);
|
|
2131
2281
|
}, [applicationData, hydrated]);
|
|
2132
2282
|
const isComplete = isPersonalComplete(applicationData.personalInfo) && isAddressComplete(applicationData.address);
|
|
2133
|
-
(0,
|
|
2283
|
+
(0, import_react18.useEffect)(() => {
|
|
2134
2284
|
onValidChange?.(isComplete);
|
|
2135
2285
|
}, [isComplete, onValidChange]);
|
|
2136
|
-
(0,
|
|
2286
|
+
(0, import_react18.useEffect)(() => {
|
|
2137
2287
|
if (!openSection) return;
|
|
2138
2288
|
const timer = window.setTimeout(() => {
|
|
2139
2289
|
setOpenSections(
|
|
@@ -2143,7 +2293,7 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2143
2293
|
}, 80);
|
|
2144
2294
|
return () => window.clearTimeout(timer);
|
|
2145
2295
|
}, [openSection, openSectionKey]);
|
|
2146
|
-
const handlePersonalInfoUpdate = (0,
|
|
2296
|
+
const handlePersonalInfoUpdate = (0, import_react18.useCallback)(
|
|
2147
2297
|
(personalInfo) => {
|
|
2148
2298
|
setApplicationData((prev) => ({
|
|
2149
2299
|
...prev,
|
|
@@ -2152,13 +2302,13 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2152
2302
|
},
|
|
2153
2303
|
[]
|
|
2154
2304
|
);
|
|
2155
|
-
const handleAddressUpdate = (0,
|
|
2305
|
+
const handleAddressUpdate = (0, import_react18.useCallback)((address) => {
|
|
2156
2306
|
setApplicationData((prev) => ({
|
|
2157
2307
|
...prev,
|
|
2158
2308
|
address
|
|
2159
2309
|
}));
|
|
2160
2310
|
}, []);
|
|
2161
|
-
const handleEmploymentUpdate = (0,
|
|
2311
|
+
const handleEmploymentUpdate = (0, import_react18.useCallback)((employment) => {
|
|
2162
2312
|
setApplicationData((prev) => ({
|
|
2163
2313
|
...prev,
|
|
2164
2314
|
employment
|
|
@@ -2209,23 +2359,23 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2209
2359
|
(prev) => prev.includes(value) ? prev.filter((sectionValue) => sectionValue !== value) : [...prev, value]
|
|
2210
2360
|
);
|
|
2211
2361
|
};
|
|
2212
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2362
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react17.Box, { w: "full", children: [
|
|
2213
2363
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2214
|
-
|
|
2364
|
+
import_react17.Flex,
|
|
2215
2365
|
{
|
|
2216
2366
|
direction: { base: "column", sm: "row" },
|
|
2217
2367
|
align: { base: "stretch", sm: "center" },
|
|
2218
2368
|
justify: "space-between",
|
|
2219
2369
|
gap: STANDARD_SPACING.sm,
|
|
2220
2370
|
mb: STANDARD_SPACING.sm,
|
|
2221
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2222
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2223
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2224
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2371
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react17.Flex, { direction: "column", gap: STANDARD_SPACING.xs, w: "full", children: [
|
|
2372
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(InfoCard, { children: "Sections below are expandable and collapsible. Use them to focus only on relevant details." }),
|
|
2373
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_react17.Flex, { gap: STANDARD_SPACING.xs, justify: "flex-end", children: [
|
|
2374
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_st_peter_ui4.TertiarySmButton, { onClick: expandAll, children: [
|
|
2225
2375
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lu3.LuChevronsDown, { size: 14 }),
|
|
2226
2376
|
"Expand All"
|
|
2227
2377
|
] }),
|
|
2228
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2378
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_st_peter_ui4.TertiarySmButton, { onClick: collapseAll, children: [
|
|
2229
2379
|
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lu3.LuChevronsUp, { size: 14 }),
|
|
2230
2380
|
"Collapse All"
|
|
2231
2381
|
] })
|
|
@@ -2233,15 +2383,15 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2233
2383
|
] })
|
|
2234
2384
|
}
|
|
2235
2385
|
),
|
|
2236
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2237
|
-
|
|
2386
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react17.VStack, { align: "stretch", gap: 2, children: sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2387
|
+
import_react17.Box,
|
|
2238
2388
|
{
|
|
2239
2389
|
id: `app-section-${section.value}`,
|
|
2240
2390
|
scrollMarginTop: "80px",
|
|
2241
2391
|
children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2242
2392
|
InputCardAccordion,
|
|
2243
2393
|
{
|
|
2244
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
2394
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react17.Icon, { as: section.icon, boxSize: "18px" }),
|
|
2245
2395
|
title: section.label,
|
|
2246
2396
|
subtitle: section.description,
|
|
2247
2397
|
isOpen: openSections.includes(section.value),
|
|
@@ -2258,107 +2408,126 @@ var LifePlanApplicationFormWrapper = ({
|
|
|
2258
2408
|
var LifePlanApplicationFormWrapper_default = LifePlanApplicationFormWrapper;
|
|
2259
2409
|
|
|
2260
2410
|
// src/NewSaleForm/SharedLifePlanApplication.tsx
|
|
2261
|
-
var
|
|
2262
|
-
var
|
|
2411
|
+
var import_react26 = require("@chakra-ui/react");
|
|
2412
|
+
var import_react27 = require("react");
|
|
2263
2413
|
|
|
2264
2414
|
// src/NewSaleForm/data/lifePlanSteps.tsx
|
|
2265
2415
|
var import_fa4 = require("react-icons/fa");
|
|
2266
2416
|
var import_io3 = require("react-icons/io");
|
|
2267
2417
|
|
|
2268
2418
|
// src/NewSaleForm/confirmation.tsx
|
|
2269
|
-
var
|
|
2270
|
-
var
|
|
2419
|
+
var import_react22 = require("@chakra-ui/react");
|
|
2420
|
+
var import_st_peter_ui6 = require("st-peter-ui");
|
|
2271
2421
|
var import_fa6 = require("react-icons/fa6");
|
|
2272
2422
|
var import_fa3 = require("react-icons/fa");
|
|
2273
2423
|
var import_io2 = require("react-icons/io");
|
|
2274
|
-
var
|
|
2424
|
+
var import_fi = require("react-icons/fi");
|
|
2425
|
+
var import_react23 = require("react");
|
|
2275
2426
|
|
|
2276
2427
|
// src/NewSaleForm/data/checkBoxList.tsx
|
|
2277
|
-
var
|
|
2278
|
-
var
|
|
2428
|
+
var import_react19 = require("@chakra-ui/react");
|
|
2429
|
+
var import_st_peter_ui5 = require("st-peter-ui");
|
|
2279
2430
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2280
2431
|
var checkboxList = [
|
|
2281
2432
|
{
|
|
2282
2433
|
title: "TERMS OF USE",
|
|
2283
2434
|
checkBoxTitle: "I hereby confirm that the information that I provided is correct and that I accept the TERMS AND CONDITIONS AND DATA PRIVACY AGREEMENT.",
|
|
2284
|
-
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2285
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2286
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2287
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2288
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2289
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2290
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2291
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2292
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2293
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2294
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2295
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2296
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2297
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2298
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2299
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2300
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2301
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2302
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2303
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2304
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2305
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2435
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react19.Box, { children: [
|
|
2436
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Please read these Terms and Conditions of Use carefully before using this website. Using this website means you have read, understood, agreed to and accepted these Terms and Conditions of Use. If you do not accept these Terms and Conditions of Use, do not use this website." }),
|
|
2437
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "CHANGES TO THIS TERMS AND USE" }),
|
|
2438
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "St. Peter Group reserves the right to change these Terms and Conditions of Use from time to time, in whole or in part, without prior notice. Your continued use of this Website after changes to the Terms and Conditions of Use have been published constitutes your binding agreement and acceptance of the updated Terms and Conditions of Use. If at any time the Terms and Conditions of Use are not acceptable to you, you should immediately cease use of this website." }),
|
|
2439
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "TRADEMARKS" }),
|
|
2440
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "The trademarks, logos, and service marks displayed on this Website are the properties of the St. Peter Group or the St. Peter Group. You are not permitted to use these items without the prior written consent of St. Peter Group or the St. Peter Group." }),
|
|
2441
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "INTELLECTUAL PROPERTY RIGHTS" }),
|
|
2442
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "The St. Peter Group owns the intellectual property rights in the content that is made available on this Website, or has obtained the permission of the proper owner/s to make such content available. The St. Peter Group strictly prohibits the redistribution or copying of this Website, in whole or in part, without written permission." }),
|
|
2443
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "LINKS TO OTHER SITES" }),
|
|
2444
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "This website contains links to other websites and are provided for convenience only. St. Peter Group has not reviewed the linked websites and is not responsible for the content or availability of any linked websites. Inclusion of any link does not imply endorsement." }),
|
|
2445
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "SUBMISSION OF UNOFFICIAL IDEAS" }),
|
|
2446
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "St. Peter Group does not accept unsolicited unofficial ideas. Do not send original creative artwork, samples, demos, or other works. Any submissions will not be treated as confidential or proprietary." }),
|
|
2447
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "RULES OF CONDUCT" }),
|
|
2448
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Your use of this Website is subject to all applicable laws. Do not post threatening, abusive, defamatory, obscene, hateful, or illegal content. Do not upload harmful software or attempt to disrupt the Website." }),
|
|
2449
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { mt: 2, children: "You may not post advertisements, political materials, chain letters, spam, or use robots or scraping tools. You may not harvest data without consent." }),
|
|
2450
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "GLOBAL AVAILABILITY" }),
|
|
2451
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "St. Peter Group manages this site from the Philippines. You are responsible for complying with local laws if used from other locations. Some products may not be available worldwide." }),
|
|
2452
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "ACCURACY, COMPLETENESS AND TIMELINESS OF INFORMATION" }),
|
|
2453
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "St. Peter Group is not responsible if information on this Website is inaccurate or incomplete for very specific needs. You are responsible for monitoring changes." }),
|
|
2454
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "DISCLAIMER" }),
|
|
2455
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "The Website is provided \u201Cas is\u201D. St. Peter Group makes no warranties and is not liable for any damages, including loss of data, viruses, errors, or reliance on content." }),
|
|
2456
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "LIMITATION OF LIABILITY" }),
|
|
2457
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "St. Peter Group is not liable for any direct, indirect, punitive, special, incidental, or consequential damages, including loss of business or data." }),
|
|
2458
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { mt: 2, children: "Some jurisdictions may not allow the exclusion of certain damages." }),
|
|
2459
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "JURISDICTION" }),
|
|
2460
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "These Terms are governed by Philippine law. If any provision is held invalid, the remainder stays effective." }),
|
|
2461
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "PRIVACY POLICY" }),
|
|
2462
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Please read our Privacy Policy." }),
|
|
2463
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_react19.Separator, { my: 8 }),
|
|
2464
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "HOW TO CONTACT US" }),
|
|
2465
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "If you have any concern regarding these Terms of Use, contact us:" }),
|
|
2466
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { mt: 2, fontWeight: "semibold", children: "For website concerns: ronagl@stpeter.com.ph" }),
|
|
2467
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { mt: 2, fontWeight: "semibold", children: "For data privacy concerns: joycemb@stpeter.com.ph" }),
|
|
2468
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Small, { textAlign: "center", mt: 8, children: "This Terms of Use was amended on August 30, 2018" })
|
|
2306
2469
|
] })
|
|
2307
2470
|
},
|
|
2308
2471
|
{
|
|
2309
2472
|
title: "TERMS OF LIFE PLAN CONTRACT",
|
|
2310
2473
|
checkBoxTitle: "I hereby confirm that the information that I provided is correct and that I accept the TERMS OF LIFE PLAN CONTRACT.",
|
|
2311
|
-
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2312
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2313
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2314
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2315
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2316
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2317
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2318
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2319
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2320
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2321
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2322
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2323
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2324
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2325
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2326
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2327
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2328
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2329
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2330
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2331
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2332
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2333
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2334
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2335
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2336
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2337
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2338
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2474
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react19.Box, { children: [
|
|
2475
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "ARTICLE I. DEFINITION OF TERMS" }),
|
|
2476
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "ST. PETER" }),
|
|
2477
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "ST. PETER LIFE PLAN, INC." }),
|
|
2478
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "PLANHOLDER" }),
|
|
2479
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the person who purchases and owns the plan for whom or for whose beneficiaries benefits are to be delivered, as stipulated and guaranteed by ST. PETER. The term includes the assignee, transferee, and any successor-in-interest of the PLANHOLDER." }),
|
|
2480
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Contract" }),
|
|
2481
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the Life Plan Contract between ST. PETER and the PLANHOLDER providing the terms and conditions thereof." }),
|
|
2482
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Contract Price" }),
|
|
2483
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the stipulated price of the Life Plan which may be paid either in lump sum or in installments, net of handling fees and other charges, if any." }),
|
|
2484
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Gross Contract Price" }),
|
|
2485
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the stipulated price of the Life Plan which includes handling fees and other charges." }),
|
|
2486
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Plan Installment" }),
|
|
2487
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the monthly, quarterly, semi-annual or annual installment amounts paid by the PLANHOLDER." }),
|
|
2488
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Paying Period" }),
|
|
2489
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the period of time within which the PLANHOLDER has to pay for the Gross Contract Price of the plan in monthly, quarterly, semi-annual, annual installments or lump sum." }),
|
|
2490
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Due Date" }),
|
|
2491
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the date when the PLANHOLDER\u2019s installment should be paid." }),
|
|
2492
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Beneficiary" }),
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the person designated by the PLANHOLDER, in accordance with law, to receive the plan\u2019s insurance proceeds and/or pre-need benefits in case of unrendered service. The PLANHOLDER has the right to change the beneficiary/ies designated in the application subject to the submission of the standard form and approval." }),
|
|
2494
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Grace Period" }),
|
|
2495
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the sixty-day period given to the PLANHOLDER within which to pay accrued installments due, counted from the due date of the first unpaid installment in default, as stipulated in this Life Plan Contract." }),
|
|
2496
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Lapsed Plan" }),
|
|
2497
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to a delinquent plan which has remained unpaid beyond the grace period. A Lapsed Plan has no force and effect." }),
|
|
2498
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Reinstatement" }),
|
|
2499
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the process of reactivating a lapsed plan." }),
|
|
2500
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Certificate of Full Payment" }),
|
|
2501
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to ST. PETER\u2019s duly signed certification stating that a plan has been fully paid." }),
|
|
2502
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "In Force Plan or Active Plan" }),
|
|
2503
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to a pre-need plan for which ST. PETER has an outstanding obligation, either for (1) delivery of benefits or services or (2) payment of termination value." }),
|
|
2504
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Mortuary Tie-Up" }),
|
|
2505
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the memorial servicing tie-up or mortuary accredited with ST. PETER which renders the memorial services stipulated hereunder." }),
|
|
2506
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Effective Date" }),
|
|
2507
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "Refers to the date when the payment of at least one (1) modal installment has been accepted and the purchase has been approved by ST. PETER with the issuance of this Contract and as indicated herein." })
|
|
2339
2508
|
] })
|
|
2340
2509
|
},
|
|
2341
2510
|
{
|
|
2342
2511
|
title: "OUR CUSTOMER SERVICE CHARTER",
|
|
2343
2512
|
checkBoxTitle: "I have read and understood the CUSTOMER SERVICE CHARTER.",
|
|
2344
|
-
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2345
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2346
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2347
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
2513
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react19.Box, { children: [
|
|
2514
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { children: "We at ST. PETER LIFE PLAN, INC. hold ourselves as DeathCare Experts who aspire to be the most trusted and reliable provider in your Pre-Need Life Plan needs. We also aim to deliver world-class DeathCare services to our planholders. At the core of our corporate values is customer satisfaction. We believe that every filipino family should have a St. Peter Life Plan. These are the pillars of our company\u2019s customer service commitment especially in our online facility and in social media." }),
|
|
2515
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { fontWeight: "semibold", mt: 4, children: "Our customer service charter reflects our commitment to:" }),
|
|
2516
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_react19.Box, { as: "ul", listStyleType: "circle", listStylePosition: "inside", children: [
|
|
2348
2517
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: "Safe and Secure Operations" }),
|
|
2349
2518
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: "Maintenance of Customer Privacy" }),
|
|
2350
2519
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: "Quality Services" }),
|
|
2351
2520
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: "Transparent Product Information" }),
|
|
2352
2521
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("li", { children: "Prompt Response to Inquiries and Complaints" })
|
|
2353
2522
|
] }),
|
|
2354
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2523
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_st_peter_ui5.Body, { mt: 4, fontWeight: "semibold", children: "OUR CUSTOMER SERVICE STANDARDS AND COMMITMENTS" })
|
|
2355
2524
|
] })
|
|
2356
2525
|
}
|
|
2357
2526
|
];
|
|
2358
2527
|
|
|
2359
2528
|
// src/NewSaleForm/ui/info-card-accordion.tsx
|
|
2360
|
-
var
|
|
2361
|
-
var
|
|
2529
|
+
var import_react20 = require("@chakra-ui/react");
|
|
2530
|
+
var import_react21 = require("react");
|
|
2362
2531
|
var import_lu4 = require("react-icons/lu");
|
|
2363
2532
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2364
2533
|
function InfoCardAccordion({
|
|
@@ -2372,7 +2541,7 @@ function InfoCardAccordion({
|
|
|
2372
2541
|
onToggle,
|
|
2373
2542
|
onEdit
|
|
2374
2543
|
}) {
|
|
2375
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
2544
|
+
const [internalOpen, setInternalOpen] = (0, import_react21.useState)(defaultOpen);
|
|
2376
2545
|
const isControlled = controlledOpen !== void 0;
|
|
2377
2546
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
2378
2547
|
const toggle = () => {
|
|
@@ -2390,7 +2559,7 @@ function InfoCardAccordion({
|
|
|
2390
2559
|
};
|
|
2391
2560
|
const activeIcon = isOpen && openedIcon ? openedIcon : icon;
|
|
2392
2561
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2393
|
-
|
|
2562
|
+
import_react20.Box,
|
|
2394
2563
|
{
|
|
2395
2564
|
w: "full",
|
|
2396
2565
|
position: "relative",
|
|
@@ -2404,7 +2573,7 @@ function InfoCardAccordion({
|
|
|
2404
2573
|
cursor: "pointer",
|
|
2405
2574
|
children: [
|
|
2406
2575
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2407
|
-
|
|
2576
|
+
import_react20.Flex,
|
|
2408
2577
|
{
|
|
2409
2578
|
align: "center",
|
|
2410
2579
|
justify: "space-between",
|
|
@@ -2419,9 +2588,9 @@ function InfoCardAccordion({
|
|
|
2419
2588
|
_hover: { bg: "gray.50" },
|
|
2420
2589
|
transition: "background 0.15s ease",
|
|
2421
2590
|
children: [
|
|
2422
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2591
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react20.Flex, { align: "center", gap: 2, children: [
|
|
2423
2592
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2424
|
-
|
|
2593
|
+
import_react20.Box,
|
|
2425
2594
|
{
|
|
2426
2595
|
p: 2,
|
|
2427
2596
|
borderRadius: "full",
|
|
@@ -2431,17 +2600,17 @@ function InfoCardAccordion({
|
|
|
2431
2600
|
children: activeIcon
|
|
2432
2601
|
}
|
|
2433
2602
|
),
|
|
2434
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2435
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2436
|
-
subtitle && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2603
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react20.Box, { children: [
|
|
2604
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react20.Text, { fontWeight: "bold", fontSize: "md", lineHeight: "1.2", children: title }),
|
|
2605
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react20.Flex, { align: "center", gap: 1, fontSize: "xs", color: "gray.500", children: [
|
|
2437
2606
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lu4.LuHash, { size: 12 }),
|
|
2438
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2607
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react20.Text, { children: subtitle })
|
|
2439
2608
|
] })
|
|
2440
2609
|
] })
|
|
2441
2610
|
] }),
|
|
2442
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2611
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react20.Flex, { align: "center", gap: 1, flexShrink: 0, children: [
|
|
2443
2612
|
onEdit && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2444
|
-
|
|
2613
|
+
import_react20.Button,
|
|
2445
2614
|
{
|
|
2446
2615
|
variant: "ghost",
|
|
2447
2616
|
p: 0,
|
|
@@ -2453,15 +2622,15 @@ function InfoCardAccordion({
|
|
|
2453
2622
|
e.stopPropagation();
|
|
2454
2623
|
onEdit();
|
|
2455
2624
|
},
|
|
2456
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2625
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react20.Icon, { as: import_lu4.LuPencil, boxSize: 4 })
|
|
2457
2626
|
}
|
|
2458
2627
|
),
|
|
2459
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2628
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react20.Box, { color: "gray.400", children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lu4.LuChevronUp, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lu4.LuChevronDown, { size: 16 }) })
|
|
2460
2629
|
] })
|
|
2461
2630
|
]
|
|
2462
2631
|
}
|
|
2463
2632
|
),
|
|
2464
|
-
isOpen && children && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2633
|
+
isOpen && children && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react20.Box, { p: 4, borderTopWidth: 1, borderColor: "gray.100", children })
|
|
2465
2634
|
]
|
|
2466
2635
|
}
|
|
2467
2636
|
);
|
|
@@ -2489,10 +2658,10 @@ var ApplicationAccordion = ({
|
|
|
2489
2658
|
items,
|
|
2490
2659
|
onEdit
|
|
2491
2660
|
}) => {
|
|
2492
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2661
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.VStack, { align: "stretch", gap: 3, children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2493
2662
|
InfoCardAccordion,
|
|
2494
2663
|
{
|
|
2495
|
-
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2664
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Icon, { as: item.icon, boxSize: "18px" }),
|
|
2496
2665
|
title: item.label,
|
|
2497
2666
|
...item.subtitle !== void 0 ? { subtitle: item.subtitle } : {},
|
|
2498
2667
|
defaultOpen: index === 0,
|
|
@@ -2504,16 +2673,66 @@ var ApplicationAccordion = ({
|
|
|
2504
2673
|
};
|
|
2505
2674
|
var ReviewRows2 = ({
|
|
2506
2675
|
rows
|
|
2507
|
-
}) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2676
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.VStack, { align: "stretch", gap: 1, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(RowItem, { label: row.label, value: row.value }, row.label)) });
|
|
2677
|
+
var FieldGrid = ({
|
|
2678
|
+
rows
|
|
2679
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.SimpleGrid, { columns: { base: 1, sm: 2 }, columnGap: 6, rowGap: 5, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Box, { minW: 0, children: [
|
|
2680
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Text, { fontSize: "xs", color: "gray.500", mb: 1, children: row.label }),
|
|
2681
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2682
|
+
import_react22.Text,
|
|
2683
|
+
{
|
|
2684
|
+
fontSize: "sm",
|
|
2685
|
+
fontWeight: "600",
|
|
2686
|
+
color: "gray.900",
|
|
2687
|
+
wordBreak: "break-word",
|
|
2688
|
+
children: row.value ?? "-"
|
|
2689
|
+
}
|
|
2690
|
+
)
|
|
2691
|
+
] }, row.label)) });
|
|
2692
|
+
var SectionCard = ({
|
|
2693
|
+
title,
|
|
2694
|
+
onEdit,
|
|
2695
|
+
children
|
|
2696
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
2697
|
+
import_react22.Box,
|
|
2698
|
+
{
|
|
2699
|
+
css: { breakInside: "avoid" },
|
|
2700
|
+
mb: 6,
|
|
2701
|
+
bg: "white",
|
|
2702
|
+
borderWidth: "1px",
|
|
2703
|
+
borderColor: "gray.200",
|
|
2704
|
+
borderRadius: "xl",
|
|
2705
|
+
boxShadow: "sm",
|
|
2706
|
+
p: 6,
|
|
2707
|
+
children: [
|
|
2708
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Flex, { justify: "space-between", align: "center", mb: 5, children: [
|
|
2709
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Heading, { as: "h3", fontSize: "lg", fontWeight: "bold", color: "gray.900", children: title }),
|
|
2710
|
+
onEdit ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2711
|
+
import_react22.IconButton,
|
|
2712
|
+
{
|
|
2713
|
+
"aria-label": `Edit ${title}`,
|
|
2714
|
+
size: "sm",
|
|
2715
|
+
variant: "ghost",
|
|
2716
|
+
color: "gray.400",
|
|
2717
|
+
_hover: { color: "green.600", bg: "green.50" },
|
|
2718
|
+
onClick: onEdit,
|
|
2719
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_fi.FiEdit2, {})
|
|
2720
|
+
}
|
|
2721
|
+
) : null
|
|
2722
|
+
] }),
|
|
2723
|
+
children
|
|
2724
|
+
]
|
|
2725
|
+
}
|
|
2726
|
+
);
|
|
2508
2727
|
var Confirmation = ({ onAllAcceptedChange, onEdit }) => {
|
|
2509
|
-
const [cartItems, setCartItems] = (0,
|
|
2510
|
-
const [lifePlanApplication, setLifePlanApplication] = (0,
|
|
2511
|
-
const [openDialog, setOpenDialog] = (0,
|
|
2512
|
-
const [pendingCheck, setPendingCheck] = (0,
|
|
2513
|
-
const [acceptedAgreements, setAcceptedAgreements] = (0,
|
|
2728
|
+
const [cartItems, setCartItems] = (0, import_react23.useState)(null);
|
|
2729
|
+
const [lifePlanApplication, setLifePlanApplication] = (0, import_react23.useState)(null);
|
|
2730
|
+
const [openDialog, setOpenDialog] = (0, import_react23.useState)(false);
|
|
2731
|
+
const [pendingCheck, setPendingCheck] = (0, import_react23.useState)(null);
|
|
2732
|
+
const [acceptedAgreements, setAcceptedAgreements] = (0, import_react23.useState)(
|
|
2514
2733
|
() => checkboxList.map(() => false)
|
|
2515
2734
|
);
|
|
2516
|
-
(0,
|
|
2735
|
+
(0, import_react23.useEffect)(() => {
|
|
2517
2736
|
const loadStoredData = () => {
|
|
2518
2737
|
try {
|
|
2519
2738
|
const checkoutStored = sessionStorage.getItem("CheckoutCart");
|
|
@@ -2548,7 +2767,7 @@ var Confirmation = ({ onAllAcceptedChange, onEdit }) => {
|
|
|
2548
2767
|
const acceptedCount = acceptedAgreements.filter(Boolean).length;
|
|
2549
2768
|
const allAccepted = checkboxList.length > 0 && acceptedCount === checkboxList.length;
|
|
2550
2769
|
const pendingAgreement = pendingCheck !== null ? checkboxList[pendingCheck] : null;
|
|
2551
|
-
(0,
|
|
2770
|
+
(0, import_react23.useEffect)(() => {
|
|
2552
2771
|
onAllAcceptedChange?.(allAccepted);
|
|
2553
2772
|
}, [allAccepted, onAllAcceptedChange]);
|
|
2554
2773
|
const beneficiaries = [
|
|
@@ -2575,335 +2794,265 @@ var Confirmation = ({ onAllAcceptedChange, onEdit }) => {
|
|
|
2575
2794
|
setOpenDialog(false);
|
|
2576
2795
|
setPendingCheck(null);
|
|
2577
2796
|
};
|
|
2578
|
-
|
|
2797
|
+
const orderRows = [
|
|
2798
|
+
{ label: "Selected Plan", value: selectedPlan?.planDesc },
|
|
2799
|
+
{ label: "Quantity", value: selectedPlan?.quantity },
|
|
2800
|
+
{
|
|
2801
|
+
label: "Total Amount Payable",
|
|
2802
|
+
value: selectedPlan ? `\u20B1 ${selectedPlan.total}` : void 0
|
|
2803
|
+
}
|
|
2804
|
+
];
|
|
2805
|
+
const personalRows = [
|
|
2806
|
+
{ label: "Uploaded ID", value: lifePlanApplication?.personalInfo.idType },
|
|
2807
|
+
{ label: "Last Name", value: lifePlanApplication?.personalInfo.lastName },
|
|
2808
|
+
{ label: "First Name", value: lifePlanApplication?.personalInfo.firstName },
|
|
2809
|
+
{
|
|
2810
|
+
label: "Middle Name",
|
|
2811
|
+
value: lifePlanApplication?.personalInfo.middleName
|
|
2812
|
+
},
|
|
2813
|
+
{ label: "Suffix", value: lifePlanApplication?.personalInfo.suffix },
|
|
2814
|
+
{
|
|
2815
|
+
label: "Date of Birth",
|
|
2816
|
+
value: lifePlanApplication?.personalInfo.birthDate
|
|
2817
|
+
},
|
|
2818
|
+
{ label: "Gender", value: lifePlanApplication?.personalInfo.gender },
|
|
2819
|
+
{
|
|
2820
|
+
label: "Contact Number",
|
|
2821
|
+
value: lifePlanApplication?.personalInfo.mobileNumber
|
|
2822
|
+
},
|
|
2823
|
+
{ label: "Email", value: lifePlanApplication?.personalInfo.emailAddress },
|
|
2824
|
+
{
|
|
2825
|
+
label: "Landline Number",
|
|
2826
|
+
value: lifePlanApplication?.personalInfo.landLineNumber
|
|
2827
|
+
},
|
|
2828
|
+
{
|
|
2829
|
+
label: "Mailing Address",
|
|
2830
|
+
value: lifePlanApplication?.personalInfo.mailingAddress
|
|
2831
|
+
},
|
|
2832
|
+
{
|
|
2833
|
+
label: "Civil Status",
|
|
2834
|
+
value: lifePlanApplication?.personalInfo.civilStatus
|
|
2835
|
+
}
|
|
2836
|
+
];
|
|
2837
|
+
const addressRows = [
|
|
2838
|
+
{ label: "Lot #", value: lifePlanApplication?.address.lot },
|
|
2839
|
+
{ label: "Street", value: lifePlanApplication?.address.street },
|
|
2840
|
+
{ label: "Barangay", value: lifePlanApplication?.address.barangay },
|
|
2841
|
+
{ label: "City", value: lifePlanApplication?.address.city },
|
|
2842
|
+
{ label: "Province", value: lifePlanApplication?.address.province }
|
|
2843
|
+
];
|
|
2844
|
+
const employmentRows = [
|
|
2845
|
+
{ label: "Occupation", value: lifePlanApplication?.employment.occupation },
|
|
2846
|
+
{
|
|
2847
|
+
label: "Employer Name",
|
|
2848
|
+
value: lifePlanApplication?.employment.employerName
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
label: "Employment Status",
|
|
2852
|
+
value: lifePlanApplication?.employment.employmentStatus
|
|
2853
|
+
},
|
|
2854
|
+
{
|
|
2855
|
+
label: "Office Address",
|
|
2856
|
+
value: lifePlanApplication?.employment.officeAddress
|
|
2857
|
+
},
|
|
2858
|
+
{ label: "TIN", value: lifePlanApplication?.employment.TIN },
|
|
2859
|
+
{ label: "SSS/GSIS", value: lifePlanApplication?.employment.SSS },
|
|
2860
|
+
{
|
|
2861
|
+
label: "Source of Income",
|
|
2862
|
+
value: lifePlanApplication?.employment.sourceOfIncome
|
|
2863
|
+
}
|
|
2864
|
+
];
|
|
2865
|
+
const beneficiaryItems = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.VStack, { align: "stretch", gap: 4, children: beneficiaries.map((beneficiary, index) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Box, { children: [
|
|
2866
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Text, { fontWeight: "semibold", fontSize: "sm", mb: 1, children: beneficiary.name }),
|
|
2579
2867
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2580
|
-
|
|
2868
|
+
ReviewRows2,
|
|
2581
2869
|
{
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2587
|
-
ReviewRows2,
|
|
2588
|
-
{
|
|
2589
|
-
rows: [
|
|
2590
|
-
{
|
|
2591
|
-
label: "Selected Plan",
|
|
2592
|
-
value: selectedPlan?.planDesc
|
|
2593
|
-
},
|
|
2594
|
-
{
|
|
2595
|
-
label: "Quantity",
|
|
2596
|
-
value: selectedPlan?.quantity
|
|
2597
|
-
},
|
|
2598
|
-
{
|
|
2599
|
-
label: "Total Amount Payable",
|
|
2600
|
-
value: selectedPlan ? `\u20B1 ${selectedPlan.total}` : void 0
|
|
2601
|
-
}
|
|
2602
|
-
]
|
|
2603
|
-
}
|
|
2604
|
-
)
|
|
2605
|
-
}
|
|
2606
|
-
),
|
|
2607
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2608
|
-
ApplicationAccordion,
|
|
2609
|
-
{
|
|
2610
|
-
onEdit: onEdit ?? (() => {
|
|
2611
|
-
}),
|
|
2612
|
-
items: [
|
|
2613
|
-
{
|
|
2614
|
-
icon: import_fa3.FaRegUser,
|
|
2615
|
-
label: "Personal Info",
|
|
2616
|
-
subtitle: "Identification and full name",
|
|
2617
|
-
value: "personal",
|
|
2618
|
-
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2619
|
-
ReviewRows2,
|
|
2620
|
-
{
|
|
2621
|
-
rows: [
|
|
2622
|
-
{
|
|
2623
|
-
label: "Uploaded ID",
|
|
2624
|
-
value: lifePlanApplication?.personalInfo.idType
|
|
2625
|
-
},
|
|
2626
|
-
{
|
|
2627
|
-
label: "Last Name",
|
|
2628
|
-
value: lifePlanApplication?.personalInfo.lastName
|
|
2629
|
-
},
|
|
2630
|
-
{
|
|
2631
|
-
label: "First Name",
|
|
2632
|
-
value: lifePlanApplication?.personalInfo.firstName
|
|
2633
|
-
},
|
|
2634
|
-
{
|
|
2635
|
-
label: "Middle Name",
|
|
2636
|
-
value: lifePlanApplication?.personalInfo.middleName
|
|
2637
|
-
},
|
|
2638
|
-
{
|
|
2639
|
-
label: "Suffix",
|
|
2640
|
-
value: lifePlanApplication?.personalInfo.suffix
|
|
2641
|
-
},
|
|
2642
|
-
{
|
|
2643
|
-
label: "Date of Birth",
|
|
2644
|
-
value: lifePlanApplication?.personalInfo.birthDate
|
|
2645
|
-
},
|
|
2646
|
-
{
|
|
2647
|
-
label: "Gender",
|
|
2648
|
-
value: lifePlanApplication?.personalInfo.gender
|
|
2649
|
-
},
|
|
2650
|
-
{
|
|
2651
|
-
label: "Contact Number",
|
|
2652
|
-
value: lifePlanApplication?.personalInfo.mobileNumber
|
|
2653
|
-
},
|
|
2654
|
-
{
|
|
2655
|
-
label: "Email",
|
|
2656
|
-
value: lifePlanApplication?.personalInfo.emailAddress
|
|
2657
|
-
},
|
|
2658
|
-
{
|
|
2659
|
-
label: "Landline Number",
|
|
2660
|
-
value: lifePlanApplication?.personalInfo.landLineNumber
|
|
2661
|
-
},
|
|
2662
|
-
{
|
|
2663
|
-
label: "Mailing Address",
|
|
2664
|
-
value: lifePlanApplication?.personalInfo.mailingAddress
|
|
2665
|
-
},
|
|
2666
|
-
{
|
|
2667
|
-
label: "Civil Status",
|
|
2668
|
-
value: lifePlanApplication?.personalInfo.civilStatus
|
|
2669
|
-
}
|
|
2670
|
-
]
|
|
2671
|
-
}
|
|
2672
|
-
)
|
|
2673
|
-
},
|
|
2674
|
-
{
|
|
2675
|
-
icon: import_fa6.FaRegAddressCard,
|
|
2676
|
-
label: "Address",
|
|
2677
|
-
subtitle: "Where you currently live",
|
|
2678
|
-
value: "address",
|
|
2679
|
-
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2680
|
-
ReviewRows2,
|
|
2681
|
-
{
|
|
2682
|
-
rows: [
|
|
2683
|
-
{
|
|
2684
|
-
label: "Lot #",
|
|
2685
|
-
value: lifePlanApplication?.address.lot
|
|
2686
|
-
},
|
|
2687
|
-
{
|
|
2688
|
-
label: "Street",
|
|
2689
|
-
value: lifePlanApplication?.address.street
|
|
2690
|
-
},
|
|
2691
|
-
{
|
|
2692
|
-
label: "Barangay",
|
|
2693
|
-
value: lifePlanApplication?.address.barangay
|
|
2694
|
-
},
|
|
2695
|
-
{
|
|
2696
|
-
label: "City",
|
|
2697
|
-
value: lifePlanApplication?.address.city
|
|
2698
|
-
},
|
|
2699
|
-
{
|
|
2700
|
-
label: "Province",
|
|
2701
|
-
value: lifePlanApplication?.address.province
|
|
2702
|
-
}
|
|
2703
|
-
]
|
|
2704
|
-
}
|
|
2705
|
-
)
|
|
2706
|
-
},
|
|
2707
|
-
{
|
|
2708
|
-
icon: import_io2.IoIosInformationCircleOutline,
|
|
2709
|
-
label: "Employment",
|
|
2710
|
-
subtitle: "Work and income details",
|
|
2711
|
-
value: "employment",
|
|
2712
|
-
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2713
|
-
ReviewRows2,
|
|
2714
|
-
{
|
|
2715
|
-
rows: [
|
|
2716
|
-
{
|
|
2717
|
-
label: "Occupation",
|
|
2718
|
-
value: lifePlanApplication?.employment.occupation
|
|
2719
|
-
},
|
|
2720
|
-
{
|
|
2721
|
-
label: "Employer Name",
|
|
2722
|
-
value: lifePlanApplication?.employment.employerName
|
|
2723
|
-
},
|
|
2724
|
-
{
|
|
2725
|
-
label: "Employment Status",
|
|
2726
|
-
value: lifePlanApplication?.employment.employmentStatus
|
|
2727
|
-
},
|
|
2728
|
-
{
|
|
2729
|
-
label: "Office Address",
|
|
2730
|
-
value: lifePlanApplication?.employment.officeAddress
|
|
2731
|
-
},
|
|
2732
|
-
{
|
|
2733
|
-
label: "TIN",
|
|
2734
|
-
value: lifePlanApplication?.employment.TIN
|
|
2735
|
-
},
|
|
2736
|
-
{
|
|
2737
|
-
label: "SSS/GSIS",
|
|
2738
|
-
value: lifePlanApplication?.employment.SSS
|
|
2739
|
-
},
|
|
2740
|
-
{
|
|
2741
|
-
label: "Source of Income",
|
|
2742
|
-
value: lifePlanApplication?.employment.sourceOfIncome
|
|
2743
|
-
}
|
|
2744
|
-
]
|
|
2745
|
-
}
|
|
2746
|
-
)
|
|
2747
|
-
}
|
|
2870
|
+
rows: [
|
|
2871
|
+
{ label: "Relationship", value: beneficiary.relationship },
|
|
2872
|
+
{ label: "Date of Birth", value: beneficiary.dob },
|
|
2873
|
+
{ label: "Address", value: beneficiary.address }
|
|
2748
2874
|
]
|
|
2749
2875
|
}
|
|
2750
|
-
)
|
|
2751
|
-
|
|
2752
|
-
|
|
2876
|
+
)
|
|
2877
|
+
] }, `${beneficiary.name}-${index}`)) });
|
|
2878
|
+
const agreementItems = /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.VStack, { align: "stretch", gap: 3, children: checkboxList.map((item, index) => {
|
|
2879
|
+
const isAccepted = acceptedAgreements[index];
|
|
2880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2881
|
+
import_react22.Box,
|
|
2753
2882
|
{
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2883
|
+
role: "button",
|
|
2884
|
+
tabIndex: 0,
|
|
2885
|
+
p: 4,
|
|
2886
|
+
borderWidth: "1px",
|
|
2887
|
+
rounded: "xl",
|
|
2888
|
+
bg: isAccepted ? "green.50" : "gray.50",
|
|
2889
|
+
transition: "all 0.15s ease",
|
|
2890
|
+
_hover: { bg: isAccepted ? "green.100" : "gray.100" },
|
|
2891
|
+
onClick: () => {
|
|
2892
|
+
setPendingCheck(index);
|
|
2893
|
+
setOpenDialog(true);
|
|
2894
|
+
},
|
|
2895
|
+
onKeyDown: (e) => {
|
|
2896
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
2897
|
+
e.preventDefault();
|
|
2898
|
+
setPendingCheck(index);
|
|
2899
|
+
setOpenDialog(true);
|
|
2900
|
+
}
|
|
2901
|
+
},
|
|
2902
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Flex, { justify: "space-between", align: "start", gap: 4, children: [
|
|
2903
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Box, { flex: "1", minW: 0, children: [
|
|
2904
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Text, { fontWeight: "semibold", lineClamp: 2, children: [
|
|
2905
|
+
item.checkBoxTitle,
|
|
2906
|
+
"."
|
|
2907
|
+
] }),
|
|
2908
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Text, { fontSize: "sm", color: "gray.600", mt: 1, lineClamp: 1, children: "Tap to review details." })
|
|
2909
|
+
] }),
|
|
2759
2910
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2760
|
-
|
|
2911
|
+
import_react22.Badge,
|
|
2761
2912
|
{
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
value: beneficiary.relationship
|
|
2766
|
-
},
|
|
2767
|
-
{
|
|
2768
|
-
label: "Date of Birth",
|
|
2769
|
-
value: beneficiary.dob
|
|
2770
|
-
},
|
|
2771
|
-
{
|
|
2772
|
-
label: "Address",
|
|
2773
|
-
value: beneficiary.address
|
|
2774
|
-
}
|
|
2775
|
-
]
|
|
2913
|
+
variant: "subtle",
|
|
2914
|
+
colorPalette: isAccepted ? "green" : "gray",
|
|
2915
|
+
children: isAccepted ? "Accepted" : "Review"
|
|
2776
2916
|
}
|
|
2777
2917
|
)
|
|
2778
|
-
] }
|
|
2779
|
-
}
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2918
|
+
] })
|
|
2919
|
+
},
|
|
2920
|
+
index
|
|
2921
|
+
);
|
|
2922
|
+
}) });
|
|
2923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Box, { minH: "100vh", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Box, { px: { base: 0, md: 8 }, pb: { base: 4, md: 8 }, children: [
|
|
2924
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Box, { display: { base: "block", lg: "none" }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.VStack, { align: "stretch", gap: 3, children: [
|
|
2925
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2926
|
+
InfoCardAccordion,
|
|
2927
|
+
{
|
|
2928
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Icon, { as: import_io2.IoIosInformationCircleOutline, boxSize: "18px" }),
|
|
2929
|
+
title: "Order Summary",
|
|
2930
|
+
subtitle: modeLabel(selectedPlan?.mode),
|
|
2931
|
+
defaultOpen: true,
|
|
2932
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReviewRows2, { rows: orderRows })
|
|
2933
|
+
}
|
|
2934
|
+
),
|
|
2935
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2936
|
+
ApplicationAccordion,
|
|
2937
|
+
{
|
|
2938
|
+
onEdit: onEdit ?? (() => {
|
|
2939
|
+
}),
|
|
2940
|
+
items: [
|
|
2791
2941
|
{
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
bg: isAccepted ? "green.50" : "gray.50",
|
|
2798
|
-
transition: "all 0.15s ease",
|
|
2799
|
-
_hover: { bg: isAccepted ? "green.100" : "gray.100" },
|
|
2800
|
-
onClick: () => {
|
|
2801
|
-
setPendingCheck(index);
|
|
2802
|
-
setOpenDialog(true);
|
|
2803
|
-
},
|
|
2804
|
-
onKeyDown: (e) => {
|
|
2805
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
2806
|
-
e.preventDefault();
|
|
2807
|
-
setPendingCheck(index);
|
|
2808
|
-
setOpenDialog(true);
|
|
2809
|
-
}
|
|
2810
|
-
},
|
|
2811
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react23.Flex, { justify: "space-between", align: "start", gap: 4, children: [
|
|
2812
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react23.Box, { flex: "1", minW: 0, children: [
|
|
2813
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react23.Text, { fontWeight: "semibold", lineClamp: 2, children: [
|
|
2814
|
-
item.checkBoxTitle,
|
|
2815
|
-
"."
|
|
2816
|
-
] }),
|
|
2817
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2818
|
-
import_react23.Text,
|
|
2819
|
-
{
|
|
2820
|
-
fontSize: "sm",
|
|
2821
|
-
color: "gray.600",
|
|
2822
|
-
mt: 1,
|
|
2823
|
-
lineClamp: 1,
|
|
2824
|
-
children: "Tap to review details."
|
|
2825
|
-
}
|
|
2826
|
-
)
|
|
2827
|
-
] }),
|
|
2828
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2829
|
-
import_react23.Badge,
|
|
2830
|
-
{
|
|
2831
|
-
variant: "subtle",
|
|
2832
|
-
colorPalette: isAccepted ? "green" : "gray",
|
|
2833
|
-
children: isAccepted ? "Accepted" : "Review"
|
|
2834
|
-
}
|
|
2835
|
-
)
|
|
2836
|
-
] })
|
|
2942
|
+
icon: import_fa3.FaRegUser,
|
|
2943
|
+
label: "Personal Info",
|
|
2944
|
+
subtitle: "Identification and full name",
|
|
2945
|
+
value: "personal",
|
|
2946
|
+
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReviewRows2, { rows: personalRows })
|
|
2837
2947
|
},
|
|
2838
|
-
|
|
2839
|
-
|
|
2840
|
-
|
|
2948
|
+
{
|
|
2949
|
+
icon: import_fa6.FaRegAddressCard,
|
|
2950
|
+
label: "Address",
|
|
2951
|
+
subtitle: "Where you currently live",
|
|
2952
|
+
value: "address",
|
|
2953
|
+
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReviewRows2, { rows: addressRows })
|
|
2954
|
+
},
|
|
2955
|
+
{
|
|
2956
|
+
icon: import_io2.IoIosInformationCircleOutline,
|
|
2957
|
+
label: "Employment",
|
|
2958
|
+
subtitle: "Work and income details",
|
|
2959
|
+
value: "employment",
|
|
2960
|
+
page: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ReviewRows2, { rows: employmentRows })
|
|
2961
|
+
}
|
|
2962
|
+
]
|
|
2963
|
+
}
|
|
2964
|
+
),
|
|
2965
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2966
|
+
InfoCardAccordion,
|
|
2967
|
+
{
|
|
2968
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Icon, { as: import_fa3.FaRegUser, boxSize: "18px" }),
|
|
2969
|
+
title: "Beneficiaries",
|
|
2970
|
+
subtitle: `${beneficiaries.length} listed`,
|
|
2971
|
+
children: beneficiaryItems
|
|
2972
|
+
}
|
|
2973
|
+
),
|
|
2974
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2975
|
+
InfoCardAccordion,
|
|
2976
|
+
{
|
|
2977
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Icon, { as: import_io2.IoIosInformationCircleOutline, boxSize: "18px" }),
|
|
2978
|
+
title: "Agreements",
|
|
2979
|
+
subtitle: `${acceptedCount}/${checkboxList.length} accepted`,
|
|
2980
|
+
children: agreementItems
|
|
2981
|
+
}
|
|
2982
|
+
)
|
|
2983
|
+
] }) }),
|
|
2984
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
2985
|
+
import_react22.Box,
|
|
2986
|
+
{
|
|
2987
|
+
display: { base: "none", lg: "block" },
|
|
2988
|
+
css: { columnCount: 2, columnGap: "24px" },
|
|
2989
|
+
children: [
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2991
|
+
SectionCard,
|
|
2992
|
+
{
|
|
2993
|
+
title: "Personal Information",
|
|
2994
|
+
onEdit: () => onEdit?.("personal"),
|
|
2995
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FieldGrid, { rows: personalRows })
|
|
2996
|
+
}
|
|
2997
|
+
),
|
|
2998
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionCard, { title: "Order Summary", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FieldGrid, { rows: orderRows }) }),
|
|
2999
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionCard, { title: "Address", onEdit: () => onEdit?.("address"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FieldGrid, { rows: addressRows }) }),
|
|
3000
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionCard, { title: "Employment", onEdit: () => onEdit?.("employment"), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(FieldGrid, { rows: employmentRows }) }),
|
|
3001
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SectionCard, { title: "Beneficiaries", children: beneficiaryItems }),
|
|
3002
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SectionCard, { title: "Agreements", children: [
|
|
3003
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Text, { fontSize: "xs", color: "gray.500", mb: 4, children: [
|
|
3004
|
+
acceptedCount,
|
|
3005
|
+
"/",
|
|
3006
|
+
checkboxList.length,
|
|
3007
|
+
" accepted"
|
|
3008
|
+
] }),
|
|
3009
|
+
agreementItems
|
|
3010
|
+
] })
|
|
3011
|
+
]
|
|
2841
3012
|
}
|
|
2842
3013
|
),
|
|
2843
3014
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2844
|
-
|
|
3015
|
+
import_react22.Dialog.Root,
|
|
2845
3016
|
{
|
|
2846
3017
|
open: openDialog,
|
|
2847
3018
|
onOpenChange: (details) => setOpenDialog(details.open),
|
|
2848
3019
|
size: { mdDown: "full", md: "xl" },
|
|
2849
3020
|
scrollBehavior: "inside",
|
|
2850
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
2851
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2852
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2853
|
-
|
|
3021
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Portal, { children: [
|
|
3022
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Dialog.Backdrop, { backdropFilter: "blur(6px)" }),
|
|
3023
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Dialog.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
3024
|
+
import_react22.Dialog.Content,
|
|
2854
3025
|
{
|
|
2855
3026
|
bg: "white",
|
|
2856
3027
|
rounded: "xl",
|
|
2857
3028
|
shadow: "lg",
|
|
2858
3029
|
overflow: "hidden",
|
|
2859
3030
|
children: [
|
|
2860
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2861
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
2862
|
-
|
|
2863
|
-
{
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
children: pendingCheck !== null ? pendingAgreement?.description || "Please review and confirm before proceeding." : "Please review and confirm before proceeding."
|
|
2879
|
-
}
|
|
2880
|
-
) }) }),
|
|
2881
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2882
|
-
import_react23.Dialog.Footer,
|
|
2883
|
-
{
|
|
2884
|
-
px: { base: 4, md: 6 },
|
|
2885
|
-
pb: { base: 5, md: 6 },
|
|
2886
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react23.HStack, { justify: "flex-end", gap: 3, w: "full", children: [
|
|
2887
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2888
|
-
import_st_peter_ui5.CancelButton,
|
|
2889
|
-
{
|
|
2890
|
-
onClick: () => {
|
|
2891
|
-
setOpenDialog(false);
|
|
2892
|
-
setPendingCheck(null);
|
|
2893
|
-
}
|
|
2894
|
-
}
|
|
2895
|
-
),
|
|
2896
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_st_peter_ui5.ConfirmButton, { onClick: confirmAgreement })
|
|
2897
|
-
] })
|
|
2898
|
-
}
|
|
2899
|
-
)
|
|
3031
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Dialog.CloseTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.CloseButton, { position: "absolute", top: 3, right: 3 }) }),
|
|
3032
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.Dialog.Header, { px: { base: 4, md: 6 }, pt: { base: 5, md: 6 }, children: [
|
|
3033
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_st_peter_ui6.H3, { children: pendingCheck !== null ? pendingAgreement?.title || "Agreement" : "Agreement" }),
|
|
3034
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Text, { fontSize: "sm", color: "gray.600", mt: 2, children: "Please read carefully. Confirm to accept this agreement." })
|
|
3035
|
+
] }),
|
|
3036
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Dialog.Body, { px: { base: 4, md: 6 }, pb: { base: 5, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Box, { p: 4, borderWidth: "0px", rounded: "lg", bg: "gray.50", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Text, { whiteSpace: "pre-wrap", fontSize: "sm", color: "gray.800", children: pendingCheck !== null ? pendingAgreement?.description || "Please review and confirm before proceeding." : "Please review and confirm before proceeding." }) }) }),
|
|
3037
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react22.Dialog.Footer, { px: { base: 4, md: 6 }, pb: { base: 5, md: 6 }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_react22.HStack, { justify: "flex-end", gap: 3, w: "full", children: [
|
|
3038
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
3039
|
+
import_st_peter_ui6.CancelButton,
|
|
3040
|
+
{
|
|
3041
|
+
onClick: () => {
|
|
3042
|
+
setOpenDialog(false);
|
|
3043
|
+
setPendingCheck(null);
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
3046
|
+
),
|
|
3047
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_st_peter_ui6.ConfirmButton, { onClick: confirmAgreement })
|
|
3048
|
+
] }) })
|
|
2900
3049
|
]
|
|
2901
3050
|
}
|
|
2902
3051
|
) })
|
|
2903
3052
|
] })
|
|
2904
3053
|
}
|
|
2905
3054
|
)
|
|
2906
|
-
] }) })
|
|
3055
|
+
] }) });
|
|
2907
3056
|
};
|
|
2908
3057
|
var confirmation_default = Confirmation;
|
|
2909
3058
|
|
|
@@ -2971,33 +3120,52 @@ var createLifePlanSteps = (confirmationProps) => [
|
|
|
2971
3120
|
];
|
|
2972
3121
|
|
|
2973
3122
|
// src/NewSaleForm/ui/horizontal-stepper.tsx
|
|
2974
|
-
var
|
|
2975
|
-
var
|
|
2976
|
-
var
|
|
3123
|
+
var import_react24 = require("react");
|
|
3124
|
+
var import_react25 = require("@chakra-ui/react");
|
|
3125
|
+
var import_st_peter_ui7 = require("st-peter-ui");
|
|
2977
3126
|
var import_lu5 = require("react-icons/lu");
|
|
2978
3127
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
3128
|
+
var PRIMARY = "var(--chakra-colors-primary)";
|
|
3129
|
+
var PRIMARY_HOVER = "var(--chakra-colors-primary-hover)";
|
|
3130
|
+
var PRIMARY_DISABLED = "var(--chakra-colors-primary-disabled)";
|
|
2979
3131
|
var HorizontalStepper = ({
|
|
2980
3132
|
steps,
|
|
3133
|
+
title,
|
|
3134
|
+
description,
|
|
2981
3135
|
onStepChange,
|
|
2982
3136
|
onSubmit,
|
|
2983
3137
|
submitDisabled,
|
|
2984
3138
|
activeStep: controlledActiveStep,
|
|
2985
|
-
nextDisabled
|
|
3139
|
+
nextDisabled,
|
|
3140
|
+
submitButtonText = "Proceed To Payment"
|
|
2986
3141
|
}) => {
|
|
2987
|
-
const [localActiveStep, setLocalActiveStep] = (0,
|
|
3142
|
+
const [localActiveStep, setLocalActiveStep] = (0, import_react24.useState)(0);
|
|
2988
3143
|
const activeStep = controlledActiveStep !== void 0 ? controlledActiveStep : localActiveStep;
|
|
3144
|
+
const formTopRef = (0, import_react24.useRef)(null);
|
|
3145
|
+
const isCompact = steps.length < 3;
|
|
3146
|
+
const isLastStep = activeStep === steps.length - 1;
|
|
3147
|
+
const nextStepTitle = steps[activeStep + 1]?.title;
|
|
3148
|
+
const scrollToTop = () => {
|
|
3149
|
+
requestAnimationFrame(() => {
|
|
3150
|
+
formTopRef.current?.scrollIntoView({
|
|
3151
|
+
behavior: "smooth",
|
|
3152
|
+
block: "start"
|
|
3153
|
+
});
|
|
3154
|
+
});
|
|
3155
|
+
};
|
|
2989
3156
|
const handleStepChange = (index) => {
|
|
2990
3157
|
if (controlledActiveStep === void 0) {
|
|
2991
3158
|
setLocalActiveStep(index);
|
|
2992
3159
|
}
|
|
2993
3160
|
onStepChange?.(index);
|
|
3161
|
+
scrollToTop();
|
|
2994
3162
|
};
|
|
2995
3163
|
const handleNext = () => {
|
|
2996
3164
|
if (nextDisabled) return;
|
|
2997
3165
|
handleStepChange(Math.min(activeStep + 1, steps.length - 1));
|
|
2998
3166
|
};
|
|
2999
|
-
return /* @__PURE__ */ (0, import_jsx_runtime15.
|
|
3000
|
-
|
|
3167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3168
|
+
import_react25.Flex,
|
|
3001
3169
|
{
|
|
3002
3170
|
direction: "column",
|
|
3003
3171
|
align: "start",
|
|
@@ -3005,108 +3173,285 @@ var HorizontalStepper = ({
|
|
|
3005
3173
|
w: "full",
|
|
3006
3174
|
overflow: "visible",
|
|
3007
3175
|
pb: { base: "12px", md: "0px" },
|
|
3008
|
-
children:
|
|
3009
|
-
|
|
3010
|
-
{
|
|
3011
|
-
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
{
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3176
|
+
children: [
|
|
3177
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Box, { ref: formTopRef, h: "0", w: "full", scrollMarginTop: { base: 4, md: 6 } }),
|
|
3178
|
+
(title || description) && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react25.Box, { mb: 4, children: [
|
|
3179
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3180
|
+
import_react25.Box,
|
|
3181
|
+
{
|
|
3182
|
+
as: "h1",
|
|
3183
|
+
m: "0",
|
|
3184
|
+
fontFamily: "var(--font-dm-sans), system-ui, sans-serif",
|
|
3185
|
+
fontWeight: description ? 600 : 500,
|
|
3186
|
+
color: "gray.900",
|
|
3187
|
+
lineHeight: "1.1",
|
|
3188
|
+
letterSpacing: description ? "-0.025em" : "-0.015em",
|
|
3189
|
+
fontSize: {
|
|
3190
|
+
base: description ? "22px" : "24px",
|
|
3191
|
+
lg: description ? "28px" : "32px"
|
|
3192
|
+
},
|
|
3193
|
+
children: title
|
|
3194
|
+
}
|
|
3195
|
+
),
|
|
3196
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Text, { fontSize: "sm", color: "gray.500", mt: 1, children: description })
|
|
3197
|
+
] }),
|
|
3198
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Box, { w: "full", rounded: "2xl", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3199
|
+
import_react25.Steps.Root,
|
|
3200
|
+
{
|
|
3201
|
+
step: activeStep,
|
|
3202
|
+
onStepChange: (index) => handleStepChange(index.step),
|
|
3203
|
+
defaultStep: 0,
|
|
3204
|
+
count: steps.length,
|
|
3205
|
+
colorPalette: "green",
|
|
3206
|
+
children: [
|
|
3207
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3208
|
+
import_react25.Box,
|
|
3209
|
+
{
|
|
3210
|
+
position: "sticky",
|
|
3211
|
+
top: 0,
|
|
3212
|
+
zIndex: 10,
|
|
3213
|
+
bg: "white",
|
|
3214
|
+
pt: 2,
|
|
3215
|
+
pb: 3,
|
|
3216
|
+
mx: -1,
|
|
3217
|
+
px: 1,
|
|
3218
|
+
borderBottomWidth: "1px",
|
|
3219
|
+
borderColor: "gray.100",
|
|
3220
|
+
boxShadow: "0 2px 8px -2px rgba(0,0,0,0.06)",
|
|
3221
|
+
children: [
|
|
3222
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3223
|
+
import_react25.Steps.List,
|
|
3224
|
+
{
|
|
3225
|
+
py: 0,
|
|
3226
|
+
flexDirection: "row",
|
|
3227
|
+
alignItems: "center",
|
|
3228
|
+
w: "full",
|
|
3229
|
+
justifyContent: "space-evenly",
|
|
3230
|
+
children: steps.map((step, index) => {
|
|
3231
|
+
const isCompleted = index < activeStep;
|
|
3232
|
+
const isActive = index === activeStep;
|
|
3233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3234
|
+
import_react25.Steps.Item,
|
|
3235
|
+
{
|
|
3236
|
+
index,
|
|
3237
|
+
title: step.title,
|
|
3238
|
+
minW: { base: "0px", md: "auto" },
|
|
3239
|
+
flex: isCompact ? "0 0 auto" : "1",
|
|
3240
|
+
children: [
|
|
3241
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3242
|
+
import_react25.Steps.Trigger,
|
|
3243
|
+
{
|
|
3244
|
+
flexDirection: isCompact ? "row" : "column",
|
|
3245
|
+
alignItems: "center",
|
|
3246
|
+
gap: isCompact ? 2 : 1,
|
|
3247
|
+
px: isCompact ? 3 : 2,
|
|
3248
|
+
py: isCompact ? 2 : 1,
|
|
3249
|
+
borderRadius: "lg",
|
|
3250
|
+
transition: "background 0.2s",
|
|
3251
|
+
_hover: { bg: "gray.50" },
|
|
3252
|
+
children: [
|
|
3253
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3254
|
+
import_react25.Steps.Indicator,
|
|
3255
|
+
{
|
|
3256
|
+
borderWidth: "2px",
|
|
3257
|
+
transition: "all 0.25s",
|
|
3258
|
+
style: {
|
|
3259
|
+
borderColor: isCompleted || isActive ? PRIMARY : void 0,
|
|
3260
|
+
background: isCompleted ? PRIMARY : void 0,
|
|
3261
|
+
color: isCompleted ? "white" : isActive ? PRIMARY : void 0,
|
|
3262
|
+
boxShadow: isActive ? `0 0 0 3px ${PRIMARY_DISABLED}` : "none"
|
|
3263
|
+
},
|
|
3264
|
+
children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuCheck, { size: 14 }) : step.icon ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Box, { as: step.icon, w: 4, h: 4 }) : null
|
|
3265
|
+
}
|
|
3266
|
+
),
|
|
3267
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3268
|
+
import_react25.Steps.Title,
|
|
3269
|
+
{
|
|
3270
|
+
fontSize: { base: "xs", md: "sm" },
|
|
3271
|
+
textAlign: isCompact ? "left" : "center",
|
|
3272
|
+
whiteSpace: "normal",
|
|
3273
|
+
wordBreak: "break-word",
|
|
3274
|
+
fontWeight: isActive ? 600 : 400,
|
|
3275
|
+
color: isActive ? "gray.900" : isCompleted ? "gray.600" : "gray.400",
|
|
3276
|
+
transition: "color 0.2s",
|
|
3277
|
+
children: step.title
|
|
3278
|
+
}
|
|
3279
|
+
)
|
|
3280
|
+
]
|
|
3281
|
+
}
|
|
3282
|
+
),
|
|
3283
|
+
!isCompact && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3284
|
+
import_react25.Steps.Separator,
|
|
3285
|
+
{
|
|
3286
|
+
display: { base: "none", md: "block" }
|
|
3287
|
+
}
|
|
3288
|
+
)
|
|
3289
|
+
]
|
|
3290
|
+
},
|
|
3291
|
+
index
|
|
3292
|
+
);
|
|
3293
|
+
})
|
|
3294
|
+
}
|
|
3295
|
+
),
|
|
3296
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3297
|
+
import_react25.Box,
|
|
3298
|
+
{
|
|
3299
|
+
w: "full",
|
|
3300
|
+
h: "3px",
|
|
3301
|
+
bg: "gray.100",
|
|
3302
|
+
borderRadius: "full",
|
|
3303
|
+
overflow: "hidden",
|
|
3304
|
+
mt: 1,
|
|
3305
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3306
|
+
import_react25.Box,
|
|
3307
|
+
{
|
|
3308
|
+
h: "full",
|
|
3309
|
+
bg: PRIMARY,
|
|
3310
|
+
transition: "width 0.4s ease",
|
|
3311
|
+
w: `${(activeStep + 1) / steps.length * 100}%`
|
|
3312
|
+
}
|
|
3313
|
+
)
|
|
3314
|
+
}
|
|
3315
|
+
)
|
|
3316
|
+
]
|
|
3317
|
+
}
|
|
3318
|
+
),
|
|
3319
|
+
steps.map((step, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Steps.Content, { index, children: step.component ?? step.description }, index)),
|
|
3320
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3321
|
+
import_react25.Flex,
|
|
3322
|
+
{
|
|
3323
|
+
w: "full",
|
|
3324
|
+
justify: "space-between",
|
|
3325
|
+
align: "center",
|
|
3326
|
+
mt: 4,
|
|
3327
|
+
gap: 2,
|
|
3328
|
+
display: { base: "flex", md: "none" },
|
|
3329
|
+
children: [
|
|
3330
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Steps.PrevTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3331
|
+
import_react25.Box,
|
|
3332
|
+
{
|
|
3333
|
+
as: "button",
|
|
3334
|
+
display: "flex",
|
|
3335
|
+
alignItems: "center",
|
|
3336
|
+
gap: 1,
|
|
3337
|
+
px: 3,
|
|
3338
|
+
py: 2,
|
|
3339
|
+
borderRadius: "lg",
|
|
3340
|
+
border: "1.5px solid",
|
|
3341
|
+
borderColor: "gray.200",
|
|
3342
|
+
bg: "white",
|
|
3343
|
+
color: "gray.700",
|
|
3344
|
+
fontSize: "sm",
|
|
3345
|
+
fontWeight: 500,
|
|
3346
|
+
cursor: "pointer",
|
|
3347
|
+
_hover: { bg: "gray.50" },
|
|
3348
|
+
_disabled: { opacity: 0.4, cursor: "not-allowed" },
|
|
3349
|
+
transition: "all 0.15s",
|
|
3350
|
+
children: [
|
|
3351
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuChevronLeft, { size: 14 }),
|
|
3352
|
+
"Back"
|
|
3353
|
+
]
|
|
3354
|
+
}
|
|
3355
|
+
) }),
|
|
3356
|
+
!isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3357
|
+
import_react25.Box,
|
|
3358
|
+
{
|
|
3359
|
+
as: "button",
|
|
3360
|
+
display: "flex",
|
|
3361
|
+
alignItems: "center",
|
|
3362
|
+
gap: 1,
|
|
3363
|
+
px: 3,
|
|
3364
|
+
py: 2,
|
|
3365
|
+
borderRadius: "lg",
|
|
3366
|
+
color: "white",
|
|
3367
|
+
fontSize: "sm",
|
|
3368
|
+
fontWeight: 500,
|
|
3369
|
+
cursor: nextDisabled ? "not-allowed" : "pointer",
|
|
3370
|
+
opacity: nextDisabled ? 0.5 : 1,
|
|
3371
|
+
pointerEvents: nextDisabled ? "none" : "auto",
|
|
3372
|
+
transition: "all 0.15s",
|
|
3373
|
+
onClick: handleNext,
|
|
3374
|
+
bg: PRIMARY,
|
|
3375
|
+
_hover: { bg: PRIMARY_HOVER },
|
|
3376
|
+
children: [
|
|
3377
|
+
nextStepTitle ? `Next: ${nextStepTitle}` : "Next",
|
|
3378
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuChevronRight, { size: 14 })
|
|
3379
|
+
]
|
|
3380
|
+
}
|
|
3381
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3382
|
+
import_react25.Box,
|
|
3383
|
+
{
|
|
3384
|
+
as: "button",
|
|
3385
|
+
display: "flex",
|
|
3386
|
+
alignItems: "center",
|
|
3387
|
+
gap: 1,
|
|
3388
|
+
px: 3,
|
|
3389
|
+
py: 2,
|
|
3390
|
+
borderRadius: "lg",
|
|
3391
|
+
color: "white",
|
|
3392
|
+
fontSize: "sm",
|
|
3393
|
+
fontWeight: 500,
|
|
3394
|
+
cursor: submitDisabled ? "not-allowed" : "pointer",
|
|
3395
|
+
opacity: submitDisabled ? 0.5 : 1,
|
|
3396
|
+
pointerEvents: submitDisabled ? "none" : "auto",
|
|
3397
|
+
transition: "all 0.15s",
|
|
3398
|
+
onClick: onSubmit,
|
|
3399
|
+
bg: PRIMARY,
|
|
3400
|
+
_hover: { bg: PRIMARY_HOVER },
|
|
3401
|
+
children: [
|
|
3402
|
+
submitButtonText,
|
|
3403
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuCheck, { size: 14 })
|
|
3404
|
+
]
|
|
3405
|
+
}
|
|
3406
|
+
)
|
|
3407
|
+
]
|
|
3408
|
+
}
|
|
3409
|
+
),
|
|
3410
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
3411
|
+
import_react25.ButtonGroup,
|
|
3412
|
+
{
|
|
3413
|
+
size: "sm",
|
|
3414
|
+
variant: "outline",
|
|
3415
|
+
display: { base: "none", md: "flex" },
|
|
3416
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react25.Flex, { mt: 5, w: "full", align: "center", justify: "space-between", children: [
|
|
3417
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react25.Steps.PrevTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_st_peter_ui7.SecondaryMdButton, { children: [
|
|
3418
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuChevronLeft, {}),
|
|
3419
|
+
"Previous"
|
|
3420
|
+
] }) }),
|
|
3421
|
+
!isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
3422
|
+
import_react25.Box,
|
|
3423
|
+
{
|
|
3424
|
+
as: "button",
|
|
3425
|
+
display: "flex",
|
|
3426
|
+
alignItems: "center",
|
|
3427
|
+
gap: 1.5,
|
|
3428
|
+
px: 4,
|
|
3429
|
+
py: 2,
|
|
3430
|
+
borderRadius: "lg",
|
|
3431
|
+
color: "white",
|
|
3432
|
+
fontSize: "sm",
|
|
3433
|
+
fontWeight: 600,
|
|
3434
|
+
cursor: nextDisabled ? "not-allowed" : "pointer",
|
|
3435
|
+
opacity: nextDisabled ? 0.5 : 1,
|
|
3436
|
+
pointerEvents: nextDisabled ? "none" : "auto",
|
|
3437
|
+
transition: "all 0.15s",
|
|
3438
|
+
onClick: handleNext,
|
|
3439
|
+
boxShadow: "0 1px 3px 0 rgba(0,0,0,0.12)",
|
|
3440
|
+
bg: PRIMARY,
|
|
3441
|
+
_hover: { bg: PRIMARY_HOVER },
|
|
3442
|
+
children: [
|
|
3443
|
+
nextStepTitle ? `Next: ${nextStepTitle}` : "Next",
|
|
3444
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lu5.LuChevronRight, { size: 15 })
|
|
3445
|
+
]
|
|
3446
|
+
}
|
|
3447
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_st_peter_ui7.PrimaryMdButton, { disabled: !!submitDisabled, onClick: onSubmit, children: submitButtonText })
|
|
3448
|
+
] })
|
|
3449
|
+
}
|
|
3450
|
+
)
|
|
3451
|
+
]
|
|
3452
|
+
}
|
|
3453
|
+
) })
|
|
3454
|
+
]
|
|
3110
3455
|
}
|
|
3111
3456
|
);
|
|
3112
3457
|
};
|
|
@@ -3119,12 +3464,12 @@ var SharedLifePlanApplication = ({
|
|
|
3119
3464
|
description = "Please fill out the form below to apply for a life plan.",
|
|
3120
3465
|
onPaymentError
|
|
3121
3466
|
}) => {
|
|
3122
|
-
const [currentStep, setCurrentStep] = (0,
|
|
3123
|
-
const [loading, setLoading] = (0,
|
|
3124
|
-
const [allAgreementsAccepted, setAllAgreementsAccepted] = (0,
|
|
3125
|
-
const [applicationSection, setApplicationSection] = (0,
|
|
3126
|
-
const [applicationSectionKey, setApplicationSectionKey] = (0,
|
|
3127
|
-
const [applicationValid, setApplicationValid] = (0,
|
|
3467
|
+
const [currentStep, setCurrentStep] = (0, import_react27.useState)(0);
|
|
3468
|
+
const [loading, setLoading] = (0, import_react27.useState)(false);
|
|
3469
|
+
const [allAgreementsAccepted, setAllAgreementsAccepted] = (0, import_react27.useState)(false);
|
|
3470
|
+
const [applicationSection, setApplicationSection] = (0, import_react27.useState)();
|
|
3471
|
+
const [applicationSectionKey, setApplicationSectionKey] = (0, import_react27.useState)(0);
|
|
3472
|
+
const [applicationValid, setApplicationValid] = (0, import_react27.useState)(false);
|
|
3128
3473
|
const steps = createLifePlanSteps({
|
|
3129
3474
|
onAllAcceptedChange: setAllAgreementsAccepted,
|
|
3130
3475
|
...applicationSection ? { applicationSection } : {},
|
|
@@ -3141,7 +3486,7 @@ var SharedLifePlanApplication = ({
|
|
|
3141
3486
|
if (!allAgreementsAccepted) return;
|
|
3142
3487
|
setLoading(true);
|
|
3143
3488
|
};
|
|
3144
|
-
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react26.Box, { w: "full", overflowX: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3145
3490
|
horizontal_stepper_default,
|
|
3146
3491
|
{
|
|
3147
3492
|
steps,
|
|
@@ -3163,40 +3508,10 @@ var LifePlanApplicationStepWrapper = () => {
|
|
|
3163
3508
|
var LifePlanApplicationStepWrapper_default = LifePlanApplicationStepWrapper;
|
|
3164
3509
|
|
|
3165
3510
|
// src/Generic/BottomQuickActions.tsx
|
|
3166
|
-
var
|
|
3167
|
-
var
|
|
3511
|
+
var import_react28 = __toESM(require("react"));
|
|
3512
|
+
var import_react29 = require("@chakra-ui/react");
|
|
3168
3513
|
var import_lu6 = require("react-icons/lu");
|
|
3169
3514
|
var import_link = __toESM(require("next/link"));
|
|
3170
|
-
|
|
3171
|
-
// src/lib/theme/brand-colors.ts
|
|
3172
|
-
var BRAND_COLORS = {
|
|
3173
|
-
primaryGreen: "#109448",
|
|
3174
|
-
darkGreen: "#006838",
|
|
3175
|
-
softGreen: "#92DDBF",
|
|
3176
|
-
pastelPeaGreen: "#ACD6A6",
|
|
3177
|
-
seafoamGreen: "#92DDBF",
|
|
3178
|
-
lightCyan: "#D3EDEE",
|
|
3179
|
-
successBg: "#F0FDF4",
|
|
3180
|
-
warningBg: "#FFF7ED",
|
|
3181
|
-
warningText: "#F1592B",
|
|
3182
|
-
warningBorder: "#F4845F",
|
|
3183
|
-
errorBg: "#FEF2F2",
|
|
3184
|
-
destructiveRed: "#BF1F2F",
|
|
3185
|
-
errorRed: "#EF4444",
|
|
3186
|
-
neutralText: "#22223B",
|
|
3187
|
-
neutralBorder: "#E5E7EB",
|
|
3188
|
-
mutedBg: "#F3F4F6",
|
|
3189
|
-
subtleBg: "#F9FAFB",
|
|
3190
|
-
white: "#FFFFFF",
|
|
3191
|
-
black: "#000000",
|
|
3192
|
-
grey: "#808080",
|
|
3193
|
-
ashWhite: "#ECECEC",
|
|
3194
|
-
gold: "#CBA135",
|
|
3195
|
-
brightGold: "#FFD026",
|
|
3196
|
-
paleGold: "#FFF48E"
|
|
3197
|
-
};
|
|
3198
|
-
|
|
3199
|
-
// src/Generic/BottomQuickActions.tsx
|
|
3200
3515
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3201
3516
|
var SHEET_BG = BRAND_COLORS.white;
|
|
3202
3517
|
var DRAG_COLOR = BRAND_COLORS.neutralBorder;
|
|
@@ -3214,7 +3529,7 @@ var SUBTITLE_COLOR = BRAND_COLORS.grey;
|
|
|
3214
3529
|
var LABEL_COLOR = BRAND_COLORS.neutralText;
|
|
3215
3530
|
var DESC_COLOR = BRAND_COLORS.grey;
|
|
3216
3531
|
var CHEVRON_COLOR = BRAND_COLORS.ashWhite;
|
|
3217
|
-
var QuickActionsHeaderCard =
|
|
3532
|
+
var QuickActionsHeaderCard = import_react28.default.memo(
|
|
3218
3533
|
({
|
|
3219
3534
|
initials,
|
|
3220
3535
|
avatarBg = AVATAR_DEFAULT_BG,
|
|
@@ -3222,7 +3537,7 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3222
3537
|
meta,
|
|
3223
3538
|
trailing
|
|
3224
3539
|
}) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3225
|
-
|
|
3540
|
+
import_react29.HStack,
|
|
3226
3541
|
{
|
|
3227
3542
|
gap: STANDARD_SPACING.sm,
|
|
3228
3543
|
px: STANDARD_SPACING.sm,
|
|
@@ -3233,7 +3548,7 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3233
3548
|
borderColor: HEADER_CARD_BORDER,
|
|
3234
3549
|
children: [
|
|
3235
3550
|
initials && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3236
|
-
|
|
3551
|
+
import_react29.Flex,
|
|
3237
3552
|
{
|
|
3238
3553
|
w: "40px",
|
|
3239
3554
|
h: "40px",
|
|
@@ -3243,7 +3558,7 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3243
3558
|
justify: "center",
|
|
3244
3559
|
flexShrink: 0,
|
|
3245
3560
|
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3246
|
-
|
|
3561
|
+
import_react29.Text,
|
|
3247
3562
|
{
|
|
3248
3563
|
fontSize: "14px",
|
|
3249
3564
|
fontWeight: "700",
|
|
@@ -3254,9 +3569,9 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3254
3569
|
)
|
|
3255
3570
|
}
|
|
3256
3571
|
),
|
|
3257
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3572
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react29.Box, { flex: "1", minW: 0, children: [
|
|
3258
3573
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3259
|
-
|
|
3574
|
+
import_react29.Text,
|
|
3260
3575
|
{
|
|
3261
3576
|
fontSize: "15px",
|
|
3262
3577
|
fontWeight: "700",
|
|
@@ -3269,7 +3584,7 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3269
3584
|
}
|
|
3270
3585
|
),
|
|
3271
3586
|
meta && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3272
|
-
|
|
3587
|
+
import_react29.Text,
|
|
3273
3588
|
{
|
|
3274
3589
|
fontSize: "12px",
|
|
3275
3590
|
color: SUBTITLE_COLOR,
|
|
@@ -3290,11 +3605,11 @@ var QuickActionsHeaderCard = import_react29.default.memo(
|
|
|
3290
3605
|
var ITEM_TRANSITION = {
|
|
3291
3606
|
transition: "background 0.15s ease, transform 0.1s ease"
|
|
3292
3607
|
};
|
|
3293
|
-
var ActionItem =
|
|
3608
|
+
var ActionItem = import_react28.default.memo(({ action }) => {
|
|
3294
3609
|
const iconBg = action.iconBg ?? DEFAULT_ICON_BG;
|
|
3295
3610
|
const iconColor = action.iconColor ?? DEFAULT_ICON_COLOR;
|
|
3296
3611
|
const inner = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3297
|
-
|
|
3612
|
+
import_react29.HStack,
|
|
3298
3613
|
{
|
|
3299
3614
|
gap: STANDARD_SPACING.sm,
|
|
3300
3615
|
px: STANDARD_SPACING.sm,
|
|
@@ -3317,7 +3632,7 @@ var ActionItem = import_react29.default.memo(({ action }) => {
|
|
|
3317
3632
|
style: ITEM_TRANSITION,
|
|
3318
3633
|
children: [
|
|
3319
3634
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3320
|
-
|
|
3635
|
+
import_react29.Flex,
|
|
3321
3636
|
{
|
|
3322
3637
|
w: "40px",
|
|
3323
3638
|
h: "40px",
|
|
@@ -3326,12 +3641,12 @@ var ActionItem = import_react29.default.memo(({ action }) => {
|
|
|
3326
3641
|
align: "center",
|
|
3327
3642
|
justify: "center",
|
|
3328
3643
|
flexShrink: 0,
|
|
3329
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3644
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Icon, { as: action.icon, boxSize: "20px", color: iconColor })
|
|
3330
3645
|
}
|
|
3331
3646
|
),
|
|
3332
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3647
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react29.Box, { flex: "1", minW: 0, children: [
|
|
3333
3648
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3334
|
-
|
|
3649
|
+
import_react29.Text,
|
|
3335
3650
|
{
|
|
3336
3651
|
fontSize: "15px",
|
|
3337
3652
|
fontWeight: "600",
|
|
@@ -3341,7 +3656,7 @@ var ActionItem = import_react29.default.memo(({ action }) => {
|
|
|
3341
3656
|
}
|
|
3342
3657
|
),
|
|
3343
3658
|
action.description && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3344
|
-
|
|
3659
|
+
import_react29.Text,
|
|
3345
3660
|
{
|
|
3346
3661
|
fontSize: "12px",
|
|
3347
3662
|
color: DESC_COLOR,
|
|
@@ -3355,7 +3670,7 @@ var ActionItem = import_react29.default.memo(({ action }) => {
|
|
|
3355
3670
|
)
|
|
3356
3671
|
] }),
|
|
3357
3672
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3358
|
-
|
|
3673
|
+
import_react29.Icon,
|
|
3359
3674
|
{
|
|
3360
3675
|
as: import_lu6.LuChevronRight,
|
|
3361
3676
|
boxSize: "18px",
|
|
@@ -3387,15 +3702,15 @@ var BottomQuickActions = ({
|
|
|
3387
3702
|
actions
|
|
3388
3703
|
}) => {
|
|
3389
3704
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3390
|
-
|
|
3705
|
+
import_react29.Drawer.Root,
|
|
3391
3706
|
{
|
|
3392
3707
|
open,
|
|
3393
3708
|
onOpenChange: (e) => onOpenChange(e.open),
|
|
3394
3709
|
placement: "bottom",
|
|
3395
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3396
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3397
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3398
|
-
|
|
3710
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react29.Portal, { children: [
|
|
3711
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Drawer.Backdrop, {}),
|
|
3712
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Drawer.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3713
|
+
import_react29.Drawer.Content,
|
|
3399
3714
|
{
|
|
3400
3715
|
borderTopRadius: "l3",
|
|
3401
3716
|
borderBottomRadius: "0",
|
|
@@ -3405,8 +3720,8 @@ var BottomQuickActions = ({
|
|
|
3405
3720
|
pb: `calc(${STANDARD_SPACING.sm} + env(safe-area-inset-bottom))`,
|
|
3406
3721
|
boxShadow: STANDARD_SHADOWS.level4,
|
|
3407
3722
|
children: [
|
|
3408
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3409
|
-
|
|
3723
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Flex, { justify: "center", pt: "10px", pb: "4px", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3724
|
+
import_react29.Box,
|
|
3410
3725
|
{
|
|
3411
3726
|
w: "36px",
|
|
3412
3727
|
h: "4px",
|
|
@@ -3415,16 +3730,16 @@ var BottomQuickActions = ({
|
|
|
3415
3730
|
}
|
|
3416
3731
|
) }),
|
|
3417
3732
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3418
|
-
|
|
3733
|
+
import_react29.Drawer.Header,
|
|
3419
3734
|
{
|
|
3420
3735
|
px: STANDARD_SPACING.sm,
|
|
3421
3736
|
pt: "12px",
|
|
3422
3737
|
pb: "0",
|
|
3423
3738
|
borderBottomWidth: "0",
|
|
3424
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3425
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3739
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react29.Flex, { align: "flex-start", justify: "space-between", gap: "12px", children: [
|
|
3740
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react29.Box, { flex: "1", minW: 0, children: [
|
|
3426
3741
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3427
|
-
|
|
3742
|
+
import_react29.Drawer.Title,
|
|
3428
3743
|
{
|
|
3429
3744
|
fontSize: "18px",
|
|
3430
3745
|
fontWeight: "700",
|
|
@@ -3435,7 +3750,7 @@ var BottomQuickActions = ({
|
|
|
3435
3750
|
}
|
|
3436
3751
|
),
|
|
3437
3752
|
subtitle && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3438
|
-
|
|
3753
|
+
import_react29.Text,
|
|
3439
3754
|
{
|
|
3440
3755
|
fontSize: "13px",
|
|
3441
3756
|
color: SUBTITLE_COLOR,
|
|
@@ -3446,8 +3761,8 @@ var BottomQuickActions = ({
|
|
|
3446
3761
|
}
|
|
3447
3762
|
)
|
|
3448
3763
|
] }),
|
|
3449
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3450
|
-
|
|
3764
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Drawer.CloseTrigger, { asChild: true, mt: "2px", flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3765
|
+
import_react29.CloseButton,
|
|
3451
3766
|
{
|
|
3452
3767
|
size: "sm",
|
|
3453
3768
|
color: BRAND_COLORS.neutralText,
|
|
@@ -3459,14 +3774,14 @@ var BottomQuickActions = ({
|
|
|
3459
3774
|
}
|
|
3460
3775
|
),
|
|
3461
3776
|
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3462
|
-
|
|
3777
|
+
import_react29.Drawer.Body,
|
|
3463
3778
|
{
|
|
3464
3779
|
px: STANDARD_SPACING.sm,
|
|
3465
3780
|
pt: STANDARD_SPACING.sm,
|
|
3466
3781
|
pb: "4px",
|
|
3467
3782
|
children: [
|
|
3468
|
-
headerSlot && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3469
|
-
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3783
|
+
headerSlot && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.Box, { mb: STANDARD_SPACING.xs, children: headerSlot }),
|
|
3784
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react29.VStack, { gap: STANDARD_SPACING.xs, align: "stretch", children: actions.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ActionItem, { action }, i)) })
|
|
3470
3785
|
]
|
|
3471
3786
|
}
|
|
3472
3787
|
)
|
|
@@ -3480,18 +3795,18 @@ var BottomQuickActions = ({
|
|
|
3480
3795
|
var BottomQuickActions_default = BottomQuickActions;
|
|
3481
3796
|
|
|
3482
3797
|
// src/Generic/NotifyInstall.tsx
|
|
3483
|
-
var
|
|
3484
|
-
var
|
|
3485
|
-
var
|
|
3486
|
-
var
|
|
3798
|
+
var import_react31 = require("react");
|
|
3799
|
+
var import_react32 = require("@chakra-ui/react");
|
|
3800
|
+
var import_react33 = require("motion/react");
|
|
3801
|
+
var import_fi2 = require("react-icons/fi");
|
|
3487
3802
|
|
|
3488
3803
|
// src/hooks/useNotifyInstall.ts
|
|
3489
|
-
var
|
|
3804
|
+
var import_react30 = require("react");
|
|
3490
3805
|
function useNotifyInstall() {
|
|
3491
|
-
const [isInstalled, setIsInstalled] = (0,
|
|
3492
|
-
const [isMobile, setIsMobile] = (0,
|
|
3493
|
-
const [installPrompt, setInstallPrompt] = (0,
|
|
3494
|
-
(0,
|
|
3806
|
+
const [isInstalled, setIsInstalled] = (0, import_react30.useState)(false);
|
|
3807
|
+
const [isMobile, setIsMobile] = (0, import_react30.useState)(false);
|
|
3808
|
+
const [installPrompt, setInstallPrompt] = (0, import_react30.useState)(null);
|
|
3809
|
+
(0, import_react30.useEffect)(() => {
|
|
3495
3810
|
const mobile = /Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
|
|
3496
3811
|
setIsMobile(mobile);
|
|
3497
3812
|
const installed = window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === true;
|
|
@@ -3525,8 +3840,8 @@ function useNotifyInstall() {
|
|
|
3525
3840
|
// src/Generic/NotifyInstall.tsx
|
|
3526
3841
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3527
3842
|
var STEPS = [
|
|
3528
|
-
{ icon:
|
|
3529
|
-
{ icon:
|
|
3843
|
+
{ icon: import_fi2.FiShare, label: "Tap the browser menu or Share button" },
|
|
3844
|
+
{ icon: import_fi2.FiPlusSquare, label: 'Choose "Add to Home Screen"' }
|
|
3530
3845
|
];
|
|
3531
3846
|
var DISMISSED_KEY = "estore-install-dialog-dismissed";
|
|
3532
3847
|
function NotifyInstall({
|
|
@@ -3534,8 +3849,8 @@ function NotifyInstall({
|
|
|
3534
3849
|
appName
|
|
3535
3850
|
}) {
|
|
3536
3851
|
const { isInstalled, isMobile, canInstall, install } = useNotifyInstall();
|
|
3537
|
-
const [isDismissed, setIsDismissed] = (0,
|
|
3538
|
-
(0,
|
|
3852
|
+
const [isDismissed, setIsDismissed] = (0, import_react31.useState)(true);
|
|
3853
|
+
(0, import_react31.useEffect)(() => {
|
|
3539
3854
|
if (localStorage.getItem(DISMISSED_KEY) !== "true") {
|
|
3540
3855
|
setIsDismissed(false);
|
|
3541
3856
|
}
|
|
@@ -3547,9 +3862,9 @@ function NotifyInstall({
|
|
|
3547
3862
|
const showPrompt = isMobile && !isInstalled && !isDismissed;
|
|
3548
3863
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
3549
3864
|
children,
|
|
3550
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3865
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react33.AnimatePresence, { children: showPrompt && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
3551
3866
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3552
|
-
|
|
3867
|
+
import_react33.motion.div,
|
|
3553
3868
|
{
|
|
3554
3869
|
initial: { opacity: 0 },
|
|
3555
3870
|
animate: { opacity: 1 },
|
|
@@ -3568,7 +3883,7 @@ function NotifyInstall({
|
|
|
3568
3883
|
"install-backdrop"
|
|
3569
3884
|
),
|
|
3570
3885
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3571
|
-
|
|
3886
|
+
import_react33.motion.div,
|
|
3572
3887
|
{
|
|
3573
3888
|
initial: { y: "100%" },
|
|
3574
3889
|
animate: { y: 0 },
|
|
@@ -3605,12 +3920,12 @@ function NotifyInstall({
|
|
|
3605
3920
|
justifyContent: "center",
|
|
3606
3921
|
color: "#9ca3af"
|
|
3607
3922
|
},
|
|
3608
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3923
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_fi2.FiX, { size: 18 })
|
|
3609
3924
|
}
|
|
3610
3925
|
),
|
|
3611
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3926
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.VStack, { gap: 6, textAlign: "center", px: 6, py: 8, children: [
|
|
3612
3927
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3613
|
-
|
|
3928
|
+
import_react32.Flex,
|
|
3614
3929
|
{
|
|
3615
3930
|
boxSize: 16,
|
|
3616
3931
|
align: "center",
|
|
@@ -3619,12 +3934,12 @@ function NotifyInstall({
|
|
|
3619
3934
|
bg: "green.50",
|
|
3620
3935
|
color: "green.600",
|
|
3621
3936
|
shadow: "sm",
|
|
3622
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3937
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Icon, { as: import_fi2.FiDownload, boxSize: 8 })
|
|
3623
3938
|
}
|
|
3624
3939
|
),
|
|
3625
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3940
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.VStack, { gap: 2, children: [
|
|
3626
3941
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3627
|
-
|
|
3942
|
+
import_react32.Text,
|
|
3628
3943
|
{
|
|
3629
3944
|
fontSize: "lg",
|
|
3630
3945
|
fontWeight: "bold",
|
|
@@ -3636,10 +3951,10 @@ function NotifyInstall({
|
|
|
3636
3951
|
]
|
|
3637
3952
|
}
|
|
3638
3953
|
),
|
|
3639
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3954
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", color: "gray.500", lineHeight: "tall", children: "Add the app to your home screen for a faster, app-like experience before continuing." })
|
|
3640
3955
|
] }),
|
|
3641
3956
|
canInstall ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3642
|
-
|
|
3957
|
+
import_react32.Button,
|
|
3643
3958
|
{
|
|
3644
3959
|
onClick: install,
|
|
3645
3960
|
colorPalette: "green",
|
|
@@ -3647,12 +3962,12 @@ function NotifyInstall({
|
|
|
3647
3962
|
w: "full",
|
|
3648
3963
|
rounded: "xl",
|
|
3649
3964
|
children: [
|
|
3650
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3965
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Icon, { as: import_fi2.FiDownload }),
|
|
3651
3966
|
"Add to Home Screen"
|
|
3652
3967
|
]
|
|
3653
3968
|
}
|
|
3654
3969
|
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3655
|
-
|
|
3970
|
+
import_react32.VStack,
|
|
3656
3971
|
{
|
|
3657
3972
|
w: "full",
|
|
3658
3973
|
bg: "gray.50",
|
|
@@ -3662,9 +3977,9 @@ function NotifyInstall({
|
|
|
3662
3977
|
p: 4,
|
|
3663
3978
|
gap: 4,
|
|
3664
3979
|
align: "stretch",
|
|
3665
|
-
children: STEPS.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3980
|
+
children: STEPS.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.HStack, { gap: 3, align: "center", children: [
|
|
3666
3981
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3667
|
-
|
|
3982
|
+
import_react32.Flex,
|
|
3668
3983
|
{
|
|
3669
3984
|
boxSize: 9,
|
|
3670
3985
|
flexShrink: 0,
|
|
@@ -3675,10 +3990,10 @@ function NotifyInstall({
|
|
|
3675
3990
|
borderWidth: "1px",
|
|
3676
3991
|
borderColor: "gray.200",
|
|
3677
3992
|
color: "green.600",
|
|
3678
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3993
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Icon, { as: step.icon, boxSize: 4 })
|
|
3679
3994
|
}
|
|
3680
3995
|
),
|
|
3681
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3996
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", color: "gray.700", textAlign: "left", children: step.label })
|
|
3682
3997
|
] }, i))
|
|
3683
3998
|
}
|
|
3684
3999
|
)
|
|
@@ -3692,8 +4007,8 @@ function NotifyInstall({
|
|
|
3692
4007
|
}
|
|
3693
4008
|
|
|
3694
4009
|
// src/UserProfile/UserProfile.tsx
|
|
3695
|
-
var
|
|
3696
|
-
var
|
|
4010
|
+
var import_react34 = require("react");
|
|
4011
|
+
var import_react35 = require("@chakra-ui/react");
|
|
3697
4012
|
var import_ri = require("react-icons/ri");
|
|
3698
4013
|
var import_lu7 = require("react-icons/lu");
|
|
3699
4014
|
var import_hi2 = require("react-icons/hi2");
|
|
@@ -4000,28 +4315,28 @@ function ReusableProfile({
|
|
|
4000
4315
|
onTwoFactorChange,
|
|
4001
4316
|
onToast = noopToast
|
|
4002
4317
|
}) {
|
|
4003
|
-
const [profileView, setProfileView] = (0,
|
|
4004
|
-
const [fallbackColorMode, setFallbackColorMode] = (0,
|
|
4318
|
+
const [profileView, setProfileView] = (0, import_react34.useState)("main");
|
|
4319
|
+
const [fallbackColorMode, setFallbackColorMode] = (0, import_react34.useState)("light");
|
|
4005
4320
|
const colorMode = controlledColorMode ?? fallbackColorMode;
|
|
4006
|
-
const [fontSize, setFontSizeLocal] = (0,
|
|
4007
|
-
const [quickNavHrefs, setQuickNavHrefs] = (0,
|
|
4008
|
-
const [replacingIdx, setReplacingIdx] = (0,
|
|
4009
|
-
const [editName, setEditName] = (0,
|
|
4010
|
-
const [editLoading, setEditLoading] = (0,
|
|
4011
|
-
const [currentPw, setCurrentPw] = (0,
|
|
4012
|
-
const [newPw, setNewPw] = (0,
|
|
4013
|
-
const [confirmPw, setConfirmPw] = (0,
|
|
4014
|
-
const [showCurrentPw, setShowCurrentPw] = (0,
|
|
4015
|
-
const [showNewPw, setShowNewPw] = (0,
|
|
4016
|
-
const [showConfirmPw, setShowConfirmPw] = (0,
|
|
4017
|
-
const [pwLoading, setPwLoading] = (0,
|
|
4018
|
-
const [twoFactorEnabled, setTwoFactorEnabled] = (0,
|
|
4321
|
+
const [fontSize, setFontSizeLocal] = (0, import_react34.useState)("md");
|
|
4322
|
+
const [quickNavHrefs, setQuickNavHrefs] = (0, import_react34.useState)(initialQuickNavHrefs);
|
|
4323
|
+
const [replacingIdx, setReplacingIdx] = (0, import_react34.useState)(null);
|
|
4324
|
+
const [editName, setEditName] = (0, import_react34.useState)(user.displayName);
|
|
4325
|
+
const [editLoading, setEditLoading] = (0, import_react34.useState)(false);
|
|
4326
|
+
const [currentPw, setCurrentPw] = (0, import_react34.useState)("");
|
|
4327
|
+
const [newPw, setNewPw] = (0, import_react34.useState)("");
|
|
4328
|
+
const [confirmPw, setConfirmPw] = (0, import_react34.useState)("");
|
|
4329
|
+
const [showCurrentPw, setShowCurrentPw] = (0, import_react34.useState)(false);
|
|
4330
|
+
const [showNewPw, setShowNewPw] = (0, import_react34.useState)(false);
|
|
4331
|
+
const [showConfirmPw, setShowConfirmPw] = (0, import_react34.useState)(false);
|
|
4332
|
+
const [pwLoading, setPwLoading] = (0, import_react34.useState)(false);
|
|
4333
|
+
const [twoFactorEnabled, setTwoFactorEnabled] = (0, import_react34.useState)(
|
|
4019
4334
|
initialTwoFactorEnabled
|
|
4020
4335
|
);
|
|
4021
|
-
const [isMounted, setIsMounted] = (0,
|
|
4022
|
-
const isDesktopRaw = (0,
|
|
4336
|
+
const [isMounted, setIsMounted] = (0, import_react34.useState)(false);
|
|
4337
|
+
const isDesktopRaw = (0, import_react35.useBreakpointValue)({ base: false, md: true });
|
|
4023
4338
|
const isDesktop = isMounted ? isDesktopRaw ?? false : false;
|
|
4024
|
-
(0,
|
|
4339
|
+
(0, import_react34.useEffect)(() => {
|
|
4025
4340
|
setIsMounted(true);
|
|
4026
4341
|
if (!enableLocalStorage || typeof window === "undefined") return;
|
|
4027
4342
|
setFontSizeLocal(localStorage.getItem(FONT_SIZE_STORAGE_KEY) ?? "md");
|
|
@@ -4032,10 +4347,10 @@ function ReusableProfile({
|
|
|
4032
4347
|
setQuickNavHrefs(initialQuickNavHrefs);
|
|
4033
4348
|
}
|
|
4034
4349
|
}, [enableLocalStorage, initialQuickNavHrefs, storageKey]);
|
|
4035
|
-
(0,
|
|
4350
|
+
(0, import_react34.useEffect)(() => {
|
|
4036
4351
|
setEditName(user.displayName);
|
|
4037
4352
|
}, [user.displayName]);
|
|
4038
|
-
const availableOptions = (0,
|
|
4353
|
+
const availableOptions = (0, import_react34.useMemo)(
|
|
4039
4354
|
() => availableNavOptions.filter(
|
|
4040
4355
|
(option) => !user.role || option.roles.includes(user.role)
|
|
4041
4356
|
),
|
|
@@ -4165,7 +4480,7 @@ function ReusableProfile({
|
|
|
4165
4480
|
const roleLabel = user.role ? ROLE_LABELS[user.role] ?? user.role : "";
|
|
4166
4481
|
const mainContent = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
4167
4482
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4168
|
-
|
|
4483
|
+
import_react35.Box,
|
|
4169
4484
|
{
|
|
4170
4485
|
bg: "var(--chakra-colors-primary)",
|
|
4171
4486
|
pt: 12,
|
|
@@ -4174,20 +4489,20 @@ function ReusableProfile({
|
|
|
4174
4489
|
textAlign: "center",
|
|
4175
4490
|
children: [
|
|
4176
4491
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4177
|
-
|
|
4492
|
+
import_react35.Avatar.Root,
|
|
4178
4493
|
{
|
|
4179
4494
|
size: "2xl",
|
|
4180
4495
|
mx: "auto",
|
|
4181
4496
|
mb: 4,
|
|
4182
4497
|
colorPalette: pickPalette(user.displayName || "U"),
|
|
4183
4498
|
children: [
|
|
4184
|
-
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4185
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4499
|
+
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Avatar.Image, { src: user.avatarSrc, alt: user.displayName }),
|
|
4500
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Avatar.Fallback, { name: user.displayName })
|
|
4186
4501
|
]
|
|
4187
4502
|
}
|
|
4188
4503
|
),
|
|
4189
4504
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4190
|
-
|
|
4505
|
+
import_react35.Text,
|
|
4191
4506
|
{
|
|
4192
4507
|
color: "white",
|
|
4193
4508
|
fontWeight: "bold",
|
|
@@ -4197,9 +4512,9 @@ function ReusableProfile({
|
|
|
4197
4512
|
children: user.displayName
|
|
4198
4513
|
}
|
|
4199
4514
|
),
|
|
4200
|
-
user.email && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4201
|
-
roleLabel && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4202
|
-
|
|
4515
|
+
user.email && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { color: "rgba(255,255,255,0.75)", fontSize: "sm", mb: 2, children: user.email }),
|
|
4516
|
+
roleLabel && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { display: "inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4517
|
+
import_react35.Badge,
|
|
4203
4518
|
{
|
|
4204
4519
|
bg: "rgba(255,255,255,0.15)",
|
|
4205
4520
|
color: "white",
|
|
@@ -4215,9 +4530,9 @@ function ReusableProfile({
|
|
|
4215
4530
|
]
|
|
4216
4531
|
}
|
|
4217
4532
|
),
|
|
4218
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4533
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { px: 4, pt: 5, pb: 1, children: [
|
|
4219
4534
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4220
|
-
|
|
4535
|
+
import_react35.Text,
|
|
4221
4536
|
{
|
|
4222
4537
|
fontSize: "xs",
|
|
4223
4538
|
fontWeight: "bold",
|
|
@@ -4229,7 +4544,7 @@ function ReusableProfile({
|
|
|
4229
4544
|
}
|
|
4230
4545
|
),
|
|
4231
4546
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4232
|
-
|
|
4547
|
+
import_react35.Box,
|
|
4233
4548
|
{
|
|
4234
4549
|
as: "button",
|
|
4235
4550
|
w: "full",
|
|
@@ -4238,7 +4553,7 @@ function ReusableProfile({
|
|
|
4238
4553
|
transition: "opacity 0.15s",
|
|
4239
4554
|
onClick: () => setProfileView("edit-account"),
|
|
4240
4555
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4241
|
-
|
|
4556
|
+
import_react35.Flex,
|
|
4242
4557
|
{
|
|
4243
4558
|
justify: "space-between",
|
|
4244
4559
|
align: "center",
|
|
@@ -4247,9 +4562,9 @@ function ReusableProfile({
|
|
|
4247
4562
|
borderRadius: "lg",
|
|
4248
4563
|
bg: isDesktop && profileView === "edit-account" ? "gray.100" : void 0,
|
|
4249
4564
|
children: [
|
|
4250
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4565
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4251
4566
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4252
|
-
|
|
4567
|
+
import_react35.Box,
|
|
4253
4568
|
{
|
|
4254
4569
|
w: "38px",
|
|
4255
4570
|
h: "38px",
|
|
@@ -4263,9 +4578,9 @@ function ReusableProfile({
|
|
|
4263
4578
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuUser, { size: 16 })
|
|
4264
4579
|
}
|
|
4265
4580
|
),
|
|
4266
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4267
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4268
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4581
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4582
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Edit Account" }),
|
|
4583
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: "Update your display name and contact details" })
|
|
4269
4584
|
] })
|
|
4270
4585
|
] }),
|
|
4271
4586
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuChevronRight, { size: 16, color: "var(--chakra-colors-gray-400)" })
|
|
@@ -4274,9 +4589,9 @@ function ReusableProfile({
|
|
|
4274
4589
|
)
|
|
4275
4590
|
}
|
|
4276
4591
|
),
|
|
4277
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4592
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {}),
|
|
4278
4593
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4279
|
-
|
|
4594
|
+
import_react35.Box,
|
|
4280
4595
|
{
|
|
4281
4596
|
as: "button",
|
|
4282
4597
|
w: "full",
|
|
@@ -4288,7 +4603,7 @@ function ReusableProfile({
|
|
|
4288
4603
|
setProfileView("change-password");
|
|
4289
4604
|
},
|
|
4290
4605
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4291
|
-
|
|
4606
|
+
import_react35.Flex,
|
|
4292
4607
|
{
|
|
4293
4608
|
justify: "space-between",
|
|
4294
4609
|
align: "center",
|
|
@@ -4297,9 +4612,9 @@ function ReusableProfile({
|
|
|
4297
4612
|
borderRadius: "lg",
|
|
4298
4613
|
bg: isDesktop && profileView === "change-password" ? "gray.100" : void 0,
|
|
4299
4614
|
children: [
|
|
4300
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4615
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4301
4616
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4302
|
-
|
|
4617
|
+
import_react35.Box,
|
|
4303
4618
|
{
|
|
4304
4619
|
w: "38px",
|
|
4305
4620
|
h: "38px",
|
|
@@ -4313,9 +4628,9 @@ function ReusableProfile({
|
|
|
4313
4628
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuLock, { size: 16 })
|
|
4314
4629
|
}
|
|
4315
4630
|
),
|
|
4316
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4317
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4318
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4631
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4632
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Change Password" }),
|
|
4633
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: "Test locally through the callback prop" })
|
|
4319
4634
|
] })
|
|
4320
4635
|
] }),
|
|
4321
4636
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuChevronRight, { size: 16, color: "var(--chakra-colors-gray-400)" })
|
|
@@ -4324,11 +4639,11 @@ function ReusableProfile({
|
|
|
4324
4639
|
)
|
|
4325
4640
|
}
|
|
4326
4641
|
),
|
|
4327
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4328
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4329
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4642
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {}),
|
|
4643
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
4644
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4330
4645
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4331
|
-
|
|
4646
|
+
import_react35.Box,
|
|
4332
4647
|
{
|
|
4333
4648
|
w: "38px",
|
|
4334
4649
|
h: "38px",
|
|
@@ -4342,13 +4657,13 @@ function ReusableProfile({
|
|
|
4342
4657
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuShield, { size: 16 })
|
|
4343
4658
|
}
|
|
4344
4659
|
),
|
|
4345
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4346
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4347
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4660
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4661
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Two Factor Authentication" }),
|
|
4662
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: twoFactorEnabled ? "Enabled" : "Disabled" })
|
|
4348
4663
|
] })
|
|
4349
4664
|
] }),
|
|
4350
4665
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4351
|
-
|
|
4666
|
+
import_react35.Box,
|
|
4352
4667
|
{
|
|
4353
4668
|
role: "switch",
|
|
4354
4669
|
"aria-checked": twoFactorEnabled,
|
|
@@ -4371,7 +4686,7 @@ function ReusableProfile({
|
|
|
4371
4686
|
flexShrink: 0,
|
|
4372
4687
|
outline: "none",
|
|
4373
4688
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4374
|
-
|
|
4689
|
+
import_react35.Box,
|
|
4375
4690
|
{
|
|
4376
4691
|
position: "absolute",
|
|
4377
4692
|
top: "3px",
|
|
@@ -4388,9 +4703,9 @@ function ReusableProfile({
|
|
|
4388
4703
|
)
|
|
4389
4704
|
] })
|
|
4390
4705
|
] }),
|
|
4391
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4706
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { px: 4, pt: 4, pb: 2, children: [
|
|
4392
4707
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4393
|
-
|
|
4708
|
+
import_react35.Text,
|
|
4394
4709
|
{
|
|
4395
4710
|
fontSize: "xs",
|
|
4396
4711
|
fontWeight: "bold",
|
|
@@ -4401,10 +4716,10 @@ function ReusableProfile({
|
|
|
4401
4716
|
children: "Preferences"
|
|
4402
4717
|
}
|
|
4403
4718
|
),
|
|
4404
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4405
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4719
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
4720
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4406
4721
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4407
|
-
|
|
4722
|
+
import_react35.Box,
|
|
4408
4723
|
{
|
|
4409
4724
|
w: "38px",
|
|
4410
4725
|
h: "38px",
|
|
@@ -4418,15 +4733,15 @@ function ReusableProfile({
|
|
|
4418
4733
|
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuMoon, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuSun, { size: 16 })
|
|
4419
4734
|
}
|
|
4420
4735
|
),
|
|
4421
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4422
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4423
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4736
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4737
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Appearance" }),
|
|
4738
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: colorMode === "light" ? "Light mode" : "Dark mode" })
|
|
4424
4739
|
] })
|
|
4425
4740
|
] }),
|
|
4426
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4741
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.HStack, { gap: 1.5, children: ["light", "dark"].map((mode) => {
|
|
4427
4742
|
const isActive = colorMode === mode;
|
|
4428
4743
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4429
|
-
|
|
4744
|
+
import_react35.Button,
|
|
4430
4745
|
{
|
|
4431
4746
|
size: "sm",
|
|
4432
4747
|
variant: "outline",
|
|
@@ -4443,7 +4758,7 @@ function ReusableProfile({
|
|
|
4443
4758
|
children: [
|
|
4444
4759
|
mode === "light" ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuSun, { size: 13 }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuMoon, { size: 13 }),
|
|
4445
4760
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4446
|
-
|
|
4761
|
+
import_react35.Text,
|
|
4447
4762
|
{
|
|
4448
4763
|
fontSize: "xs",
|
|
4449
4764
|
textTransform: "capitalize",
|
|
@@ -4457,11 +4772,11 @@ function ReusableProfile({
|
|
|
4457
4772
|
);
|
|
4458
4773
|
}) })
|
|
4459
4774
|
] }),
|
|
4460
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4461
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4462
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4775
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {}),
|
|
4776
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
4777
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4463
4778
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4464
|
-
|
|
4779
|
+
import_react35.Box,
|
|
4465
4780
|
{
|
|
4466
4781
|
w: "38px",
|
|
4467
4782
|
h: "38px",
|
|
@@ -4477,15 +4792,15 @@ function ReusableProfile({
|
|
|
4477
4792
|
children: "A"
|
|
4478
4793
|
}
|
|
4479
4794
|
),
|
|
4480
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4481
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4482
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4795
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4796
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Text Size" }),
|
|
4797
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: fontSizeLabel })
|
|
4483
4798
|
] })
|
|
4484
4799
|
] }),
|
|
4485
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4800
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.HStack, { gap: 1, children: FONT_SIZES.map((option) => {
|
|
4486
4801
|
const isActive = fontSize === option.value;
|
|
4487
4802
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4488
|
-
|
|
4803
|
+
import_react35.Button,
|
|
4489
4804
|
{
|
|
4490
4805
|
size: "sm",
|
|
4491
4806
|
variant: "outline",
|
|
@@ -4501,7 +4816,7 @@ function ReusableProfile({
|
|
|
4501
4816
|
onClick: () => handleFontSize(option.value),
|
|
4502
4817
|
title: option.title,
|
|
4503
4818
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4504
|
-
|
|
4819
|
+
import_react35.Text,
|
|
4505
4820
|
{
|
|
4506
4821
|
fontWeight: isActive ? "bold" : "normal",
|
|
4507
4822
|
style: { fontSize: `${option.scale * 13}px` },
|
|
@@ -4513,9 +4828,9 @@ function ReusableProfile({
|
|
|
4513
4828
|
);
|
|
4514
4829
|
}) })
|
|
4515
4830
|
] }),
|
|
4516
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4831
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {}),
|
|
4517
4832
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4518
|
-
|
|
4833
|
+
import_react35.Box,
|
|
4519
4834
|
{
|
|
4520
4835
|
as: "button",
|
|
4521
4836
|
w: "full",
|
|
@@ -4523,10 +4838,10 @@ function ReusableProfile({
|
|
|
4523
4838
|
_hover: { opacity: 0.7 },
|
|
4524
4839
|
transition: "opacity 0.15s",
|
|
4525
4840
|
onClick: () => setProfileView("navbar-customize"),
|
|
4526
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4527
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4841
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
4842
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4528
4843
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4529
|
-
|
|
4844
|
+
import_react35.Box,
|
|
4530
4845
|
{
|
|
4531
4846
|
w: "38px",
|
|
4532
4847
|
h: "38px",
|
|
@@ -4540,9 +4855,9 @@ function ReusableProfile({
|
|
|
4540
4855
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuArrowLeftRight, { size: 16 })
|
|
4541
4856
|
}
|
|
4542
4857
|
),
|
|
4543
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4544
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4545
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4858
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4859
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "semibold", children: "Quick Navigation" }),
|
|
4860
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: [
|
|
4546
4861
|
quickNavHrefs.length,
|
|
4547
4862
|
" of ",
|
|
4548
4863
|
maxQuickNavItems,
|
|
@@ -4555,8 +4870,8 @@ function ReusableProfile({
|
|
|
4555
4870
|
}
|
|
4556
4871
|
)
|
|
4557
4872
|
] }),
|
|
4558
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4559
|
-
|
|
4873
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { px: 4, pt: 4, pb: 10, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.VStack, { gap: 2.5, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4874
|
+
import_react35.Button,
|
|
4560
4875
|
{
|
|
4561
4876
|
w: "full",
|
|
4562
4877
|
variant: "outline",
|
|
@@ -4569,9 +4884,9 @@ function ReusableProfile({
|
|
|
4569
4884
|
) }) })
|
|
4570
4885
|
] });
|
|
4571
4886
|
const editAccountContent = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
4572
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4887
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { px: 4, pt: 4, pb: 3, borderBottomWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
4573
4888
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4574
|
-
|
|
4889
|
+
import_react35.IconButton,
|
|
4575
4890
|
{
|
|
4576
4891
|
size: "sm",
|
|
4577
4892
|
variant: "ghost",
|
|
@@ -4581,17 +4896,17 @@ function ReusableProfile({
|
|
|
4581
4896
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuChevronLeft, {})
|
|
4582
4897
|
}
|
|
4583
4898
|
),
|
|
4584
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4899
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontWeight: "bold", fontSize: "md", children: "Edit Account" })
|
|
4585
4900
|
] }) }),
|
|
4586
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4587
|
-
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4588
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4901
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { textAlign: "center", pt: 5, pb: 4, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Avatar.Root, { size: "xl", mx: "auto", mb: 1, children: [
|
|
4902
|
+
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Avatar.Image, { src: user.avatarSrc, alt: editName }),
|
|
4903
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Avatar.Fallback, { name: editName })
|
|
4589
4904
|
] }) }),
|
|
4590
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4591
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4592
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4905
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.VStack, { gap: 4, px: 4, pb: 10, align: "stretch", children: [
|
|
4906
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
4907
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Display Name" }),
|
|
4593
4908
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4594
|
-
|
|
4909
|
+
import_react35.Input,
|
|
4595
4910
|
{
|
|
4596
4911
|
value: editName,
|
|
4597
4912
|
onChange: (event) => setEditName(event.target.value),
|
|
@@ -4600,10 +4915,10 @@ function ReusableProfile({
|
|
|
4600
4915
|
}
|
|
4601
4916
|
)
|
|
4602
4917
|
] }),
|
|
4603
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4604
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4918
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
4919
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Email" }),
|
|
4605
4920
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4606
|
-
|
|
4921
|
+
import_react35.Input,
|
|
4607
4922
|
{
|
|
4608
4923
|
value: user.email ?? "",
|
|
4609
4924
|
readOnly: true,
|
|
@@ -4613,10 +4928,10 @@ function ReusableProfile({
|
|
|
4613
4928
|
}
|
|
4614
4929
|
)
|
|
4615
4930
|
] }),
|
|
4616
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4617
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4931
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
4932
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Mobile Number" }),
|
|
4618
4933
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4619
|
-
|
|
4934
|
+
import_react35.Input,
|
|
4620
4935
|
{
|
|
4621
4936
|
value: user.mobileNumber ?? "",
|
|
4622
4937
|
readOnly: true,
|
|
@@ -4627,7 +4942,7 @@ function ReusableProfile({
|
|
|
4627
4942
|
)
|
|
4628
4943
|
] }),
|
|
4629
4944
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4630
|
-
|
|
4945
|
+
import_react35.Button,
|
|
4631
4946
|
{
|
|
4632
4947
|
w: "full",
|
|
4633
4948
|
mt: 2,
|
|
@@ -4642,9 +4957,9 @@ function ReusableProfile({
|
|
|
4642
4957
|
] })
|
|
4643
4958
|
] });
|
|
4644
4959
|
const changePasswordContent = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
4645
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4960
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { px: 4, pt: 4, pb: 3, borderBottomWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
4646
4961
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4647
|
-
|
|
4962
|
+
import_react35.IconButton,
|
|
4648
4963
|
{
|
|
4649
4964
|
size: "sm",
|
|
4650
4965
|
variant: "ghost",
|
|
@@ -4654,16 +4969,16 @@ function ReusableProfile({
|
|
|
4654
4969
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuChevronLeft, {})
|
|
4655
4970
|
}
|
|
4656
4971
|
),
|
|
4657
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4972
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontWeight: "bold", fontSize: "md", children: "Change Password" })
|
|
4658
4973
|
] }) }),
|
|
4659
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4660
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4661
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4974
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.VStack, { gap: 5, px: 4, pt: 6, pb: 10, children: [
|
|
4975
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
4976
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Current Password" }),
|
|
4662
4977
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4663
|
-
|
|
4978
|
+
import_react35.InputGroup,
|
|
4664
4979
|
{
|
|
4665
4980
|
endElement: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4666
|
-
|
|
4981
|
+
import_react35.IconButton,
|
|
4667
4982
|
{
|
|
4668
4983
|
size: "xs",
|
|
4669
4984
|
variant: "ghost",
|
|
@@ -4674,7 +4989,7 @@ function ReusableProfile({
|
|
|
4674
4989
|
}
|
|
4675
4990
|
),
|
|
4676
4991
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4677
|
-
|
|
4992
|
+
import_react35.Input,
|
|
4678
4993
|
{
|
|
4679
4994
|
type: showCurrentPw ? "text" : "password",
|
|
4680
4995
|
value: currentPw,
|
|
@@ -4686,13 +5001,13 @@ function ReusableProfile({
|
|
|
4686
5001
|
}
|
|
4687
5002
|
)
|
|
4688
5003
|
] }),
|
|
4689
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4690
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5004
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
5005
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "New Password" }),
|
|
4691
5006
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4692
|
-
|
|
5007
|
+
import_react35.InputGroup,
|
|
4693
5008
|
{
|
|
4694
5009
|
endElement: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4695
|
-
|
|
5010
|
+
import_react35.IconButton,
|
|
4696
5011
|
{
|
|
4697
5012
|
size: "xs",
|
|
4698
5013
|
variant: "ghost",
|
|
@@ -4703,7 +5018,7 @@ function ReusableProfile({
|
|
|
4703
5018
|
}
|
|
4704
5019
|
),
|
|
4705
5020
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4706
|
-
|
|
5021
|
+
import_react35.Input,
|
|
4707
5022
|
{
|
|
4708
5023
|
type: showNewPw ? "text" : "password",
|
|
4709
5024
|
value: newPw,
|
|
@@ -4714,9 +5029,9 @@ function ReusableProfile({
|
|
|
4714
5029
|
)
|
|
4715
5030
|
}
|
|
4716
5031
|
),
|
|
4717
|
-
newPw && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4718
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4719
|
-
|
|
5032
|
+
newPw && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { mt: 2, children: [
|
|
5033
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Flex, { gap: 1, mb: 1, children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5034
|
+
import_react35.Box,
|
|
4720
5035
|
{
|
|
4721
5036
|
flex: 1,
|
|
4722
5037
|
h: "3px",
|
|
@@ -4726,16 +5041,16 @@ function ReusableProfile({
|
|
|
4726
5041
|
},
|
|
4727
5042
|
i
|
|
4728
5043
|
)) }),
|
|
4729
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5044
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: pwMeta.color, fontWeight: "medium", children: pwMeta.label })
|
|
4730
5045
|
] })
|
|
4731
5046
|
] }),
|
|
4732
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4733
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5047
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
5048
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Confirm New Password" }),
|
|
4734
5049
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4735
|
-
|
|
5050
|
+
import_react35.InputGroup,
|
|
4736
5051
|
{
|
|
4737
5052
|
endElement: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4738
|
-
|
|
5053
|
+
import_react35.IconButton,
|
|
4739
5054
|
{
|
|
4740
5055
|
size: "xs",
|
|
4741
5056
|
variant: "ghost",
|
|
@@ -4746,7 +5061,7 @@ function ReusableProfile({
|
|
|
4746
5061
|
}
|
|
4747
5062
|
),
|
|
4748
5063
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4749
|
-
|
|
5064
|
+
import_react35.Input,
|
|
4750
5065
|
{
|
|
4751
5066
|
type: showConfirmPw ? "text" : "password",
|
|
4752
5067
|
value: confirmPw,
|
|
@@ -4757,10 +5072,10 @@ function ReusableProfile({
|
|
|
4757
5072
|
)
|
|
4758
5073
|
}
|
|
4759
5074
|
),
|
|
4760
|
-
confirmPw && confirmPw !== newPw && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5075
|
+
confirmPw && confirmPw !== newPw && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "xs", color: "red.500", mt: 1, children: "Passwords do not match" })
|
|
4761
5076
|
] }),
|
|
4762
5077
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4763
|
-
|
|
5078
|
+
import_react35.Button,
|
|
4764
5079
|
{
|
|
4765
5080
|
w: "full",
|
|
4766
5081
|
mt: 1,
|
|
@@ -4777,7 +5092,7 @@ function ReusableProfile({
|
|
|
4777
5092
|
] });
|
|
4778
5093
|
const navbarCustomizeContent = /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_jsx_runtime20.Fragment, { children: [
|
|
4779
5094
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4780
|
-
|
|
5095
|
+
import_react35.Box,
|
|
4781
5096
|
{
|
|
4782
5097
|
px: 4,
|
|
4783
5098
|
pt: 4,
|
|
@@ -4788,9 +5103,9 @@ function ReusableProfile({
|
|
|
4788
5103
|
top: 0,
|
|
4789
5104
|
bg: "bg",
|
|
4790
5105
|
zIndex: 1,
|
|
4791
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
4792
5107
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4793
|
-
|
|
5108
|
+
import_react35.IconButton,
|
|
4794
5109
|
{
|
|
4795
5110
|
size: "sm",
|
|
4796
5111
|
variant: "ghost",
|
|
@@ -4803,9 +5118,9 @@ function ReusableProfile({
|
|
|
4803
5118
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuChevronLeft, {})
|
|
4804
5119
|
}
|
|
4805
5120
|
),
|
|
4806
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4807
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4808
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5121
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
5122
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontWeight: "bold", fontSize: "md", children: "Quick Navigation" }),
|
|
5123
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Text, { fontSize: "xs", color: "gray.500", children: [
|
|
4809
5124
|
"Choose up to ",
|
|
4810
5125
|
maxQuickNavItems,
|
|
4811
5126
|
" shortcuts for the bottom bar"
|
|
@@ -4814,10 +5129,10 @@ function ReusableProfile({
|
|
|
4814
5129
|
] })
|
|
4815
5130
|
}
|
|
4816
5131
|
),
|
|
4817
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4818
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5132
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { px: 4, pt: 5, pb: 2, children: [
|
|
5133
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", justify: "space-between", mb: 3, children: [
|
|
4819
5134
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4820
|
-
|
|
5135
|
+
import_react35.Text,
|
|
4821
5136
|
{
|
|
4822
5137
|
fontSize: "xs",
|
|
4823
5138
|
fontWeight: "bold",
|
|
@@ -4828,7 +5143,7 @@ function ReusableProfile({
|
|
|
4828
5143
|
}
|
|
4829
5144
|
),
|
|
4830
5145
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4831
|
-
|
|
5146
|
+
import_react35.Text,
|
|
4832
5147
|
{
|
|
4833
5148
|
fontSize: "xs",
|
|
4834
5149
|
color: quickNavHrefs.length >= maxQuickNavItems ? "orange.500" : "gray.400",
|
|
@@ -4842,7 +5157,7 @@ function ReusableProfile({
|
|
|
4842
5157
|
)
|
|
4843
5158
|
] }),
|
|
4844
5159
|
quickNavHrefs.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4845
|
-
|
|
5160
|
+
import_react35.Flex,
|
|
4846
5161
|
{
|
|
4847
5162
|
align: "center",
|
|
4848
5163
|
justify: "center",
|
|
@@ -4851,18 +5166,18 @@ function ReusableProfile({
|
|
|
4851
5166
|
borderWidth: "1px",
|
|
4852
5167
|
borderStyle: "dashed",
|
|
4853
5168
|
borderColor: "gray.200",
|
|
4854
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5169
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", color: "gray.400", children: "No items pinned \u2014 add from below" })
|
|
4855
5170
|
}
|
|
4856
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5171
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.VStack, { gap: 0, children: quickNavHrefs.map((href, idx) => {
|
|
4857
5172
|
const option = availableOptions.find((item) => item.key === href);
|
|
4858
5173
|
if (!option) return null;
|
|
4859
5174
|
const ItemIcon = option.Icon;
|
|
4860
5175
|
const isFirst = idx === 0;
|
|
4861
5176
|
const isLast = idx === quickNavHrefs.length - 1;
|
|
4862
5177
|
const isReplacing = replacingIdx === idx;
|
|
4863
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5178
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
4864
5179
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4865
|
-
|
|
5180
|
+
import_react35.Flex,
|
|
4866
5181
|
{
|
|
4867
5182
|
justify: "space-between",
|
|
4868
5183
|
align: "center",
|
|
@@ -4874,9 +5189,9 @@ function ReusableProfile({
|
|
|
4874
5189
|
borderColor: isReplacing ? "orange.200" : void 0,
|
|
4875
5190
|
transition: "all 0.15s",
|
|
4876
5191
|
children: [
|
|
4877
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5192
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
4878
5193
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4879
|
-
|
|
5194
|
+
import_react35.Box,
|
|
4880
5195
|
{
|
|
4881
5196
|
w: "36px",
|
|
4882
5197
|
h: "36px",
|
|
@@ -4890,10 +5205,10 @@ function ReusableProfile({
|
|
|
4890
5205
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ItemIcon, { size: 15 })
|
|
4891
5206
|
}
|
|
4892
5207
|
),
|
|
4893
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4894
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5208
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
5209
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", fontWeight: "medium", children: option.title }),
|
|
4895
5210
|
isReplacing && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4896
|
-
|
|
5211
|
+
import_react35.Text,
|
|
4897
5212
|
{
|
|
4898
5213
|
fontSize: "xs",
|
|
4899
5214
|
color: "orange.500",
|
|
@@ -4903,9 +5218,9 @@ function ReusableProfile({
|
|
|
4903
5218
|
)
|
|
4904
5219
|
] })
|
|
4905
5220
|
] }),
|
|
4906
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5221
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.HStack, { gap: 0.5, children: [
|
|
4907
5222
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4908
|
-
|
|
5223
|
+
import_react35.IconButton,
|
|
4909
5224
|
{
|
|
4910
5225
|
size: "xs",
|
|
4911
5226
|
variant: "ghost",
|
|
@@ -4917,7 +5232,7 @@ function ReusableProfile({
|
|
|
4917
5232
|
}
|
|
4918
5233
|
),
|
|
4919
5234
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4920
|
-
|
|
5235
|
+
import_react35.IconButton,
|
|
4921
5236
|
{
|
|
4922
5237
|
size: "xs",
|
|
4923
5238
|
variant: "ghost",
|
|
@@ -4929,7 +5244,7 @@ function ReusableProfile({
|
|
|
4929
5244
|
}
|
|
4930
5245
|
),
|
|
4931
5246
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4932
|
-
|
|
5247
|
+
import_react35.IconButton,
|
|
4933
5248
|
{
|
|
4934
5249
|
size: "xs",
|
|
4935
5250
|
variant: isReplacing ? "solid" : "ghost",
|
|
@@ -4942,7 +5257,7 @@ function ReusableProfile({
|
|
|
4942
5257
|
}
|
|
4943
5258
|
),
|
|
4944
5259
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4945
|
-
|
|
5260
|
+
import_react35.IconButton,
|
|
4946
5261
|
{
|
|
4947
5262
|
size: "xs",
|
|
4948
5263
|
variant: "ghost",
|
|
@@ -4958,16 +5273,16 @@ function ReusableProfile({
|
|
|
4958
5273
|
]
|
|
4959
5274
|
}
|
|
4960
5275
|
),
|
|
4961
|
-
!isLast && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5276
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {})
|
|
4962
5277
|
] }, href);
|
|
4963
5278
|
}) })
|
|
4964
5279
|
] }),
|
|
4965
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4966
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4967
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4968
|
-
replacingIdx !== null ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5280
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, { mx: 4, my: 1 }),
|
|
5281
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { px: 4, pt: 4, pb: 10, children: [
|
|
5282
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", justify: "space-between", mb: 3, children: [
|
|
5283
|
+
replacingIdx !== null ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { children: [
|
|
4969
5284
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4970
|
-
|
|
5285
|
+
import_react35.Text,
|
|
4971
5286
|
{
|
|
4972
5287
|
fontSize: "xs",
|
|
4973
5288
|
fontWeight: "bold",
|
|
@@ -4977,7 +5292,7 @@ function ReusableProfile({
|
|
|
4977
5292
|
children: "Select Replacement"
|
|
4978
5293
|
}
|
|
4979
5294
|
),
|
|
4980
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5295
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Text, { fontSize: "xs", color: "gray.500", mt: 0.5, children: [
|
|
4981
5296
|
'for "',
|
|
4982
5297
|
availableOptions.find(
|
|
4983
5298
|
(item) => item.key === quickNavHrefs[replacingIdx]
|
|
@@ -4985,7 +5300,7 @@ function ReusableProfile({
|
|
|
4985
5300
|
'"'
|
|
4986
5301
|
] })
|
|
4987
5302
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4988
|
-
|
|
5303
|
+
import_react35.Text,
|
|
4989
5304
|
{
|
|
4990
5305
|
fontSize: "xs",
|
|
4991
5306
|
fontWeight: "bold",
|
|
@@ -4996,7 +5311,7 @@ function ReusableProfile({
|
|
|
4996
5311
|
}
|
|
4997
5312
|
),
|
|
4998
5313
|
replacingIdx !== null && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4999
|
-
|
|
5314
|
+
import_react35.Button,
|
|
5000
5315
|
{
|
|
5001
5316
|
size: "xs",
|
|
5002
5317
|
variant: "ghost",
|
|
@@ -5006,17 +5321,17 @@ function ReusableProfile({
|
|
|
5006
5321
|
}
|
|
5007
5322
|
)
|
|
5008
5323
|
] }),
|
|
5009
|
-
unpinnedOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5324
|
+
unpinnedOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", color: "gray.400", py: 3, textAlign: "center", children: "All available items are pinned" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.VStack, { gap: 0, children: unpinnedOptions.map((option, idx) => {
|
|
5010
5325
|
const ItemIcon = option.Icon;
|
|
5011
5326
|
const isLast = idx === unpinnedOptions.length - 1;
|
|
5012
5327
|
const isReplacingMode = replacingIdx !== null;
|
|
5013
5328
|
const canAdd = quickNavHrefs.length < maxQuickNavItems;
|
|
5014
5329
|
const actionEnabled = isReplacingMode || canAdd;
|
|
5015
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5016
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5017
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Box, { w: "full", children: [
|
|
5331
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { justify: "space-between", align: "center", py: 2.5, children: [
|
|
5332
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react35.Flex, { align: "center", gap: 3, children: [
|
|
5018
5333
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5019
|
-
|
|
5334
|
+
import_react35.Box,
|
|
5020
5335
|
{
|
|
5021
5336
|
w: "36px",
|
|
5022
5337
|
h: "36px",
|
|
@@ -5031,7 +5346,7 @@ function ReusableProfile({
|
|
|
5031
5346
|
}
|
|
5032
5347
|
),
|
|
5033
5348
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5034
|
-
|
|
5349
|
+
import_react35.Text,
|
|
5035
5350
|
{
|
|
5036
5351
|
fontSize: "sm",
|
|
5037
5352
|
fontWeight: "medium",
|
|
@@ -5041,7 +5356,7 @@ function ReusableProfile({
|
|
|
5041
5356
|
)
|
|
5042
5357
|
] }),
|
|
5043
5358
|
isReplacingMode ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5044
|
-
|
|
5359
|
+
import_react35.IconButton,
|
|
5045
5360
|
{
|
|
5046
5361
|
size: "xs",
|
|
5047
5362
|
variant: "outline",
|
|
@@ -5053,7 +5368,7 @@ function ReusableProfile({
|
|
|
5053
5368
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuArrowLeftRight, { size: 13 })
|
|
5054
5369
|
}
|
|
5055
5370
|
) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5056
|
-
|
|
5371
|
+
import_react35.IconButton,
|
|
5057
5372
|
{
|
|
5058
5373
|
size: "xs",
|
|
5059
5374
|
variant: "outline",
|
|
@@ -5067,7 +5382,7 @@ function ReusableProfile({
|
|
|
5067
5382
|
}
|
|
5068
5383
|
)
|
|
5069
5384
|
] }),
|
|
5070
|
-
!isLast && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5385
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Separator, {})
|
|
5071
5386
|
] }, option.key);
|
|
5072
5387
|
}) })
|
|
5073
5388
|
] })
|
|
@@ -5075,7 +5390,7 @@ function ReusableProfile({
|
|
|
5075
5390
|
const subViewContent = profileView === "edit-account" ? editAccountContent : profileView === "change-password" ? changePasswordContent : profileView === "navbar-customize" ? navbarCustomizeContent : null;
|
|
5076
5391
|
if (isDesktop) {
|
|
5077
5392
|
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5078
|
-
|
|
5393
|
+
import_react35.Flex,
|
|
5079
5394
|
{
|
|
5080
5395
|
maxW: "6xl",
|
|
5081
5396
|
mx: "auto",
|
|
@@ -5086,7 +5401,7 @@ function ReusableProfile({
|
|
|
5086
5401
|
align: "start",
|
|
5087
5402
|
children: [
|
|
5088
5403
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5089
|
-
|
|
5404
|
+
import_react35.Box,
|
|
5090
5405
|
{
|
|
5091
5406
|
w: { md: "300px", lg: "340px" },
|
|
5092
5407
|
flexShrink: 0,
|
|
@@ -5101,7 +5416,7 @@ function ReusableProfile({
|
|
|
5101
5416
|
}
|
|
5102
5417
|
),
|
|
5103
5418
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5104
|
-
|
|
5419
|
+
import_react35.Box,
|
|
5105
5420
|
{
|
|
5106
5421
|
flex: "1",
|
|
5107
5422
|
minW: 0,
|
|
@@ -5112,7 +5427,7 @@ function ReusableProfile({
|
|
|
5112
5427
|
bg: "bg",
|
|
5113
5428
|
minH: "540px",
|
|
5114
5429
|
children: subViewContent ?? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5115
|
-
|
|
5430
|
+
import_react35.Flex,
|
|
5116
5431
|
{
|
|
5117
5432
|
direction: "column",
|
|
5118
5433
|
align: "center",
|
|
@@ -5123,7 +5438,7 @@ function ReusableProfile({
|
|
|
5123
5438
|
color: "gray.400",
|
|
5124
5439
|
children: [
|
|
5125
5440
|
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5126
|
-
|
|
5441
|
+
import_react35.Box,
|
|
5127
5442
|
{
|
|
5128
5443
|
w: "56px",
|
|
5129
5444
|
h: "56px",
|
|
@@ -5136,7 +5451,7 @@ function ReusableProfile({
|
|
|
5136
5451
|
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lu7.LuUser, { size: 24 })
|
|
5137
5452
|
}
|
|
5138
5453
|
),
|
|
5139
|
-
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5454
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Text, { fontSize: "sm", mt: 1, maxW: "280px", children: "Choose Edit Account, Change Password, or Quick Navigation from the menu to update your details here." })
|
|
5140
5455
|
]
|
|
5141
5456
|
}
|
|
5142
5457
|
)
|
|
@@ -5146,7 +5461,7 @@ function ReusableProfile({
|
|
|
5146
5461
|
}
|
|
5147
5462
|
);
|
|
5148
5463
|
}
|
|
5149
|
-
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react35.Box, { maxW: "480px", mx: "auto", w: "full", minH: "100%", bg: "bg", children: profileView === "main" ? mainContent : subViewContent });
|
|
5150
5465
|
}
|
|
5151
5466
|
var UserProfile_default = ReusableProfile;
|
|
5152
5467
|
// Annotate the CommonJS export names for ESM import in node:
|