@loafmarkets/ui 0.1.262 → 0.1.264
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 +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +278 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +279 -29
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -900,13 +900,14 @@ type PortfolioActivityPanelProps = {
|
|
|
900
900
|
price?: number;
|
|
901
901
|
}) => Promise<void>;
|
|
902
902
|
cancellingOrderId?: number | null;
|
|
903
|
+
compactPositions?: boolean;
|
|
903
904
|
defaultTab?: ActivityTabId;
|
|
904
905
|
pageSize?: number;
|
|
905
906
|
blockExplorerBaseUrl?: string;
|
|
906
907
|
className?: string;
|
|
907
908
|
style?: React.CSSProperties;
|
|
908
909
|
};
|
|
909
|
-
declare function PortfolioActivityPanel({ positions, showPositionsTab, onPositionClick, onClosePosition, offeringOrders, openOrders, orderHistory, tradeHistory, transfers, onCancelOrder, onCancelAllOrders, onAmendOrder, cancellingOrderId, defaultTab, pageSize, blockExplorerBaseUrl, className, style, }: PortfolioActivityPanelProps): react_jsx_runtime.JSX.Element;
|
|
910
|
+
declare function PortfolioActivityPanel({ positions, showPositionsTab, onPositionClick, onClosePosition, offeringOrders, openOrders, orderHistory, tradeHistory, transfers, onCancelOrder, onCancelAllOrders, onAmendOrder, cancellingOrderId, compactPositions, defaultTab, pageSize, blockExplorerBaseUrl, className, style, }: PortfolioActivityPanelProps): react_jsx_runtime.JSX.Element;
|
|
910
911
|
|
|
911
912
|
type SelectorItem = {
|
|
912
913
|
readonly tokenName: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -900,13 +900,14 @@ type PortfolioActivityPanelProps = {
|
|
|
900
900
|
price?: number;
|
|
901
901
|
}) => Promise<void>;
|
|
902
902
|
cancellingOrderId?: number | null;
|
|
903
|
+
compactPositions?: boolean;
|
|
903
904
|
defaultTab?: ActivityTabId;
|
|
904
905
|
pageSize?: number;
|
|
905
906
|
blockExplorerBaseUrl?: string;
|
|
906
907
|
className?: string;
|
|
907
908
|
style?: React.CSSProperties;
|
|
908
909
|
};
|
|
909
|
-
declare function PortfolioActivityPanel({ positions, showPositionsTab, onPositionClick, onClosePosition, offeringOrders, openOrders, orderHistory, tradeHistory, transfers, onCancelOrder, onCancelAllOrders, onAmendOrder, cancellingOrderId, defaultTab, pageSize, blockExplorerBaseUrl, className, style, }: PortfolioActivityPanelProps): react_jsx_runtime.JSX.Element;
|
|
910
|
+
declare function PortfolioActivityPanel({ positions, showPositionsTab, onPositionClick, onClosePosition, offeringOrders, openOrders, orderHistory, tradeHistory, transfers, onCancelOrder, onCancelAllOrders, onAmendOrder, cancellingOrderId, compactPositions, defaultTab, pageSize, blockExplorerBaseUrl, className, style, }: PortfolioActivityPanelProps): react_jsx_runtime.JSX.Element;
|
|
910
911
|
|
|
911
912
|
type SelectorItem = {
|
|
912
913
|
readonly tokenName: string;
|
package/dist/index.js
CHANGED
|
@@ -13639,6 +13639,7 @@ function PortfolioActivityPanel({
|
|
|
13639
13639
|
onCancelAllOrders,
|
|
13640
13640
|
onAmendOrder,
|
|
13641
13641
|
cancellingOrderId = null,
|
|
13642
|
+
compactPositions = false,
|
|
13642
13643
|
defaultTab,
|
|
13643
13644
|
pageSize = ACTIVITY_PAGE_SIZE_DEFAULT,
|
|
13644
13645
|
blockExplorerBaseUrl = "https://sepolia.basescan.org/tx",
|
|
@@ -13663,6 +13664,41 @@ function PortfolioActivityPanel({
|
|
|
13663
13664
|
setPosSortAsc(key === "asset");
|
|
13664
13665
|
}
|
|
13665
13666
|
};
|
|
13667
|
+
const [expandedPositions, setExpandedPositions] = React5.useState(/* @__PURE__ */ new Set());
|
|
13668
|
+
const [allExpanded, setAllExpanded] = React5.useState(false);
|
|
13669
|
+
const togglePosition = (tokenName) => {
|
|
13670
|
+
setExpandedPositions((prev) => {
|
|
13671
|
+
const next = new Set(prev);
|
|
13672
|
+
if (next.has(tokenName)) next.delete(tokenName);
|
|
13673
|
+
else next.add(tokenName);
|
|
13674
|
+
return next;
|
|
13675
|
+
});
|
|
13676
|
+
};
|
|
13677
|
+
const sortKeyLabel = (key) => {
|
|
13678
|
+
switch (key) {
|
|
13679
|
+
case "asset":
|
|
13680
|
+
return "Asset";
|
|
13681
|
+
case "units":
|
|
13682
|
+
return "Units";
|
|
13683
|
+
case "value":
|
|
13684
|
+
return "Value";
|
|
13685
|
+
case "avgPrice":
|
|
13686
|
+
return "Avg Price";
|
|
13687
|
+
case "currentPrice":
|
|
13688
|
+
return "Price";
|
|
13689
|
+
case "pnl":
|
|
13690
|
+
return "PNL";
|
|
13691
|
+
default:
|
|
13692
|
+
return "Asset";
|
|
13693
|
+
}
|
|
13694
|
+
};
|
|
13695
|
+
const sortKeys = ["asset", "units", "value", "avgPrice", "currentPrice", "pnl"];
|
|
13696
|
+
const cycleSortKey = () => {
|
|
13697
|
+
const idx = sortKeys.indexOf(posSortKey);
|
|
13698
|
+
const nextKey = sortKeys[(idx + 1) % sortKeys.length];
|
|
13699
|
+
setPosSortKey(nextKey);
|
|
13700
|
+
setPosSortAsc(true);
|
|
13701
|
+
};
|
|
13666
13702
|
const sortedPositions = React5.useMemo(() => {
|
|
13667
13703
|
const arr = [...positions];
|
|
13668
13704
|
const dir = posSortAsc ? 1 : -1;
|
|
@@ -13689,6 +13725,15 @@ function PortfolioActivityPanel({
|
|
|
13689
13725
|
});
|
|
13690
13726
|
return arr;
|
|
13691
13727
|
}, [positions, posSortKey, posSortAsc]);
|
|
13728
|
+
const toggleExpandAll = () => {
|
|
13729
|
+
if (allExpanded) {
|
|
13730
|
+
setExpandedPositions(/* @__PURE__ */ new Set());
|
|
13731
|
+
setAllExpanded(false);
|
|
13732
|
+
} else {
|
|
13733
|
+
setExpandedPositions(new Set(sortedPositions.map((p) => p.tokenName)));
|
|
13734
|
+
setAllExpanded(true);
|
|
13735
|
+
}
|
|
13736
|
+
};
|
|
13692
13737
|
const activeTabTotal = React5.useMemo(() => {
|
|
13693
13738
|
switch (activeTab) {
|
|
13694
13739
|
case "positions":
|
|
@@ -13769,7 +13814,70 @@ function PortfolioActivityPanel({
|
|
|
13769
13814
|
] }),
|
|
13770
13815
|
activeTab === "positions" && showPositionsTab && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13771
13816
|
positions.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { children: "No positions yet. Subscribe to an offering or buy on the secondary market." }),
|
|
13772
|
-
positions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13817
|
+
positions.length > 0 && compactPositions && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13818
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactToolbar, { children: [
|
|
13819
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactSortBtn, { onClick: cycleSortKey, children: [
|
|
13820
|
+
"Sort by: ",
|
|
13821
|
+
sortKeyLabel(posSortKey),
|
|
13822
|
+
" ",
|
|
13823
|
+
posSortAsc ? "\u2191" : "\u2193"
|
|
13824
|
+
] }),
|
|
13825
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactToolbarRight, { children: [
|
|
13826
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactActionBtn, { onClick: toggleExpandAll, children: allExpanded ? "Collapse All" : "Expand All" }),
|
|
13827
|
+
onClosePosition && /* @__PURE__ */ jsxRuntime.jsx(CompactSellAllBtn, { onClick: () => setCloseAllOpen(true), children: "Sell All" })
|
|
13828
|
+
] })
|
|
13829
|
+
] }),
|
|
13830
|
+
pageSlice(sortedPositions).map((pos) => {
|
|
13831
|
+
const currentValue = pos.quantity * pos.marketPrice;
|
|
13832
|
+
const costBasis = pos.quantity * pos.averageEntryPrice;
|
|
13833
|
+
const pnl = pos.propertyPnl ?? currentValue - costBasis;
|
|
13834
|
+
const pnlPercent = pos.propertyPnlPercent ?? pos.percentChange ?? 0;
|
|
13835
|
+
const isPositive = pnl >= 0;
|
|
13836
|
+
const isExpanded = expandedPositions.has(pos.tokenName);
|
|
13837
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(CompactCard, { children: [
|
|
13838
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactCardHeader, { onClick: () => togglePosition(pos.tokenName), children: [
|
|
13839
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactAsset, { onClick: (e) => {
|
|
13840
|
+
e.stopPropagation();
|
|
13841
|
+
onPositionClick?.(pos.tokenName, pos.isIpoAllocation);
|
|
13842
|
+
}, children: pos.tokenName }),
|
|
13843
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactUnits, { children: [
|
|
13844
|
+
formatNumber2(pos.quantity),
|
|
13845
|
+
" units"
|
|
13846
|
+
] }),
|
|
13847
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactPnl, { $positive: isPositive, children: [
|
|
13848
|
+
isPositive ? "+" : "-",
|
|
13849
|
+
formatCurrency4(Math.abs(pnl)),
|
|
13850
|
+
" (",
|
|
13851
|
+
isPositive ? "+" : "",
|
|
13852
|
+
pnlPercent.toFixed(1),
|
|
13853
|
+
"%)"
|
|
13854
|
+
] }),
|
|
13855
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactChevron, { $expanded: isExpanded, children: /* @__PURE__ */ jsxRuntime.jsx(fi.FiChevronDown, { size: 14 }) })
|
|
13856
|
+
] }),
|
|
13857
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsxs(CompactCardBody, { children: [
|
|
13858
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactDetailRow, { children: [
|
|
13859
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactDetail, { children: [
|
|
13860
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailLabel, { children: "Position Value" }),
|
|
13861
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailValue, { children: formatCurrency4(currentValue, { minimumFractionDigits: 0, maximumFractionDigits: 0 }) })
|
|
13862
|
+
] }),
|
|
13863
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactDetail, { children: [
|
|
13864
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailLabel, { children: "Avg Price" }),
|
|
13865
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailValue, { children: formatCurrency4(pos.averageEntryPrice) })
|
|
13866
|
+
] }),
|
|
13867
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CompactDetail, { children: [
|
|
13868
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailLabel, { children: "Current Price" }),
|
|
13869
|
+
/* @__PURE__ */ jsxRuntime.jsx(CompactDetailValue, { children: formatCurrency4(pos.marketPrice) })
|
|
13870
|
+
] })
|
|
13871
|
+
] }),
|
|
13872
|
+
onClosePosition && /* @__PURE__ */ jsxRuntime.jsxs(CompactCloseActions, { children: [
|
|
13873
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseBtn2, { onClick: () => onClosePosition(pos.tokenName, "market", pos.quantity, pos.marketPrice), children: "Market Sell" }),
|
|
13874
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseBtn2, { onClick: () => onClosePosition(pos.tokenName, "limit", pos.quantity, pos.marketPrice), children: "Limit Sell" })
|
|
13875
|
+
] })
|
|
13876
|
+
] })
|
|
13877
|
+
] }, pos.tokenName);
|
|
13878
|
+
})
|
|
13879
|
+
] }),
|
|
13880
|
+
positions.length > 0 && !compactPositions && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13773
13881
|
/* @__PURE__ */ jsxRuntime.jsxs(PositionsHeader, { $hasClose: !!onClosePosition, children: [
|
|
13774
13882
|
/* @__PURE__ */ jsxRuntime.jsxs(SortableHeaderCell, { $active: posSortKey === "asset", onClick: () => handlePosSort("asset"), children: [
|
|
13775
13883
|
"Asset ",
|
|
@@ -13839,29 +13947,29 @@ function PortfolioActivityPanel({
|
|
|
13839
13947
|
}, children: "Limit Sell" })
|
|
13840
13948
|
] }) })
|
|
13841
13949
|
] }, pos.tokenName);
|
|
13842
|
-
})
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
|
|
13858
|
-
|
|
13859
|
-
|
|
13860
|
-
|
|
13861
|
-
|
|
13862
|
-
|
|
13863
|
-
] })
|
|
13864
|
-
] })
|
|
13950
|
+
})
|
|
13951
|
+
] }),
|
|
13952
|
+
positions.length > 0 && closeAllOpen && onClosePosition && /* @__PURE__ */ jsxRuntime.jsx(CloseAllOverlay, { onClick: () => setCloseAllOpen(false), children: /* @__PURE__ */ jsxRuntime.jsxs(CloseAllModal, { onClick: (e) => e.stopPropagation(), children: [
|
|
13953
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseAllModalX, { onClick: () => setCloseAllOpen(false), children: "\xD7" }),
|
|
13954
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseAllTitle, { children: "Confirm Sell All" }),
|
|
13955
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseAllDesc, { children: "This will sell all your positions and cancel their associated TP/SL orders." }),
|
|
13956
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CloseAllOption, { onClick: () => setCloseAllType("market"), children: [
|
|
13957
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseAllRadio, { $selected: closeAllType === "market" }),
|
|
13958
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Market Sell" })
|
|
13959
|
+
] }),
|
|
13960
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CloseAllOption, { onClick: () => setCloseAllType("limit"), children: [
|
|
13961
|
+
/* @__PURE__ */ jsxRuntime.jsx(CloseAllRadio, { $selected: closeAllType === "limit" }),
|
|
13962
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Limit Sell at Mid Price" })
|
|
13963
|
+
] }),
|
|
13964
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CloseAllConfirmBtn, { onClick: () => {
|
|
13965
|
+
positions.forEach((pos) => onClosePosition(pos.tokenName, closeAllType, pos.quantity, pos.marketPrice));
|
|
13966
|
+
setCloseAllOpen(false);
|
|
13967
|
+
}, children: [
|
|
13968
|
+
"Confirm ",
|
|
13969
|
+
closeAllType === "market" ? "Market" : "Limit",
|
|
13970
|
+
" Sell"
|
|
13971
|
+
] })
|
|
13972
|
+
] }) })
|
|
13865
13973
|
] }),
|
|
13866
13974
|
activeTab === "subscriptions" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
13867
13975
|
offeringOrders.length === 0 && /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { children: "IPO allocations will appear here once you subscribe." }),
|
|
@@ -14266,8 +14374,8 @@ var PaginationLabel = styled9__default.default.span`
|
|
|
14266
14374
|
`;
|
|
14267
14375
|
var PositionsHeader = styled9__default.default.div`
|
|
14268
14376
|
display: grid;
|
|
14269
|
-
grid-template-columns: ${(p) => p.$hasClose ? "
|
|
14270
|
-
gap: 0 0.
|
|
14377
|
+
grid-template-columns: ${(p) => p.$hasClose ? "repeat(6, 1fr) minmax(130px, auto)" : "repeat(6, 1fr)"};
|
|
14378
|
+
gap: 0 0.25rem;
|
|
14271
14379
|
padding: 0.4rem 0.5rem;
|
|
14272
14380
|
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
|
14273
14381
|
`;
|
|
@@ -14290,9 +14398,9 @@ var SortableHeaderCell = styled9__default.default.div`
|
|
|
14290
14398
|
`;
|
|
14291
14399
|
var PositionsRow = styled9__default.default.div`
|
|
14292
14400
|
display: grid;
|
|
14293
|
-
grid-template-columns: ${(p) => p.$hasClose ? "
|
|
14401
|
+
grid-template-columns: ${(p) => p.$hasClose ? "repeat(6, 1fr) minmax(130px, auto)" : "repeat(6, 1fr)"};
|
|
14294
14402
|
align-items: center;
|
|
14295
|
-
gap: 0 0.
|
|
14403
|
+
gap: 0 0.25rem;
|
|
14296
14404
|
padding: 0.5rem 0.5rem;
|
|
14297
14405
|
min-height: 2.6rem;
|
|
14298
14406
|
border-bottom: 1px solid rgba(255, 255, 255, 0.03);
|
|
@@ -14664,6 +14772,148 @@ var CloseAllConfirmBtn = styled9__default.default.button`
|
|
|
14664
14772
|
background: rgba(246, 70, 93, 0.25);
|
|
14665
14773
|
}
|
|
14666
14774
|
`;
|
|
14775
|
+
var CompactToolbar = styled9__default.default.div`
|
|
14776
|
+
display: flex;
|
|
14777
|
+
align-items: center;
|
|
14778
|
+
justify-content: space-between;
|
|
14779
|
+
padding: 0.35rem 0.5rem;
|
|
14780
|
+
margin-bottom: 0.25rem;
|
|
14781
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
|
14782
|
+
`;
|
|
14783
|
+
var CompactSortBtn = styled9__default.default.button`
|
|
14784
|
+
background: transparent;
|
|
14785
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
14786
|
+
border-radius: 4px;
|
|
14787
|
+
padding: 0.2rem 0.6rem;
|
|
14788
|
+
font-size: 0.68rem;
|
|
14789
|
+
font-weight: 500;
|
|
14790
|
+
color: rgba(255, 255, 255, 0.6);
|
|
14791
|
+
cursor: pointer;
|
|
14792
|
+
transition: all 0.15s ease;
|
|
14793
|
+
|
|
14794
|
+
&:hover {
|
|
14795
|
+
color: rgba(255, 255, 255, 0.85);
|
|
14796
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
14797
|
+
}
|
|
14798
|
+
`;
|
|
14799
|
+
var CompactToolbarRight = styled9__default.default.div`
|
|
14800
|
+
display: flex;
|
|
14801
|
+
align-items: center;
|
|
14802
|
+
gap: 0.4rem;
|
|
14803
|
+
`;
|
|
14804
|
+
var CompactActionBtn = styled9__default.default.button`
|
|
14805
|
+
background: transparent;
|
|
14806
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
14807
|
+
border-radius: 4px;
|
|
14808
|
+
padding: 0.2rem 0.6rem;
|
|
14809
|
+
font-size: 0.68rem;
|
|
14810
|
+
font-weight: 500;
|
|
14811
|
+
color: rgba(255, 255, 255, 0.6);
|
|
14812
|
+
cursor: pointer;
|
|
14813
|
+
transition: all 0.15s ease;
|
|
14814
|
+
|
|
14815
|
+
&:hover {
|
|
14816
|
+
color: rgba(255, 255, 255, 0.85);
|
|
14817
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
14818
|
+
}
|
|
14819
|
+
`;
|
|
14820
|
+
var CompactSellAllBtn = styled9__default.default.button`
|
|
14821
|
+
background: rgba(246, 70, 93, 0.08);
|
|
14822
|
+
border: 1px solid rgba(246, 70, 93, 0.25);
|
|
14823
|
+
border-radius: 4px;
|
|
14824
|
+
padding: 0.2rem 0.6rem;
|
|
14825
|
+
font-size: 0.68rem;
|
|
14826
|
+
font-weight: 600;
|
|
14827
|
+
color: #f6465d;
|
|
14828
|
+
cursor: pointer;
|
|
14829
|
+
transition: all 0.15s ease;
|
|
14830
|
+
|
|
14831
|
+
&:hover {
|
|
14832
|
+
background: rgba(246, 70, 93, 0.15);
|
|
14833
|
+
border-color: rgba(246, 70, 93, 0.4);
|
|
14834
|
+
}
|
|
14835
|
+
`;
|
|
14836
|
+
var CompactCard = styled9__default.default.div`
|
|
14837
|
+
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
14838
|
+
|
|
14839
|
+
&:last-child {
|
|
14840
|
+
border-bottom: none;
|
|
14841
|
+
}
|
|
14842
|
+
`;
|
|
14843
|
+
var CompactCardHeader = styled9__default.default.div`
|
|
14844
|
+
display: grid;
|
|
14845
|
+
grid-template-columns: 1fr 1fr 1.4fr auto;
|
|
14846
|
+
align-items: center;
|
|
14847
|
+
gap: 0.5rem;
|
|
14848
|
+
padding: 0.6rem 0.5rem;
|
|
14849
|
+
cursor: pointer;
|
|
14850
|
+
transition: background 0.15s ease;
|
|
14851
|
+
border-radius: 4px;
|
|
14852
|
+
|
|
14853
|
+
&:hover {
|
|
14854
|
+
background: rgba(255, 255, 255, 0.03);
|
|
14855
|
+
}
|
|
14856
|
+
`;
|
|
14857
|
+
var CompactAsset = styled9__default.default.span`
|
|
14858
|
+
font-size: 0.8rem;
|
|
14859
|
+
font-weight: 600;
|
|
14860
|
+
color: #fff;
|
|
14861
|
+
cursor: pointer;
|
|
14862
|
+
|
|
14863
|
+
&:hover {
|
|
14864
|
+
text-decoration: underline;
|
|
14865
|
+
color: var(--color-accent, #E6C87E);
|
|
14866
|
+
}
|
|
14867
|
+
`;
|
|
14868
|
+
var CompactUnits = styled9__default.default.span`
|
|
14869
|
+
font-size: 0.75rem;
|
|
14870
|
+
color: rgba(255, 255, 255, 0.6);
|
|
14871
|
+
`;
|
|
14872
|
+
var CompactPnl = styled9__default.default.span`
|
|
14873
|
+
font-size: 0.75rem;
|
|
14874
|
+
font-weight: 600;
|
|
14875
|
+
color: ${(p) => p.$positive ? "#0ecb81" : "#f6465d"};
|
|
14876
|
+
text-align: right;
|
|
14877
|
+
`;
|
|
14878
|
+
var CompactChevron = styled9__default.default.span`
|
|
14879
|
+
display: flex;
|
|
14880
|
+
align-items: center;
|
|
14881
|
+
justify-content: center;
|
|
14882
|
+
color: rgba(255, 255, 255, 0.35);
|
|
14883
|
+
transition: transform 0.2s ease;
|
|
14884
|
+
transform: rotate(${(p) => p.$expanded ? "180deg" : "0deg"});
|
|
14885
|
+
`;
|
|
14886
|
+
var CompactCardBody = styled9__default.default.div`
|
|
14887
|
+
padding: 0 0.5rem 0.6rem;
|
|
14888
|
+
`;
|
|
14889
|
+
var CompactDetailRow = styled9__default.default.div`
|
|
14890
|
+
display: flex;
|
|
14891
|
+
gap: 1.5rem;
|
|
14892
|
+
padding: 0.5rem 0.75rem;
|
|
14893
|
+
background: rgba(255, 255, 255, 0.02);
|
|
14894
|
+
border-radius: 6px;
|
|
14895
|
+
margin-bottom: 0.5rem;
|
|
14896
|
+
`;
|
|
14897
|
+
var CompactDetail = styled9__default.default.div`
|
|
14898
|
+
display: flex;
|
|
14899
|
+
flex-direction: column;
|
|
14900
|
+
gap: 0.15rem;
|
|
14901
|
+
`;
|
|
14902
|
+
var CompactDetailLabel = styled9__default.default.span`
|
|
14903
|
+
font-size: 0.62rem;
|
|
14904
|
+
color: rgba(255, 255, 255, 0.35);
|
|
14905
|
+
font-weight: 500;
|
|
14906
|
+
`;
|
|
14907
|
+
var CompactDetailValue = styled9__default.default.span`
|
|
14908
|
+
font-size: 0.78rem;
|
|
14909
|
+
color: #fff;
|
|
14910
|
+
font-weight: 500;
|
|
14911
|
+
`;
|
|
14912
|
+
var CompactCloseActions = styled9__default.default.div`
|
|
14913
|
+
display: flex;
|
|
14914
|
+
gap: 0.5rem;
|
|
14915
|
+
padding: 0 0.75rem;
|
|
14916
|
+
`;
|
|
14667
14917
|
function PropertyBuy({
|
|
14668
14918
|
propertyName = "Loaf Property",
|
|
14669
14919
|
propertyLocation: propertyLocationLabel = "Sydney, NSW",
|