@loafmarkets/ui 0.1.6 → 0.1.7

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
@@ -429,4 +429,40 @@ declare const PropertySubheader: React.ForwardRefExoticComponent<React.HTMLAttri
429
429
  actions?: PropertySubheaderAction[];
430
430
  } & React.RefAttributes<HTMLDivElement>>;
431
431
 
432
- export { 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 HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, LoafLiquidityBadge, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, PropertyHeroHeader, type PropertyHeroHeaderProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants };
432
+ type PropertyAddressOption = {
433
+ id: string;
434
+ label: string;
435
+ };
436
+ type PropertyValueSummary = {
437
+ value: number;
438
+ change?: number;
439
+ label?: string;
440
+ currencySymbol?: string;
441
+ formatOptions?: Intl.NumberFormatOptions;
442
+ };
443
+ type PropertyPriceSummary = {
444
+ value: number;
445
+ change?: number;
446
+ changePercent?: number;
447
+ currencySymbol?: string;
448
+ formatOptions?: Intl.NumberFormatOptions;
449
+ percentFormatOptions?: Intl.NumberFormatOptions;
450
+ };
451
+ type PropertyCompareBarProps = React.HTMLAttributes<HTMLDivElement> & {
452
+ addresses: (PropertyAddressOption | string)[];
453
+ selectedAddressId?: string;
454
+ onSelectAddress?: (addressId: string) => void;
455
+ propertyValue?: PropertyValueSummary;
456
+ propertyValueVariant?: "classic" | "card" | "pill";
457
+ price?: PropertyPriceSummary;
458
+ };
459
+ declare const PropertyCompareBar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
460
+ addresses: (PropertyAddressOption | string)[];
461
+ selectedAddressId?: string;
462
+ onSelectAddress?: (addressId: string) => void;
463
+ propertyValue?: PropertyValueSummary;
464
+ propertyValueVariant?: "classic" | "card" | "pill";
465
+ price?: PropertyPriceSummary;
466
+ } & React.RefAttributes<HTMLDivElement>>;
467
+
468
+ export { 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 HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, LoafLiquidityBadge, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyCompareBar, type PropertyCompareBarProps, PropertyHeroHeader, type PropertyHeroHeaderProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, type PropertyValueSummary, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants };
package/dist/index.d.ts CHANGED
@@ -429,4 +429,40 @@ declare const PropertySubheader: React.ForwardRefExoticComponent<React.HTMLAttri
429
429
  actions?: PropertySubheaderAction[];
430
430
  } & React.RefAttributes<HTMLDivElement>>;
431
431
 
432
- export { 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 HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, LoafLiquidityBadge, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, PropertyHeroHeader, type PropertyHeroHeaderProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants };
432
+ type PropertyAddressOption = {
433
+ id: string;
434
+ label: string;
435
+ };
436
+ type PropertyValueSummary = {
437
+ value: number;
438
+ change?: number;
439
+ label?: string;
440
+ currencySymbol?: string;
441
+ formatOptions?: Intl.NumberFormatOptions;
442
+ };
443
+ type PropertyPriceSummary = {
444
+ value: number;
445
+ change?: number;
446
+ changePercent?: number;
447
+ currencySymbol?: string;
448
+ formatOptions?: Intl.NumberFormatOptions;
449
+ percentFormatOptions?: Intl.NumberFormatOptions;
450
+ };
451
+ type PropertyCompareBarProps = React.HTMLAttributes<HTMLDivElement> & {
452
+ addresses: (PropertyAddressOption | string)[];
453
+ selectedAddressId?: string;
454
+ onSelectAddress?: (addressId: string) => void;
455
+ propertyValue?: PropertyValueSummary;
456
+ propertyValueVariant?: "classic" | "card" | "pill";
457
+ price?: PropertyPriceSummary;
458
+ };
459
+ declare const PropertyCompareBar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
460
+ addresses: (PropertyAddressOption | string)[];
461
+ selectedAddressId?: string;
462
+ onSelectAddress?: (addressId: string) => void;
463
+ propertyValue?: PropertyValueSummary;
464
+ propertyValueVariant?: "classic" | "card" | "pill";
465
+ price?: PropertyPriceSummary;
466
+ } & React.RefAttributes<HTMLDivElement>>;
467
+
468
+ export { 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 HousePositionOrderbook, type HousePositionPendingOrder, HousePositionSlider, HousePositionSliderMobile, type HousePositionSliderMobileOrderPayload, type HousePositionSliderMobileOrderbook, type HousePositionSliderMobileProps, type HousePositionSliderOrderPayload, type HousePositionSliderProps, LoafLiquidityBadge, MobileTradeNav, type MobileTradeNavItem, type MobileTradeNavProps, Orderbook, type OrderbookLevel, type OrderbookProps, type OrderbookSide, type OrderbookTrade, PortfolioSummary, type PortfolioSummaryProps, PriceChart, type PriceChartCandle, type PriceChartProps, type PriceChartRange, type PropertyAddressOption, PropertyCompareBar, type PropertyCompareBarProps, PropertyHeroHeader, type PropertyHeroHeaderProps, type PropertyNewsItem, type PropertyNewsType, PropertyNewsUpdates, type PropertyNewsUpdatesProps, type PropertyPriceSummary, PropertySubheader, type PropertySubheaderAction, type PropertySubheaderProps, type PropertySubheaderTab, PropertyTour, type PropertyTourProps, type PropertyValueSummary, TradeConfirmationModal, type TradeConfirmationModalDetails, type TradeConfirmationModalProps, TradingSlider, type TradingSliderProps, type YourOrder, type YourOrderSide, YourOrders, type YourOrdersProps, badgeVariants, buttonVariants };
package/dist/index.js CHANGED
@@ -5650,6 +5650,393 @@ var PropertySubheader = o__namespace.forwardRef(
5650
5650
  }
5651
5651
  );
5652
5652
  PropertySubheader.displayName = "PropertySubheader";
5653
+ var PropertyCompareBar = o__namespace.forwardRef(
5654
+ ({
5655
+ className,
5656
+ addresses,
5657
+ selectedAddressId,
5658
+ onSelectAddress,
5659
+ propertyValue,
5660
+ propertyValueVariant = "classic",
5661
+ price,
5662
+ ...props
5663
+ }, ref) => {
5664
+ const normalizedAddresses = o__namespace.useMemo(() => {
5665
+ return addresses.map(
5666
+ (option) => typeof option === "string" ? { id: option, label: option } : option
5667
+ );
5668
+ }, [addresses]);
5669
+ const hasAddresses = normalizedAddresses.length > 0;
5670
+ const firstAddressId = normalizedAddresses[0]?.id;
5671
+ const isControlled = selectedAddressId !== void 0;
5672
+ const [internalSelectedId, setInternalSelectedId] = o__namespace.useState(
5673
+ () => isControlled ? void 0 : firstAddressId
5674
+ );
5675
+ const resolvedSelectedId = isControlled ? selectedAddressId : internalSelectedId;
5676
+ o__namespace.useEffect(() => {
5677
+ if (!isControlled) {
5678
+ setInternalSelectedId((current) => {
5679
+ if (current != null && normalizedAddresses.some((option) => option.id === current)) {
5680
+ return current;
5681
+ }
5682
+ return firstAddressId;
5683
+ });
5684
+ }
5685
+ }, [firstAddressId, isControlled, normalizedAddresses]);
5686
+ const selectedOption = normalizedAddresses.find((option) => option.id === resolvedSelectedId) ?? normalizedAddresses[0];
5687
+ const [isDropdownOpen, setIsDropdownOpen] = o__namespace.useState(false);
5688
+ const dropdownRef = o__namespace.useRef(null);
5689
+ o__namespace.useEffect(() => {
5690
+ if (!isDropdownOpen) return;
5691
+ const handleClick = (event) => {
5692
+ if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
5693
+ setIsDropdownOpen(false);
5694
+ }
5695
+ };
5696
+ const handleKey = (event) => {
5697
+ if (event.key === "Escape") {
5698
+ setIsDropdownOpen(false);
5699
+ }
5700
+ };
5701
+ document.addEventListener("mousedown", handleClick);
5702
+ document.addEventListener("keydown", handleKey);
5703
+ return () => {
5704
+ document.removeEventListener("mousedown", handleClick);
5705
+ document.removeEventListener("keydown", handleKey);
5706
+ };
5707
+ }, [isDropdownOpen]);
5708
+ const handleAddressSelect = (addressId) => {
5709
+ if (!isControlled) {
5710
+ setInternalSelectedId(addressId);
5711
+ }
5712
+ onSelectAddress?.(addressId);
5713
+ setIsDropdownOpen(false);
5714
+ };
5715
+ const propertyValueLabel = propertyValue?.label ?? "Property Value";
5716
+ const propertyValueCurrency = propertyValue?.currencySymbol ?? "$";
5717
+ const propertyValueFormat = propertyValue?.formatOptions ?? {
5718
+ minimumFractionDigits: 2,
5719
+ maximumFractionDigits: 2
5720
+ };
5721
+ const formattedPropertyValue = propertyValue == null ? null : `${propertyValueCurrency}${propertyValue.value.toLocaleString(
5722
+ void 0,
5723
+ propertyValueFormat
5724
+ )}`;
5725
+ const formattedPropertyChange = propertyValue?.change == null ? null : `${propertyValue.change >= 0 ? "+" : "-"}${propertyValueCurrency}${Math.abs(
5726
+ propertyValue.change
5727
+ ).toLocaleString(void 0, propertyValueFormat)}`;
5728
+ const priceCurrency = price?.currencySymbol ?? "$";
5729
+ const priceFormat = price?.formatOptions ?? { minimumFractionDigits: 2, maximumFractionDigits: 2 };
5730
+ const pricePercentFormat = price?.percentFormatOptions ?? { minimumFractionDigits: 2, maximumFractionDigits: 2 };
5731
+ const formattedPriceValue = price == null ? null : `${priceCurrency}${price.value.toLocaleString(void 0, priceFormat)}`;
5732
+ const formattedPriceChange = price?.change == null ? null : `${price.change >= 0 ? "+" : "-"}${priceCurrency}${Math.abs(price.change).toLocaleString(
5733
+ void 0,
5734
+ priceFormat
5735
+ )}`;
5736
+ const formattedPricePercent = price?.changePercent == null ? null : `${price.changePercent >= 0 ? "+" : "-"}${Math.abs(price.changePercent).toLocaleString(
5737
+ void 0,
5738
+ pricePercentFormat
5739
+ )}%`;
5740
+ const priceContent = formattedPriceValue && propertyValueVariant === "pill" ? /* @__PURE__ */ jsxRuntime.jsxs(PriceBlock2, { $variant: propertyValueVariant, children: [
5741
+ /* @__PURE__ */ jsxRuntime.jsx(PriceAmount, { children: formattedPriceValue }),
5742
+ formattedPriceChange || formattedPricePercent ? /* @__PURE__ */ jsxRuntime.jsxs(
5743
+ PriceChange,
5744
+ {
5745
+ $isPositive: price?.change != null ? price.change >= 0 : price?.changePercent != null ? price.changePercent >= 0 : void 0,
5746
+ children: [
5747
+ formattedPriceChange ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: formattedPriceChange }) : null,
5748
+ formattedPricePercent ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: formattedPricePercent }) : null
5749
+ ]
5750
+ }
5751
+ ) : null
5752
+ ] }) : null;
5753
+ const propertyValueContent = formattedPropertyValue ? /* @__PURE__ */ jsxRuntime.jsxs(PropertyValueBlock, { $variant: propertyValueVariant, children: [
5754
+ /* @__PURE__ */ jsxRuntime.jsx(PropertyValueLabel, { children: propertyValueLabel }),
5755
+ /* @__PURE__ */ jsxRuntime.jsx(PropertyValueAmount, { children: formattedPropertyValue }),
5756
+ formattedPropertyChange ? /* @__PURE__ */ jsxRuntime.jsx(PropertyValueChange, { $isPositive: propertyValue?.change != null ? propertyValue.change >= 0 : void 0, children: formattedPropertyChange }) : null
5757
+ ] }) : null;
5758
+ return /* @__PURE__ */ jsxRuntime.jsxs(PropertySelectorContainer, { ref, className, $variant: propertyValueVariant, ...props, children: [
5759
+ /* @__PURE__ */ jsxRuntime.jsxs(PropertySelector, { ref: dropdownRef, onClick: () => hasAddresses && setIsDropdownOpen((prev2) => !prev2), children: [
5760
+ /* @__PURE__ */ jsxRuntime.jsxs(PropertyAddress, { children: [
5761
+ selectedOption ? selectedOption.label : hasAddresses ? "Select address" : "No addresses available",
5762
+ /* @__PURE__ */ jsxRuntime.jsx(
5763
+ "svg",
5764
+ {
5765
+ className: "dropdown-icon",
5766
+ xmlns: "http://www.w3.org/2000/svg",
5767
+ width: "20",
5768
+ height: "20",
5769
+ viewBox: "0 0 24 24",
5770
+ fill: "currentColor",
5771
+ style: { transform: isDropdownOpen ? "rotate(180deg)" : void 0 },
5772
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5H7z" })
5773
+ }
5774
+ )
5775
+ ] }),
5776
+ /* @__PURE__ */ jsxRuntime.jsx(PropertySelectorDropdown, { $isOpen: isDropdownOpen && hasAddresses, children: normalizedAddresses.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
5777
+ PropertySelectorOption,
5778
+ {
5779
+ onClick: (event) => {
5780
+ event.stopPropagation();
5781
+ handleAddressSelect(option.id);
5782
+ },
5783
+ children: /* @__PURE__ */ jsxRuntime.jsx(PropertySelectorName, { children: option.label })
5784
+ },
5785
+ option.id
5786
+ )) })
5787
+ ] }),
5788
+ propertyValueVariant === "pill" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5789
+ priceContent,
5790
+ propertyValueContent
5791
+ ] }) : propertyValueContent
5792
+ ] });
5793
+ }
5794
+ );
5795
+ PropertyCompareBar.displayName = "PropertyCompareBar";
5796
+ var PropertySelectorContainer = at.div`
5797
+ display: flex;
5798
+ align-items: center;
5799
+ justify-content: space-between;
5800
+ padding: 1rem 1.5rem;
5801
+ background-color: ${({ $variant }) => $variant === "pill" ? "#0f0f0f" : "rgba(30, 32, 38, 0.95)"};
5802
+ border: ${({ $variant }) => $variant === "pill" ? "1px solid rgba(255, 255, 255, 0.15)" : "none"};
5803
+ border-radius: 8px;
5804
+ margin-bottom: 1.5rem;
5805
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
5806
+ color: var(--color-text, #f8f9fa);
5807
+ font-family: var(--font-family, "Inter", sans-serif);
5808
+
5809
+ @media (max-width: 1024px) {
5810
+ padding: 0.75rem 1rem;
5811
+ margin-bottom: 0.75rem;
5812
+ }
5813
+
5814
+ @media (max-width: 768px) {
5815
+ border-radius: 0;
5816
+ margin-top: 0;
5817
+ padding-top: 0.5rem;
5818
+ }
5819
+
5820
+ @media (max-width: 600px) {
5821
+ width: 100%;
5822
+
5823
+ ${({ $variant }) => $variant === "pill" ? rt`
5824
+ display: grid;
5825
+ grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(0, 1fr);
5826
+ gap: 0.35rem;
5827
+ align-items: center;
5828
+
5829
+ > *:nth-child(1) {
5830
+ width: 100%;
5831
+ }
5832
+
5833
+ > *:nth-child(2) {
5834
+ justify-self: center;
5835
+ width: 100%;
5836
+ }
5837
+
5838
+ > *:nth-child(3) {
5839
+ justify-self: end;
5840
+ text-align: right;
5841
+ }
5842
+ ` : rt`
5843
+ flex-direction: row;
5844
+ align-items: center;
5845
+ justify-content: space-between;
5846
+ gap: 0.5rem;
5847
+ `};
5848
+ }
5849
+ `;
5850
+ var PropertySelector = at.div`
5851
+ position: relative;
5852
+ display: flex;
5853
+ align-items: center;
5854
+ cursor: pointer;
5855
+ padding: 0.5rem 0;
5856
+ flex: 1;
5857
+
5858
+ &:hover {
5859
+ .dropdown-icon {
5860
+ transform: translateY(2px);
5861
+ }
5862
+ }
5863
+ `;
5864
+ var PropertyAddress = at.div`
5865
+ font-size: 1.125rem;
5866
+ font-weight: 600;
5867
+ display: flex;
5868
+ align-items: center;
5869
+ gap: 0.5rem;
5870
+ color: inherit;
5871
+
5872
+ svg {
5873
+ transition: transform 0.2s;
5874
+ }
5875
+
5876
+ @media (max-width: 600px) {
5877
+ flex-direction: column;
5878
+ align-items: flex-start;
5879
+ gap: 0.2rem;
5880
+ font-size: 1rem;
5881
+ line-height: 1.2;
5882
+ white-space: normal;
5883
+ }
5884
+ `;
5885
+ var PropertySelectorDropdown = at.div`
5886
+ position: absolute;
5887
+ top: 100%;
5888
+ left: 0;
5889
+ width: 100%;
5890
+ max-width: 400px;
5891
+ background-color: var(--color-card, #1f232b);
5892
+ border-radius: 8px;
5893
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
5894
+ z-index: 100;
5895
+ overflow: hidden;
5896
+ display: ${(props) => props.$isOpen ? "block" : "none"};
5897
+ `;
5898
+ var PropertySelectorOption = at.div`
5899
+ padding: 0.75rem 1rem;
5900
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
5901
+ cursor: pointer;
5902
+ transition: background-color 0.2s;
5903
+
5904
+ &:hover {
5905
+ background-color: rgba(255, 255, 255, 0.05);
5906
+ }
5907
+
5908
+ &:last-child {
5909
+ border-bottom: none;
5910
+ }
5911
+ `;
5912
+ var PropertySelectorName = at.div`
5913
+ font-weight: 600;
5914
+ `;
5915
+ var PropertyValueBlock = at.div`
5916
+ display: flex;
5917
+ align-items: center;
5918
+ gap: 0.5rem;
5919
+ margin-left: 1rem;
5920
+ white-space: nowrap;
5921
+
5922
+ ${({ $variant }) => $variant === "card" && rt`
5923
+ margin-left: auto;
5924
+ flex-direction: row;
5925
+ align-items: center;
5926
+ min-width: 220px;
5927
+ border: none;
5928
+ background: rgba(30, 32, 38, 0.95);
5929
+ border-radius: 14px;
5930
+ padding: 0.9rem 1.25rem;
5931
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
5932
+ gap: 0.85rem;
5933
+ justify-content: flex-end;
5934
+
5935
+ @media (max-width: 600px) {
5936
+ margin: 0;
5937
+ width: auto;
5938
+ min-width: 0;
5939
+ flex-direction: column;
5940
+ align-items: flex-end;
5941
+ gap: 0.125rem;
5942
+ padding: 0;
5943
+ background: transparent;
5944
+ border-radius: 0;
5945
+ box-shadow: none;
5946
+ }
5947
+ `}
5948
+
5949
+ ${({ $variant }) => $variant === "pill" && rt`
5950
+ margin-left: auto;
5951
+ margin-right: 1rem;
5952
+ background: #191919;
5953
+ border-radius: 8px;
5954
+ border: 1px solid rgba(255, 255, 255, 0.05);
5955
+ padding: 0.5rem 1rem;
5956
+ gap: 1rem;
5957
+ align-items: center;
5958
+
5959
+ @media (max-width: 600px) {
5960
+ margin: 0;
5961
+ width: 100%;
5962
+ min-width: 0;
5963
+ flex-direction: column;
5964
+ align-items: flex-end;
5965
+ text-align: right;
5966
+ gap: 0.2rem;
5967
+ padding: 0;
5968
+ background: transparent;
5969
+ border-radius: 0;
5970
+ border: none;
5971
+ white-space: normal;
5972
+ }
5973
+ `}
5974
+
5975
+ @media (max-width: 600px) {
5976
+ margin: 0;
5977
+ flex-direction: column;
5978
+ align-items: flex-end;
5979
+ gap: 0.2rem;
5980
+ white-space: normal;
5981
+ }
5982
+ `;
5983
+ var PropertyValueLabel = at.span`
5984
+ font-size: 0.7rem;
5985
+ color: var(--color-text-secondary, rgba(255, 255, 255, 0.6));
5986
+ text-transform: uppercase;
5987
+ letter-spacing: 0.5px;
5988
+
5989
+ @media (max-width: 600px) {
5990
+ font-size: 0.6rem;
5991
+ letter-spacing: 0.4px;
5992
+ }
5993
+ `;
5994
+ var PropertyValueAmount = at.span`
5995
+ font-size: 1.1rem;
5996
+ font-weight: 600;
5997
+ color: #fff;
5998
+
5999
+ @media (max-width: 600px) {
6000
+ font-size: 0.95rem;
6001
+ }
6002
+ `;
6003
+ var PropertyValueChange = at.span`
6004
+ font-size: 0.75rem;
6005
+ font-weight: 500;
6006
+ color: ${(props) => props.$isPositive == null ? "var(--color-text-secondary, rgba(255, 255, 255, 0.6))" : props.$isPositive ? "var(--color-positive, #0ecb81)" : "var(--color-negative, #f6465d)"};
6007
+
6008
+ @media (max-width: 600px) {
6009
+ font-size: 0.65rem;
6010
+ }
6011
+ `;
6012
+ var PriceBlock2 = at.div`
6013
+ display: none;
6014
+
6015
+ ${({ $variant }) => $variant === "pill" && rt`
6016
+ @media (max-width: 600px) {
6017
+ display: flex;
6018
+ flex: none;
6019
+ flex-direction: column;
6020
+ align-items: center;
6021
+ justify-content: center;
6022
+ gap: 0.15rem;
6023
+ width: 100%;
6024
+ }
6025
+ `}
6026
+ `;
6027
+ var PriceAmount = at.span`
6028
+ font-size: 1.6rem;
6029
+ font-weight: 600;
6030
+ color: #fff;
6031
+ letter-spacing: 0.2px;
6032
+ `;
6033
+ var PriceChange = at.span`
6034
+ font-size: 0.85rem;
6035
+ font-weight: 500;
6036
+ display: inline-flex;
6037
+ gap: 0.35rem;
6038
+ color: ${(props) => props.$isPositive == null ? "var(--color-text-secondary, rgba(255, 255, 255, 0.6))" : props.$isPositive ? "var(--color-positive, #0ecb81)" : "var(--color-negative, #f6465d)"};
6039
+ `;
5653
6040
 
5654
6041
  exports.Badge = Badge;
5655
6042
  exports.Button = Button;
@@ -5666,6 +6053,7 @@ exports.MobileTradeNav = MobileTradeNav;
5666
6053
  exports.Orderbook = Orderbook;
5667
6054
  exports.PortfolioSummary = PortfolioSummary;
5668
6055
  exports.PriceChart = PriceChart;
6056
+ exports.PropertyCompareBar = PropertyCompareBar;
5669
6057
  exports.PropertyHeroHeader = PropertyHeroHeader;
5670
6058
  exports.PropertyNewsUpdates = PropertyNewsUpdates;
5671
6059
  exports.PropertySubheader = PropertySubheader;