@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.
Files changed (39) hide show
  1. package/.turbo/turbo-build.log +98 -98
  2. package/CHANGELOG.md +12 -0
  3. package/dist/{chunk-DWJHPNFL.mjs → chunk-4UT3RZ2D.mjs} +32 -16
  4. package/dist/{chunk-RNLIZRAK.mjs → chunk-C6R42PCL.mjs} +1 -1
  5. package/dist/{chunk-EVUY67CY.mjs → chunk-FTQ2AKZ2.mjs} +1 -1
  6. package/dist/{chunk-7T4TYUO3.mjs → chunk-H5ZD63NT.mjs} +31 -16
  7. package/dist/{chunk-SO4RB3XB.mjs → chunk-IEQX4UVP.mjs} +2 -2
  8. package/dist/chunk-IKVF4XE2.mjs +94 -0
  9. package/dist/{chunk-KPGARKFC.mjs → chunk-MS3GNXMB.mjs} +1 -1
  10. package/dist/{chunk-M32QNCD3.mjs → chunk-OSSS56CB.mjs} +1 -1
  11. package/dist/{chunk-36IN7YRM.mjs → chunk-SCGCGVDN.mjs} +1 -1
  12. package/dist/{chunk-KJQ3BVTB.mjs → chunk-X2NIDXFB.mjs} +1 -1
  13. package/dist/components/ui/backoffice-signup-steps.js +98 -48
  14. package/dist/components/ui/backoffice-signup-steps.mjs +4 -4
  15. package/dist/components/ui/bank-statement-generate-dialog.mjs +2 -2
  16. package/dist/components/ui/chat-widget.js +1 -1
  17. package/dist/components/ui/chat-widget.mjs +2 -2
  18. package/dist/components/ui/contact-alert-dialog/index.mjs +2 -2
  19. package/dist/components/ui/field.js +1 -1
  20. package/dist/components/ui/field.mjs +1 -1
  21. package/dist/components/ui/frontend-signup-steps.js +166 -90
  22. package/dist/components/ui/frontend-signup-steps.mjs +4 -5
  23. package/dist/components/ui/password-strength-tooltip.js +81 -107
  24. package/dist/components/ui/password-strength-tooltip.mjs +3 -2
  25. package/dist/components/ui/property-report-dialog.mjs +2 -2
  26. package/dist/components/ui/signup-form-primitives.js +117 -114
  27. package/dist/components/ui/signup-form-primitives.mjs +3 -4
  28. package/dist/components/ui/two-fa-setup-form.js +31 -16
  29. package/dist/components/ui/two-fa-setup-form.mjs +2 -2
  30. package/dist/index.js +133 -68
  31. package/dist/index.mjs +10 -10
  32. package/dist/styles.css +1 -1
  33. package/package.json +1 -1
  34. package/src/components/ui/field.tsx +12 -12
  35. package/src/components/ui/password-strength-tooltip.tsx +89 -47
  36. package/src/components/ui/signup-form-primitives.tsx +34 -16
  37. package/src/components/ui/two-fa-setup-form.tsx +41 -31
  38. package/src/styles/styles-css.ts +1 -1
  39. 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
- // src/components/ui/password-strength-tooltip.tsx
822
- var import_jsx_runtime15 = require("react/jsx-runtime");
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 import_jsx_runtime16 = require("react/jsx-runtime");
901
+ var import_jsx_runtime15 = require("react/jsx-runtime");
826
902
  function FormField({ label, required, children }) {
827
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Field, { children: [
828
- /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(FieldLabel, { children: [
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, import_jsx_runtime16.jsx)("span", { className: "text-destructive ml-0.5", children: "*" })
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 import_jsx_runtime17 = require("react/jsx-runtime");
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-6", children: [
867
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-1", children: [
868
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-2xl font-bold text-foreground", children: "We sent you a text." }),
869
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-3", children: [
876
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsxs)(InputOTPGroup, { children: [
886
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 0, "aria-invalid": !!error || void 0 }),
887
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 1, "aria-invalid": !!error || void 0 }),
888
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 2, "aria-invalid": !!error || void 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, import_jsx_runtime17.jsx)(InputOTPSeparator, {}),
891
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(InputOTPGroup, { children: [
892
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 3, "aria-invalid": !!error || void 0 }),
893
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 4, "aria-invalid": !!error || void 0 }),
894
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(InputOTPSlot, { index: 5, "aria-invalid": !!error || void 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, import_jsx_runtime17.jsx)("p", { role: "alert", className: "text-sm text-destructive", children: error })
975
+ error && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { role: "alert", className: "text-sm text-destructive", children: error })
900
976
  ] }),
901
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Spinner, { className: "size-4" }) }),
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, import_jsx_runtime17.jsxs)("p", { className: "text-sm text-muted-foreground", "aria-live": "polite", children: [
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, import_jsx_runtime17.jsxs)("span", { children: [
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-6", children: [
950
- /* @__PURE__ */ (0, import_jsx_runtime17.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." }),
951
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-4", children: [
952
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex gap-4", children: [
953
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(FormField, { label: "First Name", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(FormField, { label: "Last Name", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(FormField, { label: "Email Address", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(FormField, { label: "Phone Number", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-3 gap-3", "aria-hidden": "true", children: BANKS.map((abbr) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)("span", { className: "text-sm font-semibold text-foreground", children: abbr })
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, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between", children: [
1018
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "text-sm font-semibold text-foreground", children: "Connect Bank" }),
1019
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(import_lucide_react8.PlusIcon, { className: "size-4" })
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, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Spinner, { className: "size-10 text-primary" }) }),
1041
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-1", children: [
1042
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-base font-semibold text-foreground", children: "Retrieving your bank data\u2026" }),
1043
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm text-muted-foreground", children: "This may take a few seconds. Please don't close this window." })
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-6", children: [
1067
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)(ToggleGroupItem, { value: "yes", className: "flex-1", children: "Yes, I have a property" }),
1081
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ToggleGroupItem, { value: "no", className: "flex-1", children: "No, I don't" })
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, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
1086
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)("ul", { role: "list", className: "flex flex-col gap-2", children: properties.map((p) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-3", children: [
1103
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)("div", { children: [
1111
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm font-medium text-foreground", children: p.address }),
1112
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("p", { className: "text-xs text-muted-foreground", children: [
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-4 border border-border p-6", children: [
1132
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-1", children: [
1133
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm font-medium text-foreground", children: "What's your property budget?" }),
1134
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-xs text-muted-foreground", children: "Set your estimated buying goal to help us tailor your experience." })
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)("span", { children: fmt(GOAL_MIN) }),
1162
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: fmt(GOAL_MAX) })
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, import_jsx_runtime17.jsx)("div", { className: "flex flex-col gap-8", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-6 border border-border p-6", children: [
1176
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between", children: [
1177
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)(import_jsx_runtime17.Fragment, { children: [
1192
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Spinner, { className: "size-4" }) }),
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, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsxs)(
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, import_jsx_runtime17.jsx)("span", { children: fmt(GOAL_MIN) }),
1217
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { children: fmt(GOAL_MAX) })
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, import_jsx_runtime17.jsxs)("div", { className: "flex min-h-full flex-col items-center justify-center gap-6 px-4 py-16 text-center", children: [
1228
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
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, import_jsx_runtime17.jsx)(import_lucide_react8.CheckIcon, { className: "size-8 text-success", strokeWidth: 2 })
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, import_jsx_runtime17.jsxs)("div", { className: "flex flex-col gap-2", children: [
1237
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("h2", { className: "text-2xl font-bold text-foreground", children: [
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, import_jsx_runtime17.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." })
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, import_jsx_runtime17.jsx)(Button, { variant: "default", size: "lg", onClick: onGoToDashboard, children: "Go to Dashboard" })
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-RNLIZRAK.mjs";
9
+ } from "../../chunk-C6R42PCL.mjs";
10
10
  import "../../chunk-HK4HUQTV.mjs";
11
- import "../../chunk-DWJHPNFL.mjs";
12
- import "../../chunk-WHIW6KOB.mjs";
13
- import "../../chunk-KPGARKFC.mjs";
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";