kaleido-ui 0.1.97 → 0.1.99

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.
@@ -1880,6 +1880,7 @@ function TransactionCard({
1880
1880
  displayAmount,
1881
1881
  unit = "sats",
1882
1882
  subAmount,
1883
+ onSubAmountInfo,
1883
1884
  timestamp,
1884
1885
  onClick,
1885
1886
  className
@@ -1956,7 +1957,26 @@ function TransactionCard({
1956
1957
  }
1957
1958
  ),
1958
1959
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-tiny text-muted-foreground font-medium tracking-wide uppercase mt-0.5", children: unit }),
1959
- subAmount && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums mt-0.5", children: subAmount })
1960
+ subAmount && (onSubAmountInfo ? (
1961
+ // The whole sub-line is the hit target; hover feedback is text
1962
+ // color only (no background), per design.
1963
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1964
+ "button",
1965
+ {
1966
+ type: "button",
1967
+ "aria-label": "What is this value?",
1968
+ onClick: (event) => {
1969
+ event.stopPropagation();
1970
+ onSubAmountInfo();
1971
+ },
1972
+ className: "mt-0.5 flex w-full items-center justify-end gap-1 text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums transition-colors hover:text-foreground",
1973
+ children: [
1974
+ subAmount,
1975
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "material-symbols-outlined block", style: { fontSize: "13px" }, children: "info" })
1976
+ ]
1977
+ }
1978
+ )
1979
+ ) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "mt-0.5 flex items-center justify-end gap-1 text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums", children: subAmount }))
1960
1980
  ] })
1961
1981
  ]
1962
1982
  }
@@ -4558,6 +4578,7 @@ function ActivityList({
4558
4578
  displayAmount: item.displayAmount,
4559
4579
  unit: item.unit,
4560
4580
  subAmount: item.subAmount,
4581
+ onSubAmountInfo: item.onSubAmountInfo,
4561
4582
  timestamp: item.timestamp,
4562
4583
  onClick: () => onExpandedChange?.(isExpanded ? null : item.id)
4563
4584
  }
@@ -4790,26 +4811,30 @@ function ActivityDetailRow({
4790
4811
  onCopy,
4791
4812
  isCopied
4792
4813
  }) {
4793
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex items-center gap-3 py-1 last:pb-0", children: [
4794
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "shrink-0 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
4795
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { "aria-hidden": true, className: "min-w-4 flex-1 self-center border-b border-dotted border-white/15" }),
4796
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex max-w-[65%] items-center gap-2", children: [
4797
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "truncate font-mono text-xs font-medium text-white/90", children: value }),
4798
- onCopy && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4799
- "button",
4800
- {
4801
- type: "button",
4802
- onClick: (event) => {
4803
- event.stopPropagation();
4804
- onCopy();
4805
- },
4806
- className: "rounded-md p-1 text-white/30 transition-colors hover:bg-accent hover:text-primary active:scale-95",
4807
- title: fullValue ? `Copy: ${fullValue}` : "Copy",
4808
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "material-symbols-outlined", style: { fontSize: "14px" }, children: isCopied ? "check" : "content_copy" })
4809
- }
4810
- )
4814
+ return (
4815
+ // min-h-8 equalizes text-only rows with taller value content (badges,
4816
+ // pills) so the label-to-label rhythm stays uniform down the list.
4817
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex min-h-8 items-center gap-3 py-1 last:pb-0", children: [
4818
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "shrink-0 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
4819
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { "aria-hidden": true, className: "min-w-4 flex-1 self-center border-b border-dotted border-white/15" }),
4820
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex max-w-[65%] items-center gap-2", children: [
4821
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "truncate font-mono text-xs font-medium text-white/90", children: value }),
4822
+ onCopy && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4823
+ "button",
4824
+ {
4825
+ type: "button",
4826
+ onClick: (event) => {
4827
+ event.stopPropagation();
4828
+ onCopy();
4829
+ },
4830
+ className: "-my-1 rounded-md p-1 text-white/30 transition-colors hover:bg-accent hover:text-primary active:scale-95",
4831
+ title: fullValue ? `Copy: ${fullValue}` : "Copy",
4832
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "material-symbols-outlined", style: { fontSize: "14px" }, children: isCopied ? "check" : "content_copy" })
4833
+ }
4834
+ )
4835
+ ] })
4811
4836
  ] })
4812
- ] });
4837
+ );
4813
4838
  }
4814
4839
 
4815
4840
  // src/web/components/withdraw-destination-input.tsx
@@ -269,12 +269,15 @@ interface TransactionCardProps {
269
269
  /** Secondary amount under the unit — e.g. the sats leg an asset transfer
270
270
  * rode on ("588 sats" for an RGB-LN payment or an Arkade asset VTXO). */
271
271
  subAmount?: string;
272
+ /** When set, renders an info affordance next to subAmount (e.g. to open a
273
+ * modal explaining the carrier UTXO/VTXO value). Click doesn't bubble. */
274
+ onSubAmountInfo?: () => void;
272
275
  /** Unix timestamp in seconds */
273
276
  timestamp: number;
274
277
  onClick?: () => void;
275
278
  className?: string;
276
279
  }
277
- declare function TransactionCard({ direction, status, displayAmount, unit, subAmount, timestamp, onClick, className, }: TransactionCardProps): react_jsx_runtime.JSX.Element;
280
+ declare function TransactionCard({ direction, status, displayAmount, unit, subAmount, onSubAmountInfo, timestamp, onClick, className, }: TransactionCardProps): react_jsx_runtime.JSX.Element;
278
281
 
279
282
  declare const APP_ICON_NAMES: {
280
283
  readonly activity: "history";
@@ -808,6 +811,7 @@ interface ActivityListItem<TData = unknown> {
808
811
  /** Secondary amount under the unit (e.g. the sats leg of an asset transfer). */
809
812
  subAmount?: string;
810
813
  timestamp: number;
814
+ onSubAmountInfo?: () => void;
811
815
  network?: NetworkType;
812
816
  label?: string;
813
817
  data?: TData;
@@ -269,12 +269,15 @@ interface TransactionCardProps {
269
269
  /** Secondary amount under the unit — e.g. the sats leg an asset transfer
270
270
  * rode on ("588 sats" for an RGB-LN payment or an Arkade asset VTXO). */
271
271
  subAmount?: string;
272
+ /** When set, renders an info affordance next to subAmount (e.g. to open a
273
+ * modal explaining the carrier UTXO/VTXO value). Click doesn't bubble. */
274
+ onSubAmountInfo?: () => void;
272
275
  /** Unix timestamp in seconds */
273
276
  timestamp: number;
274
277
  onClick?: () => void;
275
278
  className?: string;
276
279
  }
277
- declare function TransactionCard({ direction, status, displayAmount, unit, subAmount, timestamp, onClick, className, }: TransactionCardProps): react_jsx_runtime.JSX.Element;
280
+ declare function TransactionCard({ direction, status, displayAmount, unit, subAmount, onSubAmountInfo, timestamp, onClick, className, }: TransactionCardProps): react_jsx_runtime.JSX.Element;
278
281
 
279
282
  declare const APP_ICON_NAMES: {
280
283
  readonly activity: "history";
@@ -808,6 +811,7 @@ interface ActivityListItem<TData = unknown> {
808
811
  /** Secondary amount under the unit (e.g. the sats leg of an asset transfer). */
809
812
  subAmount?: string;
810
813
  timestamp: number;
814
+ onSubAmountInfo?: () => void;
811
815
  network?: NetworkType;
812
816
  label?: string;
813
817
  data?: TData;
package/dist/web/index.js CHANGED
@@ -1692,6 +1692,7 @@ function TransactionCard({
1692
1692
  displayAmount,
1693
1693
  unit = "sats",
1694
1694
  subAmount,
1695
+ onSubAmountInfo,
1695
1696
  timestamp,
1696
1697
  onClick,
1697
1698
  className
@@ -1768,7 +1769,26 @@ function TransactionCard({
1768
1769
  }
1769
1770
  ),
1770
1771
  /* @__PURE__ */ jsx21("p", { className: "text-tiny text-muted-foreground font-medium tracking-wide uppercase mt-0.5", children: unit }),
1771
- subAmount && /* @__PURE__ */ jsx21("p", { className: "text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums mt-0.5", children: subAmount })
1772
+ subAmount && (onSubAmountInfo ? (
1773
+ // The whole sub-line is the hit target; hover feedback is text
1774
+ // color only (no background), per design.
1775
+ /* @__PURE__ */ jsxs10(
1776
+ "button",
1777
+ {
1778
+ type: "button",
1779
+ "aria-label": "What is this value?",
1780
+ onClick: (event) => {
1781
+ event.stopPropagation();
1782
+ onSubAmountInfo();
1783
+ },
1784
+ className: "mt-0.5 flex w-full items-center justify-end gap-1 text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums transition-colors hover:text-foreground",
1785
+ children: [
1786
+ subAmount,
1787
+ /* @__PURE__ */ jsx21("span", { className: "material-symbols-outlined block", style: { fontSize: "13px" }, children: "info" })
1788
+ ]
1789
+ }
1790
+ )
1791
+ ) : /* @__PURE__ */ jsx21("p", { className: "mt-0.5 flex items-center justify-end gap-1 text-tiny text-muted-foreground/70 font-medium tracking-wide tabular-nums", children: subAmount }))
1772
1792
  ] })
1773
1793
  ]
1774
1794
  }
@@ -4376,6 +4396,7 @@ function ActivityList({
4376
4396
  displayAmount: item.displayAmount,
4377
4397
  unit: item.unit,
4378
4398
  subAmount: item.subAmount,
4399
+ onSubAmountInfo: item.onSubAmountInfo,
4379
4400
  timestamp: item.timestamp,
4380
4401
  onClick: () => onExpandedChange?.(isExpanded ? null : item.id)
4381
4402
  }
@@ -4608,26 +4629,30 @@ function ActivityDetailRow({
4608
4629
  onCopy,
4609
4630
  isCopied
4610
4631
  }) {
4611
- return /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-3 py-1 last:pb-0", children: [
4612
- /* @__PURE__ */ jsx45("span", { className: "shrink-0 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
4613
- /* @__PURE__ */ jsx45("span", { "aria-hidden": true, className: "min-w-4 flex-1 self-center border-b border-dotted border-white/15" }),
4614
- /* @__PURE__ */ jsxs32("div", { className: "flex max-w-[65%] items-center gap-2", children: [
4615
- /* @__PURE__ */ jsx45("span", { className: "truncate font-mono text-xs font-medium text-white/90", children: value }),
4616
- onCopy && /* @__PURE__ */ jsx45(
4617
- "button",
4618
- {
4619
- type: "button",
4620
- onClick: (event) => {
4621
- event.stopPropagation();
4622
- onCopy();
4623
- },
4624
- className: "rounded-md p-1 text-white/30 transition-colors hover:bg-accent hover:text-primary active:scale-95",
4625
- title: fullValue ? `Copy: ${fullValue}` : "Copy",
4626
- children: /* @__PURE__ */ jsx45("span", { className: "material-symbols-outlined", style: { fontSize: "14px" }, children: isCopied ? "check" : "content_copy" })
4627
- }
4628
- )
4632
+ return (
4633
+ // min-h-8 equalizes text-only rows with taller value content (badges,
4634
+ // pills) so the label-to-label rhythm stays uniform down the list.
4635
+ /* @__PURE__ */ jsxs32("div", { className: "flex min-h-8 items-center gap-3 py-1 last:pb-0", children: [
4636
+ /* @__PURE__ */ jsx45("span", { className: "shrink-0 text-xxs font-bold uppercase tracking-wider text-muted-foreground", children: label }),
4637
+ /* @__PURE__ */ jsx45("span", { "aria-hidden": true, className: "min-w-4 flex-1 self-center border-b border-dotted border-white/15" }),
4638
+ /* @__PURE__ */ jsxs32("div", { className: "flex max-w-[65%] items-center gap-2", children: [
4639
+ /* @__PURE__ */ jsx45("span", { className: "truncate font-mono text-xs font-medium text-white/90", children: value }),
4640
+ onCopy && /* @__PURE__ */ jsx45(
4641
+ "button",
4642
+ {
4643
+ type: "button",
4644
+ onClick: (event) => {
4645
+ event.stopPropagation();
4646
+ onCopy();
4647
+ },
4648
+ className: "-my-1 rounded-md p-1 text-white/30 transition-colors hover:bg-accent hover:text-primary active:scale-95",
4649
+ title: fullValue ? `Copy: ${fullValue}` : "Copy",
4650
+ children: /* @__PURE__ */ jsx45("span", { className: "material-symbols-outlined", style: { fontSize: "14px" }, children: isCopied ? "check" : "content_copy" })
4651
+ }
4652
+ )
4653
+ ] })
4629
4654
  ] })
4630
- ] });
4655
+ );
4631
4656
  }
4632
4657
 
4633
4658
  // src/web/components/withdraw-destination-input.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaleido-ui",
3
- "version": "0.1.97",
3
+ "version": "0.1.99",
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",