kaleido-ui 0.1.46 → 0.1.49

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.
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
2
+ import React, { ReactNode } from 'react';
3
3
  export { AmountInput, AssetSelector, Balance, CryptoAddressInput, NetworkSelector, QRCode, SeedPhrase, ThemeProvider, TransactionItem, TransactionList, useTheme } from '@tetherto/wdk-uikit-react-native';
4
+ import { TextProps, ViewProps, PressableProps, ViewStyle } from 'react-native';
4
5
 
5
6
  /**
6
7
  * Brand configuration for WDK ThemeProvider.
@@ -55,6 +56,17 @@ interface KaleidoThemeProviderProps {
55
56
  }
56
57
  declare function KaleidoThemeProvider({ children, brandConfig, defaultMode, }: KaleidoThemeProviderProps): react_jsx_runtime.JSX.Element;
57
58
 
59
+ interface QrCodeProps {
60
+ value: string;
61
+ /** Rendered square size in px (default 160). */
62
+ size?: number;
63
+ /** Foreground (module) color. Default near-black. */
64
+ color?: string;
65
+ /** Background color used for finder eyes + logo disc. Default white. */
66
+ backgroundColor?: string;
67
+ }
68
+ declare function QrCode({ value, size, color, backgroundColor, }: QrCodeProps): react_jsx_runtime.JSX.Element;
69
+
58
70
  type StatusType = 'success' | 'pending' | 'failed' | 'completed' | 'error';
59
71
  interface StatusBadgeProps {
60
72
  status: StatusType;
@@ -104,6 +116,266 @@ interface SectionLabelProps {
104
116
  }
105
117
  declare function SectionLabel({ children, style }: SectionLabelProps): react_jsx_runtime.JSX.Element;
106
118
 
119
+ /**
120
+ * KaleidoSwap unified runtime theme (light + dark).
121
+ *
122
+ * A single, identically-shaped palette per mode so React Native components can
123
+ * consume one `KaleidoTheme` object via `useKaleidoTheme()` and flip modes with
124
+ * zero per-component conditionals. Dark is the brand default ("dark backgrounds
125
+ * anchor everything"); light is a fully-specified counterpart.
126
+ *
127
+ * This file lives in `src/tokens` and is therefore exempt from the raw-color
128
+ * lint — raw values are intentional here and ONLY here. Components must never
129
+ * inline colors; they read them from the theme.
130
+ */
131
+ type ThemeMode = 'light' | 'dark';
132
+ /** Numeric type scale for React Native (the CSS `typeScale` is px strings). */
133
+ declare const nativeType: {
134
+ readonly mini: {
135
+ readonly size: 9;
136
+ readonly line: 12;
137
+ };
138
+ readonly xxs: {
139
+ readonly size: 10;
140
+ readonly line: 14;
141
+ };
142
+ readonly tiny: {
143
+ readonly size: 11;
144
+ readonly line: 16;
145
+ };
146
+ readonly caption: {
147
+ readonly size: 13;
148
+ readonly line: 18;
149
+ };
150
+ readonly body: {
151
+ readonly size: 15;
152
+ readonly line: 22;
153
+ };
154
+ readonly subhead: {
155
+ readonly size: 17;
156
+ readonly line: 24;
157
+ };
158
+ readonly title: {
159
+ readonly size: 20;
160
+ readonly line: 28;
161
+ };
162
+ readonly headline: {
163
+ readonly size: 28;
164
+ readonly line: 34;
165
+ };
166
+ readonly display: {
167
+ readonly size: 36;
168
+ readonly line: 40;
169
+ };
170
+ readonly hero: {
171
+ readonly size: 44;
172
+ readonly line: 48;
173
+ };
174
+ };
175
+ type NativeTypeLevel = keyof typeof nativeType;
176
+ interface KaleidoTheme {
177
+ mode: ThemeMode;
178
+ /** App background (full-bleed page). */
179
+ background: string;
180
+ /** Default card/panel surface. */
181
+ card: string;
182
+ /** Raised card (modals, selected panels). */
183
+ cardElevated: string;
184
+ /** Brand green — primary CTAs, success, focus ring. */
185
+ primary: string;
186
+ /** Foreground on top of `primary`. */
187
+ primaryFg: string;
188
+ /** Brand violet — active / protocol / selected accents. */
189
+ violet: string;
190
+ /** Translucent violet wash for selected chips/surfaces. */
191
+ violetSurface: string;
192
+ /** Semantic intents. */
193
+ success: string;
194
+ warning: string;
195
+ danger: string;
196
+ info: string;
197
+ /** Translucent intent washes (banners, tinted chips). */
198
+ successSurface: string;
199
+ warningSurface: string;
200
+ dangerSurface: string;
201
+ infoSurface: string;
202
+ /** Text ladder. */
203
+ text: {
204
+ primary: string;
205
+ secondary: string;
206
+ muted: string;
207
+ disabled: string;
208
+ /** Text on the green primary fill (dark). */
209
+ onAccent: string;
210
+ /** Text on saturated fills (violet / danger) — always white. */
211
+ onFill: string;
212
+ };
213
+ /** Border ladder. */
214
+ border: {
215
+ subtle: string;
216
+ default: string;
217
+ strong: string;
218
+ };
219
+ /** Surface elevation overlays. */
220
+ surface: {
221
+ base: string;
222
+ raised: string;
223
+ sunken: string;
224
+ overlay: string;
225
+ scrim: string;
226
+ };
227
+ /** Network glyph colors (consistent across modes). */
228
+ network: {
229
+ bitcoin: string;
230
+ lightning: string;
231
+ spark: string;
232
+ rgb: string;
233
+ arkade: string;
234
+ liquid: string;
235
+ };
236
+ /** Network chip backgrounds (mode-specific tints). */
237
+ networkSurface: {
238
+ bitcoin: string;
239
+ lightning: string;
240
+ spark: string;
241
+ rgb: string;
242
+ arkade: string;
243
+ liquid: string;
244
+ };
245
+ /** Transaction direction. */
246
+ tx: {
247
+ sent: string;
248
+ receive: string;
249
+ swap: string;
250
+ };
251
+ /** Brand gradient as [start, end] for native LinearGradient (135°). */
252
+ gradientBrand: readonly [string, string];
253
+ }
254
+ declare const themes: Record<ThemeMode, KaleidoTheme>;
255
+ /** Resolve the full palette for a mode. */
256
+ declare function makeTheme(mode: ThemeMode): KaleidoTheme;
257
+
258
+ interface KaleidoThemeContextValue {
259
+ theme: KaleidoTheme;
260
+ mode: ThemeMode;
261
+ /** App-wide font family (e.g. 'Satoshi'); undefined → system default. */
262
+ fontFamily?: string;
263
+ setMode: (mode: ThemeMode) => void;
264
+ toggleMode: () => void;
265
+ }
266
+ interface KaleidoUIProviderProps {
267
+ children: ReactNode;
268
+ /** Controlled mode. When set, the provider does not manage its own state. */
269
+ mode?: ThemeMode;
270
+ /** Initial mode for the uncontrolled provider. Defaults to 'dark' (brand). */
271
+ defaultMode?: ThemeMode;
272
+ /** Fires on every mode change — use to persist the user's choice. */
273
+ onModeChange?: (mode: ThemeMode) => void;
274
+ /** App-wide font family applied by KText (pass 'Satoshi' once loaded). */
275
+ fontFamily?: string;
276
+ }
277
+ declare function KaleidoUIProvider({ children, mode: controlledMode, defaultMode, onModeChange, fontFamily, }: KaleidoUIProviderProps): react_jsx_runtime.JSX.Element;
278
+ /** Access the active theme. Falls back to the dark theme if no provider is mounted. */
279
+ declare function useKaleidoTheme(): KaleidoThemeContextValue;
280
+
281
+ type Weight = 'normal' | 'medium' | 'semibold' | 'bold';
282
+ type Tone$1 = 'primary' | 'secondary' | 'muted' | 'disabled' | 'onAccent' | 'accent' | 'violet' | 'success' | 'warning' | 'danger';
283
+ interface KTextProps extends TextProps {
284
+ variant?: NativeTypeLevel;
285
+ weight?: Weight;
286
+ tone?: Tone$1;
287
+ /** Explicit color override (wins over `tone`). */
288
+ color?: string;
289
+ /** Uppercase eyebrow styling (positive tracking). */
290
+ eyebrow?: boolean;
291
+ center?: boolean;
292
+ }
293
+ declare function KText({ variant, weight, tone, color, eyebrow, center, style, children, ...rest }: KTextProps): react_jsx_runtime.JSX.Element;
294
+
295
+ interface KScreenProps extends ViewProps {
296
+ /** Use the slightly raised card color as the page bg (for sheets/modals). */
297
+ elevated?: boolean;
298
+ }
299
+ declare function KScreen({ elevated, style, children, ...rest }: KScreenProps): react_jsx_runtime.JSX.Element;
300
+
301
+ interface KCardProps extends ViewProps {
302
+ variant?: 'default' | 'elevated' | 'inset' | 'outline';
303
+ padding?: number;
304
+ radius?: number;
305
+ /** Draw a 1px themed border. */
306
+ bordered?: boolean;
307
+ }
308
+ declare function KCard({ variant, padding, radius, bordered, style, children, ...rest }: KCardProps): react_jsx_runtime.JSX.Element;
309
+
310
+ type Variant = 'primary' | 'secondary' | 'violet' | 'ghost' | 'danger';
311
+ type Size = 'sm' | 'md' | 'lg';
312
+ interface KButtonProps extends Omit<PressableProps, 'children' | 'style'> {
313
+ label: string;
314
+ variant?: Variant;
315
+ size?: Size;
316
+ loading?: boolean;
317
+ fullWidth?: boolean;
318
+ /** Rendered before the label (e.g. an icon). */
319
+ leading?: React.ReactNode;
320
+ style?: ViewStyle;
321
+ }
322
+ declare function KButton({ label, variant, size, loading, fullWidth, leading, disabled, style, ...rest }: KButtonProps): react_jsx_runtime.JSX.Element;
323
+
324
+ type Tone = 'primary' | 'violet' | 'neutral';
325
+ interface ActionButtonProps {
326
+ label: string;
327
+ /** Render the glyph with the supplied themed color + size. */
328
+ icon: (color: string, size: number) => React.ReactNode;
329
+ onPress?: () => void;
330
+ tone?: Tone;
331
+ /** Filled accent tile (use for the single most important action). */
332
+ filled?: boolean;
333
+ disabled?: boolean;
334
+ size?: number;
335
+ }
336
+ declare function ActionButton({ label, icon, onPress, tone, filled, disabled, size, }: ActionButtonProps): react_jsx_runtime.JSX.Element;
337
+
338
+ interface BalanceCardProps extends ViewProps {
339
+ label?: string;
340
+ amount: string;
341
+ unit?: string;
342
+ fiat?: string;
343
+ /** Optional trailing element under the fiat line (e.g. a delta chip). */
344
+ footer?: React.ReactNode;
345
+ }
346
+ declare function BalanceCard({ label, amount, unit, fiat, footer, style, ...rest }: BalanceCardProps): react_jsx_runtime.JSX.Element;
347
+
348
+ type NetworkKey = 'bitcoin' | 'lightning' | 'spark' | 'rgb' | 'arkade' | 'liquid';
349
+ interface NetworkChipProps {
350
+ network?: NetworkKey;
351
+ title: string;
352
+ /** Small line under the title (e.g. "instant", "1 asset"). */
353
+ subtitle?: string;
354
+ selected?: boolean;
355
+ onPress?: () => void;
356
+ /** Render the network glyph with the themed color + size. */
357
+ icon?: (color: string, size: number) => React.ReactNode;
358
+ /** Show a small "available" dot. */
359
+ dot?: boolean;
360
+ }
361
+ declare function NetworkChip({ network, title, subtitle, selected, onPress, icon, dot, }: NetworkChipProps): react_jsx_runtime.JSX.Element;
362
+
363
+ interface EmptyStateProps extends ViewProps {
364
+ title: string;
365
+ description?: string;
366
+ /** Render an illustrative glyph with the themed color + size. */
367
+ icon?: (color: string, size: number) => React.ReactNode;
368
+ action?: React.ReactNode;
369
+ }
370
+ declare function EmptyState({ title, description, icon, action, style, ...rest }: EmptyStateProps): react_jsx_runtime.JSX.Element;
371
+
372
+ interface ModeToggleProps {
373
+ icon: (mode: ThemeMode, color: string, size: number) => React.ReactNode;
374
+ size?: number;
375
+ onToggle?: (next: ThemeMode) => void;
376
+ }
377
+ declare function ModeToggle({ icon, size, onToggle }: ModeToggleProps): react_jsx_runtime.JSX.Element;
378
+
107
379
  declare const colors: {
108
380
  readonly textPrimary: "#ffffff";
109
381
  readonly textSecondary: "rgba(255, 255, 255, 0.55)";
@@ -290,4 +562,4 @@ declare const transition: {
290
562
  readonly slow: "300ms ease-out";
291
563
  };
292
564
 
293
- export { AlertBanner, KaleidoThemeProvider, NetworkBadge, type NetworkType, SectionLabel, StatusBadge, type StatusType, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, radius, shadow, transition, typeScale };
565
+ export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, EmptyState, type EmptyStateProps, KButton, type KButtonProps, KCard, type KCardProps, KScreen, type KScreenProps, KText, type KTextProps, type KaleidoTheme, KaleidoThemeProvider, KaleidoUIProvider, type KaleidoUIProviderProps, ModeToggle, type ModeToggleProps, type NativeTypeLevel, NetworkBadge, NetworkChip, type NetworkChipProps, type NetworkKey, type NetworkType, QrCode, type QrCodeProps, SectionLabel, StatusBadge, type StatusType, type ThemeMode, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ReactNode } from 'react';
2
+ import React, { ReactNode } from 'react';
3
3
  export { AmountInput, AssetSelector, Balance, CryptoAddressInput, NetworkSelector, QRCode, SeedPhrase, ThemeProvider, TransactionItem, TransactionList, useTheme } from '@tetherto/wdk-uikit-react-native';
4
+ import { TextProps, ViewProps, PressableProps, ViewStyle } from 'react-native';
4
5
 
5
6
  /**
6
7
  * Brand configuration for WDK ThemeProvider.
@@ -55,6 +56,17 @@ interface KaleidoThemeProviderProps {
55
56
  }
56
57
  declare function KaleidoThemeProvider({ children, brandConfig, defaultMode, }: KaleidoThemeProviderProps): react_jsx_runtime.JSX.Element;
57
58
 
59
+ interface QrCodeProps {
60
+ value: string;
61
+ /** Rendered square size in px (default 160). */
62
+ size?: number;
63
+ /** Foreground (module) color. Default near-black. */
64
+ color?: string;
65
+ /** Background color used for finder eyes + logo disc. Default white. */
66
+ backgroundColor?: string;
67
+ }
68
+ declare function QrCode({ value, size, color, backgroundColor, }: QrCodeProps): react_jsx_runtime.JSX.Element;
69
+
58
70
  type StatusType = 'success' | 'pending' | 'failed' | 'completed' | 'error';
59
71
  interface StatusBadgeProps {
60
72
  status: StatusType;
@@ -104,6 +116,266 @@ interface SectionLabelProps {
104
116
  }
105
117
  declare function SectionLabel({ children, style }: SectionLabelProps): react_jsx_runtime.JSX.Element;
106
118
 
119
+ /**
120
+ * KaleidoSwap unified runtime theme (light + dark).
121
+ *
122
+ * A single, identically-shaped palette per mode so React Native components can
123
+ * consume one `KaleidoTheme` object via `useKaleidoTheme()` and flip modes with
124
+ * zero per-component conditionals. Dark is the brand default ("dark backgrounds
125
+ * anchor everything"); light is a fully-specified counterpart.
126
+ *
127
+ * This file lives in `src/tokens` and is therefore exempt from the raw-color
128
+ * lint — raw values are intentional here and ONLY here. Components must never
129
+ * inline colors; they read them from the theme.
130
+ */
131
+ type ThemeMode = 'light' | 'dark';
132
+ /** Numeric type scale for React Native (the CSS `typeScale` is px strings). */
133
+ declare const nativeType: {
134
+ readonly mini: {
135
+ readonly size: 9;
136
+ readonly line: 12;
137
+ };
138
+ readonly xxs: {
139
+ readonly size: 10;
140
+ readonly line: 14;
141
+ };
142
+ readonly tiny: {
143
+ readonly size: 11;
144
+ readonly line: 16;
145
+ };
146
+ readonly caption: {
147
+ readonly size: 13;
148
+ readonly line: 18;
149
+ };
150
+ readonly body: {
151
+ readonly size: 15;
152
+ readonly line: 22;
153
+ };
154
+ readonly subhead: {
155
+ readonly size: 17;
156
+ readonly line: 24;
157
+ };
158
+ readonly title: {
159
+ readonly size: 20;
160
+ readonly line: 28;
161
+ };
162
+ readonly headline: {
163
+ readonly size: 28;
164
+ readonly line: 34;
165
+ };
166
+ readonly display: {
167
+ readonly size: 36;
168
+ readonly line: 40;
169
+ };
170
+ readonly hero: {
171
+ readonly size: 44;
172
+ readonly line: 48;
173
+ };
174
+ };
175
+ type NativeTypeLevel = keyof typeof nativeType;
176
+ interface KaleidoTheme {
177
+ mode: ThemeMode;
178
+ /** App background (full-bleed page). */
179
+ background: string;
180
+ /** Default card/panel surface. */
181
+ card: string;
182
+ /** Raised card (modals, selected panels). */
183
+ cardElevated: string;
184
+ /** Brand green — primary CTAs, success, focus ring. */
185
+ primary: string;
186
+ /** Foreground on top of `primary`. */
187
+ primaryFg: string;
188
+ /** Brand violet — active / protocol / selected accents. */
189
+ violet: string;
190
+ /** Translucent violet wash for selected chips/surfaces. */
191
+ violetSurface: string;
192
+ /** Semantic intents. */
193
+ success: string;
194
+ warning: string;
195
+ danger: string;
196
+ info: string;
197
+ /** Translucent intent washes (banners, tinted chips). */
198
+ successSurface: string;
199
+ warningSurface: string;
200
+ dangerSurface: string;
201
+ infoSurface: string;
202
+ /** Text ladder. */
203
+ text: {
204
+ primary: string;
205
+ secondary: string;
206
+ muted: string;
207
+ disabled: string;
208
+ /** Text on the green primary fill (dark). */
209
+ onAccent: string;
210
+ /** Text on saturated fills (violet / danger) — always white. */
211
+ onFill: string;
212
+ };
213
+ /** Border ladder. */
214
+ border: {
215
+ subtle: string;
216
+ default: string;
217
+ strong: string;
218
+ };
219
+ /** Surface elevation overlays. */
220
+ surface: {
221
+ base: string;
222
+ raised: string;
223
+ sunken: string;
224
+ overlay: string;
225
+ scrim: string;
226
+ };
227
+ /** Network glyph colors (consistent across modes). */
228
+ network: {
229
+ bitcoin: string;
230
+ lightning: string;
231
+ spark: string;
232
+ rgb: string;
233
+ arkade: string;
234
+ liquid: string;
235
+ };
236
+ /** Network chip backgrounds (mode-specific tints). */
237
+ networkSurface: {
238
+ bitcoin: string;
239
+ lightning: string;
240
+ spark: string;
241
+ rgb: string;
242
+ arkade: string;
243
+ liquid: string;
244
+ };
245
+ /** Transaction direction. */
246
+ tx: {
247
+ sent: string;
248
+ receive: string;
249
+ swap: string;
250
+ };
251
+ /** Brand gradient as [start, end] for native LinearGradient (135°). */
252
+ gradientBrand: readonly [string, string];
253
+ }
254
+ declare const themes: Record<ThemeMode, KaleidoTheme>;
255
+ /** Resolve the full palette for a mode. */
256
+ declare function makeTheme(mode: ThemeMode): KaleidoTheme;
257
+
258
+ interface KaleidoThemeContextValue {
259
+ theme: KaleidoTheme;
260
+ mode: ThemeMode;
261
+ /** App-wide font family (e.g. 'Satoshi'); undefined → system default. */
262
+ fontFamily?: string;
263
+ setMode: (mode: ThemeMode) => void;
264
+ toggleMode: () => void;
265
+ }
266
+ interface KaleidoUIProviderProps {
267
+ children: ReactNode;
268
+ /** Controlled mode. When set, the provider does not manage its own state. */
269
+ mode?: ThemeMode;
270
+ /** Initial mode for the uncontrolled provider. Defaults to 'dark' (brand). */
271
+ defaultMode?: ThemeMode;
272
+ /** Fires on every mode change — use to persist the user's choice. */
273
+ onModeChange?: (mode: ThemeMode) => void;
274
+ /** App-wide font family applied by KText (pass 'Satoshi' once loaded). */
275
+ fontFamily?: string;
276
+ }
277
+ declare function KaleidoUIProvider({ children, mode: controlledMode, defaultMode, onModeChange, fontFamily, }: KaleidoUIProviderProps): react_jsx_runtime.JSX.Element;
278
+ /** Access the active theme. Falls back to the dark theme if no provider is mounted. */
279
+ declare function useKaleidoTheme(): KaleidoThemeContextValue;
280
+
281
+ type Weight = 'normal' | 'medium' | 'semibold' | 'bold';
282
+ type Tone$1 = 'primary' | 'secondary' | 'muted' | 'disabled' | 'onAccent' | 'accent' | 'violet' | 'success' | 'warning' | 'danger';
283
+ interface KTextProps extends TextProps {
284
+ variant?: NativeTypeLevel;
285
+ weight?: Weight;
286
+ tone?: Tone$1;
287
+ /** Explicit color override (wins over `tone`). */
288
+ color?: string;
289
+ /** Uppercase eyebrow styling (positive tracking). */
290
+ eyebrow?: boolean;
291
+ center?: boolean;
292
+ }
293
+ declare function KText({ variant, weight, tone, color, eyebrow, center, style, children, ...rest }: KTextProps): react_jsx_runtime.JSX.Element;
294
+
295
+ interface KScreenProps extends ViewProps {
296
+ /** Use the slightly raised card color as the page bg (for sheets/modals). */
297
+ elevated?: boolean;
298
+ }
299
+ declare function KScreen({ elevated, style, children, ...rest }: KScreenProps): react_jsx_runtime.JSX.Element;
300
+
301
+ interface KCardProps extends ViewProps {
302
+ variant?: 'default' | 'elevated' | 'inset' | 'outline';
303
+ padding?: number;
304
+ radius?: number;
305
+ /** Draw a 1px themed border. */
306
+ bordered?: boolean;
307
+ }
308
+ declare function KCard({ variant, padding, radius, bordered, style, children, ...rest }: KCardProps): react_jsx_runtime.JSX.Element;
309
+
310
+ type Variant = 'primary' | 'secondary' | 'violet' | 'ghost' | 'danger';
311
+ type Size = 'sm' | 'md' | 'lg';
312
+ interface KButtonProps extends Omit<PressableProps, 'children' | 'style'> {
313
+ label: string;
314
+ variant?: Variant;
315
+ size?: Size;
316
+ loading?: boolean;
317
+ fullWidth?: boolean;
318
+ /** Rendered before the label (e.g. an icon). */
319
+ leading?: React.ReactNode;
320
+ style?: ViewStyle;
321
+ }
322
+ declare function KButton({ label, variant, size, loading, fullWidth, leading, disabled, style, ...rest }: KButtonProps): react_jsx_runtime.JSX.Element;
323
+
324
+ type Tone = 'primary' | 'violet' | 'neutral';
325
+ interface ActionButtonProps {
326
+ label: string;
327
+ /** Render the glyph with the supplied themed color + size. */
328
+ icon: (color: string, size: number) => React.ReactNode;
329
+ onPress?: () => void;
330
+ tone?: Tone;
331
+ /** Filled accent tile (use for the single most important action). */
332
+ filled?: boolean;
333
+ disabled?: boolean;
334
+ size?: number;
335
+ }
336
+ declare function ActionButton({ label, icon, onPress, tone, filled, disabled, size, }: ActionButtonProps): react_jsx_runtime.JSX.Element;
337
+
338
+ interface BalanceCardProps extends ViewProps {
339
+ label?: string;
340
+ amount: string;
341
+ unit?: string;
342
+ fiat?: string;
343
+ /** Optional trailing element under the fiat line (e.g. a delta chip). */
344
+ footer?: React.ReactNode;
345
+ }
346
+ declare function BalanceCard({ label, amount, unit, fiat, footer, style, ...rest }: BalanceCardProps): react_jsx_runtime.JSX.Element;
347
+
348
+ type NetworkKey = 'bitcoin' | 'lightning' | 'spark' | 'rgb' | 'arkade' | 'liquid';
349
+ interface NetworkChipProps {
350
+ network?: NetworkKey;
351
+ title: string;
352
+ /** Small line under the title (e.g. "instant", "1 asset"). */
353
+ subtitle?: string;
354
+ selected?: boolean;
355
+ onPress?: () => void;
356
+ /** Render the network glyph with the themed color + size. */
357
+ icon?: (color: string, size: number) => React.ReactNode;
358
+ /** Show a small "available" dot. */
359
+ dot?: boolean;
360
+ }
361
+ declare function NetworkChip({ network, title, subtitle, selected, onPress, icon, dot, }: NetworkChipProps): react_jsx_runtime.JSX.Element;
362
+
363
+ interface EmptyStateProps extends ViewProps {
364
+ title: string;
365
+ description?: string;
366
+ /** Render an illustrative glyph with the themed color + size. */
367
+ icon?: (color: string, size: number) => React.ReactNode;
368
+ action?: React.ReactNode;
369
+ }
370
+ declare function EmptyState({ title, description, icon, action, style, ...rest }: EmptyStateProps): react_jsx_runtime.JSX.Element;
371
+
372
+ interface ModeToggleProps {
373
+ icon: (mode: ThemeMode, color: string, size: number) => React.ReactNode;
374
+ size?: number;
375
+ onToggle?: (next: ThemeMode) => void;
376
+ }
377
+ declare function ModeToggle({ icon, size, onToggle }: ModeToggleProps): react_jsx_runtime.JSX.Element;
378
+
107
379
  declare const colors: {
108
380
  readonly textPrimary: "#ffffff";
109
381
  readonly textSecondary: "rgba(255, 255, 255, 0.55)";
@@ -290,4 +562,4 @@ declare const transition: {
290
562
  readonly slow: "300ms ease-out";
291
563
  };
292
564
 
293
- export { AlertBanner, KaleidoThemeProvider, NetworkBadge, type NetworkType, SectionLabel, StatusBadge, type StatusType, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, radius, shadow, transition, typeScale };
565
+ export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, EmptyState, type EmptyStateProps, KButton, type KButtonProps, KCard, type KCardProps, KScreen, type KScreenProps, KText, type KTextProps, type KaleidoTheme, KaleidoThemeProvider, KaleidoUIProvider, type KaleidoUIProviderProps, ModeToggle, type ModeToggleProps, type NativeTypeLevel, NetworkBadge, NetworkChip, type NetworkChipProps, type NetworkKey, type NetworkType, QrCode, type QrCodeProps, SectionLabel, StatusBadge, type StatusType, type ThemeMode, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };