kaleido-ui 0.1.120 → 0.1.122

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 KaleidoSwap
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1846,7 +1846,10 @@ function AssetCard({
1846
1846
  const displayShown = balanceVisible ? formatDisplayAmountText(displayBalance) : shown;
1847
1847
  const [hovered, setHovered] = (0, import_react4.useState)(false);
1848
1848
  const showYield = isYielding ?? ["USDB"].includes(ticker.toUpperCase());
1849
- const gradientStyle = accentColor ? { background: `linear-gradient(135deg, var(--card) 30%, ${accentColor}${hovered ? "77" : "55"} 75%, ${accentColor}${hovered ? "dd" : "b3"} 100%)`, transition: "background 0.3s ease" } : void 0;
1849
+ const gradientStyle = accentColor ? {
1850
+ background: `linear-gradient(135deg, var(--card) 35%, ${accentColor}${hovered ? "55" : "33"} 78%, ${accentColor}${hovered ? "99" : "70"} 100%)`,
1851
+ transition: "background 0.3s ease"
1852
+ } : void 0;
1850
1853
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1851
1854
  "div",
1852
1855
  {
@@ -3533,6 +3536,7 @@ function BalanceBreakdown({
3533
3536
  onRefresh,
3534
3537
  isRefreshing = false,
3535
3538
  onNavigate,
3539
+ actionLabels,
3536
3540
  compact = false,
3537
3541
  tokenValueSats
3538
3542
  }) {
@@ -3767,7 +3771,7 @@ function BalanceBreakdown({
3767
3771
  ActionTile,
3768
3772
  {
3769
3773
  icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "material-symbols-outlined text-icon-sm leading-none", children: "call_received" }),
3770
- label: "Deposit",
3774
+ label: actionLabels?.receive ?? "Deposit",
3771
3775
  onClick: () => onNavigate?.("deposit"),
3772
3776
  "data-testid": "dashboard-action-deposit"
3773
3777
  }
@@ -3785,7 +3789,7 @@ function BalanceBreakdown({
3785
3789
  ActionTile,
3786
3790
  {
3787
3791
  icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "material-symbols-outlined text-icon-sm leading-none", children: "arrow_outward" }),
3788
- label: "Withdraw",
3792
+ label: actionLabels?.send ?? "Withdraw",
3789
3793
  onClick: () => onNavigate?.("withdraw"),
3790
3794
  "data-testid": "dashboard-action-withdraw"
3791
3795
  }
@@ -5502,11 +5506,13 @@ function WithdrawConfirmation({
5502
5506
  routeAccount,
5503
5507
  routeMethod,
5504
5508
  estimatedFee,
5509
+ feeIsExact = false,
5505
5510
  feeRate,
5506
5511
  addressType,
5507
5512
  decodedRgbInvoice,
5508
5513
  witnessAmountSat,
5509
5514
  amount,
5515
+ reviewLabels,
5510
5516
  handleConfirmSend
5511
5517
  }) {
5512
5518
  return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: [
@@ -5528,7 +5534,7 @@ function WithdrawConfirmation({
5528
5534
  ) }),
5529
5535
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ScrollArea, { className: "flex-1", viewportClassName: "px-5 pt-16 pb-6", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("main", { className: "space-y-6", children: [
5530
5536
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-col items-center py-6", children: [
5531
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "mb-1 text-sm uppercase tracking-wide text-muted-foreground", children: "Sending" }),
5537
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "mb-1 text-sm uppercase tracking-wide text-muted-foreground", children: reviewLabels?.recipientReceives ?? "Recipient receives" }),
5532
5538
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("h1", { className: "mb-2 text-4xl font-bold", children: displayAmount.toLocaleString() }),
5533
5539
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "text-base text-muted-foreground", children: selectedAssetId === "BTC" ? "sats" : selectedAsset?.ticker ?? "units" })
5534
5540
  ] }),
@@ -5556,17 +5562,20 @@ function WithdrawConfirmation({
5556
5562
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm text-muted-foreground", children: "Asset" }),
5557
5563
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-bold text-white", children: selectedAsset?.ticker ?? selectedAssetId })
5558
5564
  ] }),
5559
- estimatedFee > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-between px-5 py-4", children: [
5560
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm text-muted-foreground", children: "Network Fee" }),
5561
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-col items-end", children: [
5562
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "text-sm text-white", children: [
5563
- "~",
5564
- estimatedFee.toLocaleString(),
5565
- " sats"
5566
- ] }),
5567
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "mt-0.5 text-xxs font-bold capitalize tracking-wider text-primary", children: feeRate })
5568
- ] })
5569
- ] }),
5565
+ estimatedFee > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
5566
+ "div",
5567
+ {
5568
+ "data-testid": "payment-review-fee",
5569
+ className: "flex items-center justify-between px-5 py-4",
5570
+ children: [
5571
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm text-muted-foreground", children: reviewLabels?.estimatedNetworkFee ?? "Estimated network fee" }),
5572
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex flex-col items-end", children: [
5573
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm text-white", children: `${feeIsExact ? "" : "~"}${estimatedFee.toLocaleString()} sats` }),
5574
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "mt-0.5 text-xxs font-bold capitalize tracking-wider text-primary", children: feeRate })
5575
+ ] })
5576
+ ]
5577
+ }
5578
+ ),
5570
5579
  addressType === "rgb" && decodedRgbInvoice?.recipient_type === "Witness" && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-between px-5 py-4", children: [
5571
5580
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm text-muted-foreground", children: "Witness Amount" }),
5572
5581
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "text-sm text-white", children: [
@@ -5575,14 +5584,21 @@ function WithdrawConfirmation({
5575
5584
  ] })
5576
5585
  ] })
5577
5586
  ] }),
5578
- selectedAssetId === "BTC" && estimatedFee > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center justify-between rounded-2xl bg-primary/10 p-5 px-2 shadow-inner", children: [
5579
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-bold uppercase tracking-wider text-primary", children: "Total to deduct" }),
5580
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "text-xl font-bold text-white", children: [
5581
- (Math.round(parseFloat(amount) || 0) + estimatedFee).toLocaleString(),
5582
- " ",
5583
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-lg text-primary/70", children: "sats" })
5584
- ] })
5585
- ] }),
5587
+ selectedAssetId === "BTC" && estimatedFee > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
5588
+ "div",
5589
+ {
5590
+ "data-testid": "payment-review-total",
5591
+ className: "flex items-center justify-between rounded-2xl bg-primary/10 p-5 shadow-inner",
5592
+ children: [
5593
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-sm font-bold uppercase tracking-wider text-primary", children: reviewLabels?.totalDeducted ?? "Total deducted" }),
5594
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("span", { className: "text-xl font-bold text-white", children: [
5595
+ (Math.round(parseFloat(amount) || 0) + estimatedFee).toLocaleString(),
5596
+ " ",
5597
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-lg text-primary/70", children: "sats" })
5598
+ ] })
5599
+ ]
5600
+ }
5601
+ ),
5586
5602
  isPollingStatus && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-center gap-3 rounded-xl bg-primary/10 p-4", children: [
5587
5603
  /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "material-symbols-outlined animate-spin text-primary", children: "progress_activity" }),
5588
5604
  /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { children: [
@@ -761,6 +761,11 @@ interface BalanceBreakdownProps {
761
761
  onRefresh?: () => void;
762
762
  isRefreshing?: boolean;
763
763
  onNavigate?: (view: 'deposit' | 'swap' | 'withdraw') => void;
764
+ /** Localized labels for receiving and sending funds. */
765
+ actionLabels?: {
766
+ receive: string;
767
+ send: string;
768
+ };
764
769
  /** Reduce vertical padding/margins so the card occupies less of the viewport. */
765
770
  compact?: boolean;
766
771
  /**
@@ -770,7 +775,7 @@ interface BalanceBreakdownProps {
770
775
  */
771
776
  tokenValueSats?: number;
772
777
  }
773
- declare function BalanceBreakdown({ btcOnchain, btcLightning, externalLightningAvailable, btcSpark, btcArkade, btcLiquid, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, btcLiquidPending, onRefresh, isRefreshing, onNavigate, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
778
+ declare function BalanceBreakdown({ btcOnchain, btcLightning, externalLightningAvailable, btcSpark, btcArkade, btcLiquid, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, btcLiquidPending, onRefresh, isRefreshing, onNavigate, actionLabels, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
774
779
 
775
780
  interface AssetSelectorOption {
776
781
  id: string;
@@ -1135,14 +1140,22 @@ interface WithdrawConfirmationProps {
1135
1140
  routeAccount?: string;
1136
1141
  routeMethod?: string;
1137
1142
  estimatedFee: number;
1143
+ /** The fee is quoted, not estimated: drop the `~`. Defaults to false. */
1144
+ feeIsExact?: boolean;
1138
1145
  feeRate: string;
1139
1146
  addressType: WithdrawAddressType;
1140
1147
  decodedRgbInvoice: WithdrawConfirmationRgbInvoice | null;
1141
1148
  witnessAmountSat: number;
1142
1149
  amount: string;
1150
+ /** Localized labels for the payment review amounts. */
1151
+ reviewLabels?: {
1152
+ recipientReceives: string;
1153
+ estimatedNetworkFee: string;
1154
+ totalDeducted: string;
1155
+ };
1143
1156
  handleConfirmSend: () => void;
1144
1157
  }
1145
- declare function WithdrawConfirmation({ isConfirming, isPollingStatus, setShowConfirmation, displayAmount, selectedAssetId, selectedAsset, destination, networkLabel, routeAccount, routeMethod, estimatedFee, feeRate, addressType, decodedRgbInvoice, witnessAmountSat, amount, handleConfirmSend, }: WithdrawConfirmationProps): react_jsx_runtime.JSX.Element;
1158
+ declare function WithdrawConfirmation({ isConfirming, isPollingStatus, setShowConfirmation, displayAmount, selectedAssetId, selectedAsset, destination, networkLabel, routeAccount, routeMethod, estimatedFee, feeIsExact, feeRate, addressType, decodedRgbInvoice, witnessAmountSat, amount, reviewLabels, handleConfirmSend, }: WithdrawConfirmationProps): react_jsx_runtime.JSX.Element;
1146
1159
 
1147
1160
  interface WithdrawSuccessProps {
1148
1161
  displayAmount: number;
@@ -761,6 +761,11 @@ interface BalanceBreakdownProps {
761
761
  onRefresh?: () => void;
762
762
  isRefreshing?: boolean;
763
763
  onNavigate?: (view: 'deposit' | 'swap' | 'withdraw') => void;
764
+ /** Localized labels for receiving and sending funds. */
765
+ actionLabels?: {
766
+ receive: string;
767
+ send: string;
768
+ };
764
769
  /** Reduce vertical padding/margins so the card occupies less of the viewport. */
765
770
  compact?: boolean;
766
771
  /**
@@ -770,7 +775,7 @@ interface BalanceBreakdownProps {
770
775
  */
771
776
  tokenValueSats?: number;
772
777
  }
773
- declare function BalanceBreakdown({ btcOnchain, btcLightning, externalLightningAvailable, btcSpark, btcArkade, btcLiquid, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, btcLiquidPending, onRefresh, isRefreshing, onNavigate, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
778
+ declare function BalanceBreakdown({ btcOnchain, btcLightning, externalLightningAvailable, btcSpark, btcArkade, btcLiquid, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, btcLiquidPending, onRefresh, isRefreshing, onNavigate, actionLabels, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
774
779
 
775
780
  interface AssetSelectorOption {
776
781
  id: string;
@@ -1135,14 +1140,22 @@ interface WithdrawConfirmationProps {
1135
1140
  routeAccount?: string;
1136
1141
  routeMethod?: string;
1137
1142
  estimatedFee: number;
1143
+ /** The fee is quoted, not estimated: drop the `~`. Defaults to false. */
1144
+ feeIsExact?: boolean;
1138
1145
  feeRate: string;
1139
1146
  addressType: WithdrawAddressType;
1140
1147
  decodedRgbInvoice: WithdrawConfirmationRgbInvoice | null;
1141
1148
  witnessAmountSat: number;
1142
1149
  amount: string;
1150
+ /** Localized labels for the payment review amounts. */
1151
+ reviewLabels?: {
1152
+ recipientReceives: string;
1153
+ estimatedNetworkFee: string;
1154
+ totalDeducted: string;
1155
+ };
1143
1156
  handleConfirmSend: () => void;
1144
1157
  }
1145
- declare function WithdrawConfirmation({ isConfirming, isPollingStatus, setShowConfirmation, displayAmount, selectedAssetId, selectedAsset, destination, networkLabel, routeAccount, routeMethod, estimatedFee, feeRate, addressType, decodedRgbInvoice, witnessAmountSat, amount, handleConfirmSend, }: WithdrawConfirmationProps): react_jsx_runtime.JSX.Element;
1158
+ declare function WithdrawConfirmation({ isConfirming, isPollingStatus, setShowConfirmation, displayAmount, selectedAssetId, selectedAsset, destination, networkLabel, routeAccount, routeMethod, estimatedFee, feeIsExact, feeRate, addressType, decodedRgbInvoice, witnessAmountSat, amount, reviewLabels, handleConfirmSend, }: WithdrawConfirmationProps): react_jsx_runtime.JSX.Element;
1146
1159
 
1147
1160
  interface WithdrawSuccessProps {
1148
1161
  displayAmount: number;
package/dist/web/index.js CHANGED
@@ -1652,7 +1652,10 @@ function AssetCard({
1652
1652
  const displayShown = balanceVisible ? formatDisplayAmountText(displayBalance) : shown;
1653
1653
  const [hovered, setHovered] = useState5(false);
1654
1654
  const showYield = isYielding ?? ["USDB"].includes(ticker.toUpperCase());
1655
- const gradientStyle = accentColor ? { background: `linear-gradient(135deg, var(--card) 30%, ${accentColor}${hovered ? "77" : "55"} 75%, ${accentColor}${hovered ? "dd" : "b3"} 100%)`, transition: "background 0.3s ease" } : void 0;
1655
+ const gradientStyle = accentColor ? {
1656
+ background: `linear-gradient(135deg, var(--card) 35%, ${accentColor}${hovered ? "55" : "33"} 78%, ${accentColor}${hovered ? "99" : "70"} 100%)`,
1657
+ transition: "background 0.3s ease"
1658
+ } : void 0;
1656
1659
  return /* @__PURE__ */ jsxs10(
1657
1660
  "div",
1658
1661
  {
@@ -3345,6 +3348,7 @@ function BalanceBreakdown({
3345
3348
  onRefresh,
3346
3349
  isRefreshing = false,
3347
3350
  onNavigate,
3351
+ actionLabels,
3348
3352
  compact = false,
3349
3353
  tokenValueSats
3350
3354
  }) {
@@ -3579,7 +3583,7 @@ function BalanceBreakdown({
3579
3583
  ActionTile,
3580
3584
  {
3581
3585
  icon: /* @__PURE__ */ jsx38("span", { className: "material-symbols-outlined text-icon-sm leading-none", children: "call_received" }),
3582
- label: "Deposit",
3586
+ label: actionLabels?.receive ?? "Deposit",
3583
3587
  onClick: () => onNavigate?.("deposit"),
3584
3588
  "data-testid": "dashboard-action-deposit"
3585
3589
  }
@@ -3597,7 +3601,7 @@ function BalanceBreakdown({
3597
3601
  ActionTile,
3598
3602
  {
3599
3603
  icon: /* @__PURE__ */ jsx38("span", { className: "material-symbols-outlined text-icon-sm leading-none", children: "arrow_outward" }),
3600
- label: "Withdraw",
3604
+ label: actionLabels?.send ?? "Withdraw",
3601
3605
  onClick: () => onNavigate?.("withdraw"),
3602
3606
  "data-testid": "dashboard-action-withdraw"
3603
3607
  }
@@ -5314,11 +5318,13 @@ function WithdrawConfirmation({
5314
5318
  routeAccount,
5315
5319
  routeMethod,
5316
5320
  estimatedFee,
5321
+ feeIsExact = false,
5317
5322
  feeRate,
5318
5323
  addressType,
5319
5324
  decodedRgbInvoice,
5320
5325
  witnessAmountSat,
5321
5326
  amount,
5327
+ reviewLabels,
5322
5328
  handleConfirmSend
5323
5329
  }) {
5324
5330
  return /* @__PURE__ */ jsxs38("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background font-display text-foreground", children: [
@@ -5340,7 +5346,7 @@ function WithdrawConfirmation({
5340
5346
  ) }),
5341
5347
  /* @__PURE__ */ jsx51(ScrollArea, { className: "flex-1", viewportClassName: "px-5 pt-16 pb-6", children: /* @__PURE__ */ jsxs38("main", { className: "space-y-6", children: [
5342
5348
  /* @__PURE__ */ jsxs38("div", { className: "flex flex-col items-center py-6", children: [
5343
- /* @__PURE__ */ jsx51("p", { className: "mb-1 text-sm uppercase tracking-wide text-muted-foreground", children: "Sending" }),
5349
+ /* @__PURE__ */ jsx51("p", { className: "mb-1 text-sm uppercase tracking-wide text-muted-foreground", children: reviewLabels?.recipientReceives ?? "Recipient receives" }),
5344
5350
  /* @__PURE__ */ jsx51("h1", { className: "mb-2 text-4xl font-bold", children: displayAmount.toLocaleString() }),
5345
5351
  /* @__PURE__ */ jsx51("p", { className: "text-base text-muted-foreground", children: selectedAssetId === "BTC" ? "sats" : selectedAsset?.ticker ?? "units" })
5346
5352
  ] }),
@@ -5368,17 +5374,20 @@ function WithdrawConfirmation({
5368
5374
  /* @__PURE__ */ jsx51("span", { className: "text-sm text-muted-foreground", children: "Asset" }),
5369
5375
  /* @__PURE__ */ jsx51("span", { className: "text-sm font-bold text-white", children: selectedAsset?.ticker ?? selectedAssetId })
5370
5376
  ] }),
5371
- estimatedFee > 0 && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-between px-5 py-4", children: [
5372
- /* @__PURE__ */ jsx51("span", { className: "text-sm text-muted-foreground", children: "Network Fee" }),
5373
- /* @__PURE__ */ jsxs38("div", { className: "flex flex-col items-end", children: [
5374
- /* @__PURE__ */ jsxs38("span", { className: "text-sm text-white", children: [
5375
- "~",
5376
- estimatedFee.toLocaleString(),
5377
- " sats"
5378
- ] }),
5379
- /* @__PURE__ */ jsx51("span", { className: "mt-0.5 text-xxs font-bold capitalize tracking-wider text-primary", children: feeRate })
5380
- ] })
5381
- ] }),
5377
+ estimatedFee > 0 && /* @__PURE__ */ jsxs38(
5378
+ "div",
5379
+ {
5380
+ "data-testid": "payment-review-fee",
5381
+ className: "flex items-center justify-between px-5 py-4",
5382
+ children: [
5383
+ /* @__PURE__ */ jsx51("span", { className: "text-sm text-muted-foreground", children: reviewLabels?.estimatedNetworkFee ?? "Estimated network fee" }),
5384
+ /* @__PURE__ */ jsxs38("div", { className: "flex flex-col items-end", children: [
5385
+ /* @__PURE__ */ jsx51("span", { className: "text-sm text-white", children: `${feeIsExact ? "" : "~"}${estimatedFee.toLocaleString()} sats` }),
5386
+ /* @__PURE__ */ jsx51("span", { className: "mt-0.5 text-xxs font-bold capitalize tracking-wider text-primary", children: feeRate })
5387
+ ] })
5388
+ ]
5389
+ }
5390
+ ),
5382
5391
  addressType === "rgb" && decodedRgbInvoice?.recipient_type === "Witness" && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-between px-5 py-4", children: [
5383
5392
  /* @__PURE__ */ jsx51("span", { className: "text-sm text-muted-foreground", children: "Witness Amount" }),
5384
5393
  /* @__PURE__ */ jsxs38("span", { className: "text-sm text-white", children: [
@@ -5387,14 +5396,21 @@ function WithdrawConfirmation({
5387
5396
  ] })
5388
5397
  ] })
5389
5398
  ] }),
5390
- selectedAssetId === "BTC" && estimatedFee > 0 && /* @__PURE__ */ jsxs38("div", { className: "flex items-center justify-between rounded-2xl bg-primary/10 p-5 px-2 shadow-inner", children: [
5391
- /* @__PURE__ */ jsx51("span", { className: "text-sm font-bold uppercase tracking-wider text-primary", children: "Total to deduct" }),
5392
- /* @__PURE__ */ jsxs38("span", { className: "text-xl font-bold text-white", children: [
5393
- (Math.round(parseFloat(amount) || 0) + estimatedFee).toLocaleString(),
5394
- " ",
5395
- /* @__PURE__ */ jsx51("span", { className: "text-lg text-primary/70", children: "sats" })
5396
- ] })
5397
- ] }),
5399
+ selectedAssetId === "BTC" && estimatedFee > 0 && /* @__PURE__ */ jsxs38(
5400
+ "div",
5401
+ {
5402
+ "data-testid": "payment-review-total",
5403
+ className: "flex items-center justify-between rounded-2xl bg-primary/10 p-5 shadow-inner",
5404
+ children: [
5405
+ /* @__PURE__ */ jsx51("span", { className: "text-sm font-bold uppercase tracking-wider text-primary", children: reviewLabels?.totalDeducted ?? "Total deducted" }),
5406
+ /* @__PURE__ */ jsxs38("span", { className: "text-xl font-bold text-white", children: [
5407
+ (Math.round(parseFloat(amount) || 0) + estimatedFee).toLocaleString(),
5408
+ " ",
5409
+ /* @__PURE__ */ jsx51("span", { className: "text-lg text-primary/70", children: "sats" })
5410
+ ] })
5411
+ ]
5412
+ }
5413
+ ),
5398
5414
  isPollingStatus && /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-3 rounded-xl bg-primary/10 p-4", children: [
5399
5415
  /* @__PURE__ */ jsx51("span", { className: "material-symbols-outlined animate-spin text-primary", children: "progress_activity" }),
5400
5416
  /* @__PURE__ */ jsxs38("div", { children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaleido-ui",
3
- "version": "0.1.120",
3
+ "version": "0.1.122",
4
4
  "description": "KaleidoSwap shared UI library \u2014 design tokens, web components (Tailwind + Radix), and React Native components extending WDK UI Kit",
5
5
  "license": "MIT",
6
6
  "type": "module",