@splpi/estore-shared-components 7.0.2 → 7.0.3
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.d.mts +59 -1
- package/dist/index.d.ts +59 -1
- package/dist/index.js +1225 -369
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1221 -344
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -32,6 +32,8 @@ var index_exports = {};
|
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
Beneficiary: () => beneficiary_default,
|
|
34
34
|
BottomQuickActions: () => BottomQuickActions_default,
|
|
35
|
+
DocumentUploadCard: () => DocumentUploadCard,
|
|
36
|
+
GetStarted: () => GetStarted_default,
|
|
35
37
|
HealthDeclaration: () => HealthDeclaration_default,
|
|
36
38
|
LifePlanApplication1: () => LifePlanApplication1_default,
|
|
37
39
|
LifePlanApplication2: () => LifePlanApplication2_default,
|
|
@@ -42,11 +44,14 @@ __export(index_exports, {
|
|
|
42
44
|
OCR_STORAGE_KEY: () => OCR_STORAGE_KEY,
|
|
43
45
|
SharedLifePlanApplication: () => SharedLifePlanApplication_default,
|
|
44
46
|
UserProfile: () => UserProfile_default,
|
|
47
|
+
clearOcrResult: () => clearOcrResult,
|
|
45
48
|
createEmptyApplicationData: () => createEmptyApplicationData,
|
|
46
49
|
loadApplicationDataFromLocalStorage: () => loadApplicationDataFromLocalStorage,
|
|
47
50
|
markOcrApplied: () => markOcrApplied,
|
|
48
51
|
readOcrResult: () => readOcrResult,
|
|
49
|
-
saveApplicationDataToLocalStorage: () => saveApplicationDataToLocalStorage
|
|
52
|
+
saveApplicationDataToLocalStorage: () => saveApplicationDataToLocalStorage,
|
|
53
|
+
saveOcrResult: () => saveOcrResult,
|
|
54
|
+
useOcr: () => useOcr
|
|
50
55
|
});
|
|
51
56
|
module.exports = __toCommonJS(index_exports);
|
|
52
57
|
|
|
@@ -302,6 +307,20 @@ var markOcrApplied = (section) => {
|
|
|
302
307
|
}
|
|
303
308
|
return true;
|
|
304
309
|
};
|
|
310
|
+
var saveOcrResult = (value) => {
|
|
311
|
+
if (typeof window === "undefined") return;
|
|
312
|
+
try {
|
|
313
|
+
localStorage.setItem(OCR_STORAGE_KEY, JSON.stringify(value));
|
|
314
|
+
} catch {
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
var clearOcrResult = () => {
|
|
318
|
+
if (typeof window === "undefined") return;
|
|
319
|
+
try {
|
|
320
|
+
localStorage.removeItem(OCR_STORAGE_KEY);
|
|
321
|
+
} catch {
|
|
322
|
+
}
|
|
323
|
+
};
|
|
305
324
|
|
|
306
325
|
// src/NewSaleForm/LifePlanApplication1.tsx
|
|
307
326
|
var import_react4 = require("react");
|
|
@@ -2142,6 +2161,7 @@ var InfoCard = ({
|
|
|
2142
2161
|
}
|
|
2143
2162
|
);
|
|
2144
2163
|
};
|
|
2164
|
+
var info_card_default = InfoCard;
|
|
2145
2165
|
|
|
2146
2166
|
// src/NewSaleForm/ui/input-card-accordion.tsx
|
|
2147
2167
|
var import_react15 = require("@chakra-ui/react");
|
|
@@ -3569,12 +3589,843 @@ var LifePlanApplicationStepWrapper = (props) => {
|
|
|
3569
3589
|
};
|
|
3570
3590
|
var LifePlanApplicationStepWrapper_default = LifePlanApplicationStepWrapper;
|
|
3571
3591
|
|
|
3572
|
-
// src/
|
|
3573
|
-
var import_react28 =
|
|
3574
|
-
|
|
3592
|
+
// src/hooks/useOcr.ts
|
|
3593
|
+
var import_react28 = require("react");
|
|
3594
|
+
function useOcr(scanIdFn) {
|
|
3595
|
+
const [data, setData] = (0, import_react28.useState)(null);
|
|
3596
|
+
const [loading, setLoading] = (0, import_react28.useState)(false);
|
|
3597
|
+
const [error, setError] = (0, import_react28.useState)(null);
|
|
3598
|
+
const scanId = (0, import_react28.useCallback)(
|
|
3599
|
+
async (file) => {
|
|
3600
|
+
setLoading(true);
|
|
3601
|
+
setError(null);
|
|
3602
|
+
try {
|
|
3603
|
+
clearOcrResult();
|
|
3604
|
+
const result = await scanIdFn(file);
|
|
3605
|
+
saveOcrResult(result);
|
|
3606
|
+
setData(result);
|
|
3607
|
+
return result;
|
|
3608
|
+
} catch (err) {
|
|
3609
|
+
setError(err instanceof Error ? err.message : "OCR failed");
|
|
3610
|
+
throw err;
|
|
3611
|
+
} finally {
|
|
3612
|
+
setLoading(false);
|
|
3613
|
+
}
|
|
3614
|
+
},
|
|
3615
|
+
[scanIdFn]
|
|
3616
|
+
);
|
|
3617
|
+
return { data, loading, error, scanId };
|
|
3618
|
+
}
|
|
3619
|
+
|
|
3620
|
+
// src/GetStarted/GetStarted.tsx
|
|
3621
|
+
var import_st_peter_ui8 = require("st-peter-ui");
|
|
3622
|
+
var import_react33 = require("@chakra-ui/react");
|
|
3623
|
+
var import_react34 = require("react");
|
|
3624
|
+
var import_lu7 = require("react-icons/lu");
|
|
3625
|
+
|
|
3626
|
+
// src/GetStarted/Container.tsx
|
|
3627
|
+
var import_react29 = require("react");
|
|
3628
|
+
var import_react30 = require("@chakra-ui/react");
|
|
3629
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3630
|
+
var Container = ({ children }) => {
|
|
3631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3632
|
+
import_react30.Box,
|
|
3633
|
+
{
|
|
3634
|
+
px: { base: 8, md: 8 },
|
|
3635
|
+
mt: { base: 16, md: 32 },
|
|
3636
|
+
mb: { base: 32, md: 16 },
|
|
3637
|
+
maxW: "7xl",
|
|
3638
|
+
mx: "auto",
|
|
3639
|
+
children
|
|
3640
|
+
}
|
|
3641
|
+
);
|
|
3642
|
+
};
|
|
3643
|
+
var Container_default = Container;
|
|
3644
|
+
|
|
3645
|
+
// src/GetStarted/DocumentUploadCard.tsx
|
|
3646
|
+
var import_react31 = require("react");
|
|
3647
|
+
var import_react32 = require("@chakra-ui/react");
|
|
3575
3648
|
var import_lu6 = require("react-icons/lu");
|
|
3649
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3650
|
+
var PRIMARY2 = "var(--chakra-colors-primary)";
|
|
3651
|
+
var PRIMARY_SOFT = "var(--chakra-colors-primary-disabled)";
|
|
3652
|
+
var defaultNotifyError = (message) => {
|
|
3653
|
+
console.error(message);
|
|
3654
|
+
};
|
|
3655
|
+
var formatBytes = (bytes) => {
|
|
3656
|
+
if (!bytes) return "";
|
|
3657
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
3658
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(0)} KB`;
|
|
3659
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
3660
|
+
};
|
|
3661
|
+
var validate = (file, config) => {
|
|
3662
|
+
const accepted = config.accept.split(",").map((s) => s.trim());
|
|
3663
|
+
const okType = accepted.includes(file.type) || accepted.some(
|
|
3664
|
+
(a) => a.endsWith("/*") && file.type.startsWith(a.slice(0, -1))
|
|
3665
|
+
) || accepted.some(
|
|
3666
|
+
(a) => a.startsWith(".") && file.name.toLowerCase().endsWith(a)
|
|
3667
|
+
);
|
|
3668
|
+
if (!okType) return "Unsupported file type. Please upload a JPG, PNG or PDF.";
|
|
3669
|
+
if (file.size > config.maxSizeMB * 1024 * 1024)
|
|
3670
|
+
return `File is too large. Maximum size is ${config.maxSizeMB}MB.`;
|
|
3671
|
+
return null;
|
|
3672
|
+
};
|
|
3673
|
+
var useDocumentSlot = (config, onProcess, notifyError = defaultNotifyError) => {
|
|
3674
|
+
const [slot, setSlot] = (0, import_react31.useState)({ status: "idle" });
|
|
3675
|
+
const timers = (0, import_react31.useRef)([]);
|
|
3676
|
+
const runId = (0, import_react31.useRef)(0);
|
|
3677
|
+
const clearTimers = () => {
|
|
3678
|
+
timers.current.forEach(clearTimeout);
|
|
3679
|
+
timers.current = [];
|
|
3680
|
+
};
|
|
3681
|
+
const processFile = (file, currentRun, isSignature) => {
|
|
3682
|
+
if (!onProcess) return false;
|
|
3683
|
+
onProcess(file).then((result) => {
|
|
3684
|
+
if (runId.current !== currentRun) return;
|
|
3685
|
+
setSlot((prev) => ({
|
|
3686
|
+
...prev,
|
|
3687
|
+
status: "completed",
|
|
3688
|
+
cleanedImageUrl: isSignature ? prev.previewUrl : void 0,
|
|
3689
|
+
extraction: !isSignature && result && typeof result === "object" ? result : void 0
|
|
3690
|
+
}));
|
|
3691
|
+
}).catch((err) => {
|
|
3692
|
+
if (runId.current !== currentRun) return;
|
|
3693
|
+
const message = err instanceof Error && err.message ? err.message : "We couldn't process this document. Please try again.";
|
|
3694
|
+
setSlot((prev) => ({ ...prev, status: "failed", error: message }));
|
|
3695
|
+
notifyError(message);
|
|
3696
|
+
});
|
|
3697
|
+
return true;
|
|
3698
|
+
};
|
|
3699
|
+
const runLifecycle = (file) => {
|
|
3700
|
+
clearTimers();
|
|
3701
|
+
const currentRun = ++runId.current;
|
|
3702
|
+
const previewUrl = URL.createObjectURL(file);
|
|
3703
|
+
const isSignature = config.processor === "signature";
|
|
3704
|
+
setSlot({
|
|
3705
|
+
status: "uploading",
|
|
3706
|
+
file,
|
|
3707
|
+
fileName: file.name,
|
|
3708
|
+
fileType: file.type,
|
|
3709
|
+
fileSize: file.size,
|
|
3710
|
+
previewUrl,
|
|
3711
|
+
progress: 0
|
|
3712
|
+
});
|
|
3713
|
+
let progress = 0;
|
|
3714
|
+
const tick = () => {
|
|
3715
|
+
progress = Math.min(100, progress + 20);
|
|
3716
|
+
setSlot((prev) => ({ ...prev, progress }));
|
|
3717
|
+
if (progress < 100) {
|
|
3718
|
+
timers.current.push(setTimeout(tick, 180));
|
|
3719
|
+
} else {
|
|
3720
|
+
timers.current.push(
|
|
3721
|
+
setTimeout(() => {
|
|
3722
|
+
setSlot((prev) => ({ ...prev, status: "processing" }));
|
|
3723
|
+
if (processFile(file, currentRun, isSignature)) return;
|
|
3724
|
+
timers.current.push(
|
|
3725
|
+
setTimeout(() => {
|
|
3726
|
+
setSlot((prev) => ({
|
|
3727
|
+
...prev,
|
|
3728
|
+
status: "completed",
|
|
3729
|
+
cleanedImageUrl: isSignature ? prev.previewUrl : void 0,
|
|
3730
|
+
extraction: isSignature ? void 0 : { name: "Sample", date: "2026-07-16", id: "0001" }
|
|
3731
|
+
}));
|
|
3732
|
+
}, 1600)
|
|
3733
|
+
);
|
|
3734
|
+
}, 200)
|
|
3735
|
+
);
|
|
3736
|
+
}
|
|
3737
|
+
};
|
|
3738
|
+
timers.current.push(setTimeout(tick, 180));
|
|
3739
|
+
};
|
|
3740
|
+
const uploadDocument = (file) => runLifecycle(file);
|
|
3741
|
+
const retryDocument = () => {
|
|
3742
|
+
if (slot.file) runLifecycle(slot.file);
|
|
3743
|
+
};
|
|
3744
|
+
const removeDocument = () => {
|
|
3745
|
+
clearTimers();
|
|
3746
|
+
runId.current++;
|
|
3747
|
+
if (slot.previewUrl) URL.revokeObjectURL(slot.previewUrl);
|
|
3748
|
+
setSlot({ status: "idle" });
|
|
3749
|
+
};
|
|
3750
|
+
return { slot, uploadDocument, retryDocument, removeDocument };
|
|
3751
|
+
};
|
|
3752
|
+
var Card = ({
|
|
3753
|
+
activeIcon,
|
|
3754
|
+
title,
|
|
3755
|
+
subtitle,
|
|
3756
|
+
headerAction,
|
|
3757
|
+
children
|
|
3758
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3759
|
+
import_react32.Box,
|
|
3760
|
+
{
|
|
3761
|
+
w: "full",
|
|
3762
|
+
borderRadius: "2xl",
|
|
3763
|
+
bg: "white",
|
|
3764
|
+
borderWidth: "1px",
|
|
3765
|
+
borderColor: "gray.200",
|
|
3766
|
+
shadow: "sm",
|
|
3767
|
+
overflow: "hidden",
|
|
3768
|
+
children: [
|
|
3769
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { align: "center", justify: "space-between", px: 4, py: 3, gap: 2, children: [
|
|
3770
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { align: "center", gap: 2, minW: 0, children: [
|
|
3771
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3772
|
+
import_react32.Box,
|
|
3773
|
+
{
|
|
3774
|
+
p: 2,
|
|
3775
|
+
borderRadius: "full",
|
|
3776
|
+
bg: "gray.100",
|
|
3777
|
+
color: PRIMARY2,
|
|
3778
|
+
flexShrink: 0,
|
|
3779
|
+
children: activeIcon
|
|
3780
|
+
}
|
|
3781
|
+
),
|
|
3782
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { minW: 0, children: [
|
|
3783
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontWeight: "bold", fontSize: "md", lineHeight: "1.2", truncate: true, children: title }),
|
|
3784
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "xs", color: "gray.500", truncate: true, children: subtitle })
|
|
3785
|
+
] })
|
|
3786
|
+
] }),
|
|
3787
|
+
headerAction
|
|
3788
|
+
] }),
|
|
3789
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Box, { px: 4, pb: 4, pt: 1, borderTopWidth: "1px", borderColor: "gray.100", children })
|
|
3790
|
+
]
|
|
3791
|
+
}
|
|
3792
|
+
);
|
|
3793
|
+
var StatusPill = ({ status }) => {
|
|
3794
|
+
const map = {
|
|
3795
|
+
idle: null,
|
|
3796
|
+
uploading: { label: "Uploading", fg: "#1D4ED8", bg: "#EFF6FF" },
|
|
3797
|
+
processing: { label: "Analyzing", fg: "#7C3AED", bg: "#F5F3FF" },
|
|
3798
|
+
completed: { label: "Completed", fg: "#15803D", bg: "#F0FDF4" },
|
|
3799
|
+
failed: { label: "Failed", fg: "#B91C1C", bg: "#FEF2F2" }
|
|
3800
|
+
};
|
|
3801
|
+
const meta = map[status];
|
|
3802
|
+
if (!meta) return null;
|
|
3803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3804
|
+
import_react32.Flex,
|
|
3805
|
+
{
|
|
3806
|
+
align: "center",
|
|
3807
|
+
gap: 1.5,
|
|
3808
|
+
px: 2.5,
|
|
3809
|
+
py: 1,
|
|
3810
|
+
borderRadius: "full",
|
|
3811
|
+
fontSize: "xs",
|
|
3812
|
+
fontWeight: 600,
|
|
3813
|
+
style: { color: meta.fg, background: meta.bg },
|
|
3814
|
+
flexShrink: 0,
|
|
3815
|
+
children: [
|
|
3816
|
+
status === "processing" || status === "uploading" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Spinner, { size: "xs", borderWidth: "2px" }) : status === "completed" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuCheck, { size: 12 }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuTriangleAlert, { size: 12 }),
|
|
3817
|
+
meta.label
|
|
3818
|
+
]
|
|
3819
|
+
}
|
|
3820
|
+
);
|
|
3821
|
+
};
|
|
3822
|
+
var ProgressBar = ({ value, color }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Box, { w: "full", h: "6px", bg: "gray.100", borderRadius: "full", overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3823
|
+
import_react32.Box,
|
|
3824
|
+
{
|
|
3825
|
+
h: "full",
|
|
3826
|
+
borderRadius: "full",
|
|
3827
|
+
style: {
|
|
3828
|
+
width: `${value}%`,
|
|
3829
|
+
background: color,
|
|
3830
|
+
transition: "width 0.2s ease"
|
|
3831
|
+
}
|
|
3832
|
+
}
|
|
3833
|
+
) });
|
|
3834
|
+
var Thumb = ({
|
|
3835
|
+
url,
|
|
3836
|
+
isPdf,
|
|
3837
|
+
fileName,
|
|
3838
|
+
transparent
|
|
3839
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3840
|
+
import_react32.Flex,
|
|
3841
|
+
{
|
|
3842
|
+
align: "center",
|
|
3843
|
+
justify: "center",
|
|
3844
|
+
boxSize: { base: "56px", md: "64px" },
|
|
3845
|
+
borderRadius: "lg",
|
|
3846
|
+
borderWidth: "1px",
|
|
3847
|
+
borderColor: "gray.200",
|
|
3848
|
+
overflow: "hidden",
|
|
3849
|
+
flexShrink: 0,
|
|
3850
|
+
bg: transparent ? "transparent" : "gray.50",
|
|
3851
|
+
style: transparent ? {
|
|
3852
|
+
backgroundImage: "linear-gradient(45deg,#eee 25%,transparent 25%),linear-gradient(-45deg,#eee 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eee 75%),linear-gradient(-45deg,transparent 75%,#eee 75%)",
|
|
3853
|
+
backgroundSize: "10px 10px",
|
|
3854
|
+
backgroundPosition: "0 0,0 5px,5px -5px,-5px 0"
|
|
3855
|
+
} : void 0,
|
|
3856
|
+
children: isPdf || !url ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { direction: "column", align: "center", color: "gray.400", gap: 0.5, children: [
|
|
3857
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuFileText, { size: 22 }),
|
|
3858
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "9px", fontWeight: 600, children: isPdf ? "PDF" : "FILE" })
|
|
3859
|
+
] }) : (
|
|
3860
|
+
// eslint-disable-next-line @next/next/no-img-element
|
|
3861
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3862
|
+
"img",
|
|
3863
|
+
{
|
|
3864
|
+
src: url,
|
|
3865
|
+
alt: fileName ?? "preview",
|
|
3866
|
+
style: { width: "100%", height: "100%", objectFit: "contain" }
|
|
3867
|
+
}
|
|
3868
|
+
)
|
|
3869
|
+
)
|
|
3870
|
+
}
|
|
3871
|
+
);
|
|
3872
|
+
var GhostBtn = ({
|
|
3873
|
+
icon,
|
|
3874
|
+
label,
|
|
3875
|
+
onClick,
|
|
3876
|
+
tone = "gray"
|
|
3877
|
+
}) => {
|
|
3878
|
+
const tones = {
|
|
3879
|
+
gray: { c: "gray.600", h: "gray.50", b: "gray.200" },
|
|
3880
|
+
danger: { c: "#B91C1C", h: "#FEF2F2", b: "#FECACA" },
|
|
3881
|
+
primary: { c: PRIMARY2, h: PRIMARY_SOFT, b: PRIMARY2 }
|
|
3882
|
+
};
|
|
3883
|
+
const t = tones[tone];
|
|
3884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3885
|
+
import_react32.Flex,
|
|
3886
|
+
{
|
|
3887
|
+
as: "button",
|
|
3888
|
+
align: "center",
|
|
3889
|
+
gap: 1.5,
|
|
3890
|
+
px: 2.5,
|
|
3891
|
+
py: 1.5,
|
|
3892
|
+
borderRadius: "lg",
|
|
3893
|
+
borderWidth: "1px",
|
|
3894
|
+
borderColor: t.b,
|
|
3895
|
+
color: t.c,
|
|
3896
|
+
bg: "white",
|
|
3897
|
+
fontSize: "xs",
|
|
3898
|
+
fontWeight: 600,
|
|
3899
|
+
cursor: "pointer",
|
|
3900
|
+
_hover: { bg: t.h },
|
|
3901
|
+
transition: "all 0.15s",
|
|
3902
|
+
onClick,
|
|
3903
|
+
children: [
|
|
3904
|
+
icon,
|
|
3905
|
+
label
|
|
3906
|
+
]
|
|
3907
|
+
}
|
|
3908
|
+
);
|
|
3909
|
+
};
|
|
3910
|
+
function DocumentUploadCard({
|
|
3911
|
+
config,
|
|
3912
|
+
onStatusChange,
|
|
3913
|
+
onProcess,
|
|
3914
|
+
onError
|
|
3915
|
+
}) {
|
|
3916
|
+
const notifyError = onError ?? defaultNotifyError;
|
|
3917
|
+
const { slot, uploadDocument, retryDocument, removeDocument } = useDocumentSlot(config, onProcess, notifyError);
|
|
3918
|
+
const status = slot?.status ?? "idle";
|
|
3919
|
+
(0, import_react31.useEffect)(() => {
|
|
3920
|
+
onStatusChange?.(status);
|
|
3921
|
+
}, [status, onStatusChange]);
|
|
3922
|
+
const browseRef = (0, import_react31.useRef)(null);
|
|
3923
|
+
const cameraRef = (0, import_react31.useRef)(null);
|
|
3924
|
+
const [dragging, setDragging] = (0, import_react31.useState)(false);
|
|
3925
|
+
const Icon6 = config.icon;
|
|
3926
|
+
const isPdf = slot?.fileType === "application/pdf";
|
|
3927
|
+
const handleFiles = (files) => {
|
|
3928
|
+
const file = files?.[0];
|
|
3929
|
+
if (!file) return;
|
|
3930
|
+
const error = validate(file, config);
|
|
3931
|
+
if (error) {
|
|
3932
|
+
notifyError(error);
|
|
3933
|
+
return;
|
|
3934
|
+
}
|
|
3935
|
+
void uploadDocument(file);
|
|
3936
|
+
};
|
|
3937
|
+
const onDrop = (e) => {
|
|
3938
|
+
e.preventDefault();
|
|
3939
|
+
setDragging(false);
|
|
3940
|
+
handleFiles(e.dataTransfer.files);
|
|
3941
|
+
};
|
|
3942
|
+
const renderDropzone = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3943
|
+
import_react32.Flex,
|
|
3944
|
+
{
|
|
3945
|
+
direction: "column",
|
|
3946
|
+
align: "center",
|
|
3947
|
+
justify: "center",
|
|
3948
|
+
gap: 2,
|
|
3949
|
+
py: { base: 6, md: 7 },
|
|
3950
|
+
px: 4,
|
|
3951
|
+
borderWidth: "2px",
|
|
3952
|
+
borderStyle: "dashed",
|
|
3953
|
+
borderColor: dragging ? PRIMARY2 : "gray.200",
|
|
3954
|
+
borderRadius: "xl",
|
|
3955
|
+
bg: dragging ? PRIMARY_SOFT : "gray.50",
|
|
3956
|
+
transition: "all 0.15s",
|
|
3957
|
+
textAlign: "center",
|
|
3958
|
+
onDragOver: (e) => {
|
|
3959
|
+
e.preventDefault();
|
|
3960
|
+
setDragging(true);
|
|
3961
|
+
},
|
|
3962
|
+
onDragLeave: () => setDragging(false),
|
|
3963
|
+
onDrop,
|
|
3964
|
+
role: "button",
|
|
3965
|
+
tabIndex: 0,
|
|
3966
|
+
onClick: () => browseRef.current?.click(),
|
|
3967
|
+
onKeyDown: (e) => {
|
|
3968
|
+
if (e.key === "Enter" || e.key === " ") browseRef.current?.click();
|
|
3969
|
+
},
|
|
3970
|
+
cursor: "pointer",
|
|
3971
|
+
_hover: { borderColor: PRIMARY2, bg: PRIMARY_SOFT },
|
|
3972
|
+
children: [
|
|
3973
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3974
|
+
import_react32.Flex,
|
|
3975
|
+
{
|
|
3976
|
+
align: "center",
|
|
3977
|
+
justify: "center",
|
|
3978
|
+
boxSize: 11,
|
|
3979
|
+
borderRadius: "full",
|
|
3980
|
+
bg: "white",
|
|
3981
|
+
borderWidth: "1px",
|
|
3982
|
+
borderColor: "gray.200",
|
|
3983
|
+
color: PRIMARY2,
|
|
3984
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuUpload, { size: 18 })
|
|
3985
|
+
}
|
|
3986
|
+
),
|
|
3987
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { children: [
|
|
3988
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", fontWeight: 600, color: "gray.800", children: "Drag & drop or tap to upload" }),
|
|
3989
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "xs", color: "gray.500", mt: 0.5, children: config.hint ?? "JPG, PNG or PDF" })
|
|
3990
|
+
] }),
|
|
3991
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 2, mt: 1, onClick: (e) => e.stopPropagation(), children: [
|
|
3992
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3993
|
+
GhostBtn,
|
|
3994
|
+
{
|
|
3995
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuFolderOpen, { size: 13 }),
|
|
3996
|
+
label: "Browse",
|
|
3997
|
+
tone: "primary",
|
|
3998
|
+
onClick: () => browseRef.current?.click()
|
|
3999
|
+
}
|
|
4000
|
+
),
|
|
4001
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4002
|
+
GhostBtn,
|
|
4003
|
+
{
|
|
4004
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuCamera, { size: 13 }),
|
|
4005
|
+
label: "Take photo",
|
|
4006
|
+
onClick: () => cameraRef.current?.click()
|
|
4007
|
+
}
|
|
4008
|
+
)
|
|
4009
|
+
] })
|
|
4010
|
+
]
|
|
4011
|
+
}
|
|
4012
|
+
);
|
|
4013
|
+
const renderBusy = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 3, align: "center", children: [
|
|
4014
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Thumb, { url: slot?.previewUrl, isPdf, fileName: slot?.fileName }),
|
|
4015
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { flex: "1", minW: 0, children: [
|
|
4016
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", fontWeight: 600, color: "gray.800", truncate: true, children: slot?.fileName }),
|
|
4017
|
+
status === "uploading" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
4018
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4019
|
+
import_react32.Flex,
|
|
4020
|
+
{
|
|
4021
|
+
justify: "space-between",
|
|
4022
|
+
fontSize: "xs",
|
|
4023
|
+
color: "gray.500",
|
|
4024
|
+
mt: 1,
|
|
4025
|
+
mb: 1,
|
|
4026
|
+
children: [
|
|
4027
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { children: "Uploading\u2026" }),
|
|
4028
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Text, { fontWeight: 600, children: [
|
|
4029
|
+
slot?.progress ?? 0,
|
|
4030
|
+
"%"
|
|
4031
|
+
] })
|
|
4032
|
+
]
|
|
4033
|
+
}
|
|
4034
|
+
),
|
|
4035
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ProgressBar, { value: slot?.progress ?? 0, color: "#2563EB" })
|
|
4036
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { align: "center", gap: 2, mt: 1.5, children: [
|
|
4037
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4038
|
+
import_react32.Flex,
|
|
4039
|
+
{
|
|
4040
|
+
align: "center",
|
|
4041
|
+
gap: 1.5,
|
|
4042
|
+
px: 2,
|
|
4043
|
+
py: 1,
|
|
4044
|
+
borderRadius: "md",
|
|
4045
|
+
bg: "#F5F3FF",
|
|
4046
|
+
color: "#7C3AED",
|
|
4047
|
+
fontSize: "xs",
|
|
4048
|
+
fontWeight: 600,
|
|
4049
|
+
children: [
|
|
4050
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuSparkles, { size: 12 }),
|
|
4051
|
+
config.processor === "signature" ? "Cleaning signature\u2026" : "Reading with AI\u2026"
|
|
4052
|
+
]
|
|
4053
|
+
}
|
|
4054
|
+
),
|
|
4055
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Spinner, { size: "xs", color: "#7C3AED", borderWidth: "2px" })
|
|
4056
|
+
] }),
|
|
4057
|
+
status === "processing" && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "11px", color: "gray.400", mt: 1.5, children: "This can take a few seconds. Your upload is already saved." })
|
|
4058
|
+
] })
|
|
4059
|
+
] });
|
|
4060
|
+
const renderFailed = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { children: [
|
|
4061
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 3, align: "flex-start", children: [
|
|
4062
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Thumb, { url: slot?.previewUrl, isPdf, fileName: slot?.fileName }),
|
|
4063
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { flex: "1", minW: 0, children: [
|
|
4064
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", fontWeight: 600, color: "gray.800", truncate: true, children: slot?.fileName ?? config.label }),
|
|
4065
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { align: "flex-start", gap: 1.5, mt: 1, color: "#B91C1C", children: [
|
|
4066
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Box, { mt: "1px", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuTriangleAlert, { size: 13 }) }),
|
|
4067
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "xs", lineHeight: "1.4", children: slot?.error ?? "We couldn't process this document." })
|
|
4068
|
+
] })
|
|
4069
|
+
] })
|
|
4070
|
+
] }),
|
|
4071
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 2, mt: 3, wrap: "wrap", children: [
|
|
4072
|
+
slot?.file ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4073
|
+
GhostBtn,
|
|
4074
|
+
{
|
|
4075
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuRefreshCw, { size: 13 }),
|
|
4076
|
+
label: "Retry",
|
|
4077
|
+
tone: "primary",
|
|
4078
|
+
onClick: () => void retryDocument()
|
|
4079
|
+
}
|
|
4080
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4081
|
+
GhostBtn,
|
|
4082
|
+
{
|
|
4083
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuUpload, { size: 13 }),
|
|
4084
|
+
label: "Re-upload",
|
|
4085
|
+
tone: "primary",
|
|
4086
|
+
onClick: () => browseRef.current?.click()
|
|
4087
|
+
}
|
|
4088
|
+
),
|
|
4089
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4090
|
+
GhostBtn,
|
|
4091
|
+
{
|
|
4092
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuReplace, { size: 13 }),
|
|
4093
|
+
label: "Choose another",
|
|
4094
|
+
onClick: () => browseRef.current?.click()
|
|
4095
|
+
}
|
|
4096
|
+
),
|
|
4097
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4098
|
+
GhostBtn,
|
|
4099
|
+
{
|
|
4100
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuTrash2, { size: 13 }),
|
|
4101
|
+
label: "Remove",
|
|
4102
|
+
tone: "danger",
|
|
4103
|
+
onClick: () => removeDocument()
|
|
4104
|
+
}
|
|
4105
|
+
)
|
|
4106
|
+
] })
|
|
4107
|
+
] });
|
|
4108
|
+
const renderCompleted = () => {
|
|
4109
|
+
const isSignature = config.processor === "signature";
|
|
4110
|
+
const fieldCount = slot?.extraction ? Object.values(slot.extraction).filter(Boolean).length : 0;
|
|
4111
|
+
const displayUrl = isSignature ? slot?.cleanedImageUrl ?? slot?.previewUrl : slot?.previewUrl;
|
|
4112
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { children: [
|
|
4113
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 3, align: "center", children: [
|
|
4114
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4115
|
+
Thumb,
|
|
4116
|
+
{
|
|
4117
|
+
url: displayUrl,
|
|
4118
|
+
isPdf: isPdf && !isSignature,
|
|
4119
|
+
fileName: slot?.fileName,
|
|
4120
|
+
transparent: isSignature && !!slot?.cleanedImageUrl
|
|
4121
|
+
}
|
|
4122
|
+
),
|
|
4123
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Box, { flex: "1", minW: 0, children: [
|
|
4124
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "sm", fontWeight: 600, color: "gray.800", truncate: true, children: slot?.fileName }),
|
|
4125
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react32.Text, { fontSize: "xs", color: "gray.500", children: formatBytes(slot?.fileSize) }),
|
|
4126
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4127
|
+
import_react32.Flex,
|
|
4128
|
+
{
|
|
4129
|
+
align: "center",
|
|
4130
|
+
gap: 1.5,
|
|
4131
|
+
mt: 1.5,
|
|
4132
|
+
color: PRIMARY2,
|
|
4133
|
+
fontSize: "xs",
|
|
4134
|
+
fontWeight: 600,
|
|
4135
|
+
children: [
|
|
4136
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuSparkles, { size: 12 }),
|
|
4137
|
+
isSignature ? "Signature detected & cleaned" : `${fieldCount} field${fieldCount === 1 ? "" : "s"} extracted`
|
|
4138
|
+
]
|
|
4139
|
+
}
|
|
4140
|
+
)
|
|
4141
|
+
] })
|
|
4142
|
+
] }),
|
|
4143
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { gap: 2, mt: 3, wrap: "wrap", children: [
|
|
4144
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4145
|
+
GhostBtn,
|
|
4146
|
+
{
|
|
4147
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuReplace, { size: 13 }),
|
|
4148
|
+
label: "Replace",
|
|
4149
|
+
onClick: () => browseRef.current?.click()
|
|
4150
|
+
}
|
|
4151
|
+
),
|
|
4152
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4153
|
+
GhostBtn,
|
|
4154
|
+
{
|
|
4155
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lu6.LuTrash2, { size: 13 }),
|
|
4156
|
+
label: "Remove",
|
|
4157
|
+
tone: "danger",
|
|
4158
|
+
onClick: () => removeDocument()
|
|
4159
|
+
}
|
|
4160
|
+
)
|
|
4161
|
+
] })
|
|
4162
|
+
] });
|
|
4163
|
+
};
|
|
4164
|
+
const requiredTag = /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4165
|
+
import_react32.Text,
|
|
4166
|
+
{
|
|
4167
|
+
fontSize: "10px",
|
|
4168
|
+
fontWeight: 700,
|
|
4169
|
+
px: 1.5,
|
|
4170
|
+
py: 0.5,
|
|
4171
|
+
borderRadius: "full",
|
|
4172
|
+
color: config.required ? "#B45309" : "gray.500",
|
|
4173
|
+
bg: config.required ? "#FEF3C7" : "gray.100",
|
|
4174
|
+
flexShrink: 0,
|
|
4175
|
+
children: config.required ? "REQUIRED" : "OPTIONAL"
|
|
4176
|
+
}
|
|
4177
|
+
);
|
|
4178
|
+
const isMobile = (0, import_react32.useBreakpointValue)({ base: true, lg: false });
|
|
4179
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4180
|
+
Card,
|
|
4181
|
+
{
|
|
4182
|
+
activeIcon: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon6, { size: 18 }),
|
|
4183
|
+
title: config.label,
|
|
4184
|
+
subtitle: config.description,
|
|
4185
|
+
headerAction: !isMobile ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react32.Flex, { align: "center", gap: 2, flexShrink: 0, children: [
|
|
4186
|
+
requiredTag,
|
|
4187
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusPill, { status })
|
|
4188
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, {}),
|
|
4189
|
+
children: [
|
|
4190
|
+
isMobile ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
4191
|
+
import_react32.Flex,
|
|
4192
|
+
{
|
|
4193
|
+
align: "center",
|
|
4194
|
+
justifySelf: "flex-end",
|
|
4195
|
+
gap: 2,
|
|
4196
|
+
mb: 1,
|
|
4197
|
+
flexShrink: 0,
|
|
4198
|
+
children: [
|
|
4199
|
+
requiredTag,
|
|
4200
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(StatusPill, { status })
|
|
4201
|
+
]
|
|
4202
|
+
}
|
|
4203
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, {}),
|
|
4204
|
+
status === "idle" && renderDropzone(),
|
|
4205
|
+
(status === "uploading" || status === "processing") && renderBusy(),
|
|
4206
|
+
status === "failed" && renderFailed(),
|
|
4207
|
+
status === "completed" && renderCompleted(),
|
|
4208
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4209
|
+
"input",
|
|
4210
|
+
{
|
|
4211
|
+
ref: browseRef,
|
|
4212
|
+
type: "file",
|
|
4213
|
+
accept: config.accept,
|
|
4214
|
+
hidden: true,
|
|
4215
|
+
onChange: (e) => {
|
|
4216
|
+
handleFiles(e.target.files);
|
|
4217
|
+
e.target.value = "";
|
|
4218
|
+
}
|
|
4219
|
+
}
|
|
4220
|
+
),
|
|
4221
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
4222
|
+
"input",
|
|
4223
|
+
{
|
|
4224
|
+
ref: cameraRef,
|
|
4225
|
+
type: "file",
|
|
4226
|
+
accept: "image/*",
|
|
4227
|
+
capture: "environment",
|
|
4228
|
+
hidden: true,
|
|
4229
|
+
onChange: (e) => {
|
|
4230
|
+
handleFiles(e.target.files);
|
|
4231
|
+
e.target.value = "";
|
|
4232
|
+
}
|
|
4233
|
+
}
|
|
4234
|
+
)
|
|
4235
|
+
]
|
|
4236
|
+
}
|
|
4237
|
+
);
|
|
4238
|
+
}
|
|
4239
|
+
|
|
4240
|
+
// src/GetStarted/GetStarted.tsx
|
|
4241
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
4242
|
+
var defaultNotify = (type, message) => {
|
|
4243
|
+
if (type === "error") console.error(message);
|
|
4244
|
+
else console.info(message);
|
|
4245
|
+
};
|
|
4246
|
+
var GOVERNMENT_ID_CONFIG = {
|
|
4247
|
+
id: "government-id",
|
|
4248
|
+
label: "Government-issued ID",
|
|
4249
|
+
description: "Current and valid ID",
|
|
4250
|
+
accept: "image/*",
|
|
4251
|
+
maxSizeMB: 5,
|
|
4252
|
+
required: true,
|
|
4253
|
+
hint: "Any image \xB7 up to 5MB",
|
|
4254
|
+
processor: "extraction",
|
|
4255
|
+
icon: import_lu7.LuIdCard
|
|
4256
|
+
};
|
|
4257
|
+
var SIGNATURE_CONFIG = {
|
|
4258
|
+
id: "specimen-signature",
|
|
4259
|
+
label: "Specimen Signature",
|
|
4260
|
+
description: "Signature on plain white paper",
|
|
4261
|
+
accept: "image/png,image/jpeg,application/pdf",
|
|
4262
|
+
maxSizeMB: 5,
|
|
4263
|
+
required: true,
|
|
4264
|
+
hint: "JPG, PNG or PDF \xB7 up to 5MB",
|
|
4265
|
+
processor: "signature",
|
|
4266
|
+
icon: import_lu7.LuSignature
|
|
4267
|
+
};
|
|
4268
|
+
var GetStarted = ({
|
|
4269
|
+
scanId: scanIdFn,
|
|
4270
|
+
onContinue,
|
|
4271
|
+
notify = defaultNotify
|
|
4272
|
+
}) => {
|
|
4273
|
+
const [uploadDialogOpen, setUploadDialogOpen] = (0, import_react34.useState)(false);
|
|
4274
|
+
const [referralDialogOpen, setReferralDialogOpen] = (0, import_react34.useState)(false);
|
|
4275
|
+
const [governmentIdStatus, setGovernmentIdStatus] = (0, import_react34.useState)("idle");
|
|
4276
|
+
const { scanId } = useOcr(scanIdFn);
|
|
4277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Container_default, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4278
|
+
import_react33.Box,
|
|
4279
|
+
{
|
|
4280
|
+
p: { base: 0, md: 8 },
|
|
4281
|
+
rounded: "lg",
|
|
4282
|
+
shadow: { base: "none", md: "md" },
|
|
4283
|
+
bg: "white",
|
|
4284
|
+
maxW: "3xl",
|
|
4285
|
+
display: "flex",
|
|
4286
|
+
flexDirection: "column",
|
|
4287
|
+
alignItems: "center",
|
|
4288
|
+
mx: "auto",
|
|
4289
|
+
children: [
|
|
4290
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.VStack, { gap: 4, align: "stretch", children: [
|
|
4291
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Box, { textAlign: "center", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.H3, { children: "Let's Get Started" }) }),
|
|
4292
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { textAlign: { base: "center", md: "start" }, children: "We'll be needing some documents and information to proceed with the purchase, please prepare the following in advance to smooth out the next steps" }),
|
|
4293
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Box, { bg: "gray.50", p: 8, rounded: "md", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.VStack, { align: "start", gap: 2, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Box, { mb: 4, display: "flex", flexDirection: "column", gap: 2, children: [
|
|
4294
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { fontWeight: "bold", children: "Required Information" }),
|
|
4295
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "1. Full Name" }),
|
|
4296
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "2. Nationality" }),
|
|
4297
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "3. Mobile Number" }),
|
|
4298
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "4. Email Address" }),
|
|
4299
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "5. Date of Birth" }),
|
|
4300
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "6. Complete Address" }),
|
|
4301
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "7. Beneficiary/ies" }),
|
|
4302
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { fontWeight: "bold", children: "Required Documents" }),
|
|
4303
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "1. Current and Valid Government-issued ID" }),
|
|
4304
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.BaseText, { children: "2. Specimen Signature" })
|
|
4305
|
+
] }) }) })
|
|
4306
|
+
] }),
|
|
4307
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Box, { textAlign: "end", children: [
|
|
4308
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
4309
|
+
import_react33.Dialog.Root,
|
|
4310
|
+
{
|
|
4311
|
+
size: { mdDown: "full", md: "md" },
|
|
4312
|
+
open: uploadDialogOpen,
|
|
4313
|
+
onOpenChange: (details) => setUploadDialogOpen(details.open),
|
|
4314
|
+
children: [
|
|
4315
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4316
|
+
import_react33.Button,
|
|
4317
|
+
{
|
|
4318
|
+
w: { base: "sm", md: "2xl" },
|
|
4319
|
+
mt: { base: 4, md: 8 },
|
|
4320
|
+
onClick: () => setUploadDialogOpen(true),
|
|
4321
|
+
children: "CONTINUE"
|
|
4322
|
+
}
|
|
4323
|
+
) }),
|
|
4324
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Portal, { children: [
|
|
4325
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Backdrop, {}),
|
|
4326
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Dialog.Content, { children: [
|
|
4327
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Title, { children: "Upload Requirements" }) }),
|
|
4328
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.VStack, { gap: 6, align: "stretch", children: [
|
|
4329
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(info_card_default, { children: "To continue, please upload a valid ID. The system will use it to populate your information automatically." }),
|
|
4330
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4331
|
+
DocumentUploadCard,
|
|
4332
|
+
{
|
|
4333
|
+
config: GOVERNMENT_ID_CONFIG,
|
|
4334
|
+
onStatusChange: setGovernmentIdStatus,
|
|
4335
|
+
onProcess: scanId,
|
|
4336
|
+
onError: (message) => notify("error", message)
|
|
4337
|
+
}
|
|
4338
|
+
),
|
|
4339
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4340
|
+
DocumentUploadCard,
|
|
4341
|
+
{
|
|
4342
|
+
config: SIGNATURE_CONFIG,
|
|
4343
|
+
onError: (message) => notify("error", message)
|
|
4344
|
+
}
|
|
4345
|
+
)
|
|
4346
|
+
] }) }),
|
|
4347
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Dialog.Footer, { display: "flex", justifyContent: "space-between", children: [
|
|
4348
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.ActionTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.CancelButton, {}) }),
|
|
4349
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4350
|
+
import_st_peter_ui8.NextButton,
|
|
4351
|
+
{
|
|
4352
|
+
onClick: () => {
|
|
4353
|
+
if (governmentIdStatus === "uploading" || governmentIdStatus === "processing") {
|
|
4354
|
+
notify("info", "Please wait while we read your ID.");
|
|
4355
|
+
return;
|
|
4356
|
+
}
|
|
4357
|
+
if (governmentIdStatus !== "completed") {
|
|
4358
|
+
notify("error", "Please upload a government-issued ID.");
|
|
4359
|
+
return;
|
|
4360
|
+
}
|
|
4361
|
+
setUploadDialogOpen(false);
|
|
4362
|
+
setReferralDialogOpen(true);
|
|
4363
|
+
}
|
|
4364
|
+
}
|
|
4365
|
+
)
|
|
4366
|
+
] }),
|
|
4367
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.CloseTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.CloseButton, { size: "sm" }) })
|
|
4368
|
+
] }) })
|
|
4369
|
+
] })
|
|
4370
|
+
]
|
|
4371
|
+
}
|
|
4372
|
+
),
|
|
4373
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4374
|
+
import_react33.Dialog.Root,
|
|
4375
|
+
{
|
|
4376
|
+
placement: "center",
|
|
4377
|
+
open: referralDialogOpen,
|
|
4378
|
+
onOpenChange: (details) => setReferralDialogOpen(details.open),
|
|
4379
|
+
size: { mdDown: "full", md: "md" },
|
|
4380
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Portal, { children: [
|
|
4381
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Backdrop, {}),
|
|
4382
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Dialog.Content, { children: [
|
|
4383
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Header, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Title, { children: "Referral Agent" }) }),
|
|
4384
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.VStack, { align: "stretch", gap: 4, children: [
|
|
4385
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_st_peter_ui8.Body, { children: "Do you have an referral agent? (optional)" }),
|
|
4386
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Input, { placeholder: "Enter agent name" })
|
|
4387
|
+
] }) }),
|
|
4388
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react33.Dialog.Footer, { display: "flex", justifyContent: "space-between", children: [
|
|
4389
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4390
|
+
import_react33.Button,
|
|
4391
|
+
{
|
|
4392
|
+
variant: "outline",
|
|
4393
|
+
onClick: () => {
|
|
4394
|
+
setReferralDialogOpen(false);
|
|
4395
|
+
onContinue?.();
|
|
4396
|
+
},
|
|
4397
|
+
children: "Skip"
|
|
4398
|
+
}
|
|
4399
|
+
),
|
|
4400
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
4401
|
+
import_st_peter_ui8.PrimaryMdButton,
|
|
4402
|
+
{
|
|
4403
|
+
onClick: () => {
|
|
4404
|
+
setReferralDialogOpen(false);
|
|
4405
|
+
onContinue?.();
|
|
4406
|
+
},
|
|
4407
|
+
children: "Continue"
|
|
4408
|
+
}
|
|
4409
|
+
)
|
|
4410
|
+
] }),
|
|
4411
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.Dialog.CloseTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react33.CloseButton, { size: "sm" }) })
|
|
4412
|
+
] }) })
|
|
4413
|
+
] })
|
|
4414
|
+
}
|
|
4415
|
+
)
|
|
4416
|
+
] })
|
|
4417
|
+
]
|
|
4418
|
+
}
|
|
4419
|
+
) });
|
|
4420
|
+
};
|
|
4421
|
+
var GetStarted_default = GetStarted;
|
|
4422
|
+
|
|
4423
|
+
// src/Generic/BottomQuickActions.tsx
|
|
4424
|
+
var import_react35 = __toESM(require("react"));
|
|
4425
|
+
var import_react36 = require("@chakra-ui/react");
|
|
4426
|
+
var import_lu8 = require("react-icons/lu");
|
|
3576
4427
|
var import_link = __toESM(require("next/link"));
|
|
3577
|
-
var
|
|
4428
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3578
4429
|
var SHEET_BG = BRAND_COLORS.white;
|
|
3579
4430
|
var DRAG_COLOR = BRAND_COLORS.neutralBorder;
|
|
3580
4431
|
var ITEM_BG = BRAND_COLORS.white;
|
|
@@ -3591,15 +4442,15 @@ var SUBTITLE_COLOR = BRAND_COLORS.grey;
|
|
|
3591
4442
|
var LABEL_COLOR = BRAND_COLORS.neutralText;
|
|
3592
4443
|
var DESC_COLOR = BRAND_COLORS.grey;
|
|
3593
4444
|
var CHEVRON_COLOR = BRAND_COLORS.ashWhite;
|
|
3594
|
-
var QuickActionsHeaderCard =
|
|
4445
|
+
var QuickActionsHeaderCard = import_react35.default.memo(
|
|
3595
4446
|
({
|
|
3596
4447
|
initials,
|
|
3597
4448
|
avatarBg = AVATAR_DEFAULT_BG,
|
|
3598
4449
|
label,
|
|
3599
4450
|
meta,
|
|
3600
4451
|
trailing
|
|
3601
|
-
}) => /* @__PURE__ */ (0,
|
|
3602
|
-
|
|
4452
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
4453
|
+
import_react36.HStack,
|
|
3603
4454
|
{
|
|
3604
4455
|
gap: STANDARD_SPACING.sm,
|
|
3605
4456
|
px: STANDARD_SPACING.sm,
|
|
@@ -3609,8 +4460,8 @@ var QuickActionsHeaderCard = import_react28.default.memo(
|
|
|
3609
4460
|
borderWidth: "1px",
|
|
3610
4461
|
borderColor: HEADER_CARD_BORDER,
|
|
3611
4462
|
children: [
|
|
3612
|
-
initials && /* @__PURE__ */ (0,
|
|
3613
|
-
|
|
4463
|
+
initials && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4464
|
+
import_react36.Flex,
|
|
3614
4465
|
{
|
|
3615
4466
|
w: "40px",
|
|
3616
4467
|
h: "40px",
|
|
@@ -3619,8 +4470,8 @@ var QuickActionsHeaderCard = import_react28.default.memo(
|
|
|
3619
4470
|
align: "center",
|
|
3620
4471
|
justify: "center",
|
|
3621
4472
|
flexShrink: 0,
|
|
3622
|
-
children: /* @__PURE__ */ (0,
|
|
3623
|
-
|
|
4473
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4474
|
+
import_react36.Text,
|
|
3624
4475
|
{
|
|
3625
4476
|
fontSize: "14px",
|
|
3626
4477
|
fontWeight: "700",
|
|
@@ -3631,9 +4482,9 @@ var QuickActionsHeaderCard = import_react28.default.memo(
|
|
|
3631
4482
|
)
|
|
3632
4483
|
}
|
|
3633
4484
|
),
|
|
3634
|
-
/* @__PURE__ */ (0,
|
|
3635
|
-
/* @__PURE__ */ (0,
|
|
3636
|
-
|
|
4485
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react36.Box, { flex: "1", minW: 0, children: [
|
|
4486
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4487
|
+
import_react36.Text,
|
|
3637
4488
|
{
|
|
3638
4489
|
fontSize: "15px",
|
|
3639
4490
|
fontWeight: "700",
|
|
@@ -3645,8 +4496,8 @@ var QuickActionsHeaderCard = import_react28.default.memo(
|
|
|
3645
4496
|
children: label
|
|
3646
4497
|
}
|
|
3647
4498
|
),
|
|
3648
|
-
meta && /* @__PURE__ */ (0,
|
|
3649
|
-
|
|
4499
|
+
meta && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4500
|
+
import_react36.Text,
|
|
3650
4501
|
{
|
|
3651
4502
|
fontSize: "12px",
|
|
3652
4503
|
color: SUBTITLE_COLOR,
|
|
@@ -3667,11 +4518,11 @@ var QuickActionsHeaderCard = import_react28.default.memo(
|
|
|
3667
4518
|
var ITEM_TRANSITION = {
|
|
3668
4519
|
transition: "background 0.15s ease, transform 0.1s ease"
|
|
3669
4520
|
};
|
|
3670
|
-
var ActionItem =
|
|
4521
|
+
var ActionItem = import_react35.default.memo(({ action }) => {
|
|
3671
4522
|
const iconBg = action.iconBg ?? DEFAULT_ICON_BG;
|
|
3672
4523
|
const iconColor = action.iconColor ?? DEFAULT_ICON_COLOR;
|
|
3673
|
-
const inner = /* @__PURE__ */ (0,
|
|
3674
|
-
|
|
4524
|
+
const inner = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
4525
|
+
import_react36.HStack,
|
|
3675
4526
|
{
|
|
3676
4527
|
gap: STANDARD_SPACING.sm,
|
|
3677
4528
|
px: STANDARD_SPACING.sm,
|
|
@@ -3693,8 +4544,8 @@ var ActionItem = import_react28.default.memo(({ action }) => {
|
|
|
3693
4544
|
_active: { bg: ITEM_ACTIVE_BG, transform: "scale(0.99)" },
|
|
3694
4545
|
style: ITEM_TRANSITION,
|
|
3695
4546
|
children: [
|
|
3696
|
-
/* @__PURE__ */ (0,
|
|
3697
|
-
|
|
4547
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4548
|
+
import_react36.Flex,
|
|
3698
4549
|
{
|
|
3699
4550
|
w: "40px",
|
|
3700
4551
|
h: "40px",
|
|
@@ -3703,12 +4554,12 @@ var ActionItem = import_react28.default.memo(({ action }) => {
|
|
|
3703
4554
|
align: "center",
|
|
3704
4555
|
justify: "center",
|
|
3705
4556
|
flexShrink: 0,
|
|
3706
|
-
children: /* @__PURE__ */ (0,
|
|
4557
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Icon, { as: action.icon, boxSize: "20px", color: iconColor })
|
|
3707
4558
|
}
|
|
3708
4559
|
),
|
|
3709
|
-
/* @__PURE__ */ (0,
|
|
3710
|
-
/* @__PURE__ */ (0,
|
|
3711
|
-
|
|
4560
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react36.Box, { flex: "1", minW: 0, children: [
|
|
4561
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4562
|
+
import_react36.Text,
|
|
3712
4563
|
{
|
|
3713
4564
|
fontSize: "15px",
|
|
3714
4565
|
fontWeight: "600",
|
|
@@ -3717,8 +4568,8 @@ var ActionItem = import_react28.default.memo(({ action }) => {
|
|
|
3717
4568
|
children: action.label
|
|
3718
4569
|
}
|
|
3719
4570
|
),
|
|
3720
|
-
action.description && /* @__PURE__ */ (0,
|
|
3721
|
-
|
|
4571
|
+
action.description && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4572
|
+
import_react36.Text,
|
|
3722
4573
|
{
|
|
3723
4574
|
fontSize: "12px",
|
|
3724
4575
|
color: DESC_COLOR,
|
|
@@ -3731,10 +4582,10 @@ var ActionItem = import_react28.default.memo(({ action }) => {
|
|
|
3731
4582
|
}
|
|
3732
4583
|
)
|
|
3733
4584
|
] }),
|
|
3734
|
-
/* @__PURE__ */ (0,
|
|
3735
|
-
|
|
4585
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4586
|
+
import_react36.Icon,
|
|
3736
4587
|
{
|
|
3737
|
-
as:
|
|
4588
|
+
as: import_lu8.LuChevronRight,
|
|
3738
4589
|
boxSize: "18px",
|
|
3739
4590
|
color: CHEVRON_COLOR,
|
|
3740
4591
|
flexShrink: 0
|
|
@@ -3744,7 +4595,7 @@ var ActionItem = import_react28.default.memo(({ action }) => {
|
|
|
3744
4595
|
}
|
|
3745
4596
|
);
|
|
3746
4597
|
if (action.href) {
|
|
3747
|
-
return /* @__PURE__ */ (0,
|
|
4598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3748
4599
|
import_link.default,
|
|
3749
4600
|
{
|
|
3750
4601
|
href: action.href,
|
|
@@ -3763,16 +4614,16 @@ var BottomQuickActions = ({
|
|
|
3763
4614
|
headerSlot,
|
|
3764
4615
|
actions
|
|
3765
4616
|
}) => {
|
|
3766
|
-
return /* @__PURE__ */ (0,
|
|
3767
|
-
|
|
4617
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4618
|
+
import_react36.Drawer.Root,
|
|
3768
4619
|
{
|
|
3769
4620
|
open,
|
|
3770
4621
|
onOpenChange: (e) => onOpenChange(e.open),
|
|
3771
4622
|
placement: "bottom",
|
|
3772
|
-
children: /* @__PURE__ */ (0,
|
|
3773
|
-
/* @__PURE__ */ (0,
|
|
3774
|
-
/* @__PURE__ */ (0,
|
|
3775
|
-
|
|
4623
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react36.Portal, { children: [
|
|
4624
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Drawer.Backdrop, {}),
|
|
4625
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Drawer.Positioner, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
4626
|
+
import_react36.Drawer.Content,
|
|
3776
4627
|
{
|
|
3777
4628
|
borderTopRadius: "l3",
|
|
3778
4629
|
borderBottomRadius: "0",
|
|
@@ -3782,8 +4633,8 @@ var BottomQuickActions = ({
|
|
|
3782
4633
|
pb: `calc(${STANDARD_SPACING.sm} + env(safe-area-inset-bottom))`,
|
|
3783
4634
|
boxShadow: STANDARD_SHADOWS.level4,
|
|
3784
4635
|
children: [
|
|
3785
|
-
/* @__PURE__ */ (0,
|
|
3786
|
-
|
|
4636
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Flex, { justify: "center", pt: "10px", pb: "4px", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4637
|
+
import_react36.Box,
|
|
3787
4638
|
{
|
|
3788
4639
|
w: "36px",
|
|
3789
4640
|
h: "4px",
|
|
@@ -3791,17 +4642,17 @@ var BottomQuickActions = ({
|
|
|
3791
4642
|
bg: DRAG_COLOR
|
|
3792
4643
|
}
|
|
3793
4644
|
) }),
|
|
3794
|
-
/* @__PURE__ */ (0,
|
|
3795
|
-
|
|
4645
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4646
|
+
import_react36.Drawer.Header,
|
|
3796
4647
|
{
|
|
3797
4648
|
px: STANDARD_SPACING.sm,
|
|
3798
4649
|
pt: "12px",
|
|
3799
4650
|
pb: "0",
|
|
3800
4651
|
borderBottomWidth: "0",
|
|
3801
|
-
children: /* @__PURE__ */ (0,
|
|
3802
|
-
/* @__PURE__ */ (0,
|
|
3803
|
-
/* @__PURE__ */ (0,
|
|
3804
|
-
|
|
4652
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react36.Flex, { align: "flex-start", justify: "space-between", gap: "12px", children: [
|
|
4653
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react36.Box, { flex: "1", minW: 0, children: [
|
|
4654
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4655
|
+
import_react36.Drawer.Title,
|
|
3805
4656
|
{
|
|
3806
4657
|
fontSize: "18px",
|
|
3807
4658
|
fontWeight: "700",
|
|
@@ -3811,8 +4662,8 @@ var BottomQuickActions = ({
|
|
|
3811
4662
|
children: title
|
|
3812
4663
|
}
|
|
3813
4664
|
),
|
|
3814
|
-
subtitle && /* @__PURE__ */ (0,
|
|
3815
|
-
|
|
4665
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4666
|
+
import_react36.Text,
|
|
3816
4667
|
{
|
|
3817
4668
|
fontSize: "13px",
|
|
3818
4669
|
color: SUBTITLE_COLOR,
|
|
@@ -3823,8 +4674,8 @@ var BottomQuickActions = ({
|
|
|
3823
4674
|
}
|
|
3824
4675
|
)
|
|
3825
4676
|
] }),
|
|
3826
|
-
/* @__PURE__ */ (0,
|
|
3827
|
-
|
|
4677
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Drawer.CloseTrigger, { asChild: true, mt: "2px", flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
4678
|
+
import_react36.CloseButton,
|
|
3828
4679
|
{
|
|
3829
4680
|
size: "sm",
|
|
3830
4681
|
color: BRAND_COLORS.neutralText,
|
|
@@ -3835,15 +4686,15 @@ var BottomQuickActions = ({
|
|
|
3835
4686
|
] })
|
|
3836
4687
|
}
|
|
3837
4688
|
),
|
|
3838
|
-
/* @__PURE__ */ (0,
|
|
3839
|
-
|
|
4689
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
4690
|
+
import_react36.Drawer.Body,
|
|
3840
4691
|
{
|
|
3841
4692
|
px: STANDARD_SPACING.sm,
|
|
3842
4693
|
pt: STANDARD_SPACING.sm,
|
|
3843
4694
|
pb: "4px",
|
|
3844
4695
|
children: [
|
|
3845
|
-
headerSlot && /* @__PURE__ */ (0,
|
|
3846
|
-
/* @__PURE__ */ (0,
|
|
4696
|
+
headerSlot && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.Box, { mb: STANDARD_SPACING.xs, children: headerSlot }),
|
|
4697
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react36.VStack, { gap: STANDARD_SPACING.xs, align: "stretch", children: actions.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ActionItem, { action }, i)) })
|
|
3847
4698
|
]
|
|
3848
4699
|
}
|
|
3849
4700
|
)
|
|
@@ -3857,18 +4708,18 @@ var BottomQuickActions = ({
|
|
|
3857
4708
|
var BottomQuickActions_default = BottomQuickActions;
|
|
3858
4709
|
|
|
3859
4710
|
// src/Generic/NotifyInstall.tsx
|
|
3860
|
-
var
|
|
3861
|
-
var
|
|
3862
|
-
var
|
|
4711
|
+
var import_react38 = require("react");
|
|
4712
|
+
var import_react39 = require("@chakra-ui/react");
|
|
4713
|
+
var import_react40 = require("motion/react");
|
|
3863
4714
|
var import_fi2 = require("react-icons/fi");
|
|
3864
4715
|
|
|
3865
4716
|
// src/hooks/useNotifyInstall.ts
|
|
3866
|
-
var
|
|
4717
|
+
var import_react37 = require("react");
|
|
3867
4718
|
function useNotifyInstall() {
|
|
3868
|
-
const [isInstalled, setIsInstalled] = (0,
|
|
3869
|
-
const [isMobile, setIsMobile] = (0,
|
|
3870
|
-
const [installPrompt, setInstallPrompt] = (0,
|
|
3871
|
-
(0,
|
|
4719
|
+
const [isInstalled, setIsInstalled] = (0, import_react37.useState)(false);
|
|
4720
|
+
const [isMobile, setIsMobile] = (0, import_react37.useState)(false);
|
|
4721
|
+
const [installPrompt, setInstallPrompt] = (0, import_react37.useState)(null);
|
|
4722
|
+
(0, import_react37.useEffect)(() => {
|
|
3872
4723
|
const mobile = /Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
|
|
3873
4724
|
setIsMobile(mobile);
|
|
3874
4725
|
const installed = window.matchMedia("(display-mode: standalone)").matches || window.navigator.standalone === true;
|
|
@@ -3900,7 +4751,7 @@ function useNotifyInstall() {
|
|
|
3900
4751
|
}
|
|
3901
4752
|
|
|
3902
4753
|
// src/Generic/NotifyInstall.tsx
|
|
3903
|
-
var
|
|
4754
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3904
4755
|
var STEPS = [
|
|
3905
4756
|
{ icon: import_fi2.FiShare, label: "Tap the browser menu or Share button" },
|
|
3906
4757
|
{ icon: import_fi2.FiPlusSquare, label: 'Choose "Add to Home Screen"' }
|
|
@@ -3911,8 +4762,8 @@ function NotifyInstall({
|
|
|
3911
4762
|
appName
|
|
3912
4763
|
}) {
|
|
3913
4764
|
const { isInstalled, isMobile, canInstall, install } = useNotifyInstall();
|
|
3914
|
-
const [isDismissed, setIsDismissed] = (0,
|
|
3915
|
-
(0,
|
|
4765
|
+
const [isDismissed, setIsDismissed] = (0, import_react38.useState)(true);
|
|
4766
|
+
(0, import_react38.useEffect)(() => {
|
|
3916
4767
|
if (localStorage.getItem(DISMISSED_KEY) !== "true") {
|
|
3917
4768
|
setIsDismissed(false);
|
|
3918
4769
|
}
|
|
@@ -3922,11 +4773,11 @@ function NotifyInstall({
|
|
|
3922
4773
|
setIsDismissed(true);
|
|
3923
4774
|
};
|
|
3924
4775
|
const showPrompt = isMobile && !isInstalled && !isDismissed;
|
|
3925
|
-
return /* @__PURE__ */ (0,
|
|
4776
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
3926
4777
|
children,
|
|
3927
|
-
/* @__PURE__ */ (0,
|
|
3928
|
-
/* @__PURE__ */ (0,
|
|
3929
|
-
|
|
4778
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react40.AnimatePresence, { children: showPrompt && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
4779
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4780
|
+
import_react40.motion.div,
|
|
3930
4781
|
{
|
|
3931
4782
|
initial: { opacity: 0 },
|
|
3932
4783
|
animate: { opacity: 1 },
|
|
@@ -3944,8 +4795,8 @@ function NotifyInstall({
|
|
|
3944
4795
|
},
|
|
3945
4796
|
"install-backdrop"
|
|
3946
4797
|
),
|
|
3947
|
-
/* @__PURE__ */ (0,
|
|
3948
|
-
|
|
4798
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
4799
|
+
import_react40.motion.div,
|
|
3949
4800
|
{
|
|
3950
4801
|
initial: { y: "100%" },
|
|
3951
4802
|
animate: { y: 0 },
|
|
@@ -3963,7 +4814,7 @@ function NotifyInstall({
|
|
|
3963
4814
|
paddingBottom: "env(safe-area-inset-bottom)"
|
|
3964
4815
|
},
|
|
3965
4816
|
children: [
|
|
3966
|
-
/* @__PURE__ */ (0,
|
|
4817
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3967
4818
|
"button",
|
|
3968
4819
|
{
|
|
3969
4820
|
"aria-label": "Dismiss install prompt",
|
|
@@ -3982,12 +4833,12 @@ function NotifyInstall({
|
|
|
3982
4833
|
justifyContent: "center",
|
|
3983
4834
|
color: "#9ca3af"
|
|
3984
4835
|
},
|
|
3985
|
-
children: /* @__PURE__ */ (0,
|
|
4836
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_fi2.FiX, { size: 18 })
|
|
3986
4837
|
}
|
|
3987
4838
|
),
|
|
3988
|
-
/* @__PURE__ */ (0,
|
|
3989
|
-
/* @__PURE__ */ (0,
|
|
3990
|
-
|
|
4839
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react39.VStack, { gap: 6, textAlign: "center", px: 6, py: 8, children: [
|
|
4840
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4841
|
+
import_react39.Flex,
|
|
3991
4842
|
{
|
|
3992
4843
|
boxSize: 16,
|
|
3993
4844
|
align: "center",
|
|
@@ -3996,12 +4847,12 @@ function NotifyInstall({
|
|
|
3996
4847
|
bg: "green.50",
|
|
3997
4848
|
color: "green.600",
|
|
3998
4849
|
shadow: "sm",
|
|
3999
|
-
children: /* @__PURE__ */ (0,
|
|
4850
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react39.Icon, { as: import_fi2.FiDownload, boxSize: 8 })
|
|
4000
4851
|
}
|
|
4001
4852
|
),
|
|
4002
|
-
/* @__PURE__ */ (0,
|
|
4003
|
-
/* @__PURE__ */ (0,
|
|
4004
|
-
|
|
4853
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react39.VStack, { gap: 2, children: [
|
|
4854
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
4855
|
+
import_react39.Text,
|
|
4005
4856
|
{
|
|
4006
4857
|
fontSize: "lg",
|
|
4007
4858
|
fontWeight: "bold",
|
|
@@ -4013,10 +4864,10 @@ function NotifyInstall({
|
|
|
4013
4864
|
]
|
|
4014
4865
|
}
|
|
4015
4866
|
),
|
|
4016
|
-
/* @__PURE__ */ (0,
|
|
4867
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react39.Text, { fontSize: "sm", color: "gray.500", lineHeight: "tall", children: "Add the app to your home screen for a faster, app-like experience before continuing." })
|
|
4017
4868
|
] }),
|
|
4018
|
-
canInstall ? /* @__PURE__ */ (0,
|
|
4019
|
-
|
|
4869
|
+
canInstall ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
4870
|
+
import_react39.Button,
|
|
4020
4871
|
{
|
|
4021
4872
|
onClick: install,
|
|
4022
4873
|
colorPalette: "green",
|
|
@@ -4024,12 +4875,12 @@ function NotifyInstall({
|
|
|
4024
4875
|
w: "full",
|
|
4025
4876
|
rounded: "xl",
|
|
4026
4877
|
children: [
|
|
4027
|
-
/* @__PURE__ */ (0,
|
|
4878
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react39.Icon, { as: import_fi2.FiDownload }),
|
|
4028
4879
|
"Add to Home Screen"
|
|
4029
4880
|
]
|
|
4030
4881
|
}
|
|
4031
|
-
) : /* @__PURE__ */ (0,
|
|
4032
|
-
|
|
4882
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4883
|
+
import_react39.VStack,
|
|
4033
4884
|
{
|
|
4034
4885
|
w: "full",
|
|
4035
4886
|
bg: "gray.50",
|
|
@@ -4039,9 +4890,9 @@ function NotifyInstall({
|
|
|
4039
4890
|
p: 4,
|
|
4040
4891
|
gap: 4,
|
|
4041
4892
|
align: "stretch",
|
|
4042
|
-
children: STEPS.map((step, i) => /* @__PURE__ */ (0,
|
|
4043
|
-
/* @__PURE__ */ (0,
|
|
4044
|
-
|
|
4893
|
+
children: STEPS.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_react39.HStack, { gap: 3, align: "center", children: [
|
|
4894
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
4895
|
+
import_react39.Flex,
|
|
4045
4896
|
{
|
|
4046
4897
|
boxSize: 9,
|
|
4047
4898
|
flexShrink: 0,
|
|
@@ -4052,10 +4903,10 @@ function NotifyInstall({
|
|
|
4052
4903
|
borderWidth: "1px",
|
|
4053
4904
|
borderColor: "gray.200",
|
|
4054
4905
|
color: "green.600",
|
|
4055
|
-
children: /* @__PURE__ */ (0,
|
|
4906
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react39.Icon, { as: step.icon, boxSize: 4 })
|
|
4056
4907
|
}
|
|
4057
4908
|
),
|
|
4058
|
-
/* @__PURE__ */ (0,
|
|
4909
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react39.Text, { fontSize: "sm", color: "gray.700", textAlign: "left", children: step.label })
|
|
4059
4910
|
] }, i))
|
|
4060
4911
|
}
|
|
4061
4912
|
)
|
|
@@ -4069,17 +4920,17 @@ function NotifyInstall({
|
|
|
4069
4920
|
}
|
|
4070
4921
|
|
|
4071
4922
|
// src/UserProfile/UserProfile.tsx
|
|
4072
|
-
var
|
|
4073
|
-
var
|
|
4923
|
+
var import_react41 = require("react");
|
|
4924
|
+
var import_react42 = require("@chakra-ui/react");
|
|
4074
4925
|
var import_ri = require("react-icons/ri");
|
|
4075
|
-
var
|
|
4926
|
+
var import_lu9 = require("react-icons/lu");
|
|
4076
4927
|
var import_hi2 = require("react-icons/hi2");
|
|
4077
4928
|
var import_bs = require("react-icons/bs");
|
|
4078
4929
|
var import_lia = require("react-icons/lia");
|
|
4079
4930
|
var import_fa5 = require("react-icons/fa");
|
|
4080
4931
|
var import_md = require("react-icons/md");
|
|
4081
4932
|
var import_io5 = require("react-icons/io5");
|
|
4082
|
-
var
|
|
4933
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
4083
4934
|
var NAVBAR_STORAGE_KEY = "profile-navbar-quick-items";
|
|
4084
4935
|
var FONT_SIZE_STORAGE_KEY = "profile-font-size-pref";
|
|
4085
4936
|
var DEFAULT_NAV_HREFS = ["/", "/plans", "/pay-my-plan", "/claims"];
|
|
@@ -4095,8 +4946,8 @@ var ALL_NAV_OPTIONS = [
|
|
|
4095
4946
|
key: "/",
|
|
4096
4947
|
title: "Home",
|
|
4097
4948
|
href: "/",
|
|
4098
|
-
Icon:
|
|
4099
|
-
activeIcon:
|
|
4949
|
+
Icon: import_lu9.LuHouse,
|
|
4950
|
+
activeIcon: import_lu9.LuHouse,
|
|
4100
4951
|
match: (p) => p === "/",
|
|
4101
4952
|
roles: ["branch", "bmstl", "sales-agent"]
|
|
4102
4953
|
},
|
|
@@ -4113,8 +4964,8 @@ var ALL_NAV_OPTIONS = [
|
|
|
4113
4964
|
key: "/pay-my-plan",
|
|
4114
4965
|
title: "Pay",
|
|
4115
4966
|
href: "/pay-my-plan",
|
|
4116
|
-
Icon:
|
|
4117
|
-
activeIcon:
|
|
4967
|
+
Icon: import_lu9.LuCreditCard,
|
|
4968
|
+
activeIcon: import_lu9.LuCreditCard,
|
|
4118
4969
|
match: (p) => p.startsWith("/pay-my-plan") || p.startsWith("/account/pay-my-plan") || p.startsWith("/order-summary"),
|
|
4119
4970
|
roles: ["branch", "bmstl", "sales-agent"]
|
|
4120
4971
|
},
|
|
@@ -4122,8 +4973,8 @@ var ALL_NAV_OPTIONS = [
|
|
|
4122
4973
|
key: "/claims",
|
|
4123
4974
|
title: "Claim",
|
|
4124
4975
|
href: "/claims",
|
|
4125
|
-
Icon:
|
|
4126
|
-
activeIcon:
|
|
4976
|
+
Icon: import_lu9.LuFileText,
|
|
4977
|
+
activeIcon: import_lu9.LuFileText,
|
|
4127
4978
|
match: (p) => p.startsWith("/claims"),
|
|
4128
4979
|
roles: ["branch", "bmstl", "sales-agent"]
|
|
4129
4980
|
},
|
|
@@ -4377,28 +5228,28 @@ function ReusableProfile({
|
|
|
4377
5228
|
onTwoFactorChange,
|
|
4378
5229
|
onToast = noopToast
|
|
4379
5230
|
}) {
|
|
4380
|
-
const [profileView, setProfileView] = (0,
|
|
4381
|
-
const [fallbackColorMode, setFallbackColorMode] = (0,
|
|
5231
|
+
const [profileView, setProfileView] = (0, import_react41.useState)("main");
|
|
5232
|
+
const [fallbackColorMode, setFallbackColorMode] = (0, import_react41.useState)("light");
|
|
4382
5233
|
const colorMode = controlledColorMode ?? fallbackColorMode;
|
|
4383
|
-
const [fontSize, setFontSizeLocal] = (0,
|
|
4384
|
-
const [quickNavHrefs, setQuickNavHrefs] = (0,
|
|
4385
|
-
const [replacingIdx, setReplacingIdx] = (0,
|
|
4386
|
-
const [editName, setEditName] = (0,
|
|
4387
|
-
const [editLoading, setEditLoading] = (0,
|
|
4388
|
-
const [currentPw, setCurrentPw] = (0,
|
|
4389
|
-
const [newPw, setNewPw] = (0,
|
|
4390
|
-
const [confirmPw, setConfirmPw] = (0,
|
|
4391
|
-
const [showCurrentPw, setShowCurrentPw] = (0,
|
|
4392
|
-
const [showNewPw, setShowNewPw] = (0,
|
|
4393
|
-
const [showConfirmPw, setShowConfirmPw] = (0,
|
|
4394
|
-
const [pwLoading, setPwLoading] = (0,
|
|
4395
|
-
const [twoFactorEnabled, setTwoFactorEnabled] = (0,
|
|
5234
|
+
const [fontSize, setFontSizeLocal] = (0, import_react41.useState)("md");
|
|
5235
|
+
const [quickNavHrefs, setQuickNavHrefs] = (0, import_react41.useState)(initialQuickNavHrefs);
|
|
5236
|
+
const [replacingIdx, setReplacingIdx] = (0, import_react41.useState)(null);
|
|
5237
|
+
const [editName, setEditName] = (0, import_react41.useState)(user.displayName);
|
|
5238
|
+
const [editLoading, setEditLoading] = (0, import_react41.useState)(false);
|
|
5239
|
+
const [currentPw, setCurrentPw] = (0, import_react41.useState)("");
|
|
5240
|
+
const [newPw, setNewPw] = (0, import_react41.useState)("");
|
|
5241
|
+
const [confirmPw, setConfirmPw] = (0, import_react41.useState)("");
|
|
5242
|
+
const [showCurrentPw, setShowCurrentPw] = (0, import_react41.useState)(false);
|
|
5243
|
+
const [showNewPw, setShowNewPw] = (0, import_react41.useState)(false);
|
|
5244
|
+
const [showConfirmPw, setShowConfirmPw] = (0, import_react41.useState)(false);
|
|
5245
|
+
const [pwLoading, setPwLoading] = (0, import_react41.useState)(false);
|
|
5246
|
+
const [twoFactorEnabled, setTwoFactorEnabled] = (0, import_react41.useState)(
|
|
4396
5247
|
initialTwoFactorEnabled
|
|
4397
5248
|
);
|
|
4398
|
-
const [isMounted, setIsMounted] = (0,
|
|
4399
|
-
const isDesktopRaw = (0,
|
|
5249
|
+
const [isMounted, setIsMounted] = (0, import_react41.useState)(false);
|
|
5250
|
+
const isDesktopRaw = (0, import_react42.useBreakpointValue)({ base: false, md: true });
|
|
4400
5251
|
const isDesktop = isMounted ? isDesktopRaw ?? false : false;
|
|
4401
|
-
(0,
|
|
5252
|
+
(0, import_react41.useEffect)(() => {
|
|
4402
5253
|
setIsMounted(true);
|
|
4403
5254
|
if (!enableLocalStorage || typeof window === "undefined") return;
|
|
4404
5255
|
setFontSizeLocal(localStorage.getItem(FONT_SIZE_STORAGE_KEY) ?? "md");
|
|
@@ -4409,10 +5260,10 @@ function ReusableProfile({
|
|
|
4409
5260
|
setQuickNavHrefs(initialQuickNavHrefs);
|
|
4410
5261
|
}
|
|
4411
5262
|
}, [enableLocalStorage, initialQuickNavHrefs, storageKey]);
|
|
4412
|
-
(0,
|
|
5263
|
+
(0, import_react41.useEffect)(() => {
|
|
4413
5264
|
setEditName(user.displayName);
|
|
4414
5265
|
}, [user.displayName]);
|
|
4415
|
-
const availableOptions = (0,
|
|
5266
|
+
const availableOptions = (0, import_react41.useMemo)(
|
|
4416
5267
|
() => availableNavOptions.filter(
|
|
4417
5268
|
(option) => !user.role || option.roles.includes(user.role)
|
|
4418
5269
|
),
|
|
@@ -4540,9 +5391,9 @@ function ReusableProfile({
|
|
|
4540
5391
|
}
|
|
4541
5392
|
};
|
|
4542
5393
|
const roleLabel = user.role ? ROLE_LABELS[user.role] ?? user.role : "";
|
|
4543
|
-
const mainContent = /* @__PURE__ */ (0,
|
|
4544
|
-
/* @__PURE__ */ (0,
|
|
4545
|
-
|
|
5394
|
+
const mainContent = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
5395
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5396
|
+
import_react42.Box,
|
|
4546
5397
|
{
|
|
4547
5398
|
bg: "var(--chakra-colors-primary)",
|
|
4548
5399
|
pt: 12,
|
|
@@ -4550,21 +5401,21 @@ function ReusableProfile({
|
|
|
4550
5401
|
px: 4,
|
|
4551
5402
|
textAlign: "center",
|
|
4552
5403
|
children: [
|
|
4553
|
-
/* @__PURE__ */ (0,
|
|
4554
|
-
|
|
5404
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5405
|
+
import_react42.Avatar.Root,
|
|
4555
5406
|
{
|
|
4556
5407
|
size: "2xl",
|
|
4557
5408
|
mx: "auto",
|
|
4558
5409
|
mb: 4,
|
|
4559
5410
|
colorPalette: pickPalette(user.displayName || "U"),
|
|
4560
5411
|
children: [
|
|
4561
|
-
user.avatarSrc && /* @__PURE__ */ (0,
|
|
4562
|
-
/* @__PURE__ */ (0,
|
|
5412
|
+
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Avatar.Image, { src: user.avatarSrc, alt: user.displayName }),
|
|
5413
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Avatar.Fallback, { name: user.displayName })
|
|
4563
5414
|
]
|
|
4564
5415
|
}
|
|
4565
5416
|
),
|
|
4566
|
-
/* @__PURE__ */ (0,
|
|
4567
|
-
|
|
5417
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5418
|
+
import_react42.Text,
|
|
4568
5419
|
{
|
|
4569
5420
|
color: "white",
|
|
4570
5421
|
fontWeight: "bold",
|
|
@@ -4574,9 +5425,9 @@ function ReusableProfile({
|
|
|
4574
5425
|
children: user.displayName
|
|
4575
5426
|
}
|
|
4576
5427
|
),
|
|
4577
|
-
user.email && /* @__PURE__ */ (0,
|
|
4578
|
-
roleLabel && /* @__PURE__ */ (0,
|
|
4579
|
-
|
|
5428
|
+
user.email && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { color: "rgba(255,255,255,0.75)", fontSize: "sm", mb: 2, children: user.email }),
|
|
5429
|
+
roleLabel && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { display: "inline-flex", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5430
|
+
import_react42.Badge,
|
|
4580
5431
|
{
|
|
4581
5432
|
bg: "rgba(255,255,255,0.15)",
|
|
4582
5433
|
color: "white",
|
|
@@ -4592,9 +5443,9 @@ function ReusableProfile({
|
|
|
4592
5443
|
]
|
|
4593
5444
|
}
|
|
4594
5445
|
),
|
|
4595
|
-
/* @__PURE__ */ (0,
|
|
4596
|
-
/* @__PURE__ */ (0,
|
|
4597
|
-
|
|
5446
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { px: 4, pt: 5, pb: 1, children: [
|
|
5447
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5448
|
+
import_react42.Text,
|
|
4598
5449
|
{
|
|
4599
5450
|
fontSize: "xs",
|
|
4600
5451
|
fontWeight: "bold",
|
|
@@ -4605,8 +5456,8 @@ function ReusableProfile({
|
|
|
4605
5456
|
children: "Account"
|
|
4606
5457
|
}
|
|
4607
5458
|
),
|
|
4608
|
-
/* @__PURE__ */ (0,
|
|
4609
|
-
|
|
5459
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5460
|
+
import_react42.Box,
|
|
4610
5461
|
{
|
|
4611
5462
|
as: "button",
|
|
4612
5463
|
w: "full",
|
|
@@ -4614,8 +5465,8 @@ function ReusableProfile({
|
|
|
4614
5465
|
_hover: { opacity: 0.7 },
|
|
4615
5466
|
transition: "opacity 0.15s",
|
|
4616
5467
|
onClick: () => setProfileView("edit-account"),
|
|
4617
|
-
children: /* @__PURE__ */ (0,
|
|
4618
|
-
|
|
5468
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5469
|
+
import_react42.Flex,
|
|
4619
5470
|
{
|
|
4620
5471
|
justify: "space-between",
|
|
4621
5472
|
align: "center",
|
|
@@ -4624,9 +5475,9 @@ function ReusableProfile({
|
|
|
4624
5475
|
borderRadius: "lg",
|
|
4625
5476
|
bg: isDesktop && profileView === "edit-account" ? "gray.100" : void 0,
|
|
4626
5477
|
children: [
|
|
4627
|
-
/* @__PURE__ */ (0,
|
|
4628
|
-
/* @__PURE__ */ (0,
|
|
4629
|
-
|
|
5478
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5479
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5480
|
+
import_react42.Box,
|
|
4630
5481
|
{
|
|
4631
5482
|
w: "38px",
|
|
4632
5483
|
h: "38px",
|
|
@@ -4637,23 +5488,23 @@ function ReusableProfile({
|
|
|
4637
5488
|
justifyContent: "center",
|
|
4638
5489
|
color: "gray.600",
|
|
4639
5490
|
flexShrink: 0,
|
|
4640
|
-
children: /* @__PURE__ */ (0,
|
|
5491
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuUser, { size: 16 })
|
|
4641
5492
|
}
|
|
4642
5493
|
),
|
|
4643
|
-
/* @__PURE__ */ (0,
|
|
4644
|
-
/* @__PURE__ */ (0,
|
|
4645
|
-
/* @__PURE__ */ (0,
|
|
5494
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5495
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Edit Account" }),
|
|
5496
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: "Update your display name and contact details" })
|
|
4646
5497
|
] })
|
|
4647
5498
|
] }),
|
|
4648
|
-
/* @__PURE__ */ (0,
|
|
5499
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronRight, { size: 16, color: "var(--chakra-colors-gray-400)" })
|
|
4649
5500
|
]
|
|
4650
5501
|
}
|
|
4651
5502
|
)
|
|
4652
5503
|
}
|
|
4653
5504
|
),
|
|
4654
|
-
/* @__PURE__ */ (0,
|
|
4655
|
-
/* @__PURE__ */ (0,
|
|
4656
|
-
|
|
5505
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {}),
|
|
5506
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5507
|
+
import_react42.Box,
|
|
4657
5508
|
{
|
|
4658
5509
|
as: "button",
|
|
4659
5510
|
w: "full",
|
|
@@ -4664,8 +5515,8 @@ function ReusableProfile({
|
|
|
4664
5515
|
resetPasswordForm();
|
|
4665
5516
|
setProfileView("change-password");
|
|
4666
5517
|
},
|
|
4667
|
-
children: /* @__PURE__ */ (0,
|
|
4668
|
-
|
|
5518
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5519
|
+
import_react42.Flex,
|
|
4669
5520
|
{
|
|
4670
5521
|
justify: "space-between",
|
|
4671
5522
|
align: "center",
|
|
@@ -4674,9 +5525,9 @@ function ReusableProfile({
|
|
|
4674
5525
|
borderRadius: "lg",
|
|
4675
5526
|
bg: isDesktop && profileView === "change-password" ? "gray.100" : void 0,
|
|
4676
5527
|
children: [
|
|
4677
|
-
/* @__PURE__ */ (0,
|
|
4678
|
-
/* @__PURE__ */ (0,
|
|
4679
|
-
|
|
5528
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5529
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5530
|
+
import_react42.Box,
|
|
4680
5531
|
{
|
|
4681
5532
|
w: "38px",
|
|
4682
5533
|
h: "38px",
|
|
@@ -4687,25 +5538,25 @@ function ReusableProfile({
|
|
|
4687
5538
|
justifyContent: "center",
|
|
4688
5539
|
color: "gray.600",
|
|
4689
5540
|
flexShrink: 0,
|
|
4690
|
-
children: /* @__PURE__ */ (0,
|
|
5541
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuLock, { size: 16 })
|
|
4691
5542
|
}
|
|
4692
5543
|
),
|
|
4693
|
-
/* @__PURE__ */ (0,
|
|
4694
|
-
/* @__PURE__ */ (0,
|
|
4695
|
-
/* @__PURE__ */ (0,
|
|
5544
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5545
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Change Password" }),
|
|
5546
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: "Test locally through the callback prop" })
|
|
4696
5547
|
] })
|
|
4697
5548
|
] }),
|
|
4698
|
-
/* @__PURE__ */ (0,
|
|
5549
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronRight, { size: 16, color: "var(--chakra-colors-gray-400)" })
|
|
4699
5550
|
]
|
|
4700
5551
|
}
|
|
4701
5552
|
)
|
|
4702
5553
|
}
|
|
4703
5554
|
),
|
|
4704
|
-
/* @__PURE__ */ (0,
|
|
4705
|
-
/* @__PURE__ */ (0,
|
|
4706
|
-
/* @__PURE__ */ (0,
|
|
4707
|
-
/* @__PURE__ */ (0,
|
|
4708
|
-
|
|
5555
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {}),
|
|
5556
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
5557
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5558
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5559
|
+
import_react42.Box,
|
|
4709
5560
|
{
|
|
4710
5561
|
w: "38px",
|
|
4711
5562
|
h: "38px",
|
|
@@ -4716,16 +5567,16 @@ function ReusableProfile({
|
|
|
4716
5567
|
justifyContent: "center",
|
|
4717
5568
|
color: "gray.600",
|
|
4718
5569
|
flexShrink: 0,
|
|
4719
|
-
children: /* @__PURE__ */ (0,
|
|
5570
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuShield, { size: 16 })
|
|
4720
5571
|
}
|
|
4721
5572
|
),
|
|
4722
|
-
/* @__PURE__ */ (0,
|
|
4723
|
-
/* @__PURE__ */ (0,
|
|
4724
|
-
/* @__PURE__ */ (0,
|
|
5573
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5574
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Two Factor Authentication" }),
|
|
5575
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: twoFactorEnabled ? "Enabled" : "Disabled" })
|
|
4725
5576
|
] })
|
|
4726
5577
|
] }),
|
|
4727
|
-
/* @__PURE__ */ (0,
|
|
4728
|
-
|
|
5578
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5579
|
+
import_react42.Box,
|
|
4729
5580
|
{
|
|
4730
5581
|
role: "switch",
|
|
4731
5582
|
"aria-checked": twoFactorEnabled,
|
|
@@ -4747,8 +5598,8 @@ function ReusableProfile({
|
|
|
4747
5598
|
cursor: "pointer",
|
|
4748
5599
|
flexShrink: 0,
|
|
4749
5600
|
outline: "none",
|
|
4750
|
-
children: /* @__PURE__ */ (0,
|
|
4751
|
-
|
|
5601
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5602
|
+
import_react42.Box,
|
|
4752
5603
|
{
|
|
4753
5604
|
position: "absolute",
|
|
4754
5605
|
top: "3px",
|
|
@@ -4765,9 +5616,9 @@ function ReusableProfile({
|
|
|
4765
5616
|
)
|
|
4766
5617
|
] })
|
|
4767
5618
|
] }),
|
|
4768
|
-
/* @__PURE__ */ (0,
|
|
4769
|
-
/* @__PURE__ */ (0,
|
|
4770
|
-
|
|
5619
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { px: 4, pt: 4, pb: 2, children: [
|
|
5620
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5621
|
+
import_react42.Text,
|
|
4771
5622
|
{
|
|
4772
5623
|
fontSize: "xs",
|
|
4773
5624
|
fontWeight: "bold",
|
|
@@ -4778,10 +5629,10 @@ function ReusableProfile({
|
|
|
4778
5629
|
children: "Preferences"
|
|
4779
5630
|
}
|
|
4780
5631
|
),
|
|
4781
|
-
/* @__PURE__ */ (0,
|
|
4782
|
-
/* @__PURE__ */ (0,
|
|
4783
|
-
/* @__PURE__ */ (0,
|
|
4784
|
-
|
|
5632
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
5633
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5634
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5635
|
+
import_react42.Box,
|
|
4785
5636
|
{
|
|
4786
5637
|
w: "38px",
|
|
4787
5638
|
h: "38px",
|
|
@@ -4792,18 +5643,18 @@ function ReusableProfile({
|
|
|
4792
5643
|
justifyContent: "center",
|
|
4793
5644
|
color: "gray.600",
|
|
4794
5645
|
flexShrink: 0,
|
|
4795
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
5646
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuMoon, { size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuSun, { size: 16 })
|
|
4796
5647
|
}
|
|
4797
5648
|
),
|
|
4798
|
-
/* @__PURE__ */ (0,
|
|
4799
|
-
/* @__PURE__ */ (0,
|
|
4800
|
-
/* @__PURE__ */ (0,
|
|
5649
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5650
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Appearance" }),
|
|
5651
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: colorMode === "light" ? "Light mode" : "Dark mode" })
|
|
4801
5652
|
] })
|
|
4802
5653
|
] }),
|
|
4803
|
-
/* @__PURE__ */ (0,
|
|
5654
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.HStack, { gap: 1.5, children: ["light", "dark"].map((mode) => {
|
|
4804
5655
|
const isActive = colorMode === mode;
|
|
4805
|
-
return /* @__PURE__ */ (0,
|
|
4806
|
-
|
|
5656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5657
|
+
import_react42.Button,
|
|
4807
5658
|
{
|
|
4808
5659
|
size: "sm",
|
|
4809
5660
|
variant: "outline",
|
|
@@ -4818,9 +5669,9 @@ function ReusableProfile({
|
|
|
4818
5669
|
},
|
|
4819
5670
|
onClick: () => handleColorMode(mode),
|
|
4820
5671
|
children: [
|
|
4821
|
-
mode === "light" ? /* @__PURE__ */ (0,
|
|
4822
|
-
/* @__PURE__ */ (0,
|
|
4823
|
-
|
|
5672
|
+
mode === "light" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuSun, { size: 13 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuMoon, { size: 13 }),
|
|
5673
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5674
|
+
import_react42.Text,
|
|
4824
5675
|
{
|
|
4825
5676
|
fontSize: "xs",
|
|
4826
5677
|
textTransform: "capitalize",
|
|
@@ -4834,11 +5685,11 @@ function ReusableProfile({
|
|
|
4834
5685
|
);
|
|
4835
5686
|
}) })
|
|
4836
5687
|
] }),
|
|
4837
|
-
/* @__PURE__ */ (0,
|
|
4838
|
-
/* @__PURE__ */ (0,
|
|
4839
|
-
/* @__PURE__ */ (0,
|
|
4840
|
-
/* @__PURE__ */ (0,
|
|
4841
|
-
|
|
5688
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {}),
|
|
5689
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
5690
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5691
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5692
|
+
import_react42.Box,
|
|
4842
5693
|
{
|
|
4843
5694
|
w: "38px",
|
|
4844
5695
|
h: "38px",
|
|
@@ -4854,15 +5705,15 @@ function ReusableProfile({
|
|
|
4854
5705
|
children: "A"
|
|
4855
5706
|
}
|
|
4856
5707
|
),
|
|
4857
|
-
/* @__PURE__ */ (0,
|
|
4858
|
-
/* @__PURE__ */ (0,
|
|
4859
|
-
/* @__PURE__ */ (0,
|
|
5708
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5709
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Text Size" }),
|
|
5710
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: fontSizeLabel })
|
|
4860
5711
|
] })
|
|
4861
5712
|
] }),
|
|
4862
|
-
/* @__PURE__ */ (0,
|
|
5713
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.HStack, { gap: 1, children: FONT_SIZES.map((option) => {
|
|
4863
5714
|
const isActive = fontSize === option.value;
|
|
4864
|
-
return /* @__PURE__ */ (0,
|
|
4865
|
-
|
|
5715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5716
|
+
import_react42.Button,
|
|
4866
5717
|
{
|
|
4867
5718
|
size: "sm",
|
|
4868
5719
|
variant: "outline",
|
|
@@ -4877,8 +5728,8 @@ function ReusableProfile({
|
|
|
4877
5728
|
},
|
|
4878
5729
|
onClick: () => handleFontSize(option.value),
|
|
4879
5730
|
title: option.title,
|
|
4880
|
-
children: /* @__PURE__ */ (0,
|
|
4881
|
-
|
|
5731
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5732
|
+
import_react42.Text,
|
|
4882
5733
|
{
|
|
4883
5734
|
fontWeight: isActive ? "bold" : "normal",
|
|
4884
5735
|
style: { fontSize: `${option.scale * 13}px` },
|
|
@@ -4890,9 +5741,9 @@ function ReusableProfile({
|
|
|
4890
5741
|
);
|
|
4891
5742
|
}) })
|
|
4892
5743
|
] }),
|
|
4893
|
-
/* @__PURE__ */ (0,
|
|
4894
|
-
/* @__PURE__ */ (0,
|
|
4895
|
-
|
|
5744
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {}),
|
|
5745
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5746
|
+
import_react42.Box,
|
|
4896
5747
|
{
|
|
4897
5748
|
as: "button",
|
|
4898
5749
|
w: "full",
|
|
@@ -4900,10 +5751,10 @@ function ReusableProfile({
|
|
|
4900
5751
|
_hover: { opacity: 0.7 },
|
|
4901
5752
|
transition: "opacity 0.15s",
|
|
4902
5753
|
onClick: () => setProfileView("navbar-customize"),
|
|
4903
|
-
children: /* @__PURE__ */ (0,
|
|
4904
|
-
/* @__PURE__ */ (0,
|
|
4905
|
-
/* @__PURE__ */ (0,
|
|
4906
|
-
|
|
5754
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { justify: "space-between", align: "center", py: 3, children: [
|
|
5755
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
5756
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5757
|
+
import_react42.Box,
|
|
4907
5758
|
{
|
|
4908
5759
|
w: "38px",
|
|
4909
5760
|
h: "38px",
|
|
@@ -4914,12 +5765,12 @@ function ReusableProfile({
|
|
|
4914
5765
|
justifyContent: "center",
|
|
4915
5766
|
color: "gray.600",
|
|
4916
5767
|
flexShrink: 0,
|
|
4917
|
-
children: /* @__PURE__ */ (0,
|
|
5768
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuArrowLeftRight, { size: 16 })
|
|
4918
5769
|
}
|
|
4919
5770
|
),
|
|
4920
|
-
/* @__PURE__ */ (0,
|
|
4921
|
-
/* @__PURE__ */ (0,
|
|
4922
|
-
/* @__PURE__ */ (0,
|
|
5771
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
5772
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "semibold", children: "Quick Navigation" }),
|
|
5773
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: [
|
|
4923
5774
|
quickNavHrefs.length,
|
|
4924
5775
|
" of ",
|
|
4925
5776
|
maxQuickNavItems,
|
|
@@ -4927,13 +5778,13 @@ function ReusableProfile({
|
|
|
4927
5778
|
] })
|
|
4928
5779
|
] })
|
|
4929
5780
|
] }),
|
|
4930
|
-
/* @__PURE__ */ (0,
|
|
5781
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronRight, { size: 16, color: "var(--chakra-colors-gray-400)" })
|
|
4931
5782
|
] })
|
|
4932
5783
|
}
|
|
4933
5784
|
)
|
|
4934
5785
|
] }),
|
|
4935
|
-
/* @__PURE__ */ (0,
|
|
4936
|
-
|
|
5786
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { px: 4, pt: 4, pb: 10, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.VStack, { gap: 2.5, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5787
|
+
import_react42.Button,
|
|
4937
5788
|
{
|
|
4938
5789
|
w: "full",
|
|
4939
5790
|
variant: "outline",
|
|
@@ -4945,30 +5796,30 @@ function ReusableProfile({
|
|
|
4945
5796
|
}
|
|
4946
5797
|
) }) })
|
|
4947
5798
|
] });
|
|
4948
|
-
const editAccountContent = /* @__PURE__ */ (0,
|
|
4949
|
-
/* @__PURE__ */ (0,
|
|
4950
|
-
/* @__PURE__ */ (0,
|
|
4951
|
-
|
|
5799
|
+
const editAccountContent = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
5800
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { px: 4, pt: 4, pb: 3, borderBottomWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
5801
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5802
|
+
import_react42.IconButton,
|
|
4952
5803
|
{
|
|
4953
5804
|
size: "sm",
|
|
4954
5805
|
variant: "ghost",
|
|
4955
5806
|
"aria-label": "Back",
|
|
4956
5807
|
color: "gray.600",
|
|
4957
5808
|
onClick: () => setProfileView("main"),
|
|
4958
|
-
children: /* @__PURE__ */ (0,
|
|
5809
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronLeft, {})
|
|
4959
5810
|
}
|
|
4960
5811
|
),
|
|
4961
|
-
/* @__PURE__ */ (0,
|
|
5812
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontWeight: "bold", fontSize: "md", children: "Edit Account" })
|
|
4962
5813
|
] }) }),
|
|
4963
|
-
/* @__PURE__ */ (0,
|
|
4964
|
-
user.avatarSrc && /* @__PURE__ */ (0,
|
|
4965
|
-
/* @__PURE__ */ (0,
|
|
5814
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { textAlign: "center", pt: 5, pb: 4, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Avatar.Root, { size: "xl", mx: "auto", mb: 1, children: [
|
|
5815
|
+
user.avatarSrc && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Avatar.Image, { src: user.avatarSrc, alt: editName }),
|
|
5816
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Avatar.Fallback, { name: editName })
|
|
4966
5817
|
] }) }),
|
|
4967
|
-
/* @__PURE__ */ (0,
|
|
4968
|
-
/* @__PURE__ */ (0,
|
|
4969
|
-
/* @__PURE__ */ (0,
|
|
4970
|
-
/* @__PURE__ */ (0,
|
|
4971
|
-
|
|
5818
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.VStack, { gap: 4, px: 4, pb: 10, align: "stretch", children: [
|
|
5819
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5820
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Display Name" }),
|
|
5821
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5822
|
+
import_react42.Input,
|
|
4972
5823
|
{
|
|
4973
5824
|
value: editName,
|
|
4974
5825
|
onChange: (event) => setEditName(event.target.value),
|
|
@@ -4977,10 +5828,10 @@ function ReusableProfile({
|
|
|
4977
5828
|
}
|
|
4978
5829
|
)
|
|
4979
5830
|
] }),
|
|
4980
|
-
/* @__PURE__ */ (0,
|
|
4981
|
-
/* @__PURE__ */ (0,
|
|
4982
|
-
/* @__PURE__ */ (0,
|
|
4983
|
-
|
|
5831
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5832
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Email" }),
|
|
5833
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5834
|
+
import_react42.Input,
|
|
4984
5835
|
{
|
|
4985
5836
|
value: user.email ?? "",
|
|
4986
5837
|
readOnly: true,
|
|
@@ -4990,10 +5841,10 @@ function ReusableProfile({
|
|
|
4990
5841
|
}
|
|
4991
5842
|
)
|
|
4992
5843
|
] }),
|
|
4993
|
-
/* @__PURE__ */ (0,
|
|
4994
|
-
/* @__PURE__ */ (0,
|
|
4995
|
-
/* @__PURE__ */ (0,
|
|
4996
|
-
|
|
5844
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5845
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Mobile Number" }),
|
|
5846
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5847
|
+
import_react42.Input,
|
|
4997
5848
|
{
|
|
4998
5849
|
value: user.mobileNumber ?? "",
|
|
4999
5850
|
readOnly: true,
|
|
@@ -5003,8 +5854,8 @@ function ReusableProfile({
|
|
|
5003
5854
|
}
|
|
5004
5855
|
)
|
|
5005
5856
|
] }),
|
|
5006
|
-
/* @__PURE__ */ (0,
|
|
5007
|
-
|
|
5857
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5858
|
+
import_react42.Button,
|
|
5008
5859
|
{
|
|
5009
5860
|
w: "full",
|
|
5010
5861
|
mt: 2,
|
|
@@ -5018,40 +5869,40 @@ function ReusableProfile({
|
|
|
5018
5869
|
)
|
|
5019
5870
|
] })
|
|
5020
5871
|
] });
|
|
5021
|
-
const changePasswordContent = /* @__PURE__ */ (0,
|
|
5022
|
-
/* @__PURE__ */ (0,
|
|
5023
|
-
/* @__PURE__ */ (0,
|
|
5024
|
-
|
|
5872
|
+
const changePasswordContent = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
5873
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { px: 4, pt: 4, pb: 3, borderBottomWidth: "1px", borderColor: "gray.200", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
5874
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5875
|
+
import_react42.IconButton,
|
|
5025
5876
|
{
|
|
5026
5877
|
size: "sm",
|
|
5027
5878
|
variant: "ghost",
|
|
5028
5879
|
"aria-label": "Back",
|
|
5029
5880
|
color: "gray.600",
|
|
5030
5881
|
onClick: () => setProfileView("main"),
|
|
5031
|
-
children: /* @__PURE__ */ (0,
|
|
5882
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronLeft, {})
|
|
5032
5883
|
}
|
|
5033
5884
|
),
|
|
5034
|
-
/* @__PURE__ */ (0,
|
|
5885
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontWeight: "bold", fontSize: "md", children: "Change Password" })
|
|
5035
5886
|
] }) }),
|
|
5036
|
-
/* @__PURE__ */ (0,
|
|
5037
|
-
/* @__PURE__ */ (0,
|
|
5038
|
-
/* @__PURE__ */ (0,
|
|
5039
|
-
/* @__PURE__ */ (0,
|
|
5040
|
-
|
|
5887
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.VStack, { gap: 5, px: 4, pt: 6, pb: 10, children: [
|
|
5888
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5889
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Current Password" }),
|
|
5890
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5891
|
+
import_react42.InputGroup,
|
|
5041
5892
|
{
|
|
5042
|
-
endElement: /* @__PURE__ */ (0,
|
|
5043
|
-
|
|
5893
|
+
endElement: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5894
|
+
import_react42.IconButton,
|
|
5044
5895
|
{
|
|
5045
5896
|
size: "xs",
|
|
5046
5897
|
variant: "ghost",
|
|
5047
5898
|
color: "gray.500",
|
|
5048
5899
|
"aria-label": "Toggle current password visibility",
|
|
5049
5900
|
onClick: () => setShowCurrentPw(!showCurrentPw),
|
|
5050
|
-
children: showCurrentPw ? /* @__PURE__ */ (0,
|
|
5901
|
+
children: showCurrentPw ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEyeOff, { size: 15 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEye, { size: 15 })
|
|
5051
5902
|
}
|
|
5052
5903
|
),
|
|
5053
|
-
children: /* @__PURE__ */ (0,
|
|
5054
|
-
|
|
5904
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5905
|
+
import_react42.Input,
|
|
5055
5906
|
{
|
|
5056
5907
|
type: showCurrentPw ? "text" : "password",
|
|
5057
5908
|
value: currentPw,
|
|
@@ -5063,24 +5914,24 @@ function ReusableProfile({
|
|
|
5063
5914
|
}
|
|
5064
5915
|
)
|
|
5065
5916
|
] }),
|
|
5066
|
-
/* @__PURE__ */ (0,
|
|
5067
|
-
/* @__PURE__ */ (0,
|
|
5068
|
-
/* @__PURE__ */ (0,
|
|
5069
|
-
|
|
5917
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5918
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "New Password" }),
|
|
5919
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5920
|
+
import_react42.InputGroup,
|
|
5070
5921
|
{
|
|
5071
|
-
endElement: /* @__PURE__ */ (0,
|
|
5072
|
-
|
|
5922
|
+
endElement: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5923
|
+
import_react42.IconButton,
|
|
5073
5924
|
{
|
|
5074
5925
|
size: "xs",
|
|
5075
5926
|
variant: "ghost",
|
|
5076
5927
|
color: "gray.500",
|
|
5077
5928
|
"aria-label": "Toggle new password visibility",
|
|
5078
5929
|
onClick: () => setShowNewPw(!showNewPw),
|
|
5079
|
-
children: showNewPw ? /* @__PURE__ */ (0,
|
|
5930
|
+
children: showNewPw ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEyeOff, { size: 15 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEye, { size: 15 })
|
|
5080
5931
|
}
|
|
5081
5932
|
),
|
|
5082
|
-
children: /* @__PURE__ */ (0,
|
|
5083
|
-
|
|
5933
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5934
|
+
import_react42.Input,
|
|
5084
5935
|
{
|
|
5085
5936
|
type: showNewPw ? "text" : "password",
|
|
5086
5937
|
value: newPw,
|
|
@@ -5091,9 +5942,9 @@ function ReusableProfile({
|
|
|
5091
5942
|
)
|
|
5092
5943
|
}
|
|
5093
5944
|
),
|
|
5094
|
-
newPw && /* @__PURE__ */ (0,
|
|
5095
|
-
/* @__PURE__ */ (0,
|
|
5096
|
-
|
|
5945
|
+
newPw && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { mt: 2, children: [
|
|
5946
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Flex, { gap: 1, mb: 1, children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5947
|
+
import_react42.Box,
|
|
5097
5948
|
{
|
|
5098
5949
|
flex: 1,
|
|
5099
5950
|
h: "3px",
|
|
@@ -5103,27 +5954,27 @@ function ReusableProfile({
|
|
|
5103
5954
|
},
|
|
5104
5955
|
i
|
|
5105
5956
|
)) }),
|
|
5106
|
-
/* @__PURE__ */ (0,
|
|
5957
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: pwMeta.color, fontWeight: "medium", children: pwMeta.label })
|
|
5107
5958
|
] })
|
|
5108
5959
|
] }),
|
|
5109
|
-
/* @__PURE__ */ (0,
|
|
5110
|
-
/* @__PURE__ */ (0,
|
|
5111
|
-
/* @__PURE__ */ (0,
|
|
5112
|
-
|
|
5960
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
5961
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", fontWeight: "semibold", color: "gray.500", mb: 1.5, children: "Confirm New Password" }),
|
|
5962
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5963
|
+
import_react42.InputGroup,
|
|
5113
5964
|
{
|
|
5114
|
-
endElement: /* @__PURE__ */ (0,
|
|
5115
|
-
|
|
5965
|
+
endElement: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5966
|
+
import_react42.IconButton,
|
|
5116
5967
|
{
|
|
5117
5968
|
size: "xs",
|
|
5118
5969
|
variant: "ghost",
|
|
5119
5970
|
color: "gray.500",
|
|
5120
5971
|
"aria-label": "Toggle confirm password visibility",
|
|
5121
5972
|
onClick: () => setShowConfirmPw(!showConfirmPw),
|
|
5122
|
-
children: showConfirmPw ? /* @__PURE__ */ (0,
|
|
5973
|
+
children: showConfirmPw ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEyeOff, { size: 15 }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuEye, { size: 15 })
|
|
5123
5974
|
}
|
|
5124
5975
|
),
|
|
5125
|
-
children: /* @__PURE__ */ (0,
|
|
5126
|
-
|
|
5976
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5977
|
+
import_react42.Input,
|
|
5127
5978
|
{
|
|
5128
5979
|
type: showConfirmPw ? "text" : "password",
|
|
5129
5980
|
value: confirmPw,
|
|
@@ -5134,10 +5985,10 @@ function ReusableProfile({
|
|
|
5134
5985
|
)
|
|
5135
5986
|
}
|
|
5136
5987
|
),
|
|
5137
|
-
confirmPw && confirmPw !== newPw && /* @__PURE__ */ (0,
|
|
5988
|
+
confirmPw && confirmPw !== newPw && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "xs", color: "red.500", mt: 1, children: "Passwords do not match" })
|
|
5138
5989
|
] }),
|
|
5139
|
-
/* @__PURE__ */ (0,
|
|
5140
|
-
|
|
5990
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5991
|
+
import_react42.Button,
|
|
5141
5992
|
{
|
|
5142
5993
|
w: "full",
|
|
5143
5994
|
mt: 1,
|
|
@@ -5152,9 +6003,9 @@ function ReusableProfile({
|
|
|
5152
6003
|
)
|
|
5153
6004
|
] })
|
|
5154
6005
|
] });
|
|
5155
|
-
const navbarCustomizeContent = /* @__PURE__ */ (0,
|
|
5156
|
-
/* @__PURE__ */ (0,
|
|
5157
|
-
|
|
6006
|
+
const navbarCustomizeContent = /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
6007
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6008
|
+
import_react42.Box,
|
|
5158
6009
|
{
|
|
5159
6010
|
px: 4,
|
|
5160
6011
|
pt: 4,
|
|
@@ -5165,9 +6016,9 @@ function ReusableProfile({
|
|
|
5165
6016
|
top: 0,
|
|
5166
6017
|
bg: "bg",
|
|
5167
6018
|
zIndex: 1,
|
|
5168
|
-
children: /* @__PURE__ */ (0,
|
|
5169
|
-
/* @__PURE__ */ (0,
|
|
5170
|
-
|
|
6019
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 2, pr: 10, children: [
|
|
6020
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6021
|
+
import_react42.IconButton,
|
|
5171
6022
|
{
|
|
5172
6023
|
size: "sm",
|
|
5173
6024
|
variant: "ghost",
|
|
@@ -5177,12 +6028,12 @@ function ReusableProfile({
|
|
|
5177
6028
|
setReplacingIdx(null);
|
|
5178
6029
|
setProfileView("main");
|
|
5179
6030
|
},
|
|
5180
|
-
children: /* @__PURE__ */ (0,
|
|
6031
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronLeft, {})
|
|
5181
6032
|
}
|
|
5182
6033
|
),
|
|
5183
|
-
/* @__PURE__ */ (0,
|
|
5184
|
-
/* @__PURE__ */ (0,
|
|
5185
|
-
/* @__PURE__ */ (0,
|
|
6034
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
6035
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontWeight: "bold", fontSize: "md", children: "Quick Navigation" }),
|
|
6036
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Text, { fontSize: "xs", color: "gray.500", children: [
|
|
5186
6037
|
"Choose up to ",
|
|
5187
6038
|
maxQuickNavItems,
|
|
5188
6039
|
" shortcuts for the bottom bar"
|
|
@@ -5191,10 +6042,10 @@ function ReusableProfile({
|
|
|
5191
6042
|
] })
|
|
5192
6043
|
}
|
|
5193
6044
|
),
|
|
5194
|
-
/* @__PURE__ */ (0,
|
|
5195
|
-
/* @__PURE__ */ (0,
|
|
5196
|
-
/* @__PURE__ */ (0,
|
|
5197
|
-
|
|
6045
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { px: 4, pt: 5, pb: 2, children: [
|
|
6046
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", justify: "space-between", mb: 3, children: [
|
|
6047
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6048
|
+
import_react42.Text,
|
|
5198
6049
|
{
|
|
5199
6050
|
fontSize: "xs",
|
|
5200
6051
|
fontWeight: "bold",
|
|
@@ -5204,8 +6055,8 @@ function ReusableProfile({
|
|
|
5204
6055
|
children: "Pinned"
|
|
5205
6056
|
}
|
|
5206
6057
|
),
|
|
5207
|
-
/* @__PURE__ */ (0,
|
|
5208
|
-
|
|
6058
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
6059
|
+
import_react42.Text,
|
|
5209
6060
|
{
|
|
5210
6061
|
fontSize: "xs",
|
|
5211
6062
|
color: quickNavHrefs.length >= maxQuickNavItems ? "orange.500" : "gray.400",
|
|
@@ -5218,8 +6069,8 @@ function ReusableProfile({
|
|
|
5218
6069
|
}
|
|
5219
6070
|
)
|
|
5220
6071
|
] }),
|
|
5221
|
-
quickNavHrefs.length === 0 ? /* @__PURE__ */ (0,
|
|
5222
|
-
|
|
6072
|
+
quickNavHrefs.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6073
|
+
import_react42.Flex,
|
|
5223
6074
|
{
|
|
5224
6075
|
align: "center",
|
|
5225
6076
|
justify: "center",
|
|
@@ -5228,18 +6079,18 @@ function ReusableProfile({
|
|
|
5228
6079
|
borderWidth: "1px",
|
|
5229
6080
|
borderStyle: "dashed",
|
|
5230
6081
|
borderColor: "gray.200",
|
|
5231
|
-
children: /* @__PURE__ */ (0,
|
|
6082
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", color: "gray.400", children: "No items pinned \u2014 add from below" })
|
|
5232
6083
|
}
|
|
5233
|
-
) : /* @__PURE__ */ (0,
|
|
6084
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.VStack, { gap: 0, children: quickNavHrefs.map((href, idx) => {
|
|
5234
6085
|
const option = availableOptions.find((item) => item.key === href);
|
|
5235
6086
|
if (!option) return null;
|
|
5236
6087
|
const ItemIcon = option.Icon;
|
|
5237
6088
|
const isFirst = idx === 0;
|
|
5238
6089
|
const isLast = idx === quickNavHrefs.length - 1;
|
|
5239
6090
|
const isReplacing = replacingIdx === idx;
|
|
5240
|
-
return /* @__PURE__ */ (0,
|
|
5241
|
-
/* @__PURE__ */ (0,
|
|
5242
|
-
|
|
6091
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
6092
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
6093
|
+
import_react42.Flex,
|
|
5243
6094
|
{
|
|
5244
6095
|
justify: "space-between",
|
|
5245
6096
|
align: "center",
|
|
@@ -5251,9 +6102,9 @@ function ReusableProfile({
|
|
|
5251
6102
|
borderColor: isReplacing ? "orange.200" : void 0,
|
|
5252
6103
|
transition: "all 0.15s",
|
|
5253
6104
|
children: [
|
|
5254
|
-
/* @__PURE__ */ (0,
|
|
5255
|
-
/* @__PURE__ */ (0,
|
|
5256
|
-
|
|
6105
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
6106
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6107
|
+
import_react42.Box,
|
|
5257
6108
|
{
|
|
5258
6109
|
w: "36px",
|
|
5259
6110
|
h: "36px",
|
|
@@ -5264,13 +6115,13 @@ function ReusableProfile({
|
|
|
5264
6115
|
justifyContent: "center",
|
|
5265
6116
|
color: "white",
|
|
5266
6117
|
flexShrink: 0,
|
|
5267
|
-
children: /* @__PURE__ */ (0,
|
|
6118
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ItemIcon, { size: 15 })
|
|
5268
6119
|
}
|
|
5269
6120
|
),
|
|
5270
|
-
/* @__PURE__ */ (0,
|
|
5271
|
-
/* @__PURE__ */ (0,
|
|
5272
|
-
isReplacing && /* @__PURE__ */ (0,
|
|
5273
|
-
|
|
6121
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
6122
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", fontWeight: "medium", children: option.title }),
|
|
6123
|
+
isReplacing && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6124
|
+
import_react42.Text,
|
|
5274
6125
|
{
|
|
5275
6126
|
fontSize: "xs",
|
|
5276
6127
|
color: "orange.500",
|
|
@@ -5280,9 +6131,9 @@ function ReusableProfile({
|
|
|
5280
6131
|
)
|
|
5281
6132
|
] })
|
|
5282
6133
|
] }),
|
|
5283
|
-
/* @__PURE__ */ (0,
|
|
5284
|
-
/* @__PURE__ */ (0,
|
|
5285
|
-
|
|
6134
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.HStack, { gap: 0.5, children: [
|
|
6135
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6136
|
+
import_react42.IconButton,
|
|
5286
6137
|
{
|
|
5287
6138
|
size: "xs",
|
|
5288
6139
|
variant: "ghost",
|
|
@@ -5290,11 +6141,11 @@ function ReusableProfile({
|
|
|
5290
6141
|
color: "gray.500",
|
|
5291
6142
|
disabled: isFirst || isReplacing,
|
|
5292
6143
|
onClick: () => moveNavItem(idx, -1),
|
|
5293
|
-
children: /* @__PURE__ */ (0,
|
|
6144
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronUp, { size: 14 })
|
|
5294
6145
|
}
|
|
5295
6146
|
),
|
|
5296
|
-
/* @__PURE__ */ (0,
|
|
5297
|
-
|
|
6147
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6148
|
+
import_react42.IconButton,
|
|
5298
6149
|
{
|
|
5299
6150
|
size: "xs",
|
|
5300
6151
|
variant: "ghost",
|
|
@@ -5302,11 +6153,11 @@ function ReusableProfile({
|
|
|
5302
6153
|
color: "gray.500",
|
|
5303
6154
|
disabled: isLast || isReplacing,
|
|
5304
6155
|
onClick: () => moveNavItem(idx, 1),
|
|
5305
|
-
children: /* @__PURE__ */ (0,
|
|
6156
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuChevronDown, { size: 14 })
|
|
5306
6157
|
}
|
|
5307
6158
|
),
|
|
5308
|
-
/* @__PURE__ */ (0,
|
|
5309
|
-
|
|
6159
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6160
|
+
import_react42.IconButton,
|
|
5310
6161
|
{
|
|
5311
6162
|
size: "xs",
|
|
5312
6163
|
variant: isReplacing ? "solid" : "ghost",
|
|
@@ -5315,11 +6166,11 @@ function ReusableProfile({
|
|
|
5315
6166
|
color: isReplacing ? "white" : "gray.500",
|
|
5316
6167
|
_hover: { bg: isReplacing ? "orange.500" : "gray.100" },
|
|
5317
6168
|
onClick: () => setReplacingIdx(isReplacing ? null : idx),
|
|
5318
|
-
children: /* @__PURE__ */ (0,
|
|
6169
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuArrowLeftRight, { size: 13 })
|
|
5319
6170
|
}
|
|
5320
6171
|
),
|
|
5321
|
-
/* @__PURE__ */ (0,
|
|
5322
|
-
|
|
6172
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6173
|
+
import_react42.IconButton,
|
|
5323
6174
|
{
|
|
5324
6175
|
size: "xs",
|
|
5325
6176
|
variant: "ghost",
|
|
@@ -5328,23 +6179,23 @@ function ReusableProfile({
|
|
|
5328
6179
|
_hover: { bg: "red.50" },
|
|
5329
6180
|
disabled: isReplacing,
|
|
5330
6181
|
onClick: () => removeNavItem(href),
|
|
5331
|
-
children: /* @__PURE__ */ (0,
|
|
6182
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuX, { size: 14 })
|
|
5332
6183
|
}
|
|
5333
6184
|
)
|
|
5334
6185
|
] })
|
|
5335
6186
|
]
|
|
5336
6187
|
}
|
|
5337
6188
|
),
|
|
5338
|
-
!isLast && /* @__PURE__ */ (0,
|
|
6189
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {})
|
|
5339
6190
|
] }, href);
|
|
5340
6191
|
}) })
|
|
5341
6192
|
] }),
|
|
5342
|
-
/* @__PURE__ */ (0,
|
|
5343
|
-
/* @__PURE__ */ (0,
|
|
5344
|
-
/* @__PURE__ */ (0,
|
|
5345
|
-
replacingIdx !== null ? /* @__PURE__ */ (0,
|
|
5346
|
-
/* @__PURE__ */ (0,
|
|
5347
|
-
|
|
6193
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, { mx: 4, my: 1 }),
|
|
6194
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { px: 4, pt: 4, pb: 10, children: [
|
|
6195
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", justify: "space-between", mb: 3, children: [
|
|
6196
|
+
replacingIdx !== null ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { children: [
|
|
6197
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6198
|
+
import_react42.Text,
|
|
5348
6199
|
{
|
|
5349
6200
|
fontSize: "xs",
|
|
5350
6201
|
fontWeight: "bold",
|
|
@@ -5354,15 +6205,15 @@ function ReusableProfile({
|
|
|
5354
6205
|
children: "Select Replacement"
|
|
5355
6206
|
}
|
|
5356
6207
|
),
|
|
5357
|
-
/* @__PURE__ */ (0,
|
|
6208
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Text, { fontSize: "xs", color: "gray.500", mt: 0.5, children: [
|
|
5358
6209
|
'for "',
|
|
5359
6210
|
availableOptions.find(
|
|
5360
6211
|
(item) => item.key === quickNavHrefs[replacingIdx]
|
|
5361
6212
|
)?.title,
|
|
5362
6213
|
'"'
|
|
5363
6214
|
] })
|
|
5364
|
-
] }) : /* @__PURE__ */ (0,
|
|
5365
|
-
|
|
6215
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6216
|
+
import_react42.Text,
|
|
5366
6217
|
{
|
|
5367
6218
|
fontSize: "xs",
|
|
5368
6219
|
fontWeight: "bold",
|
|
@@ -5372,8 +6223,8 @@ function ReusableProfile({
|
|
|
5372
6223
|
children: "Available"
|
|
5373
6224
|
}
|
|
5374
6225
|
),
|
|
5375
|
-
replacingIdx !== null && /* @__PURE__ */ (0,
|
|
5376
|
-
|
|
6226
|
+
replacingIdx !== null && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6227
|
+
import_react42.Button,
|
|
5377
6228
|
{
|
|
5378
6229
|
size: "xs",
|
|
5379
6230
|
variant: "ghost",
|
|
@@ -5383,17 +6234,17 @@ function ReusableProfile({
|
|
|
5383
6234
|
}
|
|
5384
6235
|
)
|
|
5385
6236
|
] }),
|
|
5386
|
-
unpinnedOptions.length === 0 ? /* @__PURE__ */ (0,
|
|
6237
|
+
unpinnedOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", color: "gray.400", py: 3, textAlign: "center", children: "All available items are pinned" }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.VStack, { gap: 0, children: unpinnedOptions.map((option, idx) => {
|
|
5387
6238
|
const ItemIcon = option.Icon;
|
|
5388
6239
|
const isLast = idx === unpinnedOptions.length - 1;
|
|
5389
6240
|
const isReplacingMode = replacingIdx !== null;
|
|
5390
6241
|
const canAdd = quickNavHrefs.length < maxQuickNavItems;
|
|
5391
6242
|
const actionEnabled = isReplacingMode || canAdd;
|
|
5392
|
-
return /* @__PURE__ */ (0,
|
|
5393
|
-
/* @__PURE__ */ (0,
|
|
5394
|
-
/* @__PURE__ */ (0,
|
|
5395
|
-
/* @__PURE__ */ (0,
|
|
5396
|
-
|
|
6243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Box, { w: "full", children: [
|
|
6244
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { justify: "space-between", align: "center", py: 2.5, children: [
|
|
6245
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react42.Flex, { align: "center", gap: 3, children: [
|
|
6246
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6247
|
+
import_react42.Box,
|
|
5397
6248
|
{
|
|
5398
6249
|
w: "36px",
|
|
5399
6250
|
h: "36px",
|
|
@@ -5404,11 +6255,11 @@ function ReusableProfile({
|
|
|
5404
6255
|
justifyContent: "center",
|
|
5405
6256
|
color: isReplacingMode ? "orange.500" : "gray.500",
|
|
5406
6257
|
flexShrink: 0,
|
|
5407
|
-
children: /* @__PURE__ */ (0,
|
|
6258
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ItemIcon, { size: 15 })
|
|
5408
6259
|
}
|
|
5409
6260
|
),
|
|
5410
|
-
/* @__PURE__ */ (0,
|
|
5411
|
-
|
|
6261
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6262
|
+
import_react42.Text,
|
|
5412
6263
|
{
|
|
5413
6264
|
fontSize: "sm",
|
|
5414
6265
|
fontWeight: "medium",
|
|
@@ -5417,8 +6268,8 @@ function ReusableProfile({
|
|
|
5417
6268
|
}
|
|
5418
6269
|
)
|
|
5419
6270
|
] }),
|
|
5420
|
-
isReplacingMode ? /* @__PURE__ */ (0,
|
|
5421
|
-
|
|
6271
|
+
isReplacingMode ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6272
|
+
import_react42.IconButton,
|
|
5422
6273
|
{
|
|
5423
6274
|
size: "xs",
|
|
5424
6275
|
variant: "outline",
|
|
@@ -5427,10 +6278,10 @@ function ReusableProfile({
|
|
|
5427
6278
|
color: "orange.500",
|
|
5428
6279
|
_hover: { bg: "orange.50" },
|
|
5429
6280
|
onClick: () => replaceNavItem(replacingIdx, option.key),
|
|
5430
|
-
children: /* @__PURE__ */ (0,
|
|
6281
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuArrowLeftRight, { size: 13 })
|
|
5431
6282
|
}
|
|
5432
|
-
) : /* @__PURE__ */ (0,
|
|
5433
|
-
|
|
6283
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6284
|
+
import_react42.IconButton,
|
|
5434
6285
|
{
|
|
5435
6286
|
size: "xs",
|
|
5436
6287
|
variant: "outline",
|
|
@@ -5440,19 +6291,19 @@ function ReusableProfile({
|
|
|
5440
6291
|
color: canAdd ? "var(--chakra-colors-primary)" : "gray.300",
|
|
5441
6292
|
_hover: { bg: canAdd ? "blue.50" : "transparent" },
|
|
5442
6293
|
onClick: () => addNavItem(option.key),
|
|
5443
|
-
children: /* @__PURE__ */ (0,
|
|
6294
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuPlus, { size: 13 })
|
|
5444
6295
|
}
|
|
5445
6296
|
)
|
|
5446
6297
|
] }),
|
|
5447
|
-
!isLast && /* @__PURE__ */ (0,
|
|
6298
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Separator, {})
|
|
5448
6299
|
] }, option.key);
|
|
5449
6300
|
}) })
|
|
5450
6301
|
] })
|
|
5451
6302
|
] });
|
|
5452
6303
|
const subViewContent = profileView === "edit-account" ? editAccountContent : profileView === "change-password" ? changePasswordContent : profileView === "navbar-customize" ? navbarCustomizeContent : null;
|
|
5453
6304
|
if (isDesktop) {
|
|
5454
|
-
return /* @__PURE__ */ (0,
|
|
5455
|
-
|
|
6305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
6306
|
+
import_react42.Flex,
|
|
5456
6307
|
{
|
|
5457
6308
|
maxW: "6xl",
|
|
5458
6309
|
mx: "auto",
|
|
@@ -5462,8 +6313,8 @@ function ReusableProfile({
|
|
|
5462
6313
|
p: { md: 6, lg: 8 },
|
|
5463
6314
|
align: "start",
|
|
5464
6315
|
children: [
|
|
5465
|
-
/* @__PURE__ */ (0,
|
|
5466
|
-
|
|
6316
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6317
|
+
import_react42.Box,
|
|
5467
6318
|
{
|
|
5468
6319
|
w: { md: "300px", lg: "340px" },
|
|
5469
6320
|
flexShrink: 0,
|
|
@@ -5477,8 +6328,8 @@ function ReusableProfile({
|
|
|
5477
6328
|
children: mainContent
|
|
5478
6329
|
}
|
|
5479
6330
|
),
|
|
5480
|
-
/* @__PURE__ */ (0,
|
|
5481
|
-
|
|
6331
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6332
|
+
import_react42.Box,
|
|
5482
6333
|
{
|
|
5483
6334
|
flex: "1",
|
|
5484
6335
|
minW: 0,
|
|
@@ -5488,8 +6339,8 @@ function ReusableProfile({
|
|
|
5488
6339
|
overflow: "hidden",
|
|
5489
6340
|
bg: "bg",
|
|
5490
6341
|
minH: "540px",
|
|
5491
|
-
children: subViewContent ?? /* @__PURE__ */ (0,
|
|
5492
|
-
|
|
6342
|
+
children: subViewContent ?? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
6343
|
+
import_react42.Flex,
|
|
5493
6344
|
{
|
|
5494
6345
|
direction: "column",
|
|
5495
6346
|
align: "center",
|
|
@@ -5499,8 +6350,8 @@ function ReusableProfile({
|
|
|
5499
6350
|
textAlign: "center",
|
|
5500
6351
|
color: "gray.400",
|
|
5501
6352
|
children: [
|
|
5502
|
-
/* @__PURE__ */ (0,
|
|
5503
|
-
|
|
6353
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
6354
|
+
import_react42.Box,
|
|
5504
6355
|
{
|
|
5505
6356
|
w: "56px",
|
|
5506
6357
|
h: "56px",
|
|
@@ -5510,10 +6361,10 @@ function ReusableProfile({
|
|
|
5510
6361
|
alignItems: "center",
|
|
5511
6362
|
justifyContent: "center",
|
|
5512
6363
|
mb: 4,
|
|
5513
|
-
children: /* @__PURE__ */ (0,
|
|
6364
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lu9.LuUser, { size: 24 })
|
|
5514
6365
|
}
|
|
5515
6366
|
),
|
|
5516
|
-
/* @__PURE__ */ (0,
|
|
6367
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Text, { fontSize: "sm", mt: 1, maxW: "280px", children: "Choose Edit Account, Change Password, or Quick Navigation from the menu to update your details here." })
|
|
5517
6368
|
]
|
|
5518
6369
|
}
|
|
5519
6370
|
)
|
|
@@ -5523,13 +6374,15 @@ function ReusableProfile({
|
|
|
5523
6374
|
}
|
|
5524
6375
|
);
|
|
5525
6376
|
}
|
|
5526
|
-
return /* @__PURE__ */ (0,
|
|
6377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react42.Box, { maxW: "480px", mx: "auto", w: "full", minH: "100%", bg: "bg", children: profileView === "main" ? mainContent : subViewContent });
|
|
5527
6378
|
}
|
|
5528
6379
|
var UserProfile_default = ReusableProfile;
|
|
5529
6380
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5530
6381
|
0 && (module.exports = {
|
|
5531
6382
|
Beneficiary,
|
|
5532
6383
|
BottomQuickActions,
|
|
6384
|
+
DocumentUploadCard,
|
|
6385
|
+
GetStarted,
|
|
5533
6386
|
HealthDeclaration,
|
|
5534
6387
|
LifePlanApplication1,
|
|
5535
6388
|
LifePlanApplication2,
|
|
@@ -5540,10 +6393,13 @@ var UserProfile_default = ReusableProfile;
|
|
|
5540
6393
|
OCR_STORAGE_KEY,
|
|
5541
6394
|
SharedLifePlanApplication,
|
|
5542
6395
|
UserProfile,
|
|
6396
|
+
clearOcrResult,
|
|
5543
6397
|
createEmptyApplicationData,
|
|
5544
6398
|
loadApplicationDataFromLocalStorage,
|
|
5545
6399
|
markOcrApplied,
|
|
5546
6400
|
readOcrResult,
|
|
5547
|
-
saveApplicationDataToLocalStorage
|
|
6401
|
+
saveApplicationDataToLocalStorage,
|
|
6402
|
+
saveOcrResult,
|
|
6403
|
+
useOcr
|
|
5548
6404
|
});
|
|
5549
6405
|
//# sourceMappingURL=index.js.map
|