@loafmarkets/ui 0.1.361 → 0.1.362

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 CHANGED
@@ -1205,4 +1205,11 @@ declare function SlideDigit({ value }: {
1205
1205
  value: string;
1206
1206
  }): react_jsx_runtime.JSX.Element;
1207
1207
 
1208
- export { type ActivityTabId, AssetSelectorBar, type AssetSelectorBarProps, type AssetSelectorMetric, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type FinancialItem, type FundWalletParams, type FundWalletResult, Header, type HeaderPortfolioData, type HeaderProps, type HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, type InspectionSlot, LoafLiquidityBadge, LoafLiquidityLogo, type LoafLiquidityLogoProps, LoginPopup, type LoginPopupProps, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, type OfferStatus, OfferingProgressCard, type OfferingProgressCardProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, type OverviewImage, OwnerBooking, type OwnerBookingProps, PaymentPopup, type PaymentPopupProps, PortfolioActivityPanel, type PortfolioActivityPanelProps, type PortfolioPosition, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyBuy, PropertyCompareBar, type PropertyCompareBarProps, PropertyDocuments, type PropertyGalleryHotspot, type PropertyGalleryImage, PropertyHeroHeader, type PropertyHeroHeaderProps, PropertyHistory, type PropertyInfoItem, PropertyInspectionTimes, PropertyMediaRow, type PropertyMediaRowProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyOffer, PropertyOffers, type PropertyOffersProps, PropertyOverview, type PropertyOverviewProps, PropertyPhotoGallery, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, PropertyValuation, type PropertyValuationProps, type PropertyValueSummary, type PurchaseFeedItem, type SelectorItem, Skeleton, type SkeletonProps, SlideDigit, type ToastData, ToastProvider, type ToastVariant, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants, hasPendingActivity, useAdaptivePolling, useToast };
1208
+ declare const SiteFooter: () => react_jsx_runtime.JSX.Element;
1209
+
1210
+ interface ContactPopupProps {
1211
+ onClose: () => void;
1212
+ }
1213
+ declare const ContactPopup: ({ onClose }: ContactPopupProps) => react_jsx_runtime.JSX.Element;
1214
+
1215
+ export { type ActivityTabId, AssetSelectorBar, type AssetSelectorBarProps, type AssetSelectorMetric, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, ContactPopup, type ContactPopupProps, type FinancialItem, type FundWalletParams, type FundWalletResult, Header, type HeaderPortfolioData, type HeaderProps, type HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, type InspectionSlot, LoafLiquidityBadge, LoafLiquidityLogo, type LoafLiquidityLogoProps, LoginPopup, type LoginPopupProps, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, type OfferStatus, OfferingProgressCard, type OfferingProgressCardProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, type OverviewImage, OwnerBooking, type OwnerBookingProps, PaymentPopup, type PaymentPopupProps, PortfolioActivityPanel, type PortfolioActivityPanelProps, type PortfolioPosition, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyBuy, PropertyCompareBar, type PropertyCompareBarProps, PropertyDocuments, type PropertyGalleryHotspot, type PropertyGalleryImage, PropertyHeroHeader, type PropertyHeroHeaderProps, PropertyHistory, type PropertyInfoItem, PropertyInspectionTimes, PropertyMediaRow, type PropertyMediaRowProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyOffer, PropertyOffers, type PropertyOffersProps, PropertyOverview, type PropertyOverviewProps, PropertyPhotoGallery, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, PropertyValuation, type PropertyValuationProps, type PropertyValueSummary, type PurchaseFeedItem, type SelectorItem, SiteFooter, Skeleton, type SkeletonProps, SlideDigit, type ToastData, ToastProvider, type ToastVariant, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants, hasPendingActivity, useAdaptivePolling, useToast };
package/dist/index.d.ts CHANGED
@@ -1205,4 +1205,11 @@ declare function SlideDigit({ value }: {
1205
1205
  value: string;
1206
1206
  }): react_jsx_runtime.JSX.Element;
1207
1207
 
1208
- export { type ActivityTabId, AssetSelectorBar, type AssetSelectorBarProps, type AssetSelectorMetric, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type FinancialItem, type FundWalletParams, type FundWalletResult, Header, type HeaderPortfolioData, type HeaderProps, type HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, type InspectionSlot, LoafLiquidityBadge, LoafLiquidityLogo, type LoafLiquidityLogoProps, LoginPopup, type LoginPopupProps, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, type OfferStatus, OfferingProgressCard, type OfferingProgressCardProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, type OverviewImage, OwnerBooking, type OwnerBookingProps, PaymentPopup, type PaymentPopupProps, PortfolioActivityPanel, type PortfolioActivityPanelProps, type PortfolioPosition, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyBuy, PropertyCompareBar, type PropertyCompareBarProps, PropertyDocuments, type PropertyGalleryHotspot, type PropertyGalleryImage, PropertyHeroHeader, type PropertyHeroHeaderProps, PropertyHistory, type PropertyInfoItem, PropertyInspectionTimes, PropertyMediaRow, type PropertyMediaRowProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyOffer, PropertyOffers, type PropertyOffersProps, PropertyOverview, type PropertyOverviewProps, PropertyPhotoGallery, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, PropertyValuation, type PropertyValuationProps, type PropertyValueSummary, type PurchaseFeedItem, type SelectorItem, Skeleton, type SkeletonProps, SlideDigit, type ToastData, ToastProvider, type ToastVariant, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants, hasPendingActivity, useAdaptivePolling, useToast };
1208
+ declare const SiteFooter: () => react_jsx_runtime.JSX.Element;
1209
+
1210
+ interface ContactPopupProps {
1211
+ onClose: () => void;
1212
+ }
1213
+ declare const ContactPopup: ({ onClose }: ContactPopupProps) => react_jsx_runtime.JSX.Element;
1214
+
1215
+ export { type ActivityTabId, AssetSelectorBar, type AssetSelectorBarProps, type AssetSelectorMetric, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, ContactPopup, type ContactPopupProps, type FinancialItem, type FundWalletParams, type FundWalletResult, Header, type HeaderPortfolioData, type HeaderProps, type HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, type InspectionSlot, LoafLiquidityBadge, LoafLiquidityLogo, type LoafLiquidityLogoProps, LoginPopup, type LoginPopupProps, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, type OfferStatus, OfferingProgressCard, type OfferingProgressCardProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, type OverviewImage, OwnerBooking, type OwnerBookingProps, PaymentPopup, type PaymentPopupProps, PortfolioActivityPanel, type PortfolioActivityPanelProps, type PortfolioPosition, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyBuy, PropertyCompareBar, type PropertyCompareBarProps, PropertyDocuments, type PropertyGalleryHotspot, type PropertyGalleryImage, PropertyHeroHeader, type PropertyHeroHeaderProps, PropertyHistory, type PropertyInfoItem, PropertyInspectionTimes, PropertyMediaRow, type PropertyMediaRowProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyOffer, PropertyOffers, type PropertyOffersProps, PropertyOverview, type PropertyOverviewProps, PropertyPhotoGallery, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, PropertyValuation, type PropertyValuationProps, type PropertyValueSummary, type PurchaseFeedItem, type SelectorItem, SiteFooter, Skeleton, type SkeletonProps, SlideDigit, type ToastData, ToastProvider, type ToastVariant, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants, hasPendingActivity, useAdaptivePolling, useToast };
package/dist/index.js CHANGED
@@ -17796,6 +17796,392 @@ function hasPendingActivity(data) {
17796
17796
  return s !== "FILLED" && s !== "ALLOCATED" && s !== "CONFIRMED" && s !== "CANCELLED" && s !== "CANCELED" && s !== "REJECTED";
17797
17797
  }) ?? false;
17798
17798
  }
17799
+ var Overlay4 = styled9__default.default.div`
17800
+ position: fixed;
17801
+ top: 0;
17802
+ left: 0;
17803
+ right: 0;
17804
+ bottom: 0;
17805
+ background-color: rgba(0, 0, 0, 0.8);
17806
+ backdrop-filter: blur(4px);
17807
+ display: flex;
17808
+ justify-content: center;
17809
+ align-items: center;
17810
+ z-index: 10000;
17811
+ animation: fadeIn 0.2s ease-in-out;
17812
+
17813
+ @keyframes fadeIn {
17814
+ from { opacity: 0; }
17815
+ to { opacity: 1; }
17816
+ }
17817
+ `;
17818
+ var PopupContainer2 = styled9__default.default.div`
17819
+ background-color: var(--color-background, #0a0a0a);
17820
+ border: 1px solid rgba(230, 198, 86, 0.3);
17821
+ border-radius: var(--border-radius, 12px);
17822
+ padding: 2.5rem;
17823
+ max-width: 440px;
17824
+ width: 90%;
17825
+ position: relative;
17826
+ animation: slideUp 0.3s ease-out;
17827
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
17828
+
17829
+ @keyframes slideUp {
17830
+ from { transform: translateY(20px); opacity: 0; }
17831
+ to { transform: translateY(0); opacity: 1; }
17832
+ }
17833
+
17834
+ @media (max-width: 768px) {
17835
+ padding: 2rem;
17836
+ max-width: 90%;
17837
+ }
17838
+ `;
17839
+ var CloseButton3 = styled9__default.default.button`
17840
+ position: absolute;
17841
+ top: 1rem;
17842
+ right: 1rem;
17843
+ background: none;
17844
+ border: none;
17845
+ color: var(--color-text-secondary, #848e9c);
17846
+ font-size: 1.5rem;
17847
+ cursor: pointer;
17848
+ padding: 0.5rem;
17849
+ display: flex;
17850
+ align-items: center;
17851
+ justify-content: center;
17852
+ transition: color 0.2s ease;
17853
+
17854
+ &:hover { color: var(--color-accent, #E6C656); }
17855
+ `;
17856
+ var Title3 = styled9__default.default.h2`
17857
+ font-size: 1.75rem;
17858
+ font-weight: 600;
17859
+ color: var(--color-text, #fff);
17860
+ margin-bottom: 0.5rem;
17861
+ `;
17862
+ var Subtitle2 = styled9__default.default.p`
17863
+ color: var(--color-text-secondary, #848e9c);
17864
+ font-size: 0.9rem;
17865
+ line-height: 1.5;
17866
+ margin-bottom: 1.5rem;
17867
+ `;
17868
+ var EmailBox = styled9__default.default.div`
17869
+ display: flex;
17870
+ align-items: center;
17871
+ gap: 0.75rem;
17872
+ background: rgba(255, 255, 255, 0.04);
17873
+ border: 1px solid rgba(255, 255, 255, 0.1);
17874
+ border-radius: 8px;
17875
+ padding: 0.875rem 1rem;
17876
+ margin-bottom: 1rem;
17877
+ `;
17878
+ var EmailText = styled9__default.default.span`
17879
+ color: var(--color-accent, #f0b90b);
17880
+ font-size: 0.95rem;
17881
+ font-weight: 500;
17882
+ flex: 1;
17883
+ user-select: all;
17884
+ `;
17885
+ var CopyButton = styled9__default.default.button`
17886
+ background: ${(props) => props.$copied ? "rgba(14, 203, 129, 0.15)" : "rgba(240, 185, 11, 0.1)"};
17887
+ border: 1px solid ${(props) => props.$copied ? "rgba(14, 203, 129, 0.3)" : "rgba(240, 185, 11, 0.2)"};
17888
+ color: ${(props) => props.$copied ? "#0ecb81" : "var(--color-accent, #f0b90b)"};
17889
+ border-radius: 6px;
17890
+ padding: 0.5rem 1rem;
17891
+ font-size: 0.8rem;
17892
+ font-weight: 600;
17893
+ cursor: pointer;
17894
+ transition: all 0.2s ease;
17895
+ white-space: nowrap;
17896
+ `;
17897
+ var OpenMailButton = styled9__default.default.a`
17898
+ display: block;
17899
+ text-align: center;
17900
+ padding: 0.875rem;
17901
+ background-color: var(--color-accent, #f0b90b);
17902
+ color: #000;
17903
+ border-radius: 8px;
17904
+ font-weight: 600;
17905
+ font-size: 0.9rem;
17906
+ text-decoration: none;
17907
+ transition: all 0.2s ease;
17908
+
17909
+ &:hover {
17910
+ transform: translateY(-1px);
17911
+ box-shadow: 0 4px 12px rgba(240, 185, 11, 0.3);
17912
+ }
17913
+ `;
17914
+ var ContactPopup = ({ onClose }) => {
17915
+ const [copied, setCopied] = React5.useState(false);
17916
+ const email = "Gavin@loafmarkets.com";
17917
+ const handleCopy = async () => {
17918
+ try {
17919
+ await navigator.clipboard.writeText(email);
17920
+ setCopied(true);
17921
+ setTimeout(() => setCopied(false), 2e3);
17922
+ } catch {
17923
+ const textArea = document.createElement("textarea");
17924
+ textArea.value = email;
17925
+ document.body.appendChild(textArea);
17926
+ textArea.select();
17927
+ document.execCommand("copy");
17928
+ document.body.removeChild(textArea);
17929
+ setCopied(true);
17930
+ setTimeout(() => setCopied(false), 2e3);
17931
+ }
17932
+ };
17933
+ return /* @__PURE__ */ jsxRuntime.jsx(Overlay4, { onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsxs(PopupContainer2, { onClick: (e) => e.stopPropagation(), children: [
17934
+ /* @__PURE__ */ jsxRuntime.jsx(CloseButton3, { onClick: onClose, children: "\u2715" }),
17935
+ /* @__PURE__ */ jsxRuntime.jsx(Title3, { children: "Contact Us" }),
17936
+ /* @__PURE__ */ jsxRuntime.jsx(Subtitle2, { children: "Have a question or want to get in touch? Send us an email and we'll get back to you as soon as possible." }),
17937
+ /* @__PURE__ */ jsxRuntime.jsxs(EmailBox, { children: [
17938
+ /* @__PURE__ */ jsxRuntime.jsx(EmailText, { children: email }),
17939
+ /* @__PURE__ */ jsxRuntime.jsx(CopyButton, { onClick: handleCopy, $copied: copied, children: copied ? "\u2713 Copied" : "Copy" })
17940
+ ] }),
17941
+ /* @__PURE__ */ jsxRuntime.jsx(OpenMailButton, { href: `mailto:${email}`, children: "Open in Email App" })
17942
+ ] }) });
17943
+ };
17944
+ var FooterContainer = styled9__default.default.footer`
17945
+ background-color: #0d1117;
17946
+ border-top: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
17947
+ padding: 3rem 2rem 1.5rem;
17948
+ margin-top: auto;
17949
+ margin-left: calc(-50vw + 50%);
17950
+ margin-right: calc(-50vw + 50%);
17951
+ width: 100vw;
17952
+ overflow-x: hidden;
17953
+
17954
+ @media (max-width: 768px) {
17955
+ margin-left: 0;
17956
+ margin-right: 0;
17957
+ width: 100%;
17958
+ padding-left: 1.25rem;
17959
+ padding-right: 1.25rem;
17960
+ }
17961
+ `;
17962
+ var FooterContent = styled9__default.default.div`
17963
+ max-width: 1400px;
17964
+ margin: 0 auto;
17965
+ `;
17966
+ var FooterTop = styled9__default.default.div`
17967
+ display: grid;
17968
+ grid-template-columns: 1.5fr repeat(4, 1fr);
17969
+ gap: 3rem;
17970
+ padding-bottom: 2.5rem;
17971
+ border-bottom: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
17972
+
17973
+ @media (max-width: 1024px) {
17974
+ grid-template-columns: repeat(3, 1fr);
17975
+ }
17976
+
17977
+ @media (max-width: 768px) {
17978
+ grid-template-columns: repeat(2, 1fr);
17979
+ gap: 2rem;
17980
+ }
17981
+
17982
+ @media (max-width: 480px) {
17983
+ grid-template-columns: 1fr;
17984
+ }
17985
+ `;
17986
+ var BrandColumn = styled9__default.default.div`
17987
+ @media (max-width: 1024px) {
17988
+ grid-column: span 3;
17989
+ margin-bottom: 1rem;
17990
+ }
17991
+
17992
+ @media (max-width: 768px) {
17993
+ grid-column: span 2;
17994
+ }
17995
+
17996
+ @media (max-width: 480px) {
17997
+ grid-column: span 1;
17998
+ }
17999
+ `;
18000
+ var Logo2 = styled9__default.default.div`
18001
+ margin-bottom: 1.25rem;
18002
+
18003
+ img {
18004
+ height: 32px;
18005
+ }
18006
+ `;
18007
+ var BrandDescription = styled9__default.default.p`
18008
+ color: var(--color-text-secondary, #B0B0B8);
18009
+ font-size: 0.875rem;
18010
+ line-height: 1.6;
18011
+ margin-bottom: 1rem;
18012
+ max-width: 280px;
18013
+ `;
18014
+ var SocialLinks = styled9__default.default.div`
18015
+ display: flex;
18016
+ gap: 0.75rem;
18017
+ flex-wrap: wrap;
18018
+ `;
18019
+ var SocialLink = styled9__default.default.a`
18020
+ display: flex;
18021
+ align-items: center;
18022
+ justify-content: center;
18023
+ width: 36px;
18024
+ height: 36px;
18025
+ border-radius: 50%;
18026
+ background-color: rgba(255, 255, 255, 0.05);
18027
+ color: var(--color-text-secondary, #B0B0B8);
18028
+ transition: all 0.2s ease;
18029
+
18030
+ &:hover {
18031
+ background-color: var(--color-accent, #E6C87E);
18032
+ color: var(--color-background, #0A0A0C);
18033
+ }
18034
+
18035
+ svg {
18036
+ width: 18px;
18037
+ height: 18px;
18038
+ }
18039
+ `;
18040
+ var FooterColumn = styled9__default.default.div``;
18041
+ var ColumnTitle = styled9__default.default.h4`
18042
+ color: var(--color-text, #FFFFFF);
18043
+ font-size: 0.875rem;
18044
+ font-weight: 600;
18045
+ margin-bottom: 1.25rem;
18046
+ text-transform: uppercase;
18047
+ letter-spacing: 0.5px;
18048
+ `;
18049
+ var FooterLinks = styled9__default.default.ul`
18050
+ list-style: none;
18051
+ padding: 0;
18052
+ margin: 0;
18053
+ `;
18054
+ var FooterLinkItem = styled9__default.default.li`
18055
+ margin-bottom: 0.75rem;
18056
+ `;
18057
+ var FooterLink = styled9__default.default.a`
18058
+ color: var(--color-text-secondary, #B0B0B8);
18059
+ font-size: 0.875rem;
18060
+ text-decoration: none;
18061
+ transition: color 0.2s ease;
18062
+ cursor: pointer;
18063
+
18064
+ &:hover {
18065
+ color: var(--color-accent, #E6C87E);
18066
+ }
18067
+ `;
18068
+ var ComingSoonLink = styled9__default.default.span`
18069
+ color: var(--color-text-secondary, #B0B0B8);
18070
+ font-size: 0.875rem;
18071
+ opacity: 0.4;
18072
+ cursor: default;
18073
+ user-select: none;
18074
+ `;
18075
+ var FooterBottom = styled9__default.default.div`
18076
+ display: flex;
18077
+ justify-content: space-between;
18078
+ align-items: center;
18079
+ padding-top: 1.5rem;
18080
+ flex-wrap: wrap;
18081
+ gap: 1rem;
18082
+
18083
+ @media (max-width: 768px) {
18084
+ flex-direction: column;
18085
+ text-align: center;
18086
+ }
18087
+ `;
18088
+ var Copyright = styled9__default.default.p`
18089
+ color: var(--color-text-secondary, #B0B0B8);
18090
+ font-size: 0.75rem;
18091
+ `;
18092
+ var LegalLinks = styled9__default.default.div`
18093
+ display: flex;
18094
+ gap: 1.5rem;
18095
+
18096
+ @media (max-width: 480px) {
18097
+ flex-direction: column;
18098
+ gap: 0.5rem;
18099
+ }
18100
+ `;
18101
+ var LegalLink = styled9__default.default.a`
18102
+ color: var(--color-text-secondary, #B0B0B8);
18103
+ font-size: 0.75rem;
18104
+ text-decoration: none;
18105
+ transition: color 0.2s ease;
18106
+
18107
+ &:hover {
18108
+ color: var(--color-accent, #E6C87E);
18109
+ }
18110
+ `;
18111
+ var Disclaimer2 = styled9__default.default.div`
18112
+ padding: 1.5rem 0 0;
18113
+ margin-top: 1.5rem;
18114
+ border-top: 1px solid var(--color-border, rgba(255, 255, 255, 0.08));
18115
+ `;
18116
+ var DisclaimerText = styled9__default.default.p`
18117
+ color: var(--color-text-secondary, #B0B0B8);
18118
+ font-size: 0.6875rem;
18119
+ line-height: 1.6;
18120
+ opacity: 0.7;
18121
+ max-width: 100%;
18122
+ `;
18123
+ var SiteFooter = () => {
18124
+ const [showContactPopup, setShowContactPopup] = React5.useState(false);
18125
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18126
+ /* @__PURE__ */ jsxRuntime.jsx(FooterContainer, { children: /* @__PURE__ */ jsxRuntime.jsxs(FooterContent, { children: [
18127
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterTop, { children: [
18128
+ /* @__PURE__ */ jsxRuntime.jsxs(BrandColumn, { children: [
18129
+ /* @__PURE__ */ jsxRuntime.jsx(Logo2, { children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: "/Loaf-logo-Banner.png", alt: "Loaf" }) }) }),
18130
+ /* @__PURE__ */ jsxRuntime.jsx(BrandDescription, { children: "Trade the world's most exclusive properties. Unprecedented liquidity, heralding a new era for the worlds most desirable assets." }),
18131
+ /* @__PURE__ */ jsxRuntime.jsxs(SocialLinks, { children: [
18132
+ /* @__PURE__ */ jsxRuntime.jsx(SocialLink, { href: "https://x.com/loafmarkets", target: "_blank", rel: "noopener noreferrer", "aria-label": "X", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" }) }) }),
18133
+ /* @__PURE__ */ jsxRuntime.jsx(SocialLink, { href: "https://www.linkedin.com/company/loafmarkets", target: "_blank", rel: "noopener noreferrer", "aria-label": "LinkedIn", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" }) }) }),
18134
+ /* @__PURE__ */ jsxRuntime.jsx(SocialLink, { href: "https://www.instagram.com/loafmarkets", target: "_blank", rel: "noopener noreferrer", "aria-label": "Instagram", children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.757-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z" }) }) })
18135
+ ] })
18136
+ ] }),
18137
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterColumn, { children: [
18138
+ /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: "Platform" }),
18139
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterLinks, { children: [
18140
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/trade", children: "Trade" }) }),
18141
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/offerings", children: "Initial Offerings" }) }),
18142
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/map", children: "Property Map" }) }),
18143
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/loaf-liquidity", children: "Loaf Liquidity" }) })
18144
+ ] })
18145
+ ] }),
18146
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterColumn, { children: [
18147
+ /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: "Learn About Loaf" }),
18148
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterLinks, { children: [
18149
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/learn", children: "Learn" }) }),
18150
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/about", children: "About" }) })
18151
+ ] })
18152
+ ] }),
18153
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterColumn, { children: [
18154
+ /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: "Company" }),
18155
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterLinks, { children: [
18156
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { as: "span", onClick: () => setShowContactPopup(true), children: "Contact" }) }),
18157
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonLink, { children: "Investors" }) }),
18158
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(FooterLink, { href: "/recruitment", children: "Careers" }) })
18159
+ ] })
18160
+ ] }),
18161
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterColumn, { children: [
18162
+ /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: "Support" }),
18163
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterLinks, { children: [
18164
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonLink, { children: "Help Centre" }) }),
18165
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonLink, { children: "FAQs" }) }),
18166
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonLink, { children: "API Documentation" }) }),
18167
+ /* @__PURE__ */ jsxRuntime.jsx(FooterLinkItem, { children: /* @__PURE__ */ jsxRuntime.jsx(ComingSoonLink, { children: "Status" }) })
18168
+ ] })
18169
+ ] })
18170
+ ] }),
18171
+ /* @__PURE__ */ jsxRuntime.jsxs(FooterBottom, { children: [
18172
+ /* @__PURE__ */ jsxRuntime.jsx(Copyright, { children: "\xA9 2026 Loaf Markets. All rights reserved." }),
18173
+ /* @__PURE__ */ jsxRuntime.jsxs(LegalLinks, { children: [
18174
+ /* @__PURE__ */ jsxRuntime.jsx(LegalLink, { href: "/privacy", children: "Privacy Policy" }),
18175
+ /* @__PURE__ */ jsxRuntime.jsx(LegalLink, { href: "/terms", children: "Terms of Use" }),
18176
+ /* @__PURE__ */ jsxRuntime.jsx(LegalLink, { href: "/cookies", children: "Cookie Policy" }),
18177
+ /* @__PURE__ */ jsxRuntime.jsx(LegalLink, { href: "/risk", children: "Risk Warning" })
18178
+ ] })
18179
+ ] }),
18180
+ /* @__PURE__ */ jsxRuntime.jsx(Disclaimer2, { children: /* @__PURE__ */ jsxRuntime.jsx(DisclaimerText, { children: "Warning: Digital asset prices can be volatile. The value of your investment can go down or up and you may not get back the amount invested. Past gains are not indicative of future returns. You are solely responsible for your investment decisions and Loaf is not liable for any losses you may incur. The information here should not be regarded as financial or investment advice. For more information, see our Terms of Use and Risk Warning." }) })
18181
+ ] }) }),
18182
+ showContactPopup && /* @__PURE__ */ jsxRuntime.jsx(ContactPopup, { onClose: () => setShowContactPopup(false) })
18183
+ ] });
18184
+ };
17799
18185
 
17800
18186
  exports.AssetSelectorBar = AssetSelectorBar;
17801
18187
  exports.Badge = Badge;
@@ -17806,6 +18192,7 @@ exports.CardDescription = CardDescription;
17806
18192
  exports.CardFooter = CardFooter;
17807
18193
  exports.CardHeader = CardHeader;
17808
18194
  exports.CardTitle = CardTitle;
18195
+ exports.ContactPopup = ContactPopup;
17809
18196
  exports.Header = Header;
17810
18197
  exports.HousePositionSlider = HousePositionSlider;
17811
18198
  exports.HousePositionSliderMobile = HousePositionSliderMobile;
@@ -17834,6 +18221,7 @@ exports.PropertyPhotoGallery = PropertyPhotoGallery;
17834
18221
  exports.PropertySubheader = PropertySubheader;
17835
18222
  exports.PropertyTour = PropertyTour;
17836
18223
  exports.PropertyValuation = PropertyValuation;
18224
+ exports.SiteFooter = SiteFooter;
17837
18225
  exports.Skeleton = Skeleton;
17838
18226
  exports.SlideDigit = SlideDigit;
17839
18227
  exports.ToastProvider = ToastProvider;