kaleido-ui 0.2.1 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -10
- package/dist/css/kaleido-ui.css +0 -4
- package/dist/icon-AvUL0Cws.d.cts +135 -0
- package/dist/icon-AvUL0Cws.d.ts +135 -0
- package/dist/native/index.cjs +0 -126
- package/dist/native/index.js +0 -126
- package/dist/web/assets/kaleidoswap-brand.js +11 -0
- package/dist/web/assets/protocol-icons.js +7 -0
- package/dist/web/chunk-25RRZDZ2.js +269 -0
- package/dist/web/chunk-27CY5EHL.js +230 -0
- package/dist/web/chunk-2GNXC446.js +84 -0
- package/dist/web/chunk-2NCH2ZDU.js +129 -0
- package/dist/web/chunk-2OGYEUYV.js +220 -0
- package/dist/web/chunk-2Q5SSNFO.js +63 -0
- package/dist/web/chunk-2REWXJEN.js +96 -0
- package/dist/web/chunk-2VAS6VYJ.js +106 -0
- package/dist/web/chunk-2VKFRAX3.js +39 -0
- package/dist/web/chunk-2Z6KFK4Z.js +41 -0
- package/dist/web/chunk-4246Y2F2.js +276 -0
- package/dist/web/chunk-4MLPMRXA.js +85 -0
- package/dist/web/chunk-4QLR4ZNK.js +383 -0
- package/dist/web/chunk-4UMKXXAK.js +33 -0
- package/dist/web/chunk-563GMWFT.js +32 -0
- package/dist/web/chunk-5BNDC7M4.js +50 -0
- package/dist/web/chunk-5GBURTY4.js +33 -0
- package/dist/web/chunk-5MM5YGGG.js +43 -0
- package/dist/web/chunk-5PZ2XVWL.js +85 -0
- package/dist/web/chunk-5V2KMO56.js +55 -0
- package/dist/web/chunk-5WBAFYPH.js +62 -0
- package/dist/web/chunk-62HIDJCD.js +98 -0
- package/dist/web/chunk-6IBQJIHT.js +56 -0
- package/dist/web/chunk-6PNGSAJB.js +55 -0
- package/dist/web/chunk-6VKWG5FJ.js +159 -0
- package/dist/web/chunk-76DAZT7Q.js +107 -0
- package/dist/web/chunk-7NS5S2PG.js +126 -0
- package/dist/web/chunk-7OE6AXLY.js +27 -0
- package/dist/web/chunk-7YUPXESC.js +666 -0
- package/dist/web/chunk-A3TKIXSI.js +197 -0
- package/dist/web/chunk-A3XHFJ6J.js +120 -0
- package/dist/web/chunk-A6MSV4MA.js +83 -0
- package/dist/web/chunk-A7MPRLJL.js +169 -0
- package/dist/web/chunk-AP7Q2FCS.js +43 -0
- package/dist/web/chunk-ASHU5XNR.js +21 -0
- package/dist/web/chunk-BGUBHWIO.js +41 -0
- package/dist/web/chunk-BY2KCPTX.js +444 -0
- package/dist/web/chunk-C7YIQDGQ.js +57 -0
- package/dist/web/chunk-CBE7BT3M.js +87 -0
- package/dist/web/chunk-CJATW6EO.js +108 -0
- package/dist/web/chunk-CRDCVB5X.js +96 -0
- package/dist/web/chunk-CRMLYZIX.js +35 -0
- package/dist/web/chunk-CXMCWSWC.js +20 -0
- package/dist/web/chunk-CZPNI33A.js +31 -0
- package/dist/web/chunk-DCUAE6PX.js +202 -0
- package/dist/web/chunk-DDMDRAD6.js +403 -0
- package/dist/web/chunk-DH7VXKGM.js +247 -0
- package/dist/web/chunk-DNHRMPKI.js +63 -0
- package/dist/web/chunk-DXFFYCU3.js +83 -0
- package/dist/web/chunk-EK5N3ZPW.js +417 -0
- package/dist/web/chunk-F2LIZX5K.js +140 -0
- package/dist/web/chunk-FSQV54O4.js +61 -0
- package/dist/web/chunk-FWOIRFV5.js +73 -0
- package/dist/web/chunk-G2MJL3VP.js +54 -0
- package/dist/web/chunk-G2ZYNR3W.js +28 -0
- package/dist/web/chunk-G373WZMN.js +150 -0
- package/dist/web/chunk-GMJGTSCQ.js +82 -0
- package/dist/web/chunk-GX7GBHJ6.js +362 -0
- package/dist/web/chunk-GZZ5KVON.js +70 -0
- package/dist/web/chunk-H3GYLFHP.js +30 -0
- package/dist/web/chunk-HDLOPDFX.js +89 -0
- package/dist/web/chunk-HP25HN7Q.js +69 -0
- package/dist/web/chunk-HVKSBEZN.js +98 -0
- package/dist/web/chunk-HWKXZNBN.js +74 -0
- package/dist/web/chunk-HY3VMT27.js +64 -0
- package/dist/web/chunk-IK32AIOS.js +27 -0
- package/dist/web/chunk-IMER4KGH.js +151 -0
- package/dist/web/chunk-IV6AAVUE.js +177 -0
- package/dist/web/chunk-JWMFTRDC.js +254 -0
- package/dist/web/chunk-JY3H7ZAI.js +41 -0
- package/dist/web/chunk-JY73M73T.js +175 -0
- package/dist/web/chunk-JYM5NHBA.js +80 -0
- package/dist/web/chunk-JZ3BUM5L.js +368 -0
- package/dist/web/chunk-KIMWCG5N.js +108 -0
- package/dist/web/chunk-L2UPQLY7.js +43 -0
- package/dist/web/chunk-LFAORJQK.js +81 -0
- package/dist/web/chunk-LOGZGZWN.js +1 -0
- package/dist/web/chunk-LPDB7EHH.js +65 -0
- package/dist/web/chunk-LSY4DY2I.js +72 -0
- package/dist/web/chunk-LYCLVP26.js +101 -0
- package/dist/web/chunk-LZ6PIXUO.js +43 -0
- package/dist/web/chunk-LZ723UCB.js +96 -0
- package/dist/web/chunk-M6RXTQEL.js +90 -0
- package/dist/web/chunk-MTQ22SKE.js +39 -0
- package/dist/web/chunk-MTQOAMDW.js +8 -0
- package/dist/web/chunk-NEXA6VGG.js +91 -0
- package/dist/web/chunk-NSA777UY.js +89 -0
- package/dist/web/chunk-O2TTO5FS.js +24 -0
- package/dist/web/chunk-O6NPTMDN.js +191 -0
- package/dist/web/chunk-OI7WX7NE.js +17 -0
- package/dist/web/chunk-OWSKP527.js +80 -0
- package/dist/web/chunk-OX3J3FYX.js +64 -0
- package/dist/web/chunk-PCKRLEAO.js +40 -0
- package/dist/web/chunk-PMGIJMRO.js +207 -0
- package/dist/web/chunk-PS7Q6MMU.js +60 -0
- package/dist/web/chunk-PTSOVDKH.js +169 -0
- package/dist/web/chunk-QBZSLR7U.js +54 -0
- package/dist/web/chunk-QCQRA6L5.js +63 -0
- package/dist/web/chunk-QFIGSIXA.js +558 -0
- package/dist/web/chunk-QRFFLA3N.js +84 -0
- package/dist/web/chunk-QXCCUYNY.js +232 -0
- package/dist/web/chunk-QXZ2WY3B.js +38 -0
- package/dist/web/chunk-R2MV4S4U.js +50 -0
- package/dist/web/chunk-R3IIXFGK.js +48 -0
- package/dist/web/chunk-RIOY4LFJ.js +141 -0
- package/dist/web/chunk-RV7Z3B3V.js +106 -0
- package/dist/web/chunk-RXXYUYBP.js +25 -0
- package/dist/web/chunk-S2ICIIH2.js +109 -0
- package/dist/web/chunk-SJNOBBU5.js +86 -0
- package/dist/web/chunk-STMNX3QT.js +109 -0
- package/dist/web/chunk-T7CEJV6P.js +66 -0
- package/dist/web/chunk-TBEKRQGW.js +99 -0
- package/dist/web/chunk-TCFHH5TE.js +179 -0
- package/dist/web/chunk-TI7NWMEQ.js +34 -0
- package/dist/web/chunk-TKRMGN7J.js +8 -0
- package/dist/web/chunk-TMK3SVYI.js +62 -0
- package/dist/web/chunk-TPGNO74K.js +67 -0
- package/dist/web/chunk-TS4UYWJJ.js +105 -0
- package/dist/web/chunk-TY6SGZC7.js +94 -0
- package/dist/web/chunk-UHXOPILM.js +101 -0
- package/dist/web/chunk-UK6ZL4MX.js +375 -0
- package/dist/web/chunk-UXLWWQ4J.js +20 -0
- package/dist/web/chunk-UZ4LWR4X.js +26 -0
- package/dist/web/chunk-VLZMX43R.js +45 -0
- package/dist/web/chunk-VM6AGMYO.js +46 -0
- package/dist/web/chunk-VUGV3ELU.js +176 -0
- package/dist/web/chunk-VYQHGSK6.js +244 -0
- package/dist/web/chunk-VZF5C3C6.js +146 -0
- package/dist/web/chunk-W4E2N3UN.js +58 -0
- package/dist/web/chunk-WEPSTI3Z.js +83 -0
- package/dist/web/chunk-WOAWUXER.js +139 -0
- package/dist/web/chunk-WURSWAKE.js +74 -0
- package/dist/web/chunk-WWF7IJBF.js +330 -0
- package/dist/web/chunk-X2RA4EG3.js +86 -0
- package/dist/web/chunk-XCQGJYGF.js +42 -0
- package/dist/web/chunk-XDSOOOYL.js +35 -0
- package/dist/web/chunk-XPHFJPUQ.js +291 -0
- package/dist/web/chunk-XXH4TYKZ.js +276 -0
- package/dist/web/chunk-XZQUQOR3.js +48 -0
- package/dist/web/chunk-Y3W6LOOE.js +66 -0
- package/dist/web/chunk-YNB4SSLD.js +113 -0
- package/dist/web/chunk-YQDCU7ZL.js +49 -0
- package/dist/web/chunk-YQQ7GDLZ.js +30 -0
- package/dist/web/chunk-YTXWYWVD.js +70 -0
- package/dist/web/chunk-YXVOFEDT.js +85 -0
- package/dist/web/chunk-Z2SS7UJ4.js +139 -0
- package/dist/web/chunk-Z5LVT3BD.js +128 -0
- package/dist/web/chunk-Z5O67WTL.js +85 -0
- package/dist/web/chunk-ZPNGHBKB.js +86 -0
- package/dist/web/chunk-ZR32WYJA.js +55 -0
- package/dist/web/chunk-ZRIBB4EB.js +62 -0
- package/dist/web/chunk-ZTVV4KBT.js +28 -0
- package/dist/web/chunk-ZXCT3Y6P.js +56 -0
- package/dist/web/components/account-capabilities-card.js +21 -0
- package/dist/web/components/account-menu.js +18 -0
- package/dist/web/components/account-settings-shared.js +50 -0
- package/dist/web/components/account-status-tabs.js +20 -0
- package/dist/web/components/action-tile.js +8 -0
- package/dist/web/components/activity-detail-row.js +22 -0
- package/dist/web/components/activity-filter-bar.js +22 -0
- package/dist/web/components/activity-list.js +23 -0
- package/dist/web/components/activity-network-filters.js +19 -0
- package/dist/web/components/activity-row.js +15 -0
- package/dist/web/components/activity-type-tabs.js +17 -0
- package/dist/web/components/alert-banner.js +13 -0
- package/dist/web/components/amount.js +8 -0
- package/dist/web/components/app-icon.js +15 -0
- package/dist/web/components/asset-card.js +21 -0
- package/dist/web/components/asset-icon.js +10 -0
- package/dist/web/components/asset-selector.js +24 -0
- package/dist/web/components/balance-breakdown.js +18 -0
- package/dist/web/components/basic-collapsible.js +11 -0
- package/dist/web/components/bottom-nav.js +13 -0
- package/dist/web/components/bottom-sheet.js +15 -0
- package/dist/web/components/btc-unified-receive.js +28 -0
- package/dist/web/components/charts/bar-chart.js +24 -0
- package/dist/web/components/charts/bar-list.js +24 -0
- package/dist/web/components/charts/core.js +63 -0
- package/dist/web/components/charts/donut-chart.js +26 -0
- package/dist/web/components/charts/index.js +72 -0
- package/dist/web/components/charts/line-chart.js +26 -0
- package/dist/web/components/charts/meter.js +24 -0
- package/dist/web/components/charts/mixed-chart.js +24 -0
- package/dist/web/components/charts/scatter-chart.js +24 -0
- package/dist/web/components/charts/sparkline.js +8 -0
- package/dist/web/components/choice-group.js +11 -0
- package/dist/web/components/code-block.js +21 -0
- package/dist/web/components/confirm-dialog.js +15 -0
- package/dist/web/components/copy-button.js +21 -0
- package/dist/web/components/copyable.js +20 -0
- package/dist/web/components/date-range-filter.js +16 -0
- package/dist/web/components/deposit-asset-selection.js +24 -0
- package/dist/web/components/deposit-generated-view.js +23 -0
- package/dist/web/components/deposit-invoice-generation.js +35 -0
- package/dist/web/components/deposit-network-default-modal.js +13 -0
- package/dist/web/components/deposit-pre-generation.js +17 -0
- package/dist/web/components/deposit-success-screen.js +20 -0
- package/dist/web/components/deposit-ui-shared.js +28 -0
- package/dist/web/components/disclosure-card.js +11 -0
- package/dist/web/components/dotted-leader.js +8 -0
- package/dist/web/components/empty-state.js +8 -0
- package/dist/web/components/environment-indicator.js +9 -0
- package/dist/web/components/error-boundary.js +10 -0
- package/dist/web/components/event-timeline.js +8 -0
- package/dist/web/components/extension-page-frame.js +15 -0
- package/dist/web/components/filter-bar.js +15 -0
- package/dist/web/components/filter-chip-group.js +8 -0
- package/dist/web/components/filter-dropdown.js +12 -0
- package/dist/web/components/floating-notice.js +12 -0
- package/dist/web/components/form-field.js +10 -0
- package/dist/web/components/halo-backdrop.js +8 -0
- package/dist/web/components/info-chip.js +24 -0
- package/dist/web/components/info-panel.js +13 -0
- package/dist/web/components/inline-selector.js +11 -0
- package/dist/web/components/instants-statement.js +20 -0
- package/dist/web/components/kaleidoscope-hero-animation.js +11 -0
- package/dist/web/components/kaleidoswap-logo.js +12 -0
- package/dist/web/components/list-field.js +14 -0
- package/dist/web/components/list-summary.js +8 -0
- package/dist/web/components/metric-card.js +14 -0
- package/dist/web/components/mobile-hero-animation.js +8 -0
- package/dist/web/components/network-badge.js +14 -0
- package/dist/web/components/network-icon.js +21 -0
- package/dist/web/components/network-status-chip.js +11 -0
- package/dist/web/components/notice-bar.js +8 -0
- package/dist/web/components/one-time-secret-dialog.js +18 -0
- package/dist/web/components/option-selector.js +12 -0
- package/dist/web/components/page-header.js +12 -0
- package/dist/web/components/page-shell.js +18 -0
- package/dist/web/components/pager.js +11 -0
- package/dist/web/components/period-select.js +20 -0
- package/dist/web/components/qr-code.js +10 -0
- package/dist/web/components/query-state.js +19 -0
- package/dist/web/components/read-status.js +15 -0
- package/dist/web/components/record-list.js +17 -0
- package/dist/web/components/recovery-phrase-card.js +20 -0
- package/dist/web/components/restricted.js +9 -0
- package/dist/web/components/secret-reveal-card.js +20 -0
- package/dist/web/components/section-header.js +9 -0
- package/dist/web/components/section-label.js +8 -0
- package/dist/web/components/selectable-card.js +8 -0
- package/dist/web/components/setting-item.js +13 -0
- package/dist/web/components/settings-section-card.js +11 -0
- package/dist/web/components/settings-selector-row.js +8 -0
- package/dist/web/components/settings-tile.js +21 -0
- package/dist/web/components/skeleton.js +10 -0
- package/dist/web/components/status-badge.js +13 -0
- package/dist/web/components/status-icon-badge.js +15 -0
- package/dist/web/components/stepper-number-input.js +10 -0
- package/dist/web/components/summary-rows.js +9 -0
- package/dist/web/components/swap-badge.js +11 -0
- package/dist/web/components/swap-input-card.js +28 -0
- package/dist/web/components/swap-step-list.js +10 -0
- package/dist/web/components/switch-row.js +9 -0
- package/dist/web/components/theme-toggle.js +12 -0
- package/dist/web/components/transaction-card.js +14 -0
- package/dist/web/components/trend-chart.js +28 -0
- package/dist/web/components/value-list.js +20 -0
- package/dist/web/components/wallet-asset-list.js +22 -0
- package/dist/web/components/withdraw-amount-input.js +13 -0
- package/dist/web/components/withdraw-confirmation.js +17 -0
- package/dist/web/components/withdraw-destination-input.js +14 -0
- package/dist/web/components/withdraw-invoice-info.js +10 -0
- package/dist/web/components/withdraw-route-selector.js +9 -0
- package/dist/web/components/withdraw-success.js +12 -0
- package/dist/web/hooks/use-asset-icon.js +11 -0
- package/dist/web/hooks/use-copy-to-clipboard.js +7 -0
- package/dist/web/hooks/use-media-query.js +9 -0
- package/dist/web/hooks/use-theme-mode.js +9 -0
- package/dist/web/hooks/use-toast.js +11 -0
- package/dist/web/icons/filled.js +15 -0
- package/dist/web/icons/index.js +13 -0
- package/dist/web/icons/outlined.js +221 -0
- package/dist/web/icons/public.js +248 -0
- package/dist/web/icons.cjs +776 -0
- package/dist/web/icons.d.cts +123 -0
- package/dist/web/icons.d.ts +123 -0
- package/dist/web/index.cjs +3447 -2567
- package/dist/web/index.d.cts +507 -113
- package/dist/web/index.d.ts +507 -113
- package/dist/web/index.js +612 -13675
- package/dist/web/primitives/avatar.js +10 -0
- package/dist/web/primitives/button.js +10 -0
- package/dist/web/primitives/card.js +20 -0
- package/dist/web/primitives/collapsible.js +16 -0
- package/dist/web/primitives/dialog.js +30 -0
- package/dist/web/primitives/dot-pagination.js +8 -0
- package/dist/web/primitives/drawer.js +43 -0
- package/dist/web/primitives/dropdown-menu.js +28 -0
- package/dist/web/primitives/glyph-button.js +10 -0
- package/dist/web/primitives/icon-button.js +15 -0
- package/dist/web/primitives/icon-glyph.js +8 -0
- package/dist/web/primitives/icon.js +16 -0
- package/dist/web/primitives/input.js +9 -0
- package/dist/web/primitives/label.js +9 -0
- package/dist/web/primitives/menu-search.js +20 -0
- package/dist/web/primitives/number-input.js +11 -0
- package/dist/web/primitives/popover.js +18 -0
- package/dist/web/primitives/scroll-area.js +12 -0
- package/dist/web/primitives/select.js +27 -0
- package/dist/web/primitives/switch.js +8 -0
- package/dist/web/primitives/table.js +27 -0
- package/dist/web/primitives/tabs.js +14 -0
- package/dist/web/primitives/toast.js +24 -0
- package/dist/web/primitives/toaster.js +15 -0
- package/dist/web/primitives/tooltip.js +10 -0
- package/dist/web/utils/amount-display.js +13 -0
- package/dist/web/utils/cn.js +7 -0
- package/dist/web/utils/field-styles.js +7 -0
- package/dist/web/utils/type-roles.js +7 -0
- package/package.json +9 -1
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ npm install kaleido-ui
|
|
|
13
13
|
| Import | Description |
|
|
14
14
|
|--------|-------------|
|
|
15
15
|
| `kaleido-ui` | Web components (Tailwind CSS + Radix UI) |
|
|
16
|
+
| `kaleido-ui/icons` | Every icon glyph as its own export, plus `createIcon` to build an `Icon` that ships only the glyphs you pass it |
|
|
16
17
|
| `kaleido-ui/tokens` | Platform-agnostic design tokens (zero deps) |
|
|
17
18
|
| `kaleido-ui/native` | React Native components (WDK + custom) |
|
|
18
19
|
| `kaleido-ui/css` | CSS variables (light + dark), keyframes, utilities, and the Tailwind v4 `@theme` tokens |
|
|
@@ -50,7 +51,7 @@ npm install kaleido-ui
|
|
|
50
51
|
// tailwind.config.js
|
|
51
52
|
module.exports = {
|
|
52
53
|
presets: [require('kaleido-ui/tailwind')],
|
|
53
|
-
content: ['./src/**/*.{ts,tsx}', './node_modules/kaleido-ui/dist/web
|
|
54
|
+
content: ['./src/**/*.{ts,tsx}', './node_modules/kaleido-ui/dist/web/**/*.js'],
|
|
54
55
|
plugins: [require('tailwindcss-animate')],
|
|
55
56
|
}
|
|
56
57
|
```
|
|
@@ -135,9 +136,9 @@ Works in any JS runtime (Node.js, React Native, web) with zero dependencies.
|
|
|
135
136
|
```ts
|
|
136
137
|
import { colors, typeScale, radius, shadow } from 'kaleido-ui/tokens'
|
|
137
138
|
|
|
138
|
-
console.log(colors.primary) // '#
|
|
139
|
+
console.log(colors.primary) // '#15E99A'
|
|
139
140
|
console.log(colors.network.bitcoin) // '#F7931A'
|
|
140
|
-
console.log(typeScale.body) // ['
|
|
141
|
+
console.log(typeScale.body) // ['16px', '24px']
|
|
141
142
|
```
|
|
142
143
|
|
|
143
144
|
## Web Components
|
|
@@ -146,16 +147,40 @@ console.log(typeScale.body) // ['15px', '22px']
|
|
|
146
147
|
|
|
147
148
|
| Component | Description |
|
|
148
149
|
|-----------|-------------|
|
|
149
|
-
| `Button` |
|
|
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
151
|
| `Card` | Compositional: Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter |
|
|
151
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 |
|
|
154
|
+
| `DropdownMenu` | Dropdown menu (Radix): DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, etc. Searchable past four items, like `Select` |
|
|
155
|
+
| `Table` | Table, TableHeader, TableBody, TableRow, TableHead, TableCell, etc. `TableHead` takes `sortable`, `sortDirection` (`'asc' \| 'desc' \| 'none'`) and `onSort`, and sets `aria-sort` |
|
|
152
156
|
| `Dialog` | Modal dialog (Radix): Dialog, DialogContent, DialogHeader, DialogTitle, etc. |
|
|
153
157
|
| `Tabs` | Tab navigation (Radix): Tabs, TabsList, TabsTrigger, TabsContent |
|
|
154
158
|
| `Label` | Form label (Radix) |
|
|
155
159
|
| `Toast` | Toast notifications (Radix): Toast, ToastProvider, Toaster |
|
|
156
|
-
| `Icon` |
|
|
160
|
+
| `Icon` | Inline SVG icon by name, with size variants (xs-2xl). Looking a name up means shipping the whole set; see below |
|
|
157
161
|
| `Icons` | Named icon shortcuts (Icons.Send, Icons.Receive, Icons.Swap, etc.) |
|
|
158
162
|
|
|
163
|
+
#### Icons and bundle size
|
|
164
|
+
|
|
165
|
+
The ESM build is one module per component and the package declares no side
|
|
166
|
+
effects, so a bundler keeps only what the app imports. `<Icon name="…">` is the
|
|
167
|
+
exception: any name can come in at runtime, so it carries every glyph (~75 KB
|
|
168
|
+
minified). To ship only the glyphs you draw, import them from `kaleido-ui/icons`
|
|
169
|
+
and build your own `Icon`. It takes the same props and the names you give it:
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
import { createIcon, Close, Check, CheckCircleFilled } from 'kaleido-ui/icons'
|
|
173
|
+
|
|
174
|
+
export const Icon = createIcon({ close: Close, check: Check }, { check: CheckCircleFilled })
|
|
175
|
+
|
|
176
|
+
<Icon name="close" size="sm" />
|
|
177
|
+
<Icon name="check" filled />
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
`IconButton icon="close"` looks the name up the same way; `GlyphButton` is the
|
|
181
|
+
same button taking the glyph component (`<GlyphButton icon={Close} label="Close" />`),
|
|
182
|
+
and `IconGlyph` draws one glyph at the icon scale (`<IconGlyph glyph={Close} size="sm" />`).
|
|
183
|
+
|
|
159
184
|
### Shared Components
|
|
160
185
|
|
|
161
186
|
| Component | Description |
|
|
@@ -173,6 +198,8 @@ console.log(typeScale.body) // ['15px', '22px']
|
|
|
173
198
|
| `KaleidoswapLogo` | Full logo, `orientation="horizontal" \| "vertical"`. Wordmark uses `currentColor`; size with `h-* w-auto` |
|
|
174
199
|
| `KaleidoswapMark` | The K pictogram on its own; size with `size-*` |
|
|
175
200
|
| `HaloBackdrop` | Decorative drifting brand-colour blobs behind a screen (parent needs `relative isolate`) |
|
|
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
|
+
| `WithdrawAmountInput` | Amount card for the withdraw flow; `unitSlot` replaces the unit label with your own control (e.g. a unit picker) inside the card |
|
|
176
203
|
|
|
177
204
|
### Hooks
|
|
178
205
|
|
|
@@ -213,12 +240,12 @@ StatusBadge, NetworkBadge, AlertBanner, SectionLabel
|
|
|
213
240
|
|
|
214
241
|
| Token | Values |
|
|
215
242
|
|-------|--------|
|
|
216
|
-
| `colors` | primary (#
|
|
217
|
-
| `typeScale` |
|
|
218
|
-
| `fontFamily` |
|
|
243
|
+
| `colors` | primary (#15E99A, dark theme; `lightSemanticColors` for light), surfaces, text, semantic, network, transaction |
|
|
244
|
+
| `typeScale` | mini (10px) through display (38px) |
|
|
245
|
+
| `fontFamily` | Satoshi (display), Geist Mono (mono) |
|
|
219
246
|
| `fontWeight` | normal (400) through bold (700) |
|
|
220
|
-
| `radius` |
|
|
221
|
-
| `shadow` | glow
|
|
247
|
+
| `radius` | xs (2px) through full (9999px), plus card, panel, nav, pill |
|
|
248
|
+
| `shadow` | glow*, glowPrimary*, glowViolet*, card*, raised, button*, popover, toast |
|
|
222
249
|
| `transition` | fast (150ms), default (200ms), slow (300ms) |
|
|
223
250
|
| `brandMark` | The logo's three fills (violet, green, mint): paint, never text |
|
|
224
251
|
| `themedForeground` | Per-theme AA foregrounds (`brand`, `accent-*-fg`, status and network `-fg`) |
|
package/dist/css/kaleido-ui.css
CHANGED
|
@@ -172,8 +172,6 @@
|
|
|
172
172
|
--app-shadow: 7 4 22;
|
|
173
173
|
--app-shadow-strength: 1;
|
|
174
174
|
--app-rim-alpha: 0.06;
|
|
175
|
-
/* The rule on the left of the current drawer sub-item. */
|
|
176
|
-
--app-nav-rule: 2px;
|
|
177
175
|
/* How much of a hidden (blurred) secret still shows. */
|
|
178
176
|
--app-hidden-opacity: 0.6;
|
|
179
177
|
/* Card glass edge: a faint 1px ring, violet light along the top and left,
|
|
@@ -259,8 +257,6 @@
|
|
|
259
257
|
/* A selected card is only this tint: on light it needs a white floor, or it
|
|
260
258
|
takes the grey of whatever it sits on. */
|
|
261
259
|
--gradient-active: linear-gradient(135deg, rgba(21, 233, 154, 0.14) 0%, rgba(21, 233, 154, 0.04) 100%), linear-gradient(#FFFFFF, #FFFFFF);
|
|
262
|
-
/* On white the full green rule is heavy: half of it. */
|
|
263
|
-
--app-nav-rule: 1px;
|
|
264
260
|
/* Blurred ink fades into white faster: keep more of it. */
|
|
265
261
|
--app-hidden-opacity: 0.8;
|
|
266
262
|
/* The scrollbar thumb is a white wash on dark; on white it needs ink. */
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import { SVGProps, ComponentType } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
declare const buttonVariants: (props?: ({
|
|
8
|
+
variant?: "glow" | "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "surface" | "cta" | "cta-gradient" | "danger-subtle" | "danger-quiet" | "hyperlink" | "h1" | "h2" | "h3" | "quiet" | null | undefined;
|
|
9
|
+
size?: "default" | "cta" | "xs" | "sm" | "lg" | "xl" | "cta-lg" | "icon-sm" | "icon" | "icon-lg" | "icon-xl" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
11
|
+
interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
}
|
|
14
|
+
declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
|
|
16
|
+
type IconGlyphComponent = ComponentType<SVGProps<SVGSVGElement>>;
|
|
17
|
+
type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
18
|
+
interface IconGlyphProps extends SVGProps<SVGSVGElement> {
|
|
19
|
+
glyph: IconGlyphComponent;
|
|
20
|
+
size?: IconSize;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Draws one glyph component at the icon scale, without the name lookup. */
|
|
24
|
+
declare function IconGlyph({ glyph: Glyph, size, className, ...props }: IconGlyphProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
|
|
26
|
+
declare const sizes: {
|
|
27
|
+
readonly sm: "icon-sm";
|
|
28
|
+
readonly md: "icon";
|
|
29
|
+
readonly lg: "icon-lg";
|
|
30
|
+
};
|
|
31
|
+
interface GlyphButtonProps extends Omit<ButtonProps, 'size' | 'variant' | 'children' | 'aria-label'> {
|
|
32
|
+
/** What the button does. It is the accessible name and the tooltip; an icon alone names nothing. */
|
|
33
|
+
label: string;
|
|
34
|
+
/** The glyph component (`Close` from `kaleido-ui/icons`), or an element for a glyph that changes (a spinner). */
|
|
35
|
+
icon: IconGlyphComponent | React$1.ReactElement;
|
|
36
|
+
/** sm 32 px for row and inline actions, md 40 px (default) for toolbars and close, lg 50 px for headers and action rows. */
|
|
37
|
+
size?: keyof typeof sizes;
|
|
38
|
+
/**
|
|
39
|
+
* `quiet` (default) for close, back, clear, copy, open; `surface` for an
|
|
40
|
+
* action the screen offers (paste, refresh, edit); `secondary` for the one
|
|
41
|
+
* solid violet action. The danger looks follow Button's names, lightest
|
|
42
|
+
* first: `danger-quiet` tints only on hover, for a row's delete where a
|
|
43
|
+
* filled square would be too loud; `danger-subtle` rests in the danger
|
|
44
|
+
* tint, for an action that deletes or revokes and for the controls of an
|
|
45
|
+
* error surface (a destructive toast's copy and close); `destructive` is
|
|
46
|
+
* the solid red fill, the danger counterpart of `secondary`.
|
|
47
|
+
*/
|
|
48
|
+
variant?: 'quiet' | 'surface' | 'secondary' | 'danger-quiet' | 'danger-subtle' | 'destructive';
|
|
49
|
+
/**
|
|
50
|
+
* `square` (default), the rounded square; `circle` for a button that sits on
|
|
51
|
+
* a line or over content rather than in a row, like the swap card's flip.
|
|
52
|
+
*/
|
|
53
|
+
shape?: 'square' | 'circle';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* `IconButton` for a glyph passed as a component rather than by name, so the
|
|
57
|
+
* bundle carries that glyph and not the whole set.
|
|
58
|
+
*/
|
|
59
|
+
declare const GlyphButton: React$1.ForwardRefExoticComponent<GlyphButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
60
|
+
|
|
61
|
+
type IconName = 'account_balance_wallet' | 'add' | 'add_circle' | 'apps' | 'arrow_back' | 'arrow_circle_up' | 'arrow_downward' | 'arrow_forward' | 'arrow_outward' | 'arrow_upward' | 'autorenew' | 'bolt' | 'bug_report' | 'call_received' | 'cancel' | 'check' | 'check_circle' | 'chevron_left' | 'chevron_right' | 'close' | 'cloud_upload' | 'code' | 'content_copy' | 'content_paste' | 'currency_bitcoin' | 'delete' | 'delete_sweep' | 'description' | 'download' | 'edit' | 'error' | 'expand_less' | 'expand_more' | 'fingerprint' | 'folder_zip' | 'grid_view' | 'help' | 'hexagon' | 'history' | 'hourglass_top' | 'hub' | 'info' | 'inventory_2' | 'ios_share' | 'key' | 'layers' | 'link' | 'lock' | 'lock_open' | 'menu' | 'north_east' | 'open_in_new' | 'person' | 'power_settings_new' | 'qr_code_2' | 'qr_code_scanner' | 'radio_button_unchecked' | 'receipt_long' | 'refresh' | 'remove' | 'remove_circle' | 'restore' | 'rocket_launch' | 'schedule' | 'science' | 'chat_bubble' | 'event' | 'play_arrow' | 'psychology' | 'search' | 'settings' | 'shield' | 'smart_toy' | 'south_west' | 'swap_horiz' | 'swap_vert' | 'sync' | 'sync_alt' | 'timer' | 'timer_off' | 'token' | 'tune' | 'upload' | 'upload_file' | 'verified' | 'visibility' | 'visibility_off' | 'warning' | 'history_toggle_off' | 'payments' | 'toll' | 'trending_up' | 'touch_app' | 'dark_mode' | 'light_mode' | 'palette' | 'keyboard_arrow_up' | 'keyboard_arrow_down' | 'swap_calls' | 'progress_activity' | 'bar_chart' | 'stacked_bar_chart' | 'show_chart' | 'area_chart' | 'scatter_plot' | 'table_rows' | 'language' | 'notifications';
|
|
62
|
+
/**
|
|
63
|
+
* Whether a string names a glyph in the set. Components that take an icon as a
|
|
64
|
+
* string use this to draw it, and draw nothing for an unknown name: printing
|
|
65
|
+
* the name, as a font ligature does without its font, is the one outcome that
|
|
66
|
+
* is always wrong.
|
|
67
|
+
*/
|
|
68
|
+
declare const isIconName: (value: unknown) => value is IconName;
|
|
69
|
+
|
|
70
|
+
interface IconProps<N extends string = IconName> extends Omit<IconGlyphProps, 'glyph'> {
|
|
71
|
+
name: N;
|
|
72
|
+
filled?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Builds an `Icon` that knows only the glyphs passed in, so a bundle carries
|
|
76
|
+
* those and no others. The default `Icon` is this over the whole set.
|
|
77
|
+
*
|
|
78
|
+
* import { createIcon, Close, Check } from 'kaleido-ui/icons'
|
|
79
|
+
* const Icon = createIcon({ close: Close, check: Check })
|
|
80
|
+
* <Icon name="close" size="sm" />
|
|
81
|
+
*/
|
|
82
|
+
declare function createIcon<N extends string>(outlined: Record<N, IconGlyphComponent>, filled?: Partial<Record<N, IconGlyphComponent>>): ({ name, filled: preferFilled, ...props }: IconProps<N>) => react_jsx_runtime.JSX.Element | null;
|
|
83
|
+
declare const Icon: ({ name, filled: preferFilled, ...props }: IconProps<IconName>) => react_jsx_runtime.JSX.Element | null;
|
|
84
|
+
declare const Icons: {
|
|
85
|
+
ArrowBack: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
86
|
+
ArrowForward: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
87
|
+
Close: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
88
|
+
Menu: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
89
|
+
Send: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
90
|
+
Receive: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
Swap: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
92
|
+
Copy: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
93
|
+
Paste: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
94
|
+
Refresh: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
95
|
+
QrCode: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
96
|
+
QrScanner: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
97
|
+
Check: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
98
|
+
CheckCircle: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
99
|
+
Error: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
100
|
+
Warning: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
101
|
+
Info: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
102
|
+
Pending: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
103
|
+
Progress: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
104
|
+
Wallet: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
105
|
+
Activity: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
Settings: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
107
|
+
Lightning: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
108
|
+
Bitcoin: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
109
|
+
Ark: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
Lock: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
111
|
+
Unlock: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
112
|
+
Shield: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
113
|
+
Key: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
114
|
+
Fingerprint: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
115
|
+
Visibility: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
116
|
+
VisibilityOff: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
117
|
+
ExpandMore: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
118
|
+
ExpandLess: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
119
|
+
ChevronRight: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
120
|
+
OpenInNew: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
121
|
+
Search: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
122
|
+
Add: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
123
|
+
Download: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
124
|
+
Upload: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
125
|
+
Edit: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
126
|
+
Delete: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
127
|
+
Timer: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
128
|
+
Person: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
129
|
+
Hub: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
130
|
+
Verified: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
131
|
+
SmartToy: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
132
|
+
Psychology: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export { type ButtonProps as B, type GlyphButtonProps as G, type IconName as I, type IconProps as a, Button as b, GlyphButton as c, Icon as d, IconGlyph as e, type IconGlyphComponent as f, type IconGlyphProps as g, type IconSize as h, Icons as i, buttonVariants as j, createIcon as k, isIconName as l };
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import { SVGProps, ComponentType } from 'react';
|
|
3
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
declare const buttonVariants: (props?: ({
|
|
8
|
+
variant?: "glow" | "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "surface" | "cta" | "cta-gradient" | "danger-subtle" | "danger-quiet" | "hyperlink" | "h1" | "h2" | "h3" | "quiet" | null | undefined;
|
|
9
|
+
size?: "default" | "cta" | "xs" | "sm" | "lg" | "xl" | "cta-lg" | "icon-sm" | "icon" | "icon-lg" | "icon-xl" | null | undefined;
|
|
10
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
11
|
+
interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
}
|
|
14
|
+
declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
|
|
16
|
+
type IconGlyphComponent = ComponentType<SVGProps<SVGSVGElement>>;
|
|
17
|
+
type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
18
|
+
interface IconGlyphProps extends SVGProps<SVGSVGElement> {
|
|
19
|
+
glyph: IconGlyphComponent;
|
|
20
|
+
size?: IconSize;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
/** Draws one glyph component at the icon scale, without the name lookup. */
|
|
24
|
+
declare function IconGlyph({ glyph: Glyph, size, className, ...props }: IconGlyphProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
|
|
26
|
+
declare const sizes: {
|
|
27
|
+
readonly sm: "icon-sm";
|
|
28
|
+
readonly md: "icon";
|
|
29
|
+
readonly lg: "icon-lg";
|
|
30
|
+
};
|
|
31
|
+
interface GlyphButtonProps extends Omit<ButtonProps, 'size' | 'variant' | 'children' | 'aria-label'> {
|
|
32
|
+
/** What the button does. It is the accessible name and the tooltip; an icon alone names nothing. */
|
|
33
|
+
label: string;
|
|
34
|
+
/** The glyph component (`Close` from `kaleido-ui/icons`), or an element for a glyph that changes (a spinner). */
|
|
35
|
+
icon: IconGlyphComponent | React$1.ReactElement;
|
|
36
|
+
/** sm 32 px for row and inline actions, md 40 px (default) for toolbars and close, lg 50 px for headers and action rows. */
|
|
37
|
+
size?: keyof typeof sizes;
|
|
38
|
+
/**
|
|
39
|
+
* `quiet` (default) for close, back, clear, copy, open; `surface` for an
|
|
40
|
+
* action the screen offers (paste, refresh, edit); `secondary` for the one
|
|
41
|
+
* solid violet action. The danger looks follow Button's names, lightest
|
|
42
|
+
* first: `danger-quiet` tints only on hover, for a row's delete where a
|
|
43
|
+
* filled square would be too loud; `danger-subtle` rests in the danger
|
|
44
|
+
* tint, for an action that deletes or revokes and for the controls of an
|
|
45
|
+
* error surface (a destructive toast's copy and close); `destructive` is
|
|
46
|
+
* the solid red fill, the danger counterpart of `secondary`.
|
|
47
|
+
*/
|
|
48
|
+
variant?: 'quiet' | 'surface' | 'secondary' | 'danger-quiet' | 'danger-subtle' | 'destructive';
|
|
49
|
+
/**
|
|
50
|
+
* `square` (default), the rounded square; `circle` for a button that sits on
|
|
51
|
+
* a line or over content rather than in a row, like the swap card's flip.
|
|
52
|
+
*/
|
|
53
|
+
shape?: 'square' | 'circle';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* `IconButton` for a glyph passed as a component rather than by name, so the
|
|
57
|
+
* bundle carries that glyph and not the whole set.
|
|
58
|
+
*/
|
|
59
|
+
declare const GlyphButton: React$1.ForwardRefExoticComponent<GlyphButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
60
|
+
|
|
61
|
+
type IconName = 'account_balance_wallet' | 'add' | 'add_circle' | 'apps' | 'arrow_back' | 'arrow_circle_up' | 'arrow_downward' | 'arrow_forward' | 'arrow_outward' | 'arrow_upward' | 'autorenew' | 'bolt' | 'bug_report' | 'call_received' | 'cancel' | 'check' | 'check_circle' | 'chevron_left' | 'chevron_right' | 'close' | 'cloud_upload' | 'code' | 'content_copy' | 'content_paste' | 'currency_bitcoin' | 'delete' | 'delete_sweep' | 'description' | 'download' | 'edit' | 'error' | 'expand_less' | 'expand_more' | 'fingerprint' | 'folder_zip' | 'grid_view' | 'help' | 'hexagon' | 'history' | 'hourglass_top' | 'hub' | 'info' | 'inventory_2' | 'ios_share' | 'key' | 'layers' | 'link' | 'lock' | 'lock_open' | 'menu' | 'north_east' | 'open_in_new' | 'person' | 'power_settings_new' | 'qr_code_2' | 'qr_code_scanner' | 'radio_button_unchecked' | 'receipt_long' | 'refresh' | 'remove' | 'remove_circle' | 'restore' | 'rocket_launch' | 'schedule' | 'science' | 'chat_bubble' | 'event' | 'play_arrow' | 'psychology' | 'search' | 'settings' | 'shield' | 'smart_toy' | 'south_west' | 'swap_horiz' | 'swap_vert' | 'sync' | 'sync_alt' | 'timer' | 'timer_off' | 'token' | 'tune' | 'upload' | 'upload_file' | 'verified' | 'visibility' | 'visibility_off' | 'warning' | 'history_toggle_off' | 'payments' | 'toll' | 'trending_up' | 'touch_app' | 'dark_mode' | 'light_mode' | 'palette' | 'keyboard_arrow_up' | 'keyboard_arrow_down' | 'swap_calls' | 'progress_activity' | 'bar_chart' | 'stacked_bar_chart' | 'show_chart' | 'area_chart' | 'scatter_plot' | 'table_rows' | 'language' | 'notifications';
|
|
62
|
+
/**
|
|
63
|
+
* Whether a string names a glyph in the set. Components that take an icon as a
|
|
64
|
+
* string use this to draw it, and draw nothing for an unknown name: printing
|
|
65
|
+
* the name, as a font ligature does without its font, is the one outcome that
|
|
66
|
+
* is always wrong.
|
|
67
|
+
*/
|
|
68
|
+
declare const isIconName: (value: unknown) => value is IconName;
|
|
69
|
+
|
|
70
|
+
interface IconProps<N extends string = IconName> extends Omit<IconGlyphProps, 'glyph'> {
|
|
71
|
+
name: N;
|
|
72
|
+
filled?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Builds an `Icon` that knows only the glyphs passed in, so a bundle carries
|
|
76
|
+
* those and no others. The default `Icon` is this over the whole set.
|
|
77
|
+
*
|
|
78
|
+
* import { createIcon, Close, Check } from 'kaleido-ui/icons'
|
|
79
|
+
* const Icon = createIcon({ close: Close, check: Check })
|
|
80
|
+
* <Icon name="close" size="sm" />
|
|
81
|
+
*/
|
|
82
|
+
declare function createIcon<N extends string>(outlined: Record<N, IconGlyphComponent>, filled?: Partial<Record<N, IconGlyphComponent>>): ({ name, filled: preferFilled, ...props }: IconProps<N>) => react_jsx_runtime.JSX.Element | null;
|
|
83
|
+
declare const Icon: ({ name, filled: preferFilled, ...props }: IconProps<IconName>) => react_jsx_runtime.JSX.Element | null;
|
|
84
|
+
declare const Icons: {
|
|
85
|
+
ArrowBack: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
86
|
+
ArrowForward: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
87
|
+
Close: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
88
|
+
Menu: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
89
|
+
Send: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
90
|
+
Receive: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
91
|
+
Swap: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
92
|
+
Copy: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
93
|
+
Paste: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
94
|
+
Refresh: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
95
|
+
QrCode: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
96
|
+
QrScanner: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
97
|
+
Check: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
98
|
+
CheckCircle: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
99
|
+
Error: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
100
|
+
Warning: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
101
|
+
Info: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
102
|
+
Pending: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
103
|
+
Progress: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
104
|
+
Wallet: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
105
|
+
Activity: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
Settings: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
107
|
+
Lightning: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
108
|
+
Bitcoin: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
109
|
+
Ark: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
Lock: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
111
|
+
Unlock: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
112
|
+
Shield: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
113
|
+
Key: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
114
|
+
Fingerprint: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
115
|
+
Visibility: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
116
|
+
VisibilityOff: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
117
|
+
ExpandMore: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
118
|
+
ExpandLess: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
119
|
+
ChevronRight: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
120
|
+
OpenInNew: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
121
|
+
Search: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
122
|
+
Add: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
123
|
+
Download: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
124
|
+
Upload: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
125
|
+
Edit: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
126
|
+
Delete: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
127
|
+
Timer: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
128
|
+
Person: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
129
|
+
Hub: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
130
|
+
Verified: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
131
|
+
SmartToy: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
132
|
+
Psychology: (props: Omit<IconProps, "name">) => react_jsx_runtime.JSX.Element;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export { type ButtonProps as B, type GlyphButtonProps as G, type IconName as I, type IconProps as a, Button as b, GlyphButton as c, Icon as d, IconGlyph as e, type IconGlyphComponent as f, type IconGlyphProps as g, type IconSize as h, Icons as i, buttonVariants as j, createIcon as k, isIconName as l };
|
package/dist/native/index.cjs
CHANGED
|
@@ -1435,60 +1435,6 @@ function ModeToggle({ icon, size = 40, onToggle }) {
|
|
|
1435
1435
|
);
|
|
1436
1436
|
}
|
|
1437
1437
|
|
|
1438
|
-
// src/tokens/app-semantic.ts
|
|
1439
|
-
var appSemanticDark = {
|
|
1440
|
-
// Near-black ramp with a violet cast (~245 deg, low saturation): the
|
|
1441
|
-
// surfaces lean violet, the accents carry the colour — green first.
|
|
1442
|
-
"surface-base": "14 13 22",
|
|
1443
|
-
// #0E0D16 — deepest bg, sidebar
|
|
1444
|
-
"surface-raised": "20 19 30",
|
|
1445
|
-
// #14131E — page body bg
|
|
1446
|
-
"surface-overlay": "28 26 42",
|
|
1447
|
-
// #1C1A2A — card bg
|
|
1448
|
-
"surface-elevated": "40 38 56",
|
|
1449
|
-
// #282638 — sections inside cards
|
|
1450
|
-
"surface-high": "54 51 74",
|
|
1451
|
-
// #36334A — hover/active highlights
|
|
1452
|
-
// An inset box inside a card (DisclosureCard), used at /40: on dark it is
|
|
1453
|
-
// the muted fill; on light a cool grey, so the box still reads on white.
|
|
1454
|
-
"surface-inset": "20 19 30",
|
|
1455
|
-
// #14131E
|
|
1456
|
-
primary: "21 233 154",
|
|
1457
|
-
// #15E99A
|
|
1458
|
-
"primary-emphasis": "18 201 126",
|
|
1459
|
-
// #12C97E
|
|
1460
|
-
"primary-foreground": "14 13 22",
|
|
1461
|
-
secondary: "111 50 255",
|
|
1462
|
-
// #6F32FF — brand violet
|
|
1463
|
-
"secondary-emphasis": "84 32 204",
|
|
1464
|
-
// #5420CC
|
|
1465
|
-
"secondary-foreground": "255 255 255",
|
|
1466
|
-
"secondary-content": "164 138 255",
|
|
1467
|
-
// #A48AFF — violet text/icons on dark
|
|
1468
|
-
"content-primary": "237 236 246",
|
|
1469
|
-
// #EDECF6 — cool white
|
|
1470
|
-
"content-secondary": "152 149 180",
|
|
1471
|
-
// #9895B4
|
|
1472
|
-
"content-tertiary": "98 95 124",
|
|
1473
|
-
// #625F7C
|
|
1474
|
-
"content-inverse": "14 13 22",
|
|
1475
|
-
"border-subtle": "38 36 54",
|
|
1476
|
-
// #262436
|
|
1477
|
-
"border-default": "52 50 72",
|
|
1478
|
-
// #343248
|
|
1479
|
-
"border-strong": "21 233 154",
|
|
1480
|
-
"status-success": "34 197 94",
|
|
1481
|
-
"status-danger": "248 113 113",
|
|
1482
|
-
"status-warning": "245 158 11",
|
|
1483
|
-
"status-info": "56 189 248",
|
|
1484
|
-
divider: "86 83 110",
|
|
1485
|
-
// #56536E
|
|
1486
|
-
// Spark's mark is white on dark, black on light.
|
|
1487
|
-
"network-spark": "255 255 255"
|
|
1488
|
-
// #FFFFFF
|
|
1489
|
-
};
|
|
1490
|
-
var appSemanticOrder = Object.keys(appSemanticDark);
|
|
1491
|
-
|
|
1492
1438
|
// src/tokens/typography.ts
|
|
1493
1439
|
var fontFamily = {
|
|
1494
1440
|
display: "'Satoshi', system-ui, -apple-system, sans-serif",
|
|
@@ -1618,84 +1564,12 @@ var shadowLight = {
|
|
|
1618
1564
|
toast: `0 0 0 1px ${lightInk(0.06)}, 0 10px 28px -10px ${lightInk(0.2)}`
|
|
1619
1565
|
};
|
|
1620
1566
|
|
|
1621
|
-
// src/tokens/brand.ts
|
|
1622
|
-
var brandMark = {
|
|
1623
|
-
violet: "#6F32FF",
|
|
1624
|
-
green: "#17B581",
|
|
1625
|
-
mint: "#15E99A"
|
|
1626
|
-
};
|
|
1627
|
-
var themedForeground = {
|
|
1628
|
-
light: {
|
|
1629
|
-
// Brand green at full saturation (no red), as light as it goes and still
|
|
1630
|
-
// clears 4.5:1 on every light surface (4.55:1 on #EFEFF4).
|
|
1631
|
-
brand: "#007D49",
|
|
1632
|
-
"accent-send-fg": "#6428F0",
|
|
1633
|
-
"accent-recv-fg": "#007D49",
|
|
1634
|
-
"success-fg": "#076A43",
|
|
1635
|
-
// a shade under brand: it also sits on a 14% mint tint
|
|
1636
|
-
// Tailwind -800 shades: -700 measured only 3.7 to 4.3:1 on the light ramp.
|
|
1637
|
-
"warning-fg": "#92400E",
|
|
1638
|
-
"danger-fg": "#991B1B",
|
|
1639
|
-
"info-fg": "#1E40AF",
|
|
1640
|
-
"network-bitcoin-fg": "#92400E",
|
|
1641
|
-
"network-lightning-fg": "#854D0E",
|
|
1642
|
-
"network-liquid-fg": "#115E59",
|
|
1643
|
-
"network-arkade-fg": "#5B21B6",
|
|
1644
|
-
"network-spark-fg": "#0D0C14",
|
|
1645
|
-
// Spark is black on light
|
|
1646
|
-
"network-rgb-fg": "#991B1B",
|
|
1647
|
-
"network-taproot-fg": "#464A69"
|
|
1648
|
-
},
|
|
1649
|
-
dark: {
|
|
1650
|
-
brand: colors.primary,
|
|
1651
|
-
"accent-send-fg": "#AD94FB",
|
|
1652
|
-
"accent-recv-fg": colors.primary,
|
|
1653
|
-
"success-fg": colors.success,
|
|
1654
|
-
"warning-fg": colors.warning,
|
|
1655
|
-
// danger #E53535 and info #4290FF are 3.0:1 and 3.2:1 on the elevated
|
|
1656
|
-
// surface. Same hues, lifted until they clear 4.5:1.
|
|
1657
|
-
"danger-fg": "#FF9999",
|
|
1658
|
-
"info-fg": "#8BBDFF",
|
|
1659
|
-
"network-bitcoin-fg": colors.networkText.bitcoin,
|
|
1660
|
-
"network-lightning-fg": colors.networkText.lightning,
|
|
1661
|
-
"network-liquid-fg": colors.networkText.liquid,
|
|
1662
|
-
// The rgb and arkade *-text tokens dip under 4.5:1 on the elevated
|
|
1663
|
-
// surface (3.9 and 4.1), so their -fg twins are lifted a step.
|
|
1664
|
-
"network-arkade-fg": "#B49CF5",
|
|
1665
|
-
"network-spark-fg": colors.network.spark,
|
|
1666
|
-
// and white on dark
|
|
1667
|
-
"network-rgb-fg": "#F09490",
|
|
1668
|
-
"network-taproot-fg": colors.networkText.taproot
|
|
1669
|
-
}
|
|
1670
|
-
};
|
|
1671
|
-
var themedForegroundOrder = Object.keys(themedForeground.light);
|
|
1672
|
-
var halo = {
|
|
1673
|
-
primary: colors.tx.receive,
|
|
1674
|
-
secondary: brandMark.violet,
|
|
1675
|
-
blur: "110px"
|
|
1676
|
-
};
|
|
1677
|
-
var brandTheme = {
|
|
1678
|
-
/** AA-safe light primary: white on it is 6.3:1, it is 5.1:1 on the light ramp. */
|
|
1679
|
-
lightPrimary: themedForeground.light.brand,
|
|
1680
|
-
/** Lifted dark status colours (see `themedForeground.dark`). */
|
|
1681
|
-
darkDanger: themedForeground.dark["danger-fg"],
|
|
1682
|
-
darkInfo: themedForeground.dark["info-fg"]
|
|
1683
|
-
};
|
|
1684
|
-
|
|
1685
1567
|
// src/tokens/transitions.ts
|
|
1686
1568
|
var transition = {
|
|
1687
1569
|
fast: "150ms ease-out",
|
|
1688
1570
|
default: "200ms ease-out",
|
|
1689
1571
|
slow: "300ms ease-out"
|
|
1690
1572
|
};
|
|
1691
|
-
|
|
1692
|
-
// src/tokens/chart.ts
|
|
1693
|
-
var chartSeries = {
|
|
1694
|
-
/** green, violet, azzurro, then yellow, magenta, orange */
|
|
1695
|
-
dark: ["#17b581", "#8374da", "#179fd4", "#b3880f", "#db589e", "#de6907"],
|
|
1696
|
-
light: ["#17b581", "#6851c3", "#0f9cd0", "#dea805", "#c34189", "#fe904d"]
|
|
1697
|
-
};
|
|
1698
|
-
var chartSeriesLimit = chartSeries.dark.length;
|
|
1699
1573
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1700
1574
|
0 && (module.exports = {
|
|
1701
1575
|
ActionButton,
|