kaleido-ui 0.2.4 → 0.2.6

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.
Files changed (189) hide show
  1. package/README.md +45 -10
  2. package/dist/web/{chunk-2GNXC446.js → chunk-255X76ZW.js} +4 -4
  3. package/dist/web/{chunk-YTXWYWVD.js → chunk-4WUXBF7Q.js} +7 -7
  4. package/dist/web/{chunk-NSA777UY.js → chunk-536NL4X2.js} +4 -4
  5. package/dist/web/{chunk-LFAORJQK.js → chunk-5NCVH6N5.js} +2 -2
  6. package/dist/web/{chunk-M6RXTQEL.js → chunk-6AAKKRZJ.js} +9 -9
  7. package/dist/web/{chunk-L2UPQLY7.js → chunk-73BRW657.js} +4 -4
  8. package/dist/web/{chunk-PCKRLEAO.js → chunk-7BPEZ3TA.js} +1 -1
  9. package/dist/web/{chunk-QXCCUYNY.js → chunk-7IQ4YJZS.js} +1 -1
  10. package/dist/web/{chunk-CRDCVB5X.js → chunk-AMCV2D3Q.js} +31 -17
  11. package/dist/web/{chunk-4246Y2F2.js → chunk-ARO323RW.js} +11 -11
  12. package/dist/web/{chunk-76DAZT7Q.js → chunk-AVJ56TMD.js} +4 -4
  13. package/dist/web/{chunk-XPHFJPUQ.js → chunk-BAV3MTRA.js} +1 -1
  14. package/dist/web/{chunk-Z5LVT3BD.js → chunk-BBKINPMF.js} +7 -7
  15. package/dist/web/{chunk-ZTVV4KBT.js → chunk-BI3WGWOO.js} +1 -1
  16. package/dist/web/{chunk-QFIGSIXA.js → chunk-CRQ6QCAN.js} +10 -10
  17. package/dist/web/{chunk-YNB4SSLD.js → chunk-CSOMNAM5.js} +9 -9
  18. package/dist/web/{chunk-GMJGTSCQ.js → chunk-DUIRXCBO.js} +8 -8
  19. package/dist/web/{chunk-2Q5SSNFO.js → chunk-ELT34EZJ.js} +1 -1
  20. package/dist/web/{chunk-R3IIXFGK.js → chunk-EODZVHEU.js} +3 -3
  21. package/dist/web/{chunk-G373WZMN.js → chunk-EZ34YRLM.js} +1 -1
  22. package/dist/web/{chunk-DNHRMPKI.js → chunk-G2K423HV.js} +6 -6
  23. package/dist/web/{chunk-RIOY4LFJ.js → chunk-GJB3GMDE.js} +1 -1
  24. package/dist/web/{chunk-5BNDC7M4.js → chunk-GPTAAEPK.js} +2 -2
  25. package/dist/web/{chunk-QCQRA6L5.js → chunk-GQBELVPV.js} +4 -4
  26. package/dist/web/{chunk-HWKXZNBN.js → chunk-HIIB5NGX.js} +4 -4
  27. package/dist/web/{chunk-A6MSV4MA.js → chunk-HLHCPDCZ.js} +4 -4
  28. package/dist/web/{chunk-QBZSLR7U.js → chunk-HLPL5AHD.js} +1 -1
  29. package/dist/web/{chunk-2OGYEUYV.js → chunk-HMHG36RK.js} +4 -11
  30. package/dist/web/{chunk-TBEKRQGW.js → chunk-HO65ENYH.js} +1 -1
  31. package/dist/web/{chunk-Y3W6LOOE.js → chunk-HSV2WS2C.js} +4 -4
  32. package/dist/web/{chunk-LPDB7EHH.js → chunk-I6ESLPWR.js} +1 -1
  33. package/dist/web/{chunk-2NCH2ZDU.js → chunk-I7MYUZ56.js} +4 -4
  34. package/dist/web/{chunk-JZ3BUM5L.js → chunk-IEEIIE3Q.js} +13 -13
  35. package/dist/web/{chunk-O2TTO5FS.js → chunk-KDNTZ2BX.js} +3 -3
  36. package/dist/web/{chunk-TPGNO74K.js → chunk-KGBJAITC.js} +4 -4
  37. package/dist/web/{chunk-NEXA6VGG.js → chunk-KIMCXNLP.js} +1 -1
  38. package/dist/web/{chunk-UK6ZL4MX.js → chunk-M7JNBTLT.js} +21 -8
  39. package/dist/web/{chunk-STMNX3QT.js → chunk-MRQXL6NY.js} +3 -3
  40. package/dist/web/{chunk-FWOIRFV5.js → chunk-MUSLMJF3.js} +5 -5
  41. package/dist/web/{chunk-A3TKIXSI.js → chunk-ND6LNJST.js} +11 -11
  42. package/dist/web/{chunk-LZ6PIXUO.js → chunk-OITKJK5K.js} +2 -2
  43. package/dist/web/{chunk-HDLOPDFX.js → chunk-OZB5M3SQ.js} +7 -7
  44. package/dist/web/{chunk-TMK3SVYI.js → chunk-PIXLIWSO.js} +1 -1
  45. package/dist/web/{chunk-PTSOVDKH.js → chunk-QFE2KEC2.js} +3 -3
  46. package/dist/web/{chunk-Z5O67WTL.js → chunk-QNT2GSHF.js} +1 -1
  47. package/dist/web/{chunk-27CY5EHL.js → chunk-SA6ODI7U.js} +8 -8
  48. package/dist/web/{chunk-DH7VXKGM.js → chunk-SJW4IXDG.js} +9 -9
  49. package/dist/web/{chunk-O6NPTMDN.js → chunk-SU32VRD7.js} +1 -1
  50. package/dist/web/{chunk-S2ICIIH2.js → chunk-TCFHLDRK.js} +10 -10
  51. package/dist/web/{chunk-GX7GBHJ6.js → chunk-TGYM5AF6.js} +7 -7
  52. package/dist/web/{chunk-4QLR4ZNK.js → chunk-U4WWGKI5.js} +13 -13
  53. package/dist/web/{chunk-VUGV3ELU.js → chunk-UNZZVCZY.js} +6 -6
  54. package/dist/web/{chunk-EK5N3ZPW.js → chunk-UR2Q5DZF.js} +27 -14
  55. package/dist/web/{chunk-JY73M73T.js → chunk-VNNGXLQC.js} +7 -7
  56. package/dist/web/{chunk-WOAWUXER.js → chunk-VRMLE4BA.js} +3 -3
  57. package/dist/web/{chunk-WWF7IJBF.js → chunk-XB4FFFU6.js} +16 -16
  58. package/dist/web/{chunk-PS7Q6MMU.js → chunk-XHOWUR5T.js} +3 -3
  59. package/dist/web/{chunk-ZXCT3Y6P.js → chunk-XNLQEGBW.js} +1 -1
  60. package/dist/web/{chunk-JYM5NHBA.js → chunk-Y4MOWCLO.js} +1 -1
  61. package/dist/web/{chunk-CZPNI33A.js → chunk-Y74IX3Z3.js} +1 -1
  62. package/dist/web/{chunk-IK32AIOS.js → chunk-Y7G7SETL.js} +1 -1
  63. package/dist/web/{chunk-DXFFYCU3.js → chunk-YPINO6TQ.js} +4 -4
  64. package/dist/web/{chunk-7NS5S2PG.js → chunk-Z7IFO623.js} +5 -5
  65. package/dist/web/components/account-capabilities-card.js +10 -10
  66. package/dist/web/components/account-menu.js +5 -5
  67. package/dist/web/components/account-settings-shared.js +9 -9
  68. package/dist/web/components/account-status-tabs.js +6 -6
  69. package/dist/web/components/activity-detail-row.js +10 -10
  70. package/dist/web/components/activity-filter-bar.js +10 -10
  71. package/dist/web/components/activity-list.js +10 -10
  72. package/dist/web/components/activity-network-filters.js +7 -7
  73. package/dist/web/components/activity-row.js +6 -6
  74. package/dist/web/components/activity-type-tabs.js +7 -7
  75. package/dist/web/components/alert-banner.js +5 -5
  76. package/dist/web/components/app-icon.js +5 -5
  77. package/dist/web/components/asset-card.js +10 -10
  78. package/dist/web/components/asset-icon.js +2 -2
  79. package/dist/web/components/asset-selector.js +11 -11
  80. package/dist/web/components/balance-breakdown.js +6 -6
  81. package/dist/web/components/basic-collapsible.js +3 -3
  82. package/dist/web/components/bottom-nav.js +5 -5
  83. package/dist/web/components/bottom-sheet.js +5 -5
  84. package/dist/web/components/btc-unified-receive.js +14 -14
  85. package/dist/web/components/charts/bar-chart.js +10 -10
  86. package/dist/web/components/charts/bar-list.js +10 -10
  87. package/dist/web/components/charts/core.js +15 -9
  88. package/dist/web/components/charts/donut-chart.js +10 -10
  89. package/dist/web/components/charts/index.js +16 -16
  90. package/dist/web/components/charts/line-chart.js +10 -10
  91. package/dist/web/components/charts/meter.js +10 -10
  92. package/dist/web/components/charts/mixed-chart.js +10 -10
  93. package/dist/web/components/charts/scatter-chart.js +10 -10
  94. package/dist/web/components/code-block.js +10 -10
  95. package/dist/web/components/confirm-dialog.js +3 -3
  96. package/dist/web/components/copy-button.js +8 -8
  97. package/dist/web/components/copyable.js +9 -9
  98. package/dist/web/components/date-range-filter.js +3 -3
  99. package/dist/web/components/deposit-asset-selection.js +12 -12
  100. package/dist/web/components/deposit-generated-view.js +10 -10
  101. package/dist/web/components/deposit-invoice-generation.js +21 -21
  102. package/dist/web/components/deposit-network-default-modal.js +3 -3
  103. package/dist/web/components/deposit-pre-generation.js +7 -7
  104. package/dist/web/components/deposit-success-screen.js +9 -9
  105. package/dist/web/components/deposit-ui-shared.js +5 -5
  106. package/dist/web/components/disclosure-card.js +3 -3
  107. package/dist/web/components/error-boundary.js +1 -1
  108. package/dist/web/components/extension-page-frame.js +4 -4
  109. package/dist/web/components/filter-bar.js +4 -4
  110. package/dist/web/components/filter-dropdown.js +3 -3
  111. package/dist/web/components/floating-notice.js +2 -2
  112. package/dist/web/components/info-chip.js +7 -7
  113. package/dist/web/components/info-panel.js +5 -5
  114. package/dist/web/components/inline-selector.js +2 -2
  115. package/dist/web/components/instants-statement.js +9 -9
  116. package/dist/web/components/list-field.js +2 -2
  117. package/dist/web/components/metric-card.js +5 -5
  118. package/dist/web/components/one-time-secret-dialog.js +8 -8
  119. package/dist/web/components/option-selector.js +3 -3
  120. package/dist/web/components/page-header.js +2 -2
  121. package/dist/web/components/page-shell.js +2 -2
  122. package/dist/web/components/pager.js +2 -2
  123. package/dist/web/components/period-select.js +6 -6
  124. package/dist/web/components/query-state.js +6 -6
  125. package/dist/web/components/read-status.js +2 -2
  126. package/dist/web/components/record-list.js +3 -3
  127. package/dist/web/components/recovery-phrase-card.js +9 -9
  128. package/dist/web/components/secret-reveal-card.js +9 -9
  129. package/dist/web/components/setting-item.js +5 -5
  130. package/dist/web/components/settings-tile.js +7 -7
  131. package/dist/web/components/status-badge.js +5 -5
  132. package/dist/web/components/status-icon-badge.js +5 -5
  133. package/dist/web/components/stepper-number-input.js +2 -2
  134. package/dist/web/components/swap-input-card.js +16 -16
  135. package/dist/web/components/swap-step-list.js +2 -2
  136. package/dist/web/components/theme-toggle.js +3 -3
  137. package/dist/web/components/transaction-card.js +6 -6
  138. package/dist/web/components/trend-chart.js +10 -10
  139. package/dist/web/components/value-list.js +9 -9
  140. package/dist/web/components/wallet-asset-list.js +11 -11
  141. package/dist/web/components/withdraw-amount-input.js +4 -4
  142. package/dist/web/components/withdraw-confirmation.js +5 -5
  143. package/dist/web/components/withdraw-destination-input.js +2 -2
  144. package/dist/web/components/withdraw-success.js +2 -2
  145. package/dist/web/icons/index.js +2 -2
  146. package/dist/web/icons/public.js +12 -12
  147. package/dist/web/index.cjs +58 -31
  148. package/dist/web/index.d.cts +16 -4
  149. package/dist/web/index.d.ts +16 -4
  150. package/dist/web/index.js +337 -337
  151. package/dist/web/primitives/collapsible.js +2 -2
  152. package/dist/web/primitives/dialog.js +2 -2
  153. package/dist/web/primitives/drawer.js +3 -3
  154. package/dist/web/primitives/dropdown-menu.js +3 -3
  155. package/dist/web/primitives/icon-button.js +5 -5
  156. package/dist/web/primitives/icon.js +4 -4
  157. package/dist/web/primitives/menu-search.js +1 -1
  158. package/dist/web/primitives/number-input.js +2 -2
  159. package/dist/web/primitives/select.js +3 -3
  160. package/dist/web/primitives/table.js +3 -3
  161. package/dist/web/primitives/toast.js +2 -2
  162. package/dist/web/primitives/toaster.js +5 -5
  163. package/package.json +1 -1
  164. package/dist/web/{chunk-UHXOPILM.js → chunk-46KGJZSU.js} +3 -3
  165. package/dist/web/{chunk-2VAS6VYJ.js → chunk-7L35JISL.js} +3 -3
  166. package/dist/web/{chunk-4MLPMRXA.js → chunk-7L7DQFHJ.js} +3 -3
  167. package/dist/web/{chunk-VZF5C3C6.js → chunk-7VDPOFP7.js} +6 -6
  168. package/dist/web/{chunk-5PZ2XVWL.js → chunk-7Y7FEBKK.js} +3 -3
  169. package/dist/web/{chunk-C7YIQDGQ.js → chunk-A5LNLZWX.js} +3 -3
  170. package/dist/web/{chunk-DDMDRAD6.js → chunk-CLJMCDUS.js} +6 -6
  171. package/dist/web/{chunk-LZ723UCB.js → chunk-D2ZG6TZM.js} +3 -3
  172. package/dist/web/{chunk-ZPNGHBKB.js → chunk-DY72P3EE.js} +5 -5
  173. package/dist/web/{chunk-JWMFTRDC.js → chunk-ESAYAG7H.js} +7 -7
  174. package/dist/web/{chunk-VYQHGSK6.js → chunk-GCOOW7Y6.js} +7 -7
  175. package/dist/web/{chunk-TCFHH5TE.js → chunk-HBPFGIYS.js} +6 -6
  176. package/dist/web/{chunk-XCQGJYGF.js → chunk-IZCLPO4E.js} +3 -3
  177. package/dist/web/{chunk-6VKWG5FJ.js → chunk-LXDHO6BZ.js} +6 -6
  178. package/dist/web/{chunk-62HIDJCD.js → chunk-MKMZH4XD.js} +3 -3
  179. package/dist/web/{chunk-IMER4KGH.js → chunk-NHOCTXPF.js} +3 -3
  180. package/dist/web/{chunk-WURSWAKE.js → chunk-NXPVF5WX.js} +3 -3
  181. package/dist/web/{chunk-BY2KCPTX.js → chunk-OO7Y5FVA.js} +11 -11
  182. package/dist/web/{chunk-6IBQJIHT.js → chunk-Q2IXLUSM.js} +3 -3
  183. package/dist/web/{chunk-RV7Z3B3V.js → chunk-RA5YGBRB.js} +3 -3
  184. package/dist/web/{chunk-ZRIBB4EB.js → chunk-SIE2FP2T.js} +3 -3
  185. package/dist/web/{chunk-SJNOBBU5.js → chunk-U2UWLSDG.js} +3 -3
  186. package/dist/web/{chunk-2REWXJEN.js → chunk-Y276JDXI.js} +4 -4
  187. package/dist/web/{chunk-Z2SS7UJ4.js → chunk-YRRZ22OK.js} +3 -3
  188. package/dist/web/{chunk-A3XHFJ6J.js → chunk-Z3H2FQVX.js} +3 -3
  189. package/dist/web/{chunk-KIMWCG5N.js → chunk-ZDCKYQKS.js} +3 -3
package/README.md CHANGED
@@ -147,10 +147,10 @@ console.log(typeScale.body) // ['16px', '24px']
147
147
 
148
148
  | Component | Description |
149
149
  |-----------|-------------|
150
- | `Button` | 15 variants (default, destructive, outline, secondary, ghost, link, glow, surface, cta, cta-gradient, danger-subtle, danger-quiet, hyperlink, quiet), 11 sizes (`icon-xl` is deprecated, same as `icon-lg`) |
150
+ | `Button` | 17 variants (default, destructive, outline, secondary, ghost, link, glow, surface, cta, cta-gradient, danger-subtle, danger-quiet, hyperlink, h1, h2, h3, quiet), 11 sizes |
151
151
  | `Card` | Compositional: Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter |
152
152
  | `Input` | Form text input with focus ring |
153
- | `Select` | Select (Radix): Select, SelectTrigger, SelectContent, SelectItem, etc. Past four items the list caps its height, scrolls and shows a search field |
153
+ | `Select` | Select (Radix): Select, SelectTrigger, SelectContent, SelectItem, etc. Past four items, the list caps its height, scrolls, and shows a search field |
154
154
  | `DropdownMenu` | Dropdown menu (Radix): DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, etc. Searchable past four items, like `Select` |
155
155
  | `Table` | Table, TableHeader, TableBody, TableRow, TableHead, TableCell, etc. `TableHead` takes `sortable`, `sortDirection` (`'asc' \| 'desc' \| 'none'`) and `onSort`, and sets `aria-sort` |
156
156
  | `Dialog` | Modal dialog (Radix): Dialog, DialogContent, DialogHeader, DialogTitle, etc. |
@@ -201,18 +201,53 @@ and `IconGlyph` draws one glyph at the icon scale (`<IconGlyph glyph={Close} siz
201
201
  | `TrendChart` | Line/area trend chart with a chart/table switch; pass `view` + `onViewChange` to control the view from the host, or leave them out |
202
202
  | `WithdrawAmountInput` | Amount card for the withdraw flow; `unitSlot` replaces the unit label with your own control (e.g. a unit picker) inside the card |
203
203
 
204
- ### Hooks
204
+ ### Hooks and functions
205
+
206
+ Every function and hook `kaleido-ui` exports. `tests/docs-accuracy.test.tsx`
207
+ fails when one is missing here.
205
208
 
206
209
  | Hook | Description |
207
210
  |------|-------------|
208
- | `useToast` | Toast state management + `toast()` function |
209
- | `useAssetIcon` | Resolves asset ticker to CDN icon URL |
210
-
211
- ### Utilities
212
-
213
- | Export | Description |
214
- |--------|-------------|
211
+ | `useToast` | Toast state management; `toast()` shows one |
212
+ | `useAssetIcon` | Resolves an asset ticker to its CDN icon URL |
213
+ | `useCopyToClipboard` | `{ state: 'idle' \| 'copied' \| 'failed', copy, reset }`: a missing or refused clipboard is `failed`, never `copied` |
214
+ | `useMediaQuery` | Whether a media query matches, kept up to date; `false` on the server and in jsdom |
215
+ | `useIsNarrow` | Narrower than the `sm` breakpoint (40rem): a phone |
216
+ | `useThemeMode` | The light/dark mode on the document root, remembered in localStorage (`kaleido-ui:theme`) |
217
+ | `useDiscardGuard` | For a dialog holding unsaved input: closing asks first when there is something to lose |
218
+ | `useDrawerCollapsed` | Whether the surrounding drawer is folded to its icon rail |
219
+
220
+ | Function | Description |
221
+ |----------|-------------|
215
222
  | `cn()` | `clsx` + `tailwind-merge`, configured with kaleido-ui's custom scales (`text-title`, `text-icon-md`, `rounded-card`, `shadow-glow-*`, `tracking-eyebrow`) so they are not mistaken for colours and dropped. Use it instead of a local `twMerge`. |
223
+ | `toast()` | Shows a toast (see `useToast`) |
224
+ | `applyThemeMode(mode)` | Puts `.dark` or `.light` on the document root, without the hook |
225
+ | `formatAmount(value, { locale, maximumFractionDigits })` | Groups a number in an explicit locale (default `en-US`): the formatter the amount components share |
226
+ | `formatDisplayAmountText(value, { unit, maxDecimals })` | Formats an amount string for display, keeping its unit suffix (`BTC`, `sats`, `mBTC`) and leaving locale-formatted strings intact |
227
+ | `getAssetIconUrl(ticker, cdnBaseUrl?)` | The CDN icon URL for a ticker (what `useAssetIcon` returns, without React) |
228
+ | `getFallbackAssetIconUrl(seed)` | A generated gradient placeholder icon URL for an asset with no CDN icon |
229
+ | `createIcon(outlined, filled?)` | Builds an `Icon` that ships only the glyphs you pass (see above) |
230
+ | `isIconName(value)` | Whether a string names a glyph in the set |
231
+ | `buttonVariants` | `Button`'s variant classes (cva), for an element that must look like a button |
232
+ | `avatarVariants` | `Avatar`'s size classes (cva) |
233
+ | `cardSurface` | The two card surfaces' classes: `primary` (glass card with edge) and `secondary` (no edge, ranks under a primary card) |
234
+ | `networkChipStyle(network)` | A network's chip fill and ink (`{ backgroundColor, color }`), for any surface that stands for that network |
235
+ | `getActivityNetworkFilterIcon(filter)` | The icon element for an activity network filter |
236
+ | `getAccountNetworkLabel(network)` | `'Mainnet'`, `'Testnet'`, `'Regtest'` or `'Signet'` |
237
+ | `getAccountNetworkUi(network)` | Label plus badge and banner classes for an account's network |
238
+ | `getAccountStatusUi(status)` | Label and classes for an account status (`ready`, `offline`, `optional`) |
239
+ | `defaultClassifyError(error)` | `QueryState`'s fallback classifier: a retryable "Could not load" with the error's message |
240
+ | `activeFiltersLabel(count)` | "1 filter applied", "3 filters applied" |
241
+ | `seriesColor(slot)` | The chart series colour for a slot (`var(--series-N)`) |
242
+ | `chartValueTicks(max, { integer })` | Value-axis ticks from zero whose top is the largest value |
243
+ | `chartLabelIndices(count, maxLabels)` | Category indices that get a label: first and last, evenly spaced between |
244
+ | `foldSegments(segments)` | Keeps the largest five donut segments and folds the rest into "Other" |
245
+ | `trendChartTicks(max)` | `TrendChart`'s value-axis ticks (top = peak) |
246
+ | `trendChartLabelIndices(count, maxLabels)` | `TrendChart`'s time-axis label indices |
247
+ | `kaleidoswapMarkArtwork`, `kaleidoswapLogoHorizontalArtwork`, `kaleidoswapLogoVerticalArtwork` | The logo's `viewBox` and paths, for drawing it outside React |
248
+
249
+ The chart helpers are what the chart components use; they are exported for a
250
+ custom chart that should follow the same axis and colour rules.
216
251
 
217
252
  ### Brand utilities (from `kaleido-ui/css`)
218
253
 
@@ -1,14 +1,14 @@
1
1
  "use client";
2
+ import {
3
+ AppIcon
4
+ } from "./chunk-XHOWUR5T.js";
2
5
  import {
3
6
  Select,
4
7
  SelectContent,
5
8
  SelectItem,
6
9
  SelectTrigger,
7
10
  SelectValue
8
- } from "./chunk-6VKWG5FJ.js";
9
- import {
10
- AppIcon
11
- } from "./chunk-PS7Q6MMU.js";
11
+ } from "./chunk-LXDHO6BZ.js";
12
12
  import {
13
13
  GlyphButton
14
14
  } from "./chunk-JY3H7ZAI.js";
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  import {
3
3
  Icon
4
- } from "./chunk-A6MSV4MA.js";
5
- import {
6
- isIconName
7
- } from "./chunk-VYQHGSK6.js";
4
+ } from "./chunk-HLHCPDCZ.js";
8
5
  import {
9
6
  IconGlyph
10
7
  } from "./chunk-YQQ7GDLZ.js";
11
- import {
12
- ChevronRight
13
- } from "./chunk-XXH4TYKZ.js";
14
8
  import {
15
9
  cn
16
10
  } from "./chunk-PMGIJMRO.js";
11
+ import {
12
+ isIconName
13
+ } from "./chunk-GCOOW7Y6.js";
14
+ import {
15
+ ChevronRight
16
+ } from "./chunk-XXH4TYKZ.js";
17
17
 
18
18
  // src/web/components/setting-item.tsx
19
19
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  InlineSelector
4
- } from "./chunk-Z2SS7UJ4.js";
4
+ } from "./chunk-YRRZ22OK.js";
5
5
  import {
6
6
  IconGlyph
7
7
  } from "./chunk-YQQ7GDLZ.js";
8
+ import {
9
+ cn
10
+ } from "./chunk-PMGIJMRO.js";
8
11
  import {
9
12
  Check,
10
13
  ExpandMore
11
14
  } from "./chunk-XXH4TYKZ.js";
12
- import {
13
- cn
14
- } from "./chunk-PMGIJMRO.js";
15
15
 
16
16
  // src/web/components/option-selector.tsx
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  PageHeader
4
- } from "./chunk-62HIDJCD.js";
4
+ } from "./chunk-MKMZH4XD.js";
5
5
  import {
6
6
  FadeOverlay
7
- } from "./chunk-A3XHFJ6J.js";
7
+ } from "./chunk-Z3H2FQVX.js";
8
8
  import {
9
9
  ScrollArea
10
10
  } from "./chunk-DCUAE6PX.js";
@@ -1,25 +1,25 @@
1
1
  "use client";
2
2
  import {
3
- useIsNarrow
4
- } from "./chunk-MTQ22SKE.js";
3
+ Button
4
+ } from "./chunk-OWSKP527.js";
5
5
  import {
6
6
  Collapsible,
7
7
  CollapsibleChevron,
8
8
  CollapsibleContent,
9
9
  CollapsibleTrigger
10
- } from "./chunk-6IBQJIHT.js";
11
- import {
12
- Button
13
- } from "./chunk-OWSKP527.js";
10
+ } from "./chunk-Q2IXLUSM.js";
14
11
  import {
15
12
  IconGlyph
16
13
  } from "./chunk-YQQ7GDLZ.js";
17
- import {
18
- Tune
19
- } from "./chunk-XXH4TYKZ.js";
20
14
  import {
21
15
  cn
22
16
  } from "./chunk-PMGIJMRO.js";
17
+ import {
18
+ useIsNarrow
19
+ } from "./chunk-MTQ22SKE.js";
20
+ import {
21
+ Tune
22
+ } from "./chunk-XXH4TYKZ.js";
23
23
 
24
24
  // src/web/components/filter-bar.tsx
25
25
  import { useState } from "react";
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  CopyButton
4
- } from "./chunk-QCQRA6L5.js";
5
- import {
6
- HorizontalScrollArea
7
- } from "./chunk-DCUAE6PX.js";
4
+ } from "./chunk-GQBELVPV.js";
8
5
  import {
9
6
  eyebrow
10
7
  } from "./chunk-MTQOAMDW.js";
8
+ import {
9
+ HorizontalScrollArea
10
+ } from "./chunk-DCUAE6PX.js";
11
11
  import {
12
12
  cn
13
13
  } from "./chunk-PMGIJMRO.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  CopyButton
4
- } from "./chunk-QCQRA6L5.js";
4
+ } from "./chunk-GQBELVPV.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-PMGIJMRO.js";
@@ -14,7 +14,7 @@ import {
14
14
  tooltipText,
15
15
  useChartWidth,
16
16
  useSeriesVisibility
17
- } from "./chunk-EK5N3ZPW.js";
17
+ } from "./chunk-UR2Q5DZF.js";
18
18
  import {
19
19
  cn
20
20
  } from "./chunk-PMGIJMRO.js";
@@ -1,9 +1,8 @@
1
1
  "use client";
2
2
  import {
3
3
  ChartFrame,
4
- defaultChartFormat,
5
- seriesColor
6
- } from "./chunk-EK5N3ZPW.js";
4
+ defaultChartFormat
5
+ } from "./chunk-UR2Q5DZF.js";
7
6
  import {
8
7
  cn
9
8
  } from "./chunk-PMGIJMRO.js";
@@ -17,6 +16,7 @@ function BarList({
17
16
  max,
18
17
  sort = "none",
19
18
  showPercent = true,
19
+ labelWidth,
20
20
  empty,
21
21
  className,
22
22
  ...head
@@ -27,40 +27,54 @@ function BarList({
27
27
  const sum = rows.reduce((acc, item) => acc + Math.max(0, item.value), 0);
28
28
  const percentOf = (item) => formatPercent(item.percent ?? (sum > 0 ? Math.max(0, item.value) / sum : 0));
29
29
  const framed = head.title !== void 0 || (head.timeframes?.length ?? 0) > 0;
30
+ const label_ = labelWidth ? `minmax(0,${labelWidth})` : "auto";
31
+ const wideColumns = showPercent ? `${label_} 1fr auto auto` : `${label_} 1fr auto`;
30
32
  const list = /* @__PURE__ */ jsx(
31
33
  "ol",
32
34
  {
33
35
  "data-slot": "bar-list",
34
36
  "aria-label": label,
35
37
  className: cn(
36
- "m-0 grid list-none items-center gap-x-3 gap-y-2 p-0 text-caption",
38
+ "m-0 grid list-none gap-y-3 p-0 text-caption sm:items-center sm:gap-x-3 sm:gap-y-2",
39
+ "sm:[grid-template-columns:var(--bar-list-columns)]",
37
40
  // Under a head, a little more air than the plots' own top margin.
38
41
  framed && "pt-2",
39
- showPercent ? "grid-cols-[auto_1fr_auto_auto]" : "grid-cols-[auto_1fr_auto]",
40
42
  className
41
43
  ),
44
+ style: { "--bar-list-columns": wideColumns },
42
45
  children: rows.map((item) => {
43
46
  const share = Math.max(0, item.value) / top;
44
47
  return /* @__PURE__ */ jsxs(
45
48
  "li",
46
49
  {
47
50
  "data-slot": "bar-list-row",
48
- className: "col-span-full grid grid-cols-subgrid items-center",
51
+ className: cn(
52
+ // Narrow: label and value on one line, the bar under them.
53
+ "grid items-baseline gap-x-3 gap-y-1.5",
54
+ showPercent ? "grid-cols-[minmax(0,1fr)_auto_auto]" : "grid-cols-[minmax(0,1fr)_auto]",
55
+ "sm:col-span-full sm:grid-cols-subgrid sm:items-center sm:gap-y-0"
56
+ ),
49
57
  children: [
50
- /* @__PURE__ */ jsx("span", { className: "max-w-[10rem] truncate text-muted-foreground", children: item.label }),
51
- /* @__PURE__ */ jsx("span", { className: "h-2 overflow-hidden rounded-full bg-secondary/15 shadow-inner", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
58
+ /* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate text-muted-foreground", !labelWidth && "sm:max-w-[10rem]"), children: item.label }),
59
+ /* @__PURE__ */ jsx(
52
60
  "span",
53
61
  {
54
- className: "block h-full rounded-full",
55
- style: {
56
- width: `${share * 100}%`,
57
- // A non-zero value keeps a sliver, so it never reads as zero.
58
- minWidth: item.value > 0 ? 4 : 0,
59
- background: seriesColor(0)
60
- }
62
+ className: "order-last col-span-full h-2 overflow-hidden rounded-full bg-primary/15 shadow-inner sm:order-none sm:col-span-1",
63
+ "aria-hidden": "true",
64
+ children: /* @__PURE__ */ jsx(
65
+ "span",
66
+ {
67
+ className: "block h-full rounded-full bg-primary bg-gradient-primary",
68
+ style: {
69
+ width: `${share * 100}%`,
70
+ // A non-zero value keeps a sliver, so it never reads as zero.
71
+ minWidth: item.value > 0 ? 4 : 0
72
+ }
73
+ }
74
+ )
61
75
  }
62
- ) }),
63
- /* @__PURE__ */ jsx("span", { className: "text-right font-semibold tabular-nums text-foreground", children: item.valueText ?? formatValue(item.value) }),
76
+ ),
77
+ /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap text-right font-semibold tabular-nums text-foreground", children: item.valueText ?? formatValue(item.value) }),
64
78
  showPercent && /* @__PURE__ */ jsx("span", { className: "text-right tabular-nums text-muted-foreground", children: percentOf(item) })
65
79
  ]
66
80
  },
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import {
3
- formatDisplayAmountText
4
- } from "./chunk-VM6AGMYO.js";
5
2
  import {
6
3
  AssetSelector
7
- } from "./chunk-QFIGSIXA.js";
4
+ } from "./chunk-CRQ6QCAN.js";
8
5
  import {
9
6
  DottedLeader
10
7
  } from "./chunk-CXMCWSWC.js";
11
8
  import {
12
- cardSurface
13
- } from "./chunk-GZZ5KVON.js";
9
+ formatDisplayAmountText
10
+ } from "./chunk-VM6AGMYO.js";
11
+ import {
12
+ eyebrow
13
+ } from "./chunk-MTQOAMDW.js";
14
14
  import {
15
15
  GlyphButton
16
16
  } from "./chunk-JY3H7ZAI.js";
@@ -18,18 +18,18 @@ import {
18
18
  Button
19
19
  } from "./chunk-OWSKP527.js";
20
20
  import {
21
- eyebrow
22
- } from "./chunk-MTQOAMDW.js";
21
+ cardSurface
22
+ } from "./chunk-GZZ5KVON.js";
23
23
  import {
24
24
  IconGlyph
25
25
  } from "./chunk-YQQ7GDLZ.js";
26
+ import {
27
+ cn
28
+ } from "./chunk-PMGIJMRO.js";
26
29
  import {
27
30
  SwapVert,
28
31
  Warning
29
32
  } from "./chunk-XXH4TYKZ.js";
30
- import {
31
- cn
32
- } from "./chunk-PMGIJMRO.js";
33
33
 
34
34
  // src/web/components/swap-input-card.tsx
35
35
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  import {
3
3
  InlineSelector
4
- } from "./chunk-Z2SS7UJ4.js";
4
+ } from "./chunk-YRRZ22OK.js";
5
5
  import {
6
6
  IconGlyph
7
7
  } from "./chunk-YQQ7GDLZ.js";
8
- import {
9
- ExpandMore
10
- } from "./chunk-XXH4TYKZ.js";
11
8
  import {
12
9
  cn
13
10
  } from "./chunk-PMGIJMRO.js";
11
+ import {
12
+ ExpandMore
13
+ } from "./chunk-XXH4TYKZ.js";
14
14
 
15
15
  // src/web/components/filter-dropdown.tsx
16
16
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -15,7 +15,7 @@ import {
15
15
  tooltipText,
16
16
  useChartWidth,
17
17
  useSeriesVisibility
18
- } from "./chunk-EK5N3ZPW.js";
18
+ } from "./chunk-UR2Q5DZF.js";
19
19
 
20
20
  // src/web/components/charts/mixed-chart.tsx
21
21
  import { useId, useState } from "react";
@@ -6,19 +6,19 @@ import {
6
6
  ToastProvider,
7
7
  ToastTitle,
8
8
  ToastViewport
9
- } from "./chunk-2VAS6VYJ.js";
10
- import {
11
- useToast
12
- } from "./chunk-TS4UYWJJ.js";
13
- import {
14
- useCopyToClipboard
15
- } from "./chunk-BGUBHWIO.js";
9
+ } from "./chunk-7L35JISL.js";
16
10
  import {
17
11
  GlyphButton
18
12
  } from "./chunk-JY3H7ZAI.js";
19
13
  import {
20
14
  IconGlyph
21
15
  } from "./chunk-YQQ7GDLZ.js";
16
+ import {
17
+ useCopyToClipboard
18
+ } from "./chunk-BGUBHWIO.js";
19
+ import {
20
+ useToast
21
+ } from "./chunk-TS4UYWJJ.js";
22
22
  import {
23
23
  Check,
24
24
  CheckCircle,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Icon
4
- } from "./chunk-A6MSV4MA.js";
4
+ } from "./chunk-HLHCPDCZ.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-PMGIJMRO.js";
@@ -1,34 +1,34 @@
1
1
  "use client";
2
2
  import {
3
3
  InlineSelector
4
- } from "./chunk-Z2SS7UJ4.js";
5
- import {
6
- AssetIcon
7
- } from "./chunk-2REWXJEN.js";
4
+ } from "./chunk-YRRZ22OK.js";
8
5
  import {
9
6
  iconBadgeOverlayClass
10
- } from "./chunk-CZPNI33A.js";
7
+ } from "./chunk-Y74IX3Z3.js";
11
8
  import {
12
- ScrollArea
13
- } from "./chunk-DCUAE6PX.js";
9
+ AssetIcon
10
+ } from "./chunk-Y276JDXI.js";
14
11
  import {
15
12
  NetworkBadge
16
13
  } from "./chunk-IV6AAVUE.js";
17
14
  import {
18
15
  eyebrow
19
16
  } from "./chunk-MTQOAMDW.js";
17
+ import {
18
+ ScrollArea
19
+ } from "./chunk-DCUAE6PX.js";
20
20
  import {
21
21
  IconGlyph
22
22
  } from "./chunk-YQQ7GDLZ.js";
23
+ import {
24
+ cn
25
+ } from "./chunk-PMGIJMRO.js";
23
26
  import {
24
27
  Check,
25
28
  ExpandMore,
26
29
  Hub,
27
30
  Search
28
31
  } from "./chunk-XXH4TYKZ.js";
29
- import {
30
- cn
31
- } from "./chunk-PMGIJMRO.js";
32
32
 
33
33
  // src/web/components/asset-selector.tsx
34
34
  import { useState } from "react";
@@ -1,28 +1,28 @@
1
1
  "use client";
2
2
  import {
3
3
  COPY_FAILED_MESSAGE
4
- } from "./chunk-QCQRA6L5.js";
4
+ } from "./chunk-GQBELVPV.js";
5
5
  import {
6
- useCopyToClipboard
7
- } from "./chunk-BGUBHWIO.js";
6
+ eyebrow
7
+ } from "./chunk-MTQOAMDW.js";
8
8
  import {
9
9
  Button
10
10
  } from "./chunk-OWSKP527.js";
11
- import {
12
- eyebrow
13
- } from "./chunk-MTQOAMDW.js";
14
11
  import {
15
12
  IconGlyph
16
13
  } from "./chunk-YQQ7GDLZ.js";
14
+ import {
15
+ cn
16
+ } from "./chunk-PMGIJMRO.js";
17
+ import {
18
+ useCopyToClipboard
19
+ } from "./chunk-BGUBHWIO.js";
17
20
  import {
18
21
  Check,
19
22
  ContentCopy,
20
23
  Visibility,
21
24
  VisibilityOff
22
25
  } from "./chunk-XXH4TYKZ.js";
23
- import {
24
- cn
25
- } from "./chunk-PMGIJMRO.js";
26
26
 
27
27
  // src/web/components/recovery-phrase-card.tsx
28
28
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,13 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  InfoPanel
4
- } from "./chunk-2Q5SSNFO.js";
5
- import {
6
- useCopyToClipboard
7
- } from "./chunk-BGUBHWIO.js";
8
- import {
9
- Icon
10
- } from "./chunk-A6MSV4MA.js";
4
+ } from "./chunk-ELT34EZJ.js";
11
5
  import {
12
6
  Dialog,
13
7
  DialogContent,
@@ -15,10 +9,16 @@ import {
15
9
  DialogFooter,
16
10
  DialogHeader,
17
11
  DialogTitle
18
- } from "./chunk-LZ723UCB.js";
12
+ } from "./chunk-D2ZG6TZM.js";
13
+ import {
14
+ Icon
15
+ } from "./chunk-HLHCPDCZ.js";
19
16
  import {
20
17
  Button
21
18
  } from "./chunk-OWSKP527.js";
19
+ import {
20
+ useCopyToClipboard
21
+ } from "./chunk-BGUBHWIO.js";
22
22
 
23
23
  // src/web/components/one-time-secret-dialog.tsx
24
24
  import { useEffect } from "react";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Icon
4
- } from "./chunk-A6MSV4MA.js";
4
+ } from "./chunk-HLHCPDCZ.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-PMGIJMRO.js";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ AppIcon
4
+ } from "./chunk-XHOWUR5T.js";
2
5
  import {
3
6
  TabsList,
4
7
  TabsTrigger
5
8
  } from "./chunk-ZR32WYJA.js";
6
- import {
7
- AppIcon
8
- } from "./chunk-PS7Q6MMU.js";
9
9
 
10
10
  // src/web/components/activity-type-tabs.tsx
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -8,7 +8,7 @@ import {
8
8
  plotClass,
9
9
  seriesColor,
10
10
  useSeriesVisibility
11
- } from "./chunk-EK5N3ZPW.js";
11
+ } from "./chunk-UR2Q5DZF.js";
12
12
 
13
13
  // src/web/components/charts/donut-chart.tsx
14
14
  import { useState } from "react";
@@ -4,20 +4,20 @@ import {
4
4
  } from "./chunk-CXMCWSWC.js";
5
5
  import {
6
6
  CopyButton
7
- } from "./chunk-QCQRA6L5.js";
7
+ } from "./chunk-GQBELVPV.js";
8
+ import {
9
+ eyebrow
10
+ } from "./chunk-MTQOAMDW.js";
8
11
  import {
9
12
  GlyphButton
10
13
  } from "./chunk-JY3H7ZAI.js";
11
14
  import {
12
- eyebrow
13
- } from "./chunk-MTQOAMDW.js";
15
+ cn
16
+ } from "./chunk-PMGIJMRO.js";
14
17
  import {
15
18
  Check,
16
19
  ContentCopy
17
20
  } from "./chunk-XXH4TYKZ.js";
18
- import {
19
- cn
20
- } from "./chunk-PMGIJMRO.js";
21
21
 
22
22
  // src/web/components/activity-detail-row.tsx
23
23
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  Icon
4
- } from "./chunk-A6MSV4MA.js";
4
+ } from "./chunk-HLHCPDCZ.js";
5
5
  import {
6
6
  cn
7
7
  } from "./chunk-PMGIJMRO.js";
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  DateRangeFilter
4
- } from "./chunk-SJNOBBU5.js";
4
+ } from "./chunk-U2UWLSDG.js";
5
5
  import {
6
6
  Select,
7
7
  SelectContent,
8
8
  SelectItem,
9
9
  SelectTrigger,
10
10
  SelectValue
11
- } from "./chunk-6VKWG5FJ.js";
11
+ } from "./chunk-LXDHO6BZ.js";
12
12
  import {
13
13
  cn
14
14
  } from "./chunk-PMGIJMRO.js";