@wealthx/shadcn 1.5.29 → 1.5.31
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/.turbo/turbo-build.log +98 -98
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-DWJHPNFL.mjs → chunk-4UT3RZ2D.mjs} +32 -16
- package/dist/{chunk-RNLIZRAK.mjs → chunk-C6R42PCL.mjs} +1 -1
- package/dist/{chunk-EVUY67CY.mjs → chunk-FTQ2AKZ2.mjs} +1 -1
- package/dist/{chunk-7T4TYUO3.mjs → chunk-H5ZD63NT.mjs} +31 -16
- package/dist/{chunk-SO4RB3XB.mjs → chunk-IEQX4UVP.mjs} +2 -2
- package/dist/chunk-IKVF4XE2.mjs +94 -0
- package/dist/{chunk-KPGARKFC.mjs → chunk-MS3GNXMB.mjs} +1 -1
- package/dist/{chunk-M32QNCD3.mjs → chunk-OSSS56CB.mjs} +1 -1
- package/dist/{chunk-36IN7YRM.mjs → chunk-SCGCGVDN.mjs} +1 -1
- package/dist/{chunk-KJQ3BVTB.mjs → chunk-X2NIDXFB.mjs} +1 -1
- package/dist/components/ui/backoffice-signup-steps.js +98 -48
- package/dist/components/ui/backoffice-signup-steps.mjs +4 -4
- package/dist/components/ui/bank-statement-generate-dialog.mjs +2 -2
- package/dist/components/ui/chat-widget.js +1 -1
- package/dist/components/ui/chat-widget.mjs +2 -2
- package/dist/components/ui/contact-alert-dialog/index.mjs +2 -2
- package/dist/components/ui/field.js +1 -1
- package/dist/components/ui/field.mjs +1 -1
- package/dist/components/ui/frontend-signup-steps.js +166 -90
- package/dist/components/ui/frontend-signup-steps.mjs +4 -5
- package/dist/components/ui/password-strength-tooltip.js +81 -107
- package/dist/components/ui/password-strength-tooltip.mjs +3 -2
- package/dist/components/ui/property-report-dialog.mjs +2 -2
- package/dist/components/ui/signup-form-primitives.js +117 -114
- package/dist/components/ui/signup-form-primitives.mjs +3 -4
- package/dist/components/ui/two-fa-setup-form.js +31 -16
- package/dist/components/ui/two-fa-setup-form.mjs +2 -2
- package/dist/index.js +133 -68
- package/dist/index.mjs +10 -10
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/components/ui/field.tsx +12 -12
- package/src/components/ui/password-strength-tooltip.tsx +89 -47
- package/src/components/ui/signup-form-primitives.tsx +34 -16
- package/src/components/ui/two-fa-setup-form.tsx +41 -31
- package/src/styles/styles-css.ts +1 -1
- package/dist/chunk-WHIW6KOB.mjs +0 -57
|
@@ -804,6 +804,9 @@ var import_select = require("@base-ui/react/select");
|
|
|
804
804
|
var import_react3 = require("react");
|
|
805
805
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
806
806
|
var ThemeVarsContext = (0, import_react3.createContext)({});
|
|
807
|
+
function useThemeVars() {
|
|
808
|
+
return (0, import_react3.useContext)(ThemeVarsContext);
|
|
809
|
+
}
|
|
807
810
|
|
|
808
811
|
// src/components/ui/select.tsx
|
|
809
812
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
@@ -812,29 +815,102 @@ var SelectPortalContext = React7.createContext(
|
|
|
812
815
|
);
|
|
813
816
|
|
|
814
817
|
// src/components/ui/password-strength-tooltip.tsx
|
|
818
|
+
var React8 = __toESM(require("react"));
|
|
815
819
|
var import_lucide_react6 = require("lucide-react");
|
|
816
|
-
|
|
817
|
-
// src/components/ui/popover.tsx
|
|
818
820
|
var import_popover = require("@base-ui/react/popover");
|
|
819
821
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
822
|
+
var PASSWORD_STRENGTH_RULES = [
|
|
823
|
+
{ label: "Minimum 8 characters", test: (p) => p.length >= 8 },
|
|
824
|
+
{ label: "At least one uppercase letter", test: (p) => /[A-Z]/.test(p) },
|
|
825
|
+
{ label: "At least one lowercase letter", test: (p) => /[a-z]/.test(p) },
|
|
826
|
+
{ label: "At least one number", test: (p) => /\d/.test(p) },
|
|
827
|
+
{
|
|
828
|
+
label: "At least one special character",
|
|
829
|
+
test: (p) => /[^A-Za-z0-9]/.test(p)
|
|
830
|
+
}
|
|
831
|
+
];
|
|
832
|
+
var PasswordStrengthTooltip = React8.forwardRef(function PasswordStrengthTooltip2({ open = false, password, children, side = "right" }, forwardedRef) {
|
|
833
|
+
const themeVars = useThemeVars();
|
|
834
|
+
const anchorRef = React8.useRef(null);
|
|
835
|
+
const composedRef = React8.useCallback(
|
|
836
|
+
(node) => {
|
|
837
|
+
anchorRef.current = node;
|
|
838
|
+
if (typeof forwardedRef === "function") {
|
|
839
|
+
forwardedRef(node);
|
|
840
|
+
} else if (forwardedRef) {
|
|
841
|
+
forwardedRef.current = node;
|
|
842
|
+
}
|
|
843
|
+
},
|
|
844
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
845
|
+
[forwardedRef]
|
|
846
|
+
);
|
|
847
|
+
return (
|
|
848
|
+
// PopoverPrimitive.Root with no Trigger — popup is fully controlled via `open` prop.
|
|
849
|
+
// The wrapper div has no trigger behaviors injected, so clicking the input inside
|
|
850
|
+
// works on the first click without interference.
|
|
851
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_popover.Popover.Root, { open, children: [
|
|
852
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { ref: composedRef, children }),
|
|
853
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
854
|
+
import_popover.Popover.Positioner,
|
|
855
|
+
{
|
|
856
|
+
anchor: anchorRef,
|
|
857
|
+
side,
|
|
858
|
+
align: "start",
|
|
859
|
+
sideOffset: 8,
|
|
860
|
+
className: "z-[200]",
|
|
861
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
862
|
+
import_popover.Popover.Popup,
|
|
863
|
+
{
|
|
864
|
+
initialFocus: false,
|
|
865
|
+
finalFocus: false,
|
|
866
|
+
className: cn(
|
|
867
|
+
"border border-border bg-popover shadow-md outline-hidden",
|
|
868
|
+
"w-auto max-w-[280px] p-3 font-sans",
|
|
869
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
870
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
871
|
+
"data-ending-style:animate-out data-ending-style:fade-out-0 data-ending-style:zoom-out-95 data-ending-style:fill-mode-forwards",
|
|
872
|
+
"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95"
|
|
873
|
+
),
|
|
874
|
+
style: themeVars,
|
|
875
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-col gap-1.5", children: PASSWORD_STRENGTH_RULES.map((rule) => {
|
|
876
|
+
const valid = password ? rule.test(password) : false;
|
|
877
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
878
|
+
"div",
|
|
879
|
+
{
|
|
880
|
+
className: cn(
|
|
881
|
+
"flex items-center gap-1.5 text-[13px] leading-[18px]",
|
|
882
|
+
valid ? "text-success" : "text-destructive"
|
|
883
|
+
),
|
|
884
|
+
children: [
|
|
885
|
+
valid ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.Check, { size: 14, className: "shrink-0" }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.X, { size: 14, className: "shrink-0" }),
|
|
886
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: rule.label })
|
|
887
|
+
]
|
|
888
|
+
},
|
|
889
|
+
rule.label
|
|
890
|
+
);
|
|
891
|
+
}) })
|
|
892
|
+
}
|
|
893
|
+
)
|
|
894
|
+
}
|
|
895
|
+
) })
|
|
896
|
+
] })
|
|
897
|
+
);
|
|
898
|
+
});
|
|
823
899
|
|
|
824
900
|
// src/components/ui/signup-form-primitives.tsx
|
|
825
|
-
var
|
|
901
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
826
902
|
function FormField({ label, required, children }) {
|
|
827
|
-
return /* @__PURE__ */ (0,
|
|
828
|
-
/* @__PURE__ */ (0,
|
|
903
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Field, { children: [
|
|
904
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(FieldLabel, { children: [
|
|
829
905
|
label,
|
|
830
|
-
required && /* @__PURE__ */ (0,
|
|
906
|
+
required && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-destructive ml-0.5", children: "*" })
|
|
831
907
|
] }),
|
|
832
908
|
children
|
|
833
909
|
] });
|
|
834
910
|
}
|
|
835
911
|
|
|
836
912
|
// src/components/ui/frontend-signup-steps.tsx
|
|
837
|
-
var
|
|
913
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
838
914
|
var fmt = (v) => new Intl.NumberFormat("en-AU", {
|
|
839
915
|
style: "currency",
|
|
840
916
|
currency: "AUD",
|
|
@@ -863,17 +939,17 @@ function PhoneVerifyStep({
|
|
|
863
939
|
if (value.length === 6) onVerify == null ? void 0 : onVerify(value);
|
|
864
940
|
};
|
|
865
941
|
const lastFour = phone.slice(-4);
|
|
866
|
-
return /* @__PURE__ */ (0,
|
|
867
|
-
/* @__PURE__ */ (0,
|
|
868
|
-
/* @__PURE__ */ (0,
|
|
869
|
-
/* @__PURE__ */ (0,
|
|
942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-6", children: [
|
|
943
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
944
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-2xl font-bold text-foreground", children: "We sent you a text." }),
|
|
945
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
|
|
870
946
|
"Number we have ends in \u2022\u2022\u2022\u2022 ",
|
|
871
947
|
lastFour,
|
|
872
948
|
"."
|
|
873
949
|
] })
|
|
874
950
|
] }),
|
|
875
|
-
/* @__PURE__ */ (0,
|
|
876
|
-
/* @__PURE__ */ (0,
|
|
951
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
952
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
877
953
|
InputOTP,
|
|
878
954
|
{
|
|
879
955
|
maxLength: 6,
|
|
@@ -882,41 +958,41 @@ function PhoneVerifyStep({
|
|
|
882
958
|
disabled: isLoading,
|
|
883
959
|
"aria-label": "6-digit verification code",
|
|
884
960
|
children: [
|
|
885
|
-
/* @__PURE__ */ (0,
|
|
886
|
-
/* @__PURE__ */ (0,
|
|
887
|
-
/* @__PURE__ */ (0,
|
|
888
|
-
/* @__PURE__ */ (0,
|
|
961
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(InputOTPGroup, { children: [
|
|
962
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 0, "aria-invalid": !!error || void 0 }),
|
|
963
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 1, "aria-invalid": !!error || void 0 }),
|
|
964
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 2, "aria-invalid": !!error || void 0 })
|
|
889
965
|
] }),
|
|
890
|
-
/* @__PURE__ */ (0,
|
|
891
|
-
/* @__PURE__ */ (0,
|
|
892
|
-
/* @__PURE__ */ (0,
|
|
893
|
-
/* @__PURE__ */ (0,
|
|
894
|
-
/* @__PURE__ */ (0,
|
|
966
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSeparator, {}),
|
|
967
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(InputOTPGroup, { children: [
|
|
968
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 3, "aria-invalid": !!error || void 0 }),
|
|
969
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 4, "aria-invalid": !!error || void 0 }),
|
|
970
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(InputOTPSlot, { index: 5, "aria-invalid": !!error || void 0 })
|
|
895
971
|
] })
|
|
896
972
|
]
|
|
897
973
|
}
|
|
898
974
|
),
|
|
899
|
-
error && /* @__PURE__ */ (0,
|
|
975
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { role: "alert", className: "text-sm text-destructive", children: error })
|
|
900
976
|
] }),
|
|
901
|
-
isLoading ? /* @__PURE__ */ (0,
|
|
977
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
902
978
|
"div",
|
|
903
979
|
{
|
|
904
980
|
role: "status",
|
|
905
981
|
"aria-label": "Verifying code",
|
|
906
982
|
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
907
983
|
children: [
|
|
908
|
-
/* @__PURE__ */ (0,
|
|
984
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Spinner, { className: "size-4" }) }),
|
|
909
985
|
"Verifying\u2026"
|
|
910
986
|
]
|
|
911
987
|
}
|
|
912
|
-
) : /* @__PURE__ */ (0,
|
|
988
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { className: "text-sm text-muted-foreground", "aria-live": "polite", children: [
|
|
913
989
|
"Didn't receive a code?",
|
|
914
990
|
" ",
|
|
915
|
-
timer > 0 ? /* @__PURE__ */ (0,
|
|
991
|
+
timer > 0 ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { children: [
|
|
916
992
|
"Resend it in ",
|
|
917
993
|
timer,
|
|
918
994
|
"s"
|
|
919
|
-
] }) : /* @__PURE__ */ (0,
|
|
995
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
920
996
|
Button,
|
|
921
997
|
{
|
|
922
998
|
variant: "link",
|
|
@@ -946,11 +1022,11 @@ function BrokerRequestStep({ onValuesChange }) {
|
|
|
946
1022
|
return next;
|
|
947
1023
|
});
|
|
948
1024
|
};
|
|
949
|
-
return /* @__PURE__ */ (0,
|
|
950
|
-
/* @__PURE__ */ (0,
|
|
951
|
-
/* @__PURE__ */ (0,
|
|
952
|
-
/* @__PURE__ */ (0,
|
|
953
|
-
/* @__PURE__ */ (0,
|
|
1025
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-6", children: [
|
|
1026
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-sm text-muted-foreground", children: "You have access for the first 3 months covered by us. After this date you will need to be connected with a mortgage broker or financial planner to maintain access." }),
|
|
1027
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
1028
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex gap-4", children: [
|
|
1029
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { label: "First Name", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
954
1030
|
Input,
|
|
955
1031
|
{
|
|
956
1032
|
id: "broker-first-name",
|
|
@@ -960,7 +1036,7 @@ function BrokerRequestStep({ onValuesChange }) {
|
|
|
960
1036
|
onChange: (e) => update("firstName", e.target.value)
|
|
961
1037
|
}
|
|
962
1038
|
) }),
|
|
963
|
-
/* @__PURE__ */ (0,
|
|
1039
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { label: "Last Name", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
964
1040
|
Input,
|
|
965
1041
|
{
|
|
966
1042
|
id: "broker-last-name",
|
|
@@ -971,7 +1047,7 @@ function BrokerRequestStep({ onValuesChange }) {
|
|
|
971
1047
|
}
|
|
972
1048
|
) })
|
|
973
1049
|
] }),
|
|
974
|
-
/* @__PURE__ */ (0,
|
|
1050
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { label: "Email Address", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
975
1051
|
Input,
|
|
976
1052
|
{
|
|
977
1053
|
id: "broker-email",
|
|
@@ -982,7 +1058,7 @@ function BrokerRequestStep({ onValuesChange }) {
|
|
|
982
1058
|
onChange: (e) => update("email", e.target.value)
|
|
983
1059
|
}
|
|
984
1060
|
) }),
|
|
985
|
-
/* @__PURE__ */ (0,
|
|
1061
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormField, { label: "Phone Number", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
986
1062
|
Input,
|
|
987
1063
|
{
|
|
988
1064
|
id: "broker-phone",
|
|
@@ -998,7 +1074,7 @@ function BrokerRequestStep({ onValuesChange }) {
|
|
|
998
1074
|
}
|
|
999
1075
|
var BANKS = ["CBA", "ANZ", "NAB", "WBC", "MAC", "BOQ"];
|
|
1000
1076
|
function ConnectBankStep({ onConnect }) {
|
|
1001
|
-
return /* @__PURE__ */ (0,
|
|
1077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1002
1078
|
"button",
|
|
1003
1079
|
{
|
|
1004
1080
|
type: "button",
|
|
@@ -1006,22 +1082,22 @@ function ConnectBankStep({ onConnect }) {
|
|
|
1006
1082
|
onClick: onConnect,
|
|
1007
1083
|
className: "flex flex-col gap-4 border border-border p-6 text-left transition-colors hover:border-primary/60",
|
|
1008
1084
|
children: [
|
|
1009
|
-
/* @__PURE__ */ (0,
|
|
1085
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "grid grid-cols-3 gap-3", "aria-hidden": "true", children: BANKS.map((abbr) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1010
1086
|
"div",
|
|
1011
1087
|
{
|
|
1012
1088
|
className: "flex h-14 items-center justify-center border border-border bg-muted/30",
|
|
1013
|
-
children: /* @__PURE__ */ (0,
|
|
1089
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-sm font-semibold text-foreground", children: abbr })
|
|
1014
1090
|
},
|
|
1015
1091
|
abbr
|
|
1016
1092
|
)) }),
|
|
1017
|
-
/* @__PURE__ */ (0,
|
|
1018
|
-
/* @__PURE__ */ (0,
|
|
1019
|
-
/* @__PURE__ */ (0,
|
|
1093
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1094
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-sm font-semibold text-foreground", children: "Connect Bank" }),
|
|
1095
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1020
1096
|
"div",
|
|
1021
1097
|
{
|
|
1022
1098
|
"aria-hidden": "true",
|
|
1023
1099
|
className: "flex h-7 w-7 items-center justify-center bg-primary text-primary-foreground",
|
|
1024
|
-
children: /* @__PURE__ */ (0,
|
|
1100
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.PlusIcon, { className: "size-4" })
|
|
1025
1101
|
}
|
|
1026
1102
|
)
|
|
1027
1103
|
] })
|
|
@@ -1030,17 +1106,17 @@ function ConnectBankStep({ onConnect }) {
|
|
|
1030
1106
|
) });
|
|
1031
1107
|
}
|
|
1032
1108
|
function RetrieveBankDataStep() {
|
|
1033
|
-
return /* @__PURE__ */ (0,
|
|
1109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1034
1110
|
"div",
|
|
1035
1111
|
{
|
|
1036
1112
|
role: "status",
|
|
1037
1113
|
"aria-label": "Retrieving bank data",
|
|
1038
1114
|
className: "flex flex-col items-center justify-center gap-4 py-16 text-center",
|
|
1039
1115
|
children: [
|
|
1040
|
-
/* @__PURE__ */ (0,
|
|
1041
|
-
/* @__PURE__ */ (0,
|
|
1042
|
-
/* @__PURE__ */ (0,
|
|
1043
|
-
/* @__PURE__ */ (0,
|
|
1116
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Spinner, { className: "size-10 text-primary" }) }),
|
|
1117
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1118
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-base font-semibold text-foreground", children: "Retrieving your bank data\u2026" }),
|
|
1119
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-sm text-muted-foreground", children: "This may take a few seconds. Please don't close this window." })
|
|
1044
1120
|
] })
|
|
1045
1121
|
]
|
|
1046
1122
|
}
|
|
@@ -1063,8 +1139,8 @@ function ConnectPropertyStep({
|
|
|
1063
1139
|
setGoalValue(v);
|
|
1064
1140
|
onGoalChange == null ? void 0 : onGoalChange(v);
|
|
1065
1141
|
};
|
|
1066
|
-
return /* @__PURE__ */ (0,
|
|
1067
|
-
/* @__PURE__ */ (0,
|
|
1142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-6", children: [
|
|
1143
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1068
1144
|
ToggleGroup,
|
|
1069
1145
|
{
|
|
1070
1146
|
type: "single",
|
|
@@ -1077,13 +1153,13 @@ function ConnectPropertyStep({
|
|
|
1077
1153
|
},
|
|
1078
1154
|
className: "w-full",
|
|
1079
1155
|
children: [
|
|
1080
|
-
/* @__PURE__ */ (0,
|
|
1081
|
-
/* @__PURE__ */ (0,
|
|
1156
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ToggleGroupItem, { value: "yes", className: "flex-1", children: "Yes, I have a property" }),
|
|
1157
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ToggleGroupItem, { value: "no", className: "flex-1", children: "No, I don't" })
|
|
1082
1158
|
]
|
|
1083
1159
|
}
|
|
1084
1160
|
),
|
|
1085
|
-
hasProperty === true && /* @__PURE__ */ (0,
|
|
1086
|
-
/* @__PURE__ */ (0,
|
|
1161
|
+
hasProperty === true && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
1162
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1087
1163
|
AddressAutocomplete,
|
|
1088
1164
|
{
|
|
1089
1165
|
value: addressValue,
|
|
@@ -1094,29 +1170,29 @@ function ConnectPropertyStep({
|
|
|
1094
1170
|
}
|
|
1095
1171
|
}
|
|
1096
1172
|
),
|
|
1097
|
-
properties.length > 0 && /* @__PURE__ */ (0,
|
|
1173
|
+
properties.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("ul", { role: "list", className: "flex flex-col gap-2", children: properties.map((p) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1098
1174
|
"li",
|
|
1099
1175
|
{
|
|
1100
1176
|
className: "flex items-center justify-between border border-border px-4 py-3",
|
|
1101
1177
|
children: [
|
|
1102
|
-
/* @__PURE__ */ (0,
|
|
1103
|
-
/* @__PURE__ */ (0,
|
|
1178
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
1179
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1104
1180
|
import_lucide_react8.HomeIcon,
|
|
1105
1181
|
{
|
|
1106
1182
|
"aria-hidden": "true",
|
|
1107
1183
|
className: "size-4 shrink-0 text-muted-foreground"
|
|
1108
1184
|
}
|
|
1109
1185
|
),
|
|
1110
|
-
/* @__PURE__ */ (0,
|
|
1111
|
-
/* @__PURE__ */ (0,
|
|
1112
|
-
/* @__PURE__ */ (0,
|
|
1186
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { children: [
|
|
1187
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-sm font-medium text-foreground", children: p.address }),
|
|
1188
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
|
|
1113
1189
|
p.suburb,
|
|
1114
1190
|
", ",
|
|
1115
1191
|
p.state
|
|
1116
1192
|
] })
|
|
1117
1193
|
] })
|
|
1118
1194
|
] }),
|
|
1119
|
-
/* @__PURE__ */ (0,
|
|
1195
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1120
1196
|
import_lucide_react8.CheckIcon,
|
|
1121
1197
|
{
|
|
1122
1198
|
"aria-hidden": "true",
|
|
@@ -1128,12 +1204,12 @@ function ConnectPropertyStep({
|
|
|
1128
1204
|
p.id
|
|
1129
1205
|
)) })
|
|
1130
1206
|
] }),
|
|
1131
|
-
hasProperty === false && /* @__PURE__ */ (0,
|
|
1132
|
-
/* @__PURE__ */ (0,
|
|
1133
|
-
/* @__PURE__ */ (0,
|
|
1134
|
-
/* @__PURE__ */ (0,
|
|
1207
|
+
hasProperty === false && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-4 border border-border p-6", children: [
|
|
1208
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
1209
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-sm font-medium text-foreground", children: "What's your property budget?" }),
|
|
1210
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "text-xs text-muted-foreground", children: "Set your estimated buying goal to help us tailor your experience." })
|
|
1135
1211
|
] }),
|
|
1136
|
-
/* @__PURE__ */ (0,
|
|
1212
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1137
1213
|
"p",
|
|
1138
1214
|
{
|
|
1139
1215
|
"aria-live": "polite",
|
|
@@ -1141,7 +1217,7 @@ function ConnectPropertyStep({
|
|
|
1141
1217
|
children: fmt(goalValue)
|
|
1142
1218
|
}
|
|
1143
1219
|
),
|
|
1144
|
-
/* @__PURE__ */ (0,
|
|
1220
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1145
1221
|
Slider,
|
|
1146
1222
|
{
|
|
1147
1223
|
min: GOAL_MIN,
|
|
@@ -1152,14 +1228,14 @@ function ConnectPropertyStep({
|
|
|
1152
1228
|
"aria-label": "Property buying goal"
|
|
1153
1229
|
}
|
|
1154
1230
|
),
|
|
1155
|
-
/* @__PURE__ */ (0,
|
|
1231
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1156
1232
|
"div",
|
|
1157
1233
|
{
|
|
1158
1234
|
"aria-hidden": "true",
|
|
1159
1235
|
className: "flex justify-between text-xs text-muted-foreground",
|
|
1160
1236
|
children: [
|
|
1161
|
-
/* @__PURE__ */ (0,
|
|
1162
|
-
/* @__PURE__ */ (0,
|
|
1237
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: fmt(GOAL_MIN) }),
|
|
1238
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: fmt(GOAL_MAX) })
|
|
1163
1239
|
]
|
|
1164
1240
|
}
|
|
1165
1241
|
)
|
|
@@ -1172,9 +1248,9 @@ function BuyingGoalStep({
|
|
|
1172
1248
|
onConfirm
|
|
1173
1249
|
}) {
|
|
1174
1250
|
const [value, setValue] = (0, import_react5.useState)(initialValue);
|
|
1175
|
-
return /* @__PURE__ */ (0,
|
|
1176
|
-
/* @__PURE__ */ (0,
|
|
1177
|
-
/* @__PURE__ */ (0,
|
|
1251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-col gap-8", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-6 border border-border p-6", children: [
|
|
1252
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
1253
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1178
1254
|
"p",
|
|
1179
1255
|
{
|
|
1180
1256
|
"aria-live": "polite",
|
|
@@ -1182,20 +1258,20 @@ function BuyingGoalStep({
|
|
|
1182
1258
|
children: fmt(value)
|
|
1183
1259
|
}
|
|
1184
1260
|
),
|
|
1185
|
-
/* @__PURE__ */ (0,
|
|
1261
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1186
1262
|
Button,
|
|
1187
1263
|
{
|
|
1188
1264
|
variant: "default",
|
|
1189
1265
|
onClick: () => onConfirm == null ? void 0 : onConfirm(value),
|
|
1190
1266
|
disabled: isLoading,
|
|
1191
|
-
children: isLoading ? /* @__PURE__ */ (0,
|
|
1192
|
-
/* @__PURE__ */ (0,
|
|
1267
|
+
children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
1268
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Spinner, { className: "size-4" }) }),
|
|
1193
1269
|
"Adding\u2026"
|
|
1194
1270
|
] }) : "Confirm"
|
|
1195
1271
|
}
|
|
1196
1272
|
)
|
|
1197
1273
|
] }),
|
|
1198
|
-
/* @__PURE__ */ (0,
|
|
1274
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1199
1275
|
Slider,
|
|
1200
1276
|
{
|
|
1201
1277
|
min: GOAL_MIN,
|
|
@@ -1207,14 +1283,14 @@ function BuyingGoalStep({
|
|
|
1207
1283
|
"aria-label": "Buying goal"
|
|
1208
1284
|
}
|
|
1209
1285
|
),
|
|
1210
|
-
/* @__PURE__ */ (0,
|
|
1286
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
1211
1287
|
"div",
|
|
1212
1288
|
{
|
|
1213
1289
|
"aria-hidden": "true",
|
|
1214
1290
|
className: "flex justify-between text-xs text-muted-foreground",
|
|
1215
1291
|
children: [
|
|
1216
|
-
/* @__PURE__ */ (0,
|
|
1217
|
-
/* @__PURE__ */ (0,
|
|
1292
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: fmt(GOAL_MIN) }),
|
|
1293
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: fmt(GOAL_MAX) })
|
|
1218
1294
|
]
|
|
1219
1295
|
}
|
|
1220
1296
|
)
|
|
@@ -1224,24 +1300,24 @@ function FrontendSuccessStep({
|
|
|
1224
1300
|
firstName = "Alex",
|
|
1225
1301
|
onGoToDashboard
|
|
1226
1302
|
}) {
|
|
1227
|
-
return /* @__PURE__ */ (0,
|
|
1228
|
-
/* @__PURE__ */ (0,
|
|
1303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex min-h-full flex-col items-center justify-center gap-6 px-4 py-16 text-center", children: [
|
|
1304
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1229
1305
|
"div",
|
|
1230
1306
|
{
|
|
1231
1307
|
"aria-hidden": "true",
|
|
1232
1308
|
className: "flex size-16 items-center justify-center bg-success/10",
|
|
1233
|
-
children: /* @__PURE__ */ (0,
|
|
1309
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.CheckIcon, { className: "size-8 text-success", strokeWidth: 2 })
|
|
1234
1310
|
}
|
|
1235
1311
|
),
|
|
1236
|
-
/* @__PURE__ */ (0,
|
|
1237
|
-
/* @__PURE__ */ (0,
|
|
1312
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
1313
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("h2", { className: "text-2xl font-bold text-foreground", children: [
|
|
1238
1314
|
"You're all set, ",
|
|
1239
1315
|
firstName,
|
|
1240
1316
|
"!"
|
|
1241
1317
|
] }),
|
|
1242
|
-
/* @__PURE__ */ (0,
|
|
1318
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "max-w-[360px] text-sm text-muted-foreground", children: "Your account is ready. Head to your dashboard to explore your financial overview and next steps." })
|
|
1243
1319
|
] }),
|
|
1244
|
-
/* @__PURE__ */ (0,
|
|
1320
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Button, { variant: "default", size: "lg", onClick: onGoToDashboard, children: "Go to Dashboard" })
|
|
1245
1321
|
] });
|
|
1246
1322
|
}
|
|
1247
1323
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -6,17 +6,16 @@ import {
|
|
|
6
6
|
FrontendSuccessStep,
|
|
7
7
|
PhoneVerifyStep,
|
|
8
8
|
RetrieveBankDataStep
|
|
9
|
-
} from "../../chunk-
|
|
9
|
+
} from "../../chunk-C6R42PCL.mjs";
|
|
10
10
|
import "../../chunk-HK4HUQTV.mjs";
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-4UT3RZ2D.mjs";
|
|
12
|
+
import "../../chunk-IKVF4XE2.mjs";
|
|
13
|
+
import "../../chunk-MS3GNXMB.mjs";
|
|
14
14
|
import "../../chunk-LDC6V6DJ.mjs";
|
|
15
15
|
import "../../chunk-ISUA7DSB.mjs";
|
|
16
16
|
import "../../chunk-K6VCC2MK.mjs";
|
|
17
17
|
import "../../chunk-2GIYVERS.mjs";
|
|
18
18
|
import "../../chunk-JVMXMFBB.mjs";
|
|
19
|
-
import "../../chunk-HB5BKRMH.mjs";
|
|
20
19
|
import "../../chunk-OWFQSXVD.mjs";
|
|
21
20
|
import "../../chunk-6QAFGZC2.mjs";
|
|
22
21
|
import "../../chunk-LSRGA5BI.mjs";
|