kaleido-ui 0.1.87 → 0.1.89

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.
@@ -104,6 +104,7 @@ __export(web_exports, {
104
104
  KaleidoScopeHeroAnimation: () => KaleidoScopeHeroAnimation,
105
105
  Label: () => Label2,
106
106
  LightningNetworkIcon: () => LightningNetworkIcon,
107
+ LiquidNetworkIcon: () => LiquidNetworkIcon,
107
108
  ListSkeletonRows: () => ListSkeletonRows,
108
109
  LoadingCard: () => LoadingCard,
109
110
  MethodChoiceChip: () => MethodChoiceChip,
@@ -2214,6 +2215,9 @@ function NostrNetworkIcon({
2214
2215
  function RgbNetworkIcon({ className = "size-3.5", alt = "RGB" }) {
2215
2216
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: protocolIcons["RGB20"], alt, className: cn("object-contain", className) });
2216
2217
  }
2218
+ function LiquidNetworkIcon({ className = "size-3.5", alt = "Liquid" }) {
2219
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("img", { src: protocolIcons.Liquid, alt, className: cn("object-contain", className) });
2220
+ }
2217
2221
 
2218
2222
  // src/web/components/action-tile.tsx
2219
2223
  var import_jsx_runtime26 = require("react/jsx-runtime");
@@ -3386,6 +3390,7 @@ function BalanceBreakdown({
3386
3390
  btcLightning,
3387
3391
  btcSpark,
3388
3392
  btcArkade,
3393
+ btcLiquid = 0,
3389
3394
  totalBTC,
3390
3395
  rgbAssets,
3391
3396
  accounts,
@@ -3402,6 +3407,7 @@ function BalanceBreakdown({
3402
3407
  btcLightningPending = false,
3403
3408
  btcSparkPending = false,
3404
3409
  btcArkadePending = false,
3410
+ btcLiquidPending = false,
3405
3411
  onRefresh,
3406
3412
  isRefreshing = false,
3407
3413
  onNavigate,
@@ -3571,6 +3577,21 @@ function BalanceBreakdown({
3571
3577
  formatFiat: formatFiatValue
3572
3578
  }
3573
3579
  ),
3580
+ (btcLiquid > 0 || btcLiquidPending) && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3581
+ NetworkRow,
3582
+ {
3583
+ icon: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(LiquidNetworkIcon, { className: "size-3.5" }),
3584
+ iconColor: "",
3585
+ dotColor: "bg-network-liquid",
3586
+ label: "BTC on Liquid",
3587
+ sublabel: "Liquid L-BTC balance",
3588
+ amount: btcLiquid,
3589
+ isPending: btcLiquidPending,
3590
+ visible: balanceVisible,
3591
+ format,
3592
+ formatFiat: formatFiatValue
3593
+ }
3594
+ ),
3574
3595
  rgbAssets.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(RgbAssetsBreakdown, { assets: rgbAssets, balanceVisible }),
3575
3596
  tokenValueSats !== void 0 && tokenValueSats > 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "mt-4 pt-1", children: [
3576
3597
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-3 text-xxs font-bold uppercase tracking-widest text-white/30", children: "Token Holdings" }),
@@ -3749,6 +3770,16 @@ var import_jsx_runtime38 = require("react/jsx-runtime");
3749
3770
  function NetworkMiniBadge({ iconUrl, label }) {
3750
3771
  return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: cn(iconBadgeOverlayClass, "overflow-hidden"), children: iconUrl ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("img", { src: iconUrl, alt: label ?? "", className: "h-full w-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "flex h-full w-full items-center justify-center bg-muted text-xxs font-bold uppercase leading-none text-muted-foreground", children: label?.charAt(0) }) });
3751
3772
  }
3773
+ function readableTagColor(color) {
3774
+ const raw = color.replace("#", "");
3775
+ const hex = raw.length === 3 ? raw.split("").map((char) => char + char).join("") : raw;
3776
+ if (!/^[0-9a-fA-F]{6}$/.test(hex)) return color;
3777
+ const r = parseInt(hex.slice(0, 2), 16);
3778
+ const g = parseInt(hex.slice(2, 4), 16);
3779
+ const b = parseInt(hex.slice(4, 6), 16);
3780
+ const luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
3781
+ return luminance < 0.45 ? `color-mix(in srgb, ${color} 45%, white)` : color;
3782
+ }
3752
3783
  function AssetSelector({
3753
3784
  label,
3754
3785
  selectedTicker,
@@ -3840,7 +3871,7 @@ function AssetSelector({
3840
3871
  ),
3841
3872
  style: option.networkTag.color ? {
3842
3873
  backgroundColor: `color-mix(in srgb, ${option.networkTag.color} 15%, transparent)`,
3843
- color: option.networkTag.color
3874
+ color: readableTagColor(option.networkTag.color)
3844
3875
  } : void 0,
3845
3876
  children: option.networkTag.label
3846
3877
  }
@@ -4877,7 +4908,7 @@ function WithdrawAmountInput({
4877
4908
  const customFeeEnabled = typeof setFeeRateMode === "function";
4878
4909
  const activeFeeMode = feeRateMode ?? feeRate;
4879
4910
  const unitLabel = selectedAssetId === "BTC" ? "sats" : selectedAssetTicker ?? "units";
4880
- const showAmountInput = addressType === "bitcoin" || addressType === "spark" || addressType === "arkade" || addressType === "lightning-address" || addressType === "lnurl-pay" || addressType === "rgb" && !decodedRgbInvoice?.assignment?.value || addressType === "lightning" && !decodedLnInvoice?.amount && !decodedLnInvoice?.asset_amount;
4911
+ const showAmountInput = addressType === "bitcoin" || addressType === "spark" || addressType === "arkade" || addressType === "liquid" || addressType === "lightning-address" || addressType === "lnurl-pay" || addressType === "rgb" && !decodedRgbInvoice?.assignment?.value || addressType === "lightning" && !decodedLnInvoice?.amount && !decodedLnInvoice?.asset_amount;
4881
4912
  const enteredNum = parseFloat(amount.replace(/[^\d.-]/g, "") || "0") || 0;
4882
4913
  const balanceNum = parseFloat(formattedBalance.replace(/,/g, "") || "0") || 0;
4883
4914
  const isOverBalance = enteredNum > 0 && balanceNum > 0 && enteredNum > balanceNum;
@@ -5146,9 +5177,9 @@ function WithdrawInvoiceInfo({
5146
5177
  ] })
5147
5178
  ] });
5148
5179
  }
5149
- if (addressType === "bitcoin" || addressType === "arkade") {
5180
+ if (addressType === "bitcoin" || addressType === "arkade" || addressType === "liquid") {
5150
5181
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "rounded-2xl bg-card p-5 shadow-inner", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between text-sm", children: [
5151
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "text-muted-foreground", children: addressType === "arkade" ? "Available Arkade Balance" : "Available Balance" }),
5182
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "text-muted-foreground", children: addressType === "arkade" ? "Available Arkade Balance" : addressType === "liquid" ? "Available Liquid Balance" : "Available Balance" }),
5152
5183
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("span", { className: "font-bold text-white", children: [
5153
5184
  formatRawAmount(assetBalance, getAssetPrecisionForId(allAssets, selectedAssetId)),
5154
5185
  " ",
@@ -7480,6 +7511,13 @@ var ACCOUNT_META = {
7480
7511
  accentText: "text-network-arkade",
7481
7512
  accentBorder: "border-network-arkade/30",
7482
7513
  icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7514
+ },
7515
+ LIQUID: {
7516
+ shortLabel: "Liquid",
7517
+ accentBg: "bg-network-liquid/10",
7518
+ accentText: "text-network-liquid",
7519
+ accentBorder: "border-network-liquid/30",
7520
+ icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(LiquidNetworkIcon, { className: "h-2.5 w-2.5" })
7483
7521
  }
7484
7522
  };
7485
7523
  var METHOD_META = {
@@ -7750,6 +7788,18 @@ var NETWORK_OPTIONS = {
7750
7788
  accentBg: "bg-network-arkade/10",
7751
7789
  accentBorder: "border-network-arkade/30",
7752
7790
  accentText: "text-network-arkade"
7791
+ },
7792
+ LIQUID: {
7793
+ // Liquid is its own chain; reuse the "onchain" network key for the modal's
7794
+ // network callback (there's no dedicated Liquid DepositNetworkKey).
7795
+ network: "onchain",
7796
+ account: "LIQUID",
7797
+ label: "Liquid",
7798
+ description: "Receive L-BTC or a Liquid asset (USDt) via a confidential Liquid address.",
7799
+ icon: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(LiquidNetworkIcon, { className: "h-[18px] w-[18px]" }),
7800
+ accentBg: "bg-network-liquid/10",
7801
+ accentBorder: "border-network-liquid/30",
7802
+ accentText: "text-network-liquid"
7753
7803
  }
7754
7804
  };
7755
7805
  function DepositNetworkDefaultModal({
@@ -8210,7 +8260,8 @@ var import_jsx_runtime80 = require("react/jsx-runtime");
8210
8260
  var ACCOUNT_TITLES = {
8211
8261
  RGB: "RGB & Lightning",
8212
8262
  SPARK: "Spark",
8213
- ARKADE: "Arkade"
8263
+ ARKADE: "Arkade",
8264
+ LIQUID: "Liquid"
8214
8265
  };
8215
8266
  var METHOD_META2 = {
8216
8267
  bitcoin_l1: { label: "Bitcoin address", summary: "Standard on-chain BTC transfer." },
@@ -8407,12 +8458,14 @@ var import_jsx_runtime81 = require("react/jsx-runtime");
8407
8458
  var ADD_ASSET_SUBTITLE = {
8408
8459
  RGB: "RGB asset on Bitcoin",
8409
8460
  SPARK: "Spark-native asset",
8410
- ARKADE: "Arkade-native asset"
8461
+ ARKADE: "Arkade-native asset",
8462
+ LIQUID: "L-BTC or Liquid asset"
8411
8463
  };
8412
8464
  var PROTOCOL_BADGE = {
8413
8465
  RGB: { label: "RGB", className: "bg-network-rgb-chip text-network-rgb-text" },
8414
8466
  SPARK: { label: "Spark", className: "bg-network-spark-chip text-network-spark-text" },
8415
- ARKADE: { label: "Arkade", className: "bg-network-arkade-chip text-network-arkade-text" }
8467
+ ARKADE: { label: "Arkade", className: "bg-network-arkade-chip text-network-arkade-text" },
8468
+ LIQUID: { label: "Liquid", className: "bg-network-liquid-chip text-network-liquid-text" }
8416
8469
  };
8417
8470
  function formatAssetBalance(asset) {
8418
8471
  const raw = asset.balance ?? 0;
@@ -8438,7 +8491,8 @@ function DepositAssetSelection({
8438
8491
  handleContinueToGenerate,
8439
8492
  isRgbConnected,
8440
8493
  isSparkConnected,
8441
- isArkadeConnected
8494
+ isArkadeConnected,
8495
+ isLiquidConnected = false
8442
8496
  }) {
8443
8497
  const btcAsset = filteredAssets.find((asset) => asset.ticker === "BTC");
8444
8498
  const ownedAssets = filteredAssets.filter((asset) => asset.ticker !== "BTC").slice().sort((a, b) => (b.balance ?? 0) - (a.balance ?? 0));
@@ -8478,6 +8532,15 @@ function DepositAssetSelection({
8478
8532
  idleClass: "bg-network-arkade/10 hover:bg-network-arkade/20",
8479
8533
  activeClass: "bg-network-arkade/25",
8480
8534
  titleHoverClass: "group-hover:text-network-arkade"
8535
+ },
8536
+ {
8537
+ account: "LIQUID",
8538
+ title: "New Liquid Asset",
8539
+ ticker: "LIQUID",
8540
+ enabled: isLiquidConnected,
8541
+ idleClass: "bg-network-liquid/10 hover:bg-network-liquid/20",
8542
+ activeClass: "bg-network-liquid/25",
8543
+ titleHoverClass: "group-hover:text-network-liquid"
8481
8544
  }
8482
8545
  ].filter((option) => option.enabled);
8483
8546
  return /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
@@ -8668,7 +8731,7 @@ function DepositAssetSelection({
8668
8731
  handleAddNewAsset(option.account);
8669
8732
  },
8670
8733
  children: [
8671
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8734
+ option.account === "LIQUID" ? /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-network-liquid/10", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(LiquidNetworkIcon, { className: "size-5" }) }) : /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8672
8735
  /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("div", { className: "min-w-0 flex-1", children: [
8673
8736
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8674
8737
  /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
@@ -8688,7 +8751,8 @@ var import_jsx_runtime82 = require("react/jsx-runtime");
8688
8751
  var ACCOUNT_TITLES2 = {
8689
8752
  RGB: "RGB & Lightning",
8690
8753
  SPARK: "Spark",
8691
- ARKADE: "Arkade"
8754
+ ARKADE: "Arkade",
8755
+ LIQUID: "Liquid"
8692
8756
  };
8693
8757
  function getAssetFamily(assetId, ticker) {
8694
8758
  if (assetId === "BTC") return "BTC";
@@ -8789,7 +8853,10 @@ function DepositInvoiceGeneration({
8789
8853
  const routeAccounts = {
8790
8854
  RGB: isRgbConnected,
8791
8855
  SPARK: isSparkConnected,
8792
- ARKADE: isArkadeConnected
8856
+ ARKADE: isArkadeConnected,
8857
+ // Liquid isn't offered by kaleido-ui's own DepositInvoiceGeneration; the
8858
+ // KaleidoSwap extension uses its own component for the Liquid receive path.
8859
+ LIQUID: false
8793
8860
  };
8794
8861
  const availableAccounts = resolveReceiveAccounts({ assetFamily, accounts: routeAccounts });
8795
8862
  const methodOptions = resolveReceiveMethodOptions({
@@ -9080,6 +9147,7 @@ function DepositInvoiceGeneration({
9080
9147
  KaleidoScopeHeroAnimation,
9081
9148
  Label,
9082
9149
  LightningNetworkIcon,
9150
+ LiquidNetworkIcon,
9083
9151
  ListSkeletonRows,
9084
9152
  LoadingCard,
9085
9153
  MethodChoiceChip,
@@ -339,6 +339,12 @@ declare function NostrNetworkIcon({ className, alt, }: NetworkIconProps): react_
339
339
  * so consumers get the canonical logo without serving their own copy.
340
340
  */
341
341
  declare function RgbNetworkIcon({ className, alt }: NetworkIconProps): react_jsx_runtime.JSX.Element;
342
+ /**
343
+ * Liquid Network mark. Like RgbNetworkIcon, renders the canonical Liquid logo
344
+ * bundled with the library (protocolIcons), so every surface shows the official
345
+ * mark rather than a placeholder — matching the extension's LiquidIcon.
346
+ */
347
+ declare function LiquidNetworkIcon({ className, alt }: NetworkIconProps): react_jsx_runtime.JSX.Element;
342
348
 
343
349
  interface ActionTileProps {
344
350
  icon: ReactNode;
@@ -666,6 +672,8 @@ interface BalanceBreakdownProps {
666
672
  btcLightning: number;
667
673
  btcSpark: number;
668
674
  btcArkade: number;
675
+ /** L-BTC — BTC on the Liquid Network. Row shown only when > 0 or pending. */
676
+ btcLiquid?: number;
669
677
  totalBTC: number;
670
678
  rgbAssets: BalanceBreakdownAsset[];
671
679
  accounts: BalanceBreakdownAccounts;
@@ -682,6 +690,7 @@ interface BalanceBreakdownProps {
682
690
  btcLightningPending?: boolean;
683
691
  btcSparkPending?: boolean;
684
692
  btcArkadePending?: boolean;
693
+ btcLiquidPending?: boolean;
685
694
  onRefresh?: () => void;
686
695
  isRefreshing?: boolean;
687
696
  onNavigate?: (view: 'deposit' | 'swap' | 'withdraw') => void;
@@ -694,7 +703,7 @@ interface BalanceBreakdownProps {
694
703
  */
695
704
  tokenValueSats?: number;
696
705
  }
697
- declare function BalanceBreakdown({ btcOnchain, btcLightning, btcSpark, btcArkade, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, onRefresh, isRefreshing, onNavigate, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
706
+ declare function BalanceBreakdown({ btcOnchain, btcLightning, 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;
698
707
 
699
708
  interface AssetSelectorOption {
700
709
  id: string;
@@ -868,7 +877,7 @@ interface ActivityDetailRowProps {
868
877
  }
869
878
  declare function ActivityDetailRow({ label, value, fullValue, onCopy, isCopied, }: ActivityDetailRowProps): react_jsx_runtime.JSX.Element;
870
879
 
871
- type WithdrawAddressType = 'unknown' | 'bitcoin' | 'spark' | 'arkade' | 'lightning' | 'lightning-address' | 'lnurl-pay' | 'rgb' | 'invalid';
880
+ type WithdrawAddressType = 'unknown' | 'bitcoin' | 'spark' | 'arkade' | 'liquid' | 'lightning' | 'lightning-address' | 'lnurl-pay' | 'rgb' | 'invalid';
872
881
  interface WithdrawDestinationInputProps {
873
882
  destination: string;
874
883
  setDestination: (value: string) => void;
@@ -1412,7 +1421,7 @@ interface KaleidoScopeHeroAnimationProps {
1412
1421
  }
1413
1422
  declare const KaleidoScopeHeroAnimation: FC<KaleidoScopeHeroAnimationProps>;
1414
1423
 
1415
- type DepositAccountId = 'RGB' | 'SPARK' | 'ARKADE';
1424
+ type DepositAccountId = 'RGB' | 'SPARK' | 'ARKADE' | 'LIQUID';
1416
1425
  type DepositTransferMethod = 'bitcoin_l1' | 'lightning' | 'spark' | 'arkade' | 'boarding' | 'submarine_swap';
1417
1426
  type DepositNetworkKey = 'onchain' | 'lightning' | 'spark' | 'arkade';
1418
1427
  interface DepositNetworkConfigEntry {
@@ -1674,8 +1683,9 @@ interface DepositAssetSelectionProps<TView extends string = string> {
1674
1683
  isRgbConnected: boolean;
1675
1684
  isSparkConnected: boolean;
1676
1685
  isArkadeConnected: boolean;
1686
+ isLiquidConnected?: boolean;
1677
1687
  }
1678
- declare function DepositAssetSelection<TView extends string = string>({ setCurrentView, isNewAsset, newAssetAccount, newAssetId, setNewAssetId, searchQuery, setSearchQuery, filteredAssets, onSelectAsset, handleAddNewAsset, handleContinueToGenerate, isRgbConnected, isSparkConnected, isArkadeConnected, }: DepositAssetSelectionProps<TView>): react_jsx_runtime.JSX.Element;
1688
+ declare function DepositAssetSelection<TView extends string = string>({ setCurrentView, isNewAsset, newAssetAccount, newAssetId, setNewAssetId, searchQuery, setSearchQuery, filteredAssets, onSelectAsset, handleAddNewAsset, handleContinueToGenerate, isRgbConnected, isSparkConnected, isArkadeConnected, isLiquidConnected, }: DepositAssetSelectionProps<TView>): react_jsx_runtime.JSX.Element;
1679
1689
 
1680
1690
  interface DepositInvoiceAsset {
1681
1691
  asset_id?: string;
@@ -1783,4 +1793,4 @@ declare function getFallbackAssetIconUrl(seed: string): string;
1783
1793
  */
1784
1794
  declare function useAssetIcon(ticker: string, cdnBaseUrl?: string): string;
1785
1795
 
1786
- export { AccountCapabilitiesCard, type AccountCapabilitiesCardProps, AccountChoiceChip, AccountHeaderIcons, AccountInfoGrid, AccountNetworkNotice, AccountNetworkPicker, AccountNetworkSelector, AccountNotice, type AccountSettingsNetwork, type AccountSettingsProtocol, AccountSettingsRow, AccountSettingsShell, AccountStatusPills, type AccountStatusTabItem, AccountStatusTabs, type AccountStatusTabsProps, ActionTile, type ActionTileProps, ActivityDetailRow, type ActivityDetailRowProps, ActivityFilterBar, type ActivityFilterBarProps, ActivityList, type ActivityListItem, type ActivityListProps, type ActivityNetworkFilterOption, type ActivityNetworkFilterValue, ActivityNetworkFilters, type ActivityNetworkFiltersProps, ActivityRow, type ActivityRowProps, type ActivityStatusOption, type ActivityTypeTabCounts, type ActivityTypeTabValue, ActivityTypeTabs, AlertBanner, type AmountDisplayOptions, type AmountDisplayUnit, AppIcon, type AppIconName, type AppIconProps, ArkadeNetworkIcon, AssetCard, type AssetCardProps, AssetIcon, AssetSelector, type AssetSelectorCategory, type AssetSelectorOption, type AssetSelectorProps, BalanceBreakdown, type BalanceBreakdownAccounts, type BalanceBreakdownAsset, type BalanceBreakdownNodeInfo, type BalanceBreakdownProps, BottomNav, type BottomNavItem, type BottomNavProps, BottomSheet, type BottomSheetAction, type BottomSheetProps, BtcUnifiedReceive, type BtcUnifiedReceiveAddress, type BtcUnifiedReceiveProps, type BtcUnifiedReceiveResult, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CopyIcon, type DepositAccountId, DepositAssetSelection, type DepositAssetSelectionProps, type DepositGeneratedAsset, DepositGeneratedView, type DepositGeneratedViewProps, type DepositGenerationController, type DepositInvoiceAsset, DepositInvoiceGeneration, type DepositInvoiceGenerationProps, type DepositNetworkConfigEntry, DepositNetworkDefaultModal, type DepositNetworkDefaultModalProps, type DepositNetworkKey, type DepositNetworkOption, DepositPreGeneration, type DepositPreGenerationAsset, type DepositPreGenerationProps, type DepositSelectionAsset, DepositSuccessScreen, type DepositSuccessScreenProps, type DepositTransferMethod, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisclosureCard, type DisclosureCardProps, DotPagination, type DotPaginationProps, type DotTone, ErrorBoundary, ErrorCard, type ErrorCardProps, ExpandIcon, ExtensionPageFrame, type ExtensionPageFrameProps, FadeOverlay, type FadeOverlayProps, FilterChipGroup, type FilterChipGroupProps, type FilterChipOption, FilterDropdown, type FilterDropdownOption, type FilterDropdownProps, HeadlineGradient, type HeadlineGradientProps, Icon, type IconName, type IconProps, Icons, InfoPanel, type InfoPanelProps, InlineAction, InlineSelector, type InlineSelectorOption, type InlineSelectorProps, Input, type InputProps, InvoiceStatusBanner, KaleidoScopeHeroAnimation, type KaleidoScopeHeroAnimationProps, Label, LightningNetworkIcon, ListSkeletonRows, type ListSkeletonRowsProps, LoadingCard, type LoadingCardProps, MethodChoiceChip, MetricCard, type MetricCardProps, MobileHeroAnimation, type MobileHeroAnimationProps, NETWORK_CONFIG, NetworkBadge, type NetworkBadgeProps, type NetworkIconProps, NetworkInfoDisclosure, NetworkStatusChip, type NetworkStatusChipProps, type NetworkType, NostrNetworkIcon, NumberInput, type NumberInputProps, OptionSelector, type OptionSelectorOption, type OptionSelectorProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PaidOverlay, QrCode, type QrCodeProps, RecoveryPhraseCard, type RecoveryPhraseCardProps, RgbNetworkIcon, ScrollArea, type ScrollAreaProps, SecretRevealCard, type SecretRevealCardProps, SectionHeader, type SectionHeaderProps, SectionLabel, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SelectableCard, type SelectableCardProps, SettingItem, SettingsActionButton, SettingsSectionCard, type SettingsSectionCardProps, SettingsSelectorRow, type SettingsSelectorRowProps, SettingsStatusPanel, SettingsTile, type SettingsTileProps, Skeleton, type SkeletonProps, type SkeletonTone, SparkNetworkIcon, StatusBadge, StatusIconBadge, type StatusIconBadgeProps, type StatusType, StepperNumberInput, type StepperNumberInputProps, SwapInputCard, type SwapInputCardProps, Switch, SwitchRow, type SwitchRowProps, Tabs, TabsContent, TabsList, TabsTrigger, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, ToneBadge, type ToneBadgeProps, TransactionCard, type TransactionCardProps, TransferRouteCard, WalletAssetList, type WalletAssetListEmptyState, type WalletAssetListItem, type WalletAssetListProps, type WithdrawAddressType, WithdrawAmountInput, type WithdrawAmountInputProps, WithdrawConfirmation, type WithdrawConfirmationProps, type WithdrawConfirmationRgbInvoice, type WithdrawDecodedLnInvoice, type WithdrawDecodedRgbInvoice, WithdrawDestinationInput, type WithdrawDestinationInputProps, type WithdrawInvoiceAsset, WithdrawInvoiceInfo, type WithdrawInvoiceInfoLnInvoice, type WithdrawInvoiceInfoProps, type WithdrawInvoiceInfoRgbInvoice, type WithdrawLnurlPayData, type WithdrawRouteOption, WithdrawRouteSelector, type WithdrawRouteSelectorProps, type WithdrawRouteSummary, WithdrawSuccess, type WithdrawSuccessProps, buttonVariants, cn, formatDisplayAmountText, getAccountNetworkLabel, getAccountNetworkUi, getAccountStatusUi, getActivityNetworkFilterIcon, getAssetIconUrl, getFallbackAssetIconUrl, toast, useAssetIcon, useToast };
1796
+ export { AccountCapabilitiesCard, type AccountCapabilitiesCardProps, AccountChoiceChip, AccountHeaderIcons, AccountInfoGrid, AccountNetworkNotice, AccountNetworkPicker, AccountNetworkSelector, AccountNotice, type AccountSettingsNetwork, type AccountSettingsProtocol, AccountSettingsRow, AccountSettingsShell, AccountStatusPills, type AccountStatusTabItem, AccountStatusTabs, type AccountStatusTabsProps, ActionTile, type ActionTileProps, ActivityDetailRow, type ActivityDetailRowProps, ActivityFilterBar, type ActivityFilterBarProps, ActivityList, type ActivityListItem, type ActivityListProps, type ActivityNetworkFilterOption, type ActivityNetworkFilterValue, ActivityNetworkFilters, type ActivityNetworkFiltersProps, ActivityRow, type ActivityRowProps, type ActivityStatusOption, type ActivityTypeTabCounts, type ActivityTypeTabValue, ActivityTypeTabs, AlertBanner, type AmountDisplayOptions, type AmountDisplayUnit, AppIcon, type AppIconName, type AppIconProps, ArkadeNetworkIcon, AssetCard, type AssetCardProps, AssetIcon, AssetSelector, type AssetSelectorCategory, type AssetSelectorOption, type AssetSelectorProps, BalanceBreakdown, type BalanceBreakdownAccounts, type BalanceBreakdownAsset, type BalanceBreakdownNodeInfo, type BalanceBreakdownProps, BottomNav, type BottomNavItem, type BottomNavProps, BottomSheet, type BottomSheetAction, type BottomSheetProps, BtcUnifiedReceive, type BtcUnifiedReceiveAddress, type BtcUnifiedReceiveProps, type BtcUnifiedReceiveResult, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CopyIcon, type DepositAccountId, DepositAssetSelection, type DepositAssetSelectionProps, type DepositGeneratedAsset, DepositGeneratedView, type DepositGeneratedViewProps, type DepositGenerationController, type DepositInvoiceAsset, DepositInvoiceGeneration, type DepositInvoiceGenerationProps, type DepositNetworkConfigEntry, DepositNetworkDefaultModal, type DepositNetworkDefaultModalProps, type DepositNetworkKey, type DepositNetworkOption, DepositPreGeneration, type DepositPreGenerationAsset, type DepositPreGenerationProps, type DepositSelectionAsset, DepositSuccessScreen, type DepositSuccessScreenProps, type DepositTransferMethod, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisclosureCard, type DisclosureCardProps, DotPagination, type DotPaginationProps, type DotTone, ErrorBoundary, ErrorCard, type ErrorCardProps, ExpandIcon, ExtensionPageFrame, type ExtensionPageFrameProps, FadeOverlay, type FadeOverlayProps, FilterChipGroup, type FilterChipGroupProps, type FilterChipOption, FilterDropdown, type FilterDropdownOption, type FilterDropdownProps, HeadlineGradient, type HeadlineGradientProps, Icon, type IconName, type IconProps, Icons, InfoPanel, type InfoPanelProps, InlineAction, InlineSelector, type InlineSelectorOption, type InlineSelectorProps, Input, type InputProps, InvoiceStatusBanner, KaleidoScopeHeroAnimation, type KaleidoScopeHeroAnimationProps, Label, LightningNetworkIcon, LiquidNetworkIcon, ListSkeletonRows, type ListSkeletonRowsProps, LoadingCard, type LoadingCardProps, MethodChoiceChip, MetricCard, type MetricCardProps, MobileHeroAnimation, type MobileHeroAnimationProps, NETWORK_CONFIG, NetworkBadge, type NetworkBadgeProps, type NetworkIconProps, NetworkInfoDisclosure, NetworkStatusChip, type NetworkStatusChipProps, type NetworkType, NostrNetworkIcon, NumberInput, type NumberInputProps, OptionSelector, type OptionSelectorOption, type OptionSelectorProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PaidOverlay, QrCode, type QrCodeProps, RecoveryPhraseCard, type RecoveryPhraseCardProps, RgbNetworkIcon, ScrollArea, type ScrollAreaProps, SecretRevealCard, type SecretRevealCardProps, SectionHeader, type SectionHeaderProps, SectionLabel, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SelectableCard, type SelectableCardProps, SettingItem, SettingsActionButton, SettingsSectionCard, type SettingsSectionCardProps, SettingsSelectorRow, type SettingsSelectorRowProps, SettingsStatusPanel, SettingsTile, type SettingsTileProps, Skeleton, type SkeletonProps, type SkeletonTone, SparkNetworkIcon, StatusBadge, StatusIconBadge, type StatusIconBadgeProps, type StatusType, StepperNumberInput, type StepperNumberInputProps, SwapInputCard, type SwapInputCardProps, Switch, SwitchRow, type SwitchRowProps, Tabs, TabsContent, TabsList, TabsTrigger, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, ToneBadge, type ToneBadgeProps, TransactionCard, type TransactionCardProps, TransferRouteCard, WalletAssetList, type WalletAssetListEmptyState, type WalletAssetListItem, type WalletAssetListProps, type WithdrawAddressType, WithdrawAmountInput, type WithdrawAmountInputProps, WithdrawConfirmation, type WithdrawConfirmationProps, type WithdrawConfirmationRgbInvoice, type WithdrawDecodedLnInvoice, type WithdrawDecodedRgbInvoice, WithdrawDestinationInput, type WithdrawDestinationInputProps, type WithdrawInvoiceAsset, WithdrawInvoiceInfo, type WithdrawInvoiceInfoLnInvoice, type WithdrawInvoiceInfoProps, type WithdrawInvoiceInfoRgbInvoice, type WithdrawLnurlPayData, type WithdrawRouteOption, WithdrawRouteSelector, type WithdrawRouteSelectorProps, type WithdrawRouteSummary, WithdrawSuccess, type WithdrawSuccessProps, buttonVariants, cn, formatDisplayAmountText, getAccountNetworkLabel, getAccountNetworkUi, getAccountStatusUi, getActivityNetworkFilterIcon, getAssetIconUrl, getFallbackAssetIconUrl, toast, useAssetIcon, useToast };
@@ -339,6 +339,12 @@ declare function NostrNetworkIcon({ className, alt, }: NetworkIconProps): react_
339
339
  * so consumers get the canonical logo without serving their own copy.
340
340
  */
341
341
  declare function RgbNetworkIcon({ className, alt }: NetworkIconProps): react_jsx_runtime.JSX.Element;
342
+ /**
343
+ * Liquid Network mark. Like RgbNetworkIcon, renders the canonical Liquid logo
344
+ * bundled with the library (protocolIcons), so every surface shows the official
345
+ * mark rather than a placeholder — matching the extension's LiquidIcon.
346
+ */
347
+ declare function LiquidNetworkIcon({ className, alt }: NetworkIconProps): react_jsx_runtime.JSX.Element;
342
348
 
343
349
  interface ActionTileProps {
344
350
  icon: ReactNode;
@@ -666,6 +672,8 @@ interface BalanceBreakdownProps {
666
672
  btcLightning: number;
667
673
  btcSpark: number;
668
674
  btcArkade: number;
675
+ /** L-BTC — BTC on the Liquid Network. Row shown only when > 0 or pending. */
676
+ btcLiquid?: number;
669
677
  totalBTC: number;
670
678
  rgbAssets: BalanceBreakdownAsset[];
671
679
  accounts: BalanceBreakdownAccounts;
@@ -682,6 +690,7 @@ interface BalanceBreakdownProps {
682
690
  btcLightningPending?: boolean;
683
691
  btcSparkPending?: boolean;
684
692
  btcArkadePending?: boolean;
693
+ btcLiquidPending?: boolean;
685
694
  onRefresh?: () => void;
686
695
  isRefreshing?: boolean;
687
696
  onNavigate?: (view: 'deposit' | 'swap' | 'withdraw') => void;
@@ -694,7 +703,7 @@ interface BalanceBreakdownProps {
694
703
  */
695
704
  tokenValueSats?: number;
696
705
  }
697
- declare function BalanceBreakdown({ btcOnchain, btcLightning, btcSpark, btcArkade, totalBTC, rgbAssets, accounts, nodeInfo, balanceVisible, format, formatFiatValue, unit, label, cycle, isLoading, isPartial, btcOnchainPending, btcLightningPending, btcSparkPending, btcArkadePending, onRefresh, isRefreshing, onNavigate, compact, tokenValueSats, }: BalanceBreakdownProps): react_jsx_runtime.JSX.Element;
706
+ declare function BalanceBreakdown({ btcOnchain, btcLightning, 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;
698
707
 
699
708
  interface AssetSelectorOption {
700
709
  id: string;
@@ -868,7 +877,7 @@ interface ActivityDetailRowProps {
868
877
  }
869
878
  declare function ActivityDetailRow({ label, value, fullValue, onCopy, isCopied, }: ActivityDetailRowProps): react_jsx_runtime.JSX.Element;
870
879
 
871
- type WithdrawAddressType = 'unknown' | 'bitcoin' | 'spark' | 'arkade' | 'lightning' | 'lightning-address' | 'lnurl-pay' | 'rgb' | 'invalid';
880
+ type WithdrawAddressType = 'unknown' | 'bitcoin' | 'spark' | 'arkade' | 'liquid' | 'lightning' | 'lightning-address' | 'lnurl-pay' | 'rgb' | 'invalid';
872
881
  interface WithdrawDestinationInputProps {
873
882
  destination: string;
874
883
  setDestination: (value: string) => void;
@@ -1412,7 +1421,7 @@ interface KaleidoScopeHeroAnimationProps {
1412
1421
  }
1413
1422
  declare const KaleidoScopeHeroAnimation: FC<KaleidoScopeHeroAnimationProps>;
1414
1423
 
1415
- type DepositAccountId = 'RGB' | 'SPARK' | 'ARKADE';
1424
+ type DepositAccountId = 'RGB' | 'SPARK' | 'ARKADE' | 'LIQUID';
1416
1425
  type DepositTransferMethod = 'bitcoin_l1' | 'lightning' | 'spark' | 'arkade' | 'boarding' | 'submarine_swap';
1417
1426
  type DepositNetworkKey = 'onchain' | 'lightning' | 'spark' | 'arkade';
1418
1427
  interface DepositNetworkConfigEntry {
@@ -1674,8 +1683,9 @@ interface DepositAssetSelectionProps<TView extends string = string> {
1674
1683
  isRgbConnected: boolean;
1675
1684
  isSparkConnected: boolean;
1676
1685
  isArkadeConnected: boolean;
1686
+ isLiquidConnected?: boolean;
1677
1687
  }
1678
- declare function DepositAssetSelection<TView extends string = string>({ setCurrentView, isNewAsset, newAssetAccount, newAssetId, setNewAssetId, searchQuery, setSearchQuery, filteredAssets, onSelectAsset, handleAddNewAsset, handleContinueToGenerate, isRgbConnected, isSparkConnected, isArkadeConnected, }: DepositAssetSelectionProps<TView>): react_jsx_runtime.JSX.Element;
1688
+ declare function DepositAssetSelection<TView extends string = string>({ setCurrentView, isNewAsset, newAssetAccount, newAssetId, setNewAssetId, searchQuery, setSearchQuery, filteredAssets, onSelectAsset, handleAddNewAsset, handleContinueToGenerate, isRgbConnected, isSparkConnected, isArkadeConnected, isLiquidConnected, }: DepositAssetSelectionProps<TView>): react_jsx_runtime.JSX.Element;
1679
1689
 
1680
1690
  interface DepositInvoiceAsset {
1681
1691
  asset_id?: string;
@@ -1783,4 +1793,4 @@ declare function getFallbackAssetIconUrl(seed: string): string;
1783
1793
  */
1784
1794
  declare function useAssetIcon(ticker: string, cdnBaseUrl?: string): string;
1785
1795
 
1786
- export { AccountCapabilitiesCard, type AccountCapabilitiesCardProps, AccountChoiceChip, AccountHeaderIcons, AccountInfoGrid, AccountNetworkNotice, AccountNetworkPicker, AccountNetworkSelector, AccountNotice, type AccountSettingsNetwork, type AccountSettingsProtocol, AccountSettingsRow, AccountSettingsShell, AccountStatusPills, type AccountStatusTabItem, AccountStatusTabs, type AccountStatusTabsProps, ActionTile, type ActionTileProps, ActivityDetailRow, type ActivityDetailRowProps, ActivityFilterBar, type ActivityFilterBarProps, ActivityList, type ActivityListItem, type ActivityListProps, type ActivityNetworkFilterOption, type ActivityNetworkFilterValue, ActivityNetworkFilters, type ActivityNetworkFiltersProps, ActivityRow, type ActivityRowProps, type ActivityStatusOption, type ActivityTypeTabCounts, type ActivityTypeTabValue, ActivityTypeTabs, AlertBanner, type AmountDisplayOptions, type AmountDisplayUnit, AppIcon, type AppIconName, type AppIconProps, ArkadeNetworkIcon, AssetCard, type AssetCardProps, AssetIcon, AssetSelector, type AssetSelectorCategory, type AssetSelectorOption, type AssetSelectorProps, BalanceBreakdown, type BalanceBreakdownAccounts, type BalanceBreakdownAsset, type BalanceBreakdownNodeInfo, type BalanceBreakdownProps, BottomNav, type BottomNavItem, type BottomNavProps, BottomSheet, type BottomSheetAction, type BottomSheetProps, BtcUnifiedReceive, type BtcUnifiedReceiveAddress, type BtcUnifiedReceiveProps, type BtcUnifiedReceiveResult, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CopyIcon, type DepositAccountId, DepositAssetSelection, type DepositAssetSelectionProps, type DepositGeneratedAsset, DepositGeneratedView, type DepositGeneratedViewProps, type DepositGenerationController, type DepositInvoiceAsset, DepositInvoiceGeneration, type DepositInvoiceGenerationProps, type DepositNetworkConfigEntry, DepositNetworkDefaultModal, type DepositNetworkDefaultModalProps, type DepositNetworkKey, type DepositNetworkOption, DepositPreGeneration, type DepositPreGenerationAsset, type DepositPreGenerationProps, type DepositSelectionAsset, DepositSuccessScreen, type DepositSuccessScreenProps, type DepositTransferMethod, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisclosureCard, type DisclosureCardProps, DotPagination, type DotPaginationProps, type DotTone, ErrorBoundary, ErrorCard, type ErrorCardProps, ExpandIcon, ExtensionPageFrame, type ExtensionPageFrameProps, FadeOverlay, type FadeOverlayProps, FilterChipGroup, type FilterChipGroupProps, type FilterChipOption, FilterDropdown, type FilterDropdownOption, type FilterDropdownProps, HeadlineGradient, type HeadlineGradientProps, Icon, type IconName, type IconProps, Icons, InfoPanel, type InfoPanelProps, InlineAction, InlineSelector, type InlineSelectorOption, type InlineSelectorProps, Input, type InputProps, InvoiceStatusBanner, KaleidoScopeHeroAnimation, type KaleidoScopeHeroAnimationProps, Label, LightningNetworkIcon, ListSkeletonRows, type ListSkeletonRowsProps, LoadingCard, type LoadingCardProps, MethodChoiceChip, MetricCard, type MetricCardProps, MobileHeroAnimation, type MobileHeroAnimationProps, NETWORK_CONFIG, NetworkBadge, type NetworkBadgeProps, type NetworkIconProps, NetworkInfoDisclosure, NetworkStatusChip, type NetworkStatusChipProps, type NetworkType, NostrNetworkIcon, NumberInput, type NumberInputProps, OptionSelector, type OptionSelectorOption, type OptionSelectorProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PaidOverlay, QrCode, type QrCodeProps, RecoveryPhraseCard, type RecoveryPhraseCardProps, RgbNetworkIcon, ScrollArea, type ScrollAreaProps, SecretRevealCard, type SecretRevealCardProps, SectionHeader, type SectionHeaderProps, SectionLabel, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SelectableCard, type SelectableCardProps, SettingItem, SettingsActionButton, SettingsSectionCard, type SettingsSectionCardProps, SettingsSelectorRow, type SettingsSelectorRowProps, SettingsStatusPanel, SettingsTile, type SettingsTileProps, Skeleton, type SkeletonProps, type SkeletonTone, SparkNetworkIcon, StatusBadge, StatusIconBadge, type StatusIconBadgeProps, type StatusType, StepperNumberInput, type StepperNumberInputProps, SwapInputCard, type SwapInputCardProps, Switch, SwitchRow, type SwitchRowProps, Tabs, TabsContent, TabsList, TabsTrigger, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, ToneBadge, type ToneBadgeProps, TransactionCard, type TransactionCardProps, TransferRouteCard, WalletAssetList, type WalletAssetListEmptyState, type WalletAssetListItem, type WalletAssetListProps, type WithdrawAddressType, WithdrawAmountInput, type WithdrawAmountInputProps, WithdrawConfirmation, type WithdrawConfirmationProps, type WithdrawConfirmationRgbInvoice, type WithdrawDecodedLnInvoice, type WithdrawDecodedRgbInvoice, WithdrawDestinationInput, type WithdrawDestinationInputProps, type WithdrawInvoiceAsset, WithdrawInvoiceInfo, type WithdrawInvoiceInfoLnInvoice, type WithdrawInvoiceInfoProps, type WithdrawInvoiceInfoRgbInvoice, type WithdrawLnurlPayData, type WithdrawRouteOption, WithdrawRouteSelector, type WithdrawRouteSelectorProps, type WithdrawRouteSummary, WithdrawSuccess, type WithdrawSuccessProps, buttonVariants, cn, formatDisplayAmountText, getAccountNetworkLabel, getAccountNetworkUi, getAccountStatusUi, getActivityNetworkFilterIcon, getAssetIconUrl, getFallbackAssetIconUrl, toast, useAssetIcon, useToast };
1796
+ export { AccountCapabilitiesCard, type AccountCapabilitiesCardProps, AccountChoiceChip, AccountHeaderIcons, AccountInfoGrid, AccountNetworkNotice, AccountNetworkPicker, AccountNetworkSelector, AccountNotice, type AccountSettingsNetwork, type AccountSettingsProtocol, AccountSettingsRow, AccountSettingsShell, AccountStatusPills, type AccountStatusTabItem, AccountStatusTabs, type AccountStatusTabsProps, ActionTile, type ActionTileProps, ActivityDetailRow, type ActivityDetailRowProps, ActivityFilterBar, type ActivityFilterBarProps, ActivityList, type ActivityListItem, type ActivityListProps, type ActivityNetworkFilterOption, type ActivityNetworkFilterValue, ActivityNetworkFilters, type ActivityNetworkFiltersProps, ActivityRow, type ActivityRowProps, type ActivityStatusOption, type ActivityTypeTabCounts, type ActivityTypeTabValue, ActivityTypeTabs, AlertBanner, type AmountDisplayOptions, type AmountDisplayUnit, AppIcon, type AppIconName, type AppIconProps, ArkadeNetworkIcon, AssetCard, type AssetCardProps, AssetIcon, AssetSelector, type AssetSelectorCategory, type AssetSelectorOption, type AssetSelectorProps, BalanceBreakdown, type BalanceBreakdownAccounts, type BalanceBreakdownAsset, type BalanceBreakdownNodeInfo, type BalanceBreakdownProps, BottomNav, type BottomNavItem, type BottomNavProps, BottomSheet, type BottomSheetAction, type BottomSheetProps, BtcUnifiedReceive, type BtcUnifiedReceiveAddress, type BtcUnifiedReceiveProps, type BtcUnifiedReceiveResult, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CopyIcon, type DepositAccountId, DepositAssetSelection, type DepositAssetSelectionProps, type DepositGeneratedAsset, DepositGeneratedView, type DepositGeneratedViewProps, type DepositGenerationController, type DepositInvoiceAsset, DepositInvoiceGeneration, type DepositInvoiceGenerationProps, type DepositNetworkConfigEntry, DepositNetworkDefaultModal, type DepositNetworkDefaultModalProps, type DepositNetworkKey, type DepositNetworkOption, DepositPreGeneration, type DepositPreGenerationAsset, type DepositPreGenerationProps, type DepositSelectionAsset, DepositSuccessScreen, type DepositSuccessScreenProps, type DepositTransferMethod, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DisclosureCard, type DisclosureCardProps, DotPagination, type DotPaginationProps, type DotTone, ErrorBoundary, ErrorCard, type ErrorCardProps, ExpandIcon, ExtensionPageFrame, type ExtensionPageFrameProps, FadeOverlay, type FadeOverlayProps, FilterChipGroup, type FilterChipGroupProps, type FilterChipOption, FilterDropdown, type FilterDropdownOption, type FilterDropdownProps, HeadlineGradient, type HeadlineGradientProps, Icon, type IconName, type IconProps, Icons, InfoPanel, type InfoPanelProps, InlineAction, InlineSelector, type InlineSelectorOption, type InlineSelectorProps, Input, type InputProps, InvoiceStatusBanner, KaleidoScopeHeroAnimation, type KaleidoScopeHeroAnimationProps, Label, LightningNetworkIcon, LiquidNetworkIcon, ListSkeletonRows, type ListSkeletonRowsProps, LoadingCard, type LoadingCardProps, MethodChoiceChip, MetricCard, type MetricCardProps, MobileHeroAnimation, type MobileHeroAnimationProps, NETWORK_CONFIG, NetworkBadge, type NetworkBadgeProps, type NetworkIconProps, NetworkInfoDisclosure, NetworkStatusChip, type NetworkStatusChipProps, type NetworkType, NostrNetworkIcon, NumberInput, type NumberInputProps, OptionSelector, type OptionSelectorOption, type OptionSelectorProps, PageHeader, type PageHeaderProps, PageShell, type PageShellProps, PaidOverlay, QrCode, type QrCodeProps, RecoveryPhraseCard, type RecoveryPhraseCardProps, RgbNetworkIcon, ScrollArea, type ScrollAreaProps, SecretRevealCard, type SecretRevealCardProps, SectionHeader, type SectionHeaderProps, SectionLabel, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SelectableCard, type SelectableCardProps, SettingItem, SettingsActionButton, SettingsSectionCard, type SettingsSectionCardProps, SettingsSelectorRow, type SettingsSelectorRowProps, SettingsStatusPanel, SettingsTile, type SettingsTileProps, Skeleton, type SkeletonProps, type SkeletonTone, SparkNetworkIcon, StatusBadge, StatusIconBadge, type StatusIconBadgeProps, type StatusType, StepperNumberInput, type StepperNumberInputProps, SwapInputCard, type SwapInputCardProps, Switch, SwitchRow, type SwitchRowProps, Tabs, TabsContent, TabsList, TabsTrigger, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, Toaster, ToneBadge, type ToneBadgeProps, TransactionCard, type TransactionCardProps, TransferRouteCard, WalletAssetList, type WalletAssetListEmptyState, type WalletAssetListItem, type WalletAssetListProps, type WithdrawAddressType, WithdrawAmountInput, type WithdrawAmountInputProps, WithdrawConfirmation, type WithdrawConfirmationProps, type WithdrawConfirmationRgbInvoice, type WithdrawDecodedLnInvoice, type WithdrawDecodedRgbInvoice, WithdrawDestinationInput, type WithdrawDestinationInputProps, type WithdrawInvoiceAsset, WithdrawInvoiceInfo, type WithdrawInvoiceInfoLnInvoice, type WithdrawInvoiceInfoProps, type WithdrawInvoiceInfoRgbInvoice, type WithdrawLnurlPayData, type WithdrawRouteOption, WithdrawRouteSelector, type WithdrawRouteSelectorProps, type WithdrawRouteSummary, WithdrawSuccess, type WithdrawSuccessProps, buttonVariants, cn, formatDisplayAmountText, getAccountNetworkLabel, getAccountNetworkUi, getAccountStatusUi, getActivityNetworkFilterIcon, getAssetIconUrl, getFallbackAssetIconUrl, toast, useAssetIcon, useToast };
package/dist/web/index.js CHANGED
@@ -2033,6 +2033,9 @@ function NostrNetworkIcon({
2033
2033
  function RgbNetworkIcon({ className = "size-3.5", alt = "RGB" }) {
2034
2034
  return /* @__PURE__ */ jsx25("img", { src: protocolIcons["RGB20"], alt, className: cn("object-contain", className) });
2035
2035
  }
2036
+ function LiquidNetworkIcon({ className = "size-3.5", alt = "Liquid" }) {
2037
+ return /* @__PURE__ */ jsx25("img", { src: protocolIcons.Liquid, alt, className: cn("object-contain", className) });
2038
+ }
2036
2039
 
2037
2040
  // src/web/components/action-tile.tsx
2038
2041
  import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
@@ -3205,6 +3208,7 @@ function BalanceBreakdown({
3205
3208
  btcLightning,
3206
3209
  btcSpark,
3207
3210
  btcArkade,
3211
+ btcLiquid = 0,
3208
3212
  totalBTC,
3209
3213
  rgbAssets,
3210
3214
  accounts,
@@ -3221,6 +3225,7 @@ function BalanceBreakdown({
3221
3225
  btcLightningPending = false,
3222
3226
  btcSparkPending = false,
3223
3227
  btcArkadePending = false,
3228
+ btcLiquidPending = false,
3224
3229
  onRefresh,
3225
3230
  isRefreshing = false,
3226
3231
  onNavigate,
@@ -3390,6 +3395,21 @@ function BalanceBreakdown({
3390
3395
  formatFiat: formatFiatValue
3391
3396
  }
3392
3397
  ),
3398
+ (btcLiquid > 0 || btcLiquidPending) && /* @__PURE__ */ jsx37(
3399
+ NetworkRow,
3400
+ {
3401
+ icon: /* @__PURE__ */ jsx37(LiquidNetworkIcon, { className: "size-3.5" }),
3402
+ iconColor: "",
3403
+ dotColor: "bg-network-liquid",
3404
+ label: "BTC on Liquid",
3405
+ sublabel: "Liquid L-BTC balance",
3406
+ amount: btcLiquid,
3407
+ isPending: btcLiquidPending,
3408
+ visible: balanceVisible,
3409
+ format,
3410
+ formatFiat: formatFiatValue
3411
+ }
3412
+ ),
3393
3413
  rgbAssets.length > 0 && /* @__PURE__ */ jsx37(RgbAssetsBreakdown, { assets: rgbAssets, balanceVisible }),
3394
3414
  tokenValueSats !== void 0 && tokenValueSats > 0 && /* @__PURE__ */ jsxs24("div", { className: "mt-4 pt-1", children: [
3395
3415
  /* @__PURE__ */ jsx37("p", { className: "mb-3 text-xxs font-bold uppercase tracking-widest text-white/30", children: "Token Holdings" }),
@@ -3568,6 +3588,16 @@ import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs25 } from "react/jsx-r
3568
3588
  function NetworkMiniBadge({ iconUrl, label }) {
3569
3589
  return /* @__PURE__ */ jsx38("span", { className: cn(iconBadgeOverlayClass, "overflow-hidden"), children: iconUrl ? /* @__PURE__ */ jsx38("img", { src: iconUrl, alt: label ?? "", className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsx38("span", { className: "flex h-full w-full items-center justify-center bg-muted text-xxs font-bold uppercase leading-none text-muted-foreground", children: label?.charAt(0) }) });
3570
3590
  }
3591
+ function readableTagColor(color) {
3592
+ const raw = color.replace("#", "");
3593
+ const hex = raw.length === 3 ? raw.split("").map((char) => char + char).join("") : raw;
3594
+ if (!/^[0-9a-fA-F]{6}$/.test(hex)) return color;
3595
+ const r = parseInt(hex.slice(0, 2), 16);
3596
+ const g = parseInt(hex.slice(2, 4), 16);
3597
+ const b = parseInt(hex.slice(4, 6), 16);
3598
+ const luminance = (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
3599
+ return luminance < 0.45 ? `color-mix(in srgb, ${color} 45%, white)` : color;
3600
+ }
3571
3601
  function AssetSelector({
3572
3602
  label,
3573
3603
  selectedTicker,
@@ -3659,7 +3689,7 @@ function AssetSelector({
3659
3689
  ),
3660
3690
  style: option.networkTag.color ? {
3661
3691
  backgroundColor: `color-mix(in srgb, ${option.networkTag.color} 15%, transparent)`,
3662
- color: option.networkTag.color
3692
+ color: readableTagColor(option.networkTag.color)
3663
3693
  } : void 0,
3664
3694
  children: option.networkTag.label
3665
3695
  }
@@ -4696,7 +4726,7 @@ function WithdrawAmountInput({
4696
4726
  const customFeeEnabled = typeof setFeeRateMode === "function";
4697
4727
  const activeFeeMode = feeRateMode ?? feeRate;
4698
4728
  const unitLabel = selectedAssetId === "BTC" ? "sats" : selectedAssetTicker ?? "units";
4699
- const showAmountInput = addressType === "bitcoin" || addressType === "spark" || addressType === "arkade" || addressType === "lightning-address" || addressType === "lnurl-pay" || addressType === "rgb" && !decodedRgbInvoice?.assignment?.value || addressType === "lightning" && !decodedLnInvoice?.amount && !decodedLnInvoice?.asset_amount;
4729
+ const showAmountInput = addressType === "bitcoin" || addressType === "spark" || addressType === "arkade" || addressType === "liquid" || addressType === "lightning-address" || addressType === "lnurl-pay" || addressType === "rgb" && !decodedRgbInvoice?.assignment?.value || addressType === "lightning" && !decodedLnInvoice?.amount && !decodedLnInvoice?.asset_amount;
4700
4730
  const enteredNum = parseFloat(amount.replace(/[^\d.-]/g, "") || "0") || 0;
4701
4731
  const balanceNum = parseFloat(formattedBalance.replace(/,/g, "") || "0") || 0;
4702
4732
  const isOverBalance = enteredNum > 0 && balanceNum > 0 && enteredNum > balanceNum;
@@ -4965,9 +4995,9 @@ function WithdrawInvoiceInfo({
4965
4995
  ] })
4966
4996
  ] });
4967
4997
  }
4968
- if (addressType === "bitcoin" || addressType === "arkade") {
4998
+ if (addressType === "bitcoin" || addressType === "arkade" || addressType === "liquid") {
4969
4999
  return /* @__PURE__ */ jsx48("div", { className: "rounded-2xl bg-card p-5 shadow-inner", children: /* @__PURE__ */ jsxs35("div", { className: "flex justify-between text-sm", children: [
4970
- /* @__PURE__ */ jsx48("span", { className: "text-muted-foreground", children: addressType === "arkade" ? "Available Arkade Balance" : "Available Balance" }),
5000
+ /* @__PURE__ */ jsx48("span", { className: "text-muted-foreground", children: addressType === "arkade" ? "Available Arkade Balance" : addressType === "liquid" ? "Available Liquid Balance" : "Available Balance" }),
4971
5001
  /* @__PURE__ */ jsxs35("span", { className: "font-bold text-white", children: [
4972
5002
  formatRawAmount(assetBalance, getAssetPrecisionForId(allAssets, selectedAssetId)),
4973
5003
  " ",
@@ -7299,6 +7329,13 @@ var ACCOUNT_META = {
7299
7329
  accentText: "text-network-arkade",
7300
7330
  accentBorder: "border-network-arkade/30",
7301
7331
  icon: /* @__PURE__ */ jsx75("img", { src: "/icons/arkade/arkade-icon.svg", alt: "", className: "h-2.5 w-2.5 rounded-[1px] object-contain" })
7332
+ },
7333
+ LIQUID: {
7334
+ shortLabel: "Liquid",
7335
+ accentBg: "bg-network-liquid/10",
7336
+ accentText: "text-network-liquid",
7337
+ accentBorder: "border-network-liquid/30",
7338
+ icon: /* @__PURE__ */ jsx75(LiquidNetworkIcon, { className: "h-2.5 w-2.5" })
7302
7339
  }
7303
7340
  };
7304
7341
  var METHOD_META = {
@@ -7569,6 +7606,18 @@ var NETWORK_OPTIONS = {
7569
7606
  accentBg: "bg-network-arkade/10",
7570
7607
  accentBorder: "border-network-arkade/30",
7571
7608
  accentText: "text-network-arkade"
7609
+ },
7610
+ LIQUID: {
7611
+ // Liquid is its own chain; reuse the "onchain" network key for the modal's
7612
+ // network callback (there's no dedicated Liquid DepositNetworkKey).
7613
+ network: "onchain",
7614
+ account: "LIQUID",
7615
+ label: "Liquid",
7616
+ description: "Receive L-BTC or a Liquid asset (USDt) via a confidential Liquid address.",
7617
+ icon: /* @__PURE__ */ jsx77(LiquidNetworkIcon, { className: "h-[18px] w-[18px]" }),
7618
+ accentBg: "bg-network-liquid/10",
7619
+ accentBorder: "border-network-liquid/30",
7620
+ accentText: "text-network-liquid"
7572
7621
  }
7573
7622
  };
7574
7623
  function DepositNetworkDefaultModal({
@@ -8029,7 +8078,8 @@ import { jsx as jsx80, jsxs as jsxs66 } from "react/jsx-runtime";
8029
8078
  var ACCOUNT_TITLES = {
8030
8079
  RGB: "RGB & Lightning",
8031
8080
  SPARK: "Spark",
8032
- ARKADE: "Arkade"
8081
+ ARKADE: "Arkade",
8082
+ LIQUID: "Liquid"
8033
8083
  };
8034
8084
  var METHOD_META2 = {
8035
8085
  bitcoin_l1: { label: "Bitcoin address", summary: "Standard on-chain BTC transfer." },
@@ -8226,12 +8276,14 @@ import { jsx as jsx81, jsxs as jsxs67 } from "react/jsx-runtime";
8226
8276
  var ADD_ASSET_SUBTITLE = {
8227
8277
  RGB: "RGB asset on Bitcoin",
8228
8278
  SPARK: "Spark-native asset",
8229
- ARKADE: "Arkade-native asset"
8279
+ ARKADE: "Arkade-native asset",
8280
+ LIQUID: "L-BTC or Liquid asset"
8230
8281
  };
8231
8282
  var PROTOCOL_BADGE = {
8232
8283
  RGB: { label: "RGB", className: "bg-network-rgb-chip text-network-rgb-text" },
8233
8284
  SPARK: { label: "Spark", className: "bg-network-spark-chip text-network-spark-text" },
8234
- ARKADE: { label: "Arkade", className: "bg-network-arkade-chip text-network-arkade-text" }
8285
+ ARKADE: { label: "Arkade", className: "bg-network-arkade-chip text-network-arkade-text" },
8286
+ LIQUID: { label: "Liquid", className: "bg-network-liquid-chip text-network-liquid-text" }
8235
8287
  };
8236
8288
  function formatAssetBalance(asset) {
8237
8289
  const raw = asset.balance ?? 0;
@@ -8257,7 +8309,8 @@ function DepositAssetSelection({
8257
8309
  handleContinueToGenerate,
8258
8310
  isRgbConnected,
8259
8311
  isSparkConnected,
8260
- isArkadeConnected
8312
+ isArkadeConnected,
8313
+ isLiquidConnected = false
8261
8314
  }) {
8262
8315
  const btcAsset = filteredAssets.find((asset) => asset.ticker === "BTC");
8263
8316
  const ownedAssets = filteredAssets.filter((asset) => asset.ticker !== "BTC").slice().sort((a, b) => (b.balance ?? 0) - (a.balance ?? 0));
@@ -8297,6 +8350,15 @@ function DepositAssetSelection({
8297
8350
  idleClass: "bg-network-arkade/10 hover:bg-network-arkade/20",
8298
8351
  activeClass: "bg-network-arkade/25",
8299
8352
  titleHoverClass: "group-hover:text-network-arkade"
8353
+ },
8354
+ {
8355
+ account: "LIQUID",
8356
+ title: "New Liquid Asset",
8357
+ ticker: "LIQUID",
8358
+ enabled: isLiquidConnected,
8359
+ idleClass: "bg-network-liquid/10 hover:bg-network-liquid/20",
8360
+ activeClass: "bg-network-liquid/25",
8361
+ titleHoverClass: "group-hover:text-network-liquid"
8300
8362
  }
8301
8363
  ].filter((option) => option.enabled);
8302
8364
  return /* @__PURE__ */ jsxs67("div", { className: "relative flex h-screen flex-col overflow-hidden bg-background pt-16 font-display text-foreground", children: [
@@ -8487,7 +8549,7 @@ function DepositAssetSelection({
8487
8549
  handleAddNewAsset(option.account);
8488
8550
  },
8489
8551
  children: [
8490
- /* @__PURE__ */ jsx81(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8552
+ option.account === "LIQUID" ? /* @__PURE__ */ jsx81("span", { className: "flex size-9 shrink-0 items-center justify-center rounded-full bg-network-liquid/10", children: /* @__PURE__ */ jsx81(LiquidNetworkIcon, { className: "size-5" }) }) : /* @__PURE__ */ jsx81(AssetIcon, { ticker: option.ticker, size: 36, className: "flex-shrink-0" }),
8491
8553
  /* @__PURE__ */ jsxs67("div", { className: "min-w-0 flex-1", children: [
8492
8554
  /* @__PURE__ */ jsx81("div", { className: cn("text-sm font-bold tracking-wide text-white", option.titleHoverClass), children: option.title }),
8493
8555
  /* @__PURE__ */ jsx81("div", { className: "mt-0.5 text-xxs text-white/40", children: ADD_ASSET_SUBTITLE[option.account] })
@@ -8507,7 +8569,8 @@ import { jsx as jsx82, jsxs as jsxs68 } from "react/jsx-runtime";
8507
8569
  var ACCOUNT_TITLES2 = {
8508
8570
  RGB: "RGB & Lightning",
8509
8571
  SPARK: "Spark",
8510
- ARKADE: "Arkade"
8572
+ ARKADE: "Arkade",
8573
+ LIQUID: "Liquid"
8511
8574
  };
8512
8575
  function getAssetFamily(assetId, ticker) {
8513
8576
  if (assetId === "BTC") return "BTC";
@@ -8608,7 +8671,10 @@ function DepositInvoiceGeneration({
8608
8671
  const routeAccounts = {
8609
8672
  RGB: isRgbConnected,
8610
8673
  SPARK: isSparkConnected,
8611
- ARKADE: isArkadeConnected
8674
+ ARKADE: isArkadeConnected,
8675
+ // Liquid isn't offered by kaleido-ui's own DepositInvoiceGeneration; the
8676
+ // KaleidoSwap extension uses its own component for the Liquid receive path.
8677
+ LIQUID: false
8612
8678
  };
8613
8679
  const availableAccounts = resolveReceiveAccounts({ assetFamily, accounts: routeAccounts });
8614
8680
  const methodOptions = resolveReceiveMethodOptions({
@@ -8898,6 +8964,7 @@ export {
8898
8964
  KaleidoScopeHeroAnimation,
8899
8965
  Label2 as Label,
8900
8966
  LightningNetworkIcon,
8967
+ LiquidNetworkIcon,
8901
8968
  ListSkeletonRows,
8902
8969
  LoadingCard,
8903
8970
  MethodChoiceChip,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaleido-ui",
3
- "version": "0.1.87",
3
+ "version": "0.1.89",
4
4
  "description": "KaleidoSwap shared UI library — design tokens, web components (Tailwind + Radix), and React Native components extending WDK UI Kit",
5
5
  "license": "MIT",
6
6
  "type": "module",