@loafmarkets/ui 0.1.20 → 0.1.21

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.mjs CHANGED
@@ -4447,7 +4447,8 @@ var Header = ({
4447
4447
  onTradeClick,
4448
4448
  onProfileNavigate: _onProfileNavigate,
4449
4449
  onOrdersNavigate: _onOrdersNavigate,
4450
- onWalletNavigate: _onWalletNavigate
4450
+ onWalletNavigate: _onWalletNavigate,
4451
+ showTradeTab = true
4451
4452
  }) => {
4452
4453
  const [isUserMenuOpen, setIsUserMenuOpen] = useState(false);
4453
4454
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
@@ -4537,6 +4538,9 @@ var Header = ({
4537
4538
  performNavigation(resolvedLoafLiquidityPath);
4538
4539
  };
4539
4540
  const handleTradeNavigation = () => {
4541
+ if (!showTradeTab) {
4542
+ return;
4543
+ }
4540
4544
  closeMenus();
4541
4545
  if (onTradeClick) {
4542
4546
  onTradeClick();
@@ -4634,7 +4638,7 @@ var Header = ({
4634
4638
  const resolvedPortfolioPath = portfolioPath ?? DEFAULT_PORTFOLIO_PATH;
4635
4639
  const resolvedLoafLiquidityPath = loafLiquidityPath ?? DEFAULT_LOAF_LIQUIDITY_PATH;
4636
4640
  const inferredActiveTab = (() => {
4637
- if (locationPath === resolvedTradePath) return "trade";
4641
+ if (showTradeTab && locationPath === resolvedTradePath) return "trade";
4638
4642
  if (locationPath === resolvedHomePath) return "home";
4639
4643
  if (locationPath === resolvedAboutPath) return "about";
4640
4644
  if (locationPath === resolvedLearnPath) return "learn";
@@ -4644,7 +4648,7 @@ var Header = ({
4644
4648
  return null;
4645
4649
  })();
4646
4650
  const resolvedActiveTab = activeTab ?? inferredActiveTab;
4647
- const tradeActive = resolvedActiveTab === "trade";
4651
+ const tradeActive = showTradeTab && resolvedActiveTab === "trade";
4648
4652
  const homeActive = resolvedActiveTab === "home";
4649
4653
  const offeringsActive = resolvedActiveTab === "offerings";
4650
4654
  const propertyMapActive = resolvedActiveTab === "propertyMap";
@@ -4690,7 +4694,7 @@ var Header = ({
4690
4694
  children: "Portfolio"
4691
4695
  }
4692
4696
  ),
4693
- /* @__PURE__ */ jsx(
4697
+ showTradeTab && /* @__PURE__ */ jsx(
4694
4698
  NavLink,
4695
4699
  {
4696
4700
  href: resolvedTradePath,
@@ -4783,7 +4787,7 @@ var Header = ({
4783
4787
  children: "Portfolio"
4784
4788
  }
4785
4789
  ),
4786
- /* @__PURE__ */ jsx(
4790
+ showTradeTab && /* @__PURE__ */ jsx(
4787
4791
  MobileNavItem,
4788
4792
  {
4789
4793
  onClick: () => {
@@ -5448,8 +5452,10 @@ var LoginPopup = ({
5448
5452
  const [fundingAmount, setFundingAmount] = useState("");
5449
5453
  const [kycLoading, setKycLoading] = useState(false);
5450
5454
  const [showKycWidget, setShowKycWidget] = useState(false);
5451
- const [fundingLoading, setFundingLoading] = useState(false);
5455
+ const [cryptoFundingLoading, setCryptoFundingLoading] = useState(false);
5456
+ const [fiatFundingLoading, setFiatFundingLoading] = useState(false);
5452
5457
  const [fundingError, setFundingError] = useState("");
5458
+ const [transakWidgetUrl, setTransakWidgetUrl] = useState(null);
5453
5459
  const suppressAutoCloseRef = React5__default.useRef(false);
5454
5460
  useEffect(() => {
5455
5461
  console.log("[LoginTrace][Popup] mounted");
@@ -5467,6 +5473,35 @@ var LoginPopup = ({
5467
5473
  setView(initialView);
5468
5474
  }
5469
5475
  }, [initialView]);
5476
+ useEffect(() => {
5477
+ if (!transakWidgetUrl) return;
5478
+ const handleTransakMessage = (event) => {
5479
+ if (!event.origin.includes("transak.com") && !event.origin.includes("global.transak.com")) {
5480
+ return;
5481
+ }
5482
+ console.log("[LoginTrace][Popup] Transak message received", event.data);
5483
+ try {
5484
+ const data = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
5485
+ if (data.event_id === "TRANSAK_ORDER_SUCCESSFUL") {
5486
+ console.log("[LoginTrace][Popup] Transak order successful", data);
5487
+ setTimeout(() => {
5488
+ onClose();
5489
+ }, 2e3);
5490
+ } else if (data.event_id === "TRANSAK_ORDER_FAILED") {
5491
+ console.error("[LoginTrace][Popup] Transak order failed", data);
5492
+ setFundingError("Transaction failed. Please try again.");
5493
+ setTransakWidgetUrl(null);
5494
+ } else if (data.event_id === "TRANSAK_WIDGET_CLOSE") {
5495
+ console.log("[LoginTrace][Popup] Transak widget closed by user");
5496
+ setTransakWidgetUrl(null);
5497
+ }
5498
+ } catch (err) {
5499
+ console.warn("[LoginTrace][Popup] Failed to parse Transak message", err);
5500
+ }
5501
+ };
5502
+ window.addEventListener("message", handleTransakMessage);
5503
+ return () => window.removeEventListener("message", handleTransakMessage);
5504
+ }, [transakWidgetUrl, onClose]);
5470
5505
  useEffect(() => {
5471
5506
  if (!autoCloseOnAuth) {
5472
5507
  console.log("[LoginTrace][Popup] autoClose disabled", { autoCloseOnAuth, view });
@@ -5650,6 +5685,10 @@ var LoginPopup = ({
5650
5685
  setView("kyc-failed");
5651
5686
  }
5652
5687
  };
5688
+ const handleKycWidgetClose = () => {
5689
+ setShowKycWidget(false);
5690
+ onClose();
5691
+ };
5653
5692
  const handleKycStart = async () => {
5654
5693
  if (renderKycWidget) {
5655
5694
  setShowKycWidget(true);
@@ -5677,28 +5716,54 @@ var LoginPopup = ({
5677
5716
  const handleKycSkip = () => {
5678
5717
  onClose();
5679
5718
  };
5680
- const handleFundWallet = async () => {
5719
+ const handleCryptoFund = async () => {
5681
5720
  if (!onFundWallet) {
5682
5721
  onClose();
5683
5722
  return;
5684
5723
  }
5685
- setFundingLoading(true);
5686
5724
  setFundingError("");
5725
+ setCryptoFundingLoading(true);
5687
5726
  try {
5688
- const result = await onFundWallet({ amount: fundingAmount || "100" });
5689
- if (result && result.funded) {
5727
+ const result = await onFundWallet({ amount: fundingAmount || "100", mode: "crypto" });
5728
+ if (result?.funded) {
5690
5729
  onClose();
5691
- } else {
5692
- setFundingLoading(false);
5693
5730
  }
5694
5731
  } catch (err) {
5695
5732
  setFundingError(err instanceof Error ? err.message : "Unable to launch funding. Please try again.");
5696
- setFundingLoading(false);
5733
+ } finally {
5734
+ setCryptoFundingLoading(false);
5735
+ }
5736
+ };
5737
+ const handleFiatFund = async () => {
5738
+ if (!onFundWallet) {
5739
+ onClose();
5740
+ return;
5741
+ }
5742
+ setFundingError("");
5743
+ setFiatFundingLoading(true);
5744
+ try {
5745
+ const result = await onFundWallet({ amount: fundingAmount || "100", mode: "fiat" });
5746
+ if (result?.widgetUrl) {
5747
+ setTransakWidgetUrl(result.widgetUrl);
5748
+ } else if (result?.requiresKyc) {
5749
+ setView("kyc");
5750
+ setShowKycWidget(true);
5751
+ } else if (result?.funded) {
5752
+ onClose();
5753
+ }
5754
+ } catch (err) {
5755
+ setFundingError(err instanceof Error ? err.message : "Unable to launch funding. Please try again.");
5756
+ } finally {
5757
+ setFiatFundingLoading(false);
5697
5758
  }
5698
5759
  };
5699
5760
  const handleFundingSkip = () => {
5700
5761
  onClose();
5701
5762
  };
5763
+ const handleTransakClose = () => {
5764
+ setTransakWidgetUrl(null);
5765
+ setFundingError("");
5766
+ };
5702
5767
  const handleFundingAmountChange = (event) => {
5703
5768
  const next = event.target.value.replace(/[^0-9.]/g, "");
5704
5769
  setFundingAmount(next);
@@ -5874,7 +5939,10 @@ var LoginPopup = ({
5874
5939
  $expanded: showKycWidget,
5875
5940
  children: [
5876
5941
  /* @__PURE__ */ jsx(CloseButton, { onClick: onClose, "aria-label": "Close login popup", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }),
5877
- showKycWidget && renderKycWidget ? /* @__PURE__ */ jsx(KycWidgetContainer, { children: renderKycWidget(handleKycWidgetResult) }) : /* @__PURE__ */ jsxs(OnboardingStepContainer, { children: [
5942
+ showKycWidget && renderKycWidget ? /* @__PURE__ */ jsxs(KycWidgetContainer, { children: [
5943
+ /* @__PURE__ */ jsx(InlineCloseButton, { onClick: handleKycWidgetClose, "aria-label": "Close KYC widget", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }),
5944
+ renderKycWidget(handleKycWidgetResult)
5945
+ ] }) : /* @__PURE__ */ jsxs(OnboardingStepContainer, { children: [
5878
5946
  /* @__PURE__ */ jsx(OnboardingHeading, { children: "KYC to Continue" }),
5879
5947
  /* @__PURE__ */ jsx(OnboardingSubtext, { children: "Loaf requires all users to KYC before they can start purchasing properties." }),
5880
5948
  /* @__PURE__ */ jsxs(OnboardingButtonGroup, { children: [
@@ -5892,15 +5960,14 @@ var LoginPopup = ({
5892
5960
  /* @__PURE__ */ jsx(CloseButton, { onClick: onClose, "aria-label": "Close login popup", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }),
5893
5961
  /* @__PURE__ */ jsxs(OnboardingStepContainer, { children: [
5894
5962
  /* @__PURE__ */ jsx(KycSuccessIcon, { children: /* @__PURE__ */ jsx("svg", { width: "64", height: "64", viewBox: "0 0 64 64", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M20 34.5L28.5 43 44 25", stroke: "var(--color-accent, #e6c656)", strokeWidth: "4", strokeLinecap: "round", strokeLinejoin: "round" }) }) }),
5895
- /* @__PURE__ */ jsx(OnboardingHeading, { children: "Success!" }),
5963
+ /* @__PURE__ */ jsx(OnboardingHeading, { children: "KYC pending review" }),
5896
5964
  /* @__PURE__ */ jsxs(OnboardingSubtext, { children: [
5897
- "Your KYC check has passed!",
5898
- /* @__PURE__ */ jsx("br", {}),
5899
- "You can start purchasing properties."
5965
+ "Thanks for submitting your documents.",
5966
+ /* @__PURE__ */ jsx("br", {})
5900
5967
  ] }),
5901
5968
  /* @__PURE__ */ jsxs(OnboardingButtonGroup, { children: [
5902
- /* @__PURE__ */ jsx(SubmitButton, { onClick: () => setView("funding"), children: "Fund your account" }),
5903
- /* @__PURE__ */ jsx(OnboardingSkipButton, { onClick: onClose, children: "Go to my account" })
5969
+ /* @__PURE__ */ jsx(SubmitButton, { onClick: onClose, children: "Close" }),
5970
+ /* @__PURE__ */ jsx(OnboardingSkipButton, { onClick: () => setView("funding"), children: "Fund now" })
5904
5971
  ] })
5905
5972
  ] })
5906
5973
  ] }) });
@@ -5936,32 +6003,62 @@ var LoginPopup = ({
5936
6003
  ] }) });
5937
6004
  }
5938
6005
  if (view === "funding") {
5939
- return /* @__PURE__ */ jsx(Overlay2, { children: /* @__PURE__ */ jsxs(PopupContainer, { onClick: (event) => event.stopPropagation(), children: [
5940
- /* @__PURE__ */ jsx(CloseButton, { onClick: onClose, "aria-label": "Close login popup", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }),
5941
- /* @__PURE__ */ jsxs(OnboardingStepContainer, { children: [
5942
- /* @__PURE__ */ jsx(OnboardingHeading, { children: "Fund your account" }),
5943
- /* @__PURE__ */ jsx(OnboardingSubtext, { children: "How much would you like to fund your account with?" }),
5944
- /* @__PURE__ */ jsxs(FundingCard, { children: [
5945
- /* @__PURE__ */ jsx(FundingCardLabel, { children: "How much would you like to transfer?" }),
5946
- /* @__PURE__ */ jsxs(FundingInputWrapper, { children: [
5947
- /* @__PURE__ */ jsx(FundingCurrencyLabel, { children: "AUD" }),
5948
- /* @__PURE__ */ jsx(
5949
- FundingAmountInput,
6006
+ return /* @__PURE__ */ jsx(Overlay2, { children: /* @__PURE__ */ jsxs(
6007
+ FundingPopupContainer,
6008
+ {
6009
+ onClick: (event) => event.stopPropagation(),
6010
+ $hasWidget: !!transakWidgetUrl,
6011
+ children: [
6012
+ /* @__PURE__ */ jsx(CloseButton, { onClick: onClose, "aria-label": "Close login popup", children: /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }),
6013
+ transakWidgetUrl ? /* @__PURE__ */ jsxs(Fragment, { children: [
6014
+ /* @__PURE__ */ jsxs(BackButton, { onClick: handleTransakClose, style: { position: "absolute", top: "1rem", left: "1rem", zIndex: 1 }, children: [
6015
+ /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsx("path", { d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" }) }),
6016
+ "Back"
6017
+ ] }),
6018
+ /* @__PURE__ */ jsx(TransakWidgetContainer, { children: /* @__PURE__ */ jsx(
6019
+ TransakIframe,
5950
6020
  {
5951
- type: "text",
5952
- inputMode: "decimal",
5953
- value: fundingAmount,
5954
- onChange: handleFundingAmountChange,
5955
- placeholder: "0"
6021
+ src: transakWidgetUrl,
6022
+ title: "Transak Onramp Widget",
6023
+ allow: "camera; microphone; payment"
5956
6024
  }
5957
- )
5958
- ] }),
5959
- /* @__PURE__ */ jsx(SubmitButton, { onClick: handleFundWallet, disabled: fundingLoading, style: { marginTop: "1.25rem" }, children: fundingLoading ? "Opening Coinbase\u2026" : "Fund my account" }),
5960
- /* @__PURE__ */ jsx(OnboardingSkipButton, { onClick: handleFundingSkip, style: { marginTop: "0.75rem" }, children: "Skip for now" }),
5961
- fundingError && /* @__PURE__ */ jsx(StatusMessage, { $error: true, children: fundingError })
5962
- ] })
5963
- ] })
5964
- ] }) });
6025
+ ) })
6026
+ ] }) : /* @__PURE__ */ jsxs(OnboardingStepContainer, { children: [
6027
+ /* @__PURE__ */ jsx(OnboardingHeading, { children: "Fund your account" }),
6028
+ /* @__PURE__ */ jsxs(FundingCard, { children: [
6029
+ /* @__PURE__ */ jsx(FundingCardLabel, { children: "How much would you like to transfer?" }),
6030
+ /* @__PURE__ */ jsxs(FundingInputWrapper, { children: [
6031
+ /* @__PURE__ */ jsx(FundingCurrencyLabel, { children: "AUD" }),
6032
+ /* @__PURE__ */ jsx(
6033
+ FundingAmountInput,
6034
+ {
6035
+ type: "text",
6036
+ inputMode: "decimal",
6037
+ value: fundingAmount,
6038
+ onChange: handleFundingAmountChange,
6039
+ placeholder: "0"
6040
+ }
6041
+ )
6042
+ ] }),
6043
+ /* @__PURE__ */ jsxs(FundingOptionsGrid, { children: [
6044
+ /* @__PURE__ */ jsxs(FundingOptionCard, { children: [
6045
+ /* @__PURE__ */ jsx(FundingOptionHeading, { children: "Crypto transfer" }),
6046
+ /* @__PURE__ */ jsx(FundingOptionSubtext, { children: "Use Privy's Coinbase onramp to move crypto from another exchange or wallet." }),
6047
+ /* @__PURE__ */ jsx(SubmitButton, { onClick: handleCryptoFund, disabled: cryptoFundingLoading, children: cryptoFundingLoading ? "Opening Coinbase\u2026" : "Use crypto deposit" })
6048
+ ] }),
6049
+ /* @__PURE__ */ jsxs(FundingOptionCard, { children: [
6050
+ /* @__PURE__ */ jsx(FundingOptionHeading, { children: "Fiat onramp" }),
6051
+ /* @__PURE__ */ jsx(FundingOptionSubtext, { children: "Buy USDC instantly with your card or local payment methods via Transak." }),
6052
+ /* @__PURE__ */ jsx(SubmitButton, { onClick: handleFiatFund, disabled: fiatFundingLoading, children: fiatFundingLoading ? "Loading widget\u2026" : "Use onramp" })
6053
+ ] })
6054
+ ] }),
6055
+ /* @__PURE__ */ jsx(OnboardingSkipButton, { onClick: handleFundingSkip, style: { marginTop: "1.25rem" }, children: "Skip for now" }),
6056
+ fundingError && /* @__PURE__ */ jsx(StatusMessage, { $error: true, children: fundingError })
6057
+ ] })
6058
+ ] })
6059
+ ]
6060
+ }
6061
+ ) });
5965
6062
  }
5966
6063
  return null;
5967
6064
  };
@@ -6048,6 +6145,34 @@ var KycWidgetContainer = styled23.div`
6048
6145
  width: 100%;
6049
6146
  display: flex;
6050
6147
  flex-direction: column;
6148
+ position: relative;
6149
+ gap: 0.75rem;
6150
+ `;
6151
+ var InlineCloseButton = styled23.button`
6152
+ position: absolute;
6153
+ top: -12px;
6154
+ right: -12px;
6155
+ background: rgba(0, 0, 0, 0.4);
6156
+ border: 1px solid rgba(255, 255, 255, 0.1);
6157
+ border-radius: 999px;
6158
+ color: var(--color-text-secondary, #848e9c);
6159
+ width: 32px;
6160
+ height: 32px;
6161
+ display: flex;
6162
+ align-items: center;
6163
+ justify-content: center;
6164
+ cursor: pointer;
6165
+ transition: color 0.2s ease, background 0.2s ease;
6166
+
6167
+ &:hover {
6168
+ background: rgba(0, 0, 0, 0.6);
6169
+ color: var(--color-accent, #e6c656);
6170
+ }
6171
+
6172
+ svg {
6173
+ width: 18px;
6174
+ height: 18px;
6175
+ }
6051
6176
  `;
6052
6177
  var CloseButton = styled23.button`
6053
6178
  position: absolute;
@@ -6221,7 +6346,7 @@ var OTPInput = styled23.input`
6221
6346
  `;
6222
6347
  var SubmitButton = styled23.button`
6223
6348
  width: 100%;
6224
- padding: 1rem;
6349
+ padding: 0.85rem;
6225
6350
  background-color: var(--color-accent, #e6c656);
6226
6351
  border: none;
6227
6352
  border-radius: var(--border-radius, 8px);
@@ -6268,13 +6393,14 @@ var OnboardingStepContainer = styled23.div`
6268
6393
  flex-direction: column;
6269
6394
  align-items: center;
6270
6395
  text-align: center;
6271
- padding: 1rem 0;
6396
+ padding: 0.25rem 0;
6397
+ gap: 0.5rem;
6272
6398
  `;
6273
6399
  var OnboardingHeading = styled23.h2`
6274
- font-size: 1.75rem;
6400
+ font-size: 1.2rem;
6275
6401
  font-weight: 600;
6276
6402
  color: var(--color-text, #eaecef);
6277
- margin-bottom: 0.75rem;
6403
+ margin: 0;
6278
6404
  `;
6279
6405
  var OnboardingSubtext = styled23.p`
6280
6406
  font-size: 0.95rem;
@@ -6290,7 +6416,7 @@ var OnboardingButtonGroup = styled23.div`
6290
6416
  `;
6291
6417
  var OnboardingSkipButton = styled23.button`
6292
6418
  width: 100%;
6293
- padding: 0.875rem 1rem;
6419
+ padding: 0.75rem 0.9rem;
6294
6420
  background-color: rgba(255, 255, 255, 0.05);
6295
6421
  border: none;
6296
6422
  border-radius: var(--border-radius, 8px);
@@ -6327,22 +6453,22 @@ var KycFailedIcon = styled23.div`
6327
6453
  `;
6328
6454
  var FundingCard = styled23.div`
6329
6455
  width: 100%;
6330
- border-radius: 24px;
6456
+ border-radius: 14px;
6331
6457
  background-color: var(--color-background-light, #14151e);
6332
- padding: 1.75rem;
6458
+ padding: 1rem;
6333
6459
  text-align: left;
6334
- box-shadow: 0 35px 120px rgba(0, 0, 0, 0.65);
6460
+ box-shadow: 0 18px 60px rgba(0, 0, 0, 0.4);
6335
6461
  `;
6336
6462
  var FundingCardLabel = styled23.p`
6337
- font-size: 1.05rem;
6463
+ font-size: 0.9rem;
6338
6464
  color: var(--color-text, #eaecef);
6339
- margin-bottom: 1rem;
6465
+ margin-bottom: 0.5rem;
6340
6466
  `;
6341
6467
  var FundingInputWrapper = styled23.div`
6342
- border-radius: 16px;
6343
- border: 1px solid rgba(255, 255, 255, 0.05);
6468
+ border-radius: 12px;
6469
+ border: 1px solid rgba(255, 255, 255, 0.08);
6344
6470
  background-color: var(--color-background, #0d0e14);
6345
- padding: 1rem 1.25rem;
6471
+ padding: 0.75rem 0.85rem;
6346
6472
  `;
6347
6473
  var FundingCurrencyLabel = styled23.label`
6348
6474
  display: block;
@@ -6356,10 +6482,10 @@ var FundingAmountInput = styled23.input`
6356
6482
  background: transparent;
6357
6483
  border: none;
6358
6484
  outline: none;
6359
- font-size: 2.25rem;
6485
+ font-size: 1.7rem;
6360
6486
  font-weight: 400;
6361
6487
  color: var(--color-text, #eaecef);
6362
- margin-top: 0.75rem;
6488
+ margin-top: 0.4rem;
6363
6489
  font-family: "Geist Mono", "Space Grotesk", monospace;
6364
6490
  font-variant-numeric: slashed-zero;
6365
6491
 
@@ -6367,6 +6493,79 @@ var FundingAmountInput = styled23.input`
6367
6493
  color: rgba(255, 255, 255, 0.4);
6368
6494
  }
6369
6495
  `;
6496
+ var FundingOptionsGrid = styled23.div`
6497
+ display: grid;
6498
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
6499
+ gap: 0.6rem;
6500
+ margin-top: 0.75rem;
6501
+ `;
6502
+ var FundingOptionCard = styled23.div`
6503
+ background-color: rgba(255, 255, 255, 0.03);
6504
+ border: 1px solid rgba(255, 255, 255, 0.08);
6505
+ border-radius: 12px;
6506
+ padding: 0.85rem;
6507
+ display: flex;
6508
+ flex-direction: column;
6509
+ gap: 0.4rem;
6510
+ `;
6511
+ var FundingOptionHeading = styled23.h4`
6512
+ margin: 0;
6513
+ font-size: 0.9rem;
6514
+ color: var(--color-text, #eaecef);
6515
+ `;
6516
+ var FundingOptionSubtext = styled23.p`
6517
+ margin: 0;
6518
+ font-size: 0.75rem;
6519
+ line-height: 1.3;
6520
+ color: var(--color-text-secondary, #848e9c);
6521
+ flex: 1;
6522
+ `;
6523
+ var FundingPopupContainer = styled23.div`
6524
+ background-color: var(--color-background, #0a0a0a);
6525
+ border: 1px solid rgba(230, 198, 86, 0.3);
6526
+ border-radius: var(--border-radius, 12px);
6527
+ padding: ${(props) => props.$hasWidget ? "0" : "2.5rem"};
6528
+ max-width: ${(props) => props.$hasWidget ? "900px" : "440px"};
6529
+ width: 90%;
6530
+ position: relative;
6531
+ animation: slideUp 0.3s ease-out;
6532
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
6533
+ overflow: hidden;
6534
+
6535
+ @keyframes slideUp {
6536
+ from {
6537
+ transform: translateY(20px);
6538
+ opacity: 0;
6539
+ }
6540
+ to {
6541
+ transform: translateY(0);
6542
+ opacity: 1;
6543
+ }
6544
+ }
6545
+
6546
+ @media (max-width: 768px) {
6547
+ padding: ${(props) => props.$hasWidget ? "0" : "2rem"};
6548
+ max-width: 95%;
6549
+ }
6550
+ `;
6551
+ var TransakWidgetContainer = styled23.div`
6552
+ width: 100%;
6553
+ height: 700px;
6554
+ display: flex;
6555
+ flex-direction: column;
6556
+ border-radius: var(--border-radius, 12px);
6557
+ overflow: hidden;
6558
+
6559
+ @media (max-width: 768px) {
6560
+ height: 600px;
6561
+ }
6562
+ `;
6563
+ var TransakIframe = styled23.iframe`
6564
+ width: 100%;
6565
+ height: 100%;
6566
+ border: none;
6567
+ border-radius: var(--border-radius, 12px);
6568
+ `;
6370
6569
  var MiniLiveFeed = () => {
6371
6570
  const [purchases, setPurchases] = useState([]);
6372
6571
  useEffect(() => {
@@ -10395,8 +10594,7 @@ function PropertyBuy({
10395
10594
  setLastOrderDetails({
10396
10595
  tokens: tokenAmountInt,
10397
10596
  total: orderTotal,
10398
- price: tokenPrice,
10399
- orderNumber: Math.floor(1e7 + Math.random() * 9e7)
10597
+ price: tokenPrice
10400
10598
  });
10401
10599
  setOrderPlacedSuccess(true);
10402
10600
  setSliderValue(0);