kaleido-ui 0.1.54 → 0.1.56

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.
@@ -54,6 +54,7 @@ __export(native_exports, {
54
54
  SectionLabel: () => SectionLabel,
55
55
  SeedPhrase: () => import_wdk_uikit_react_native2.SeedPhrase,
56
56
  StatusBadge: () => StatusBadge,
57
+ SuggestionTile: () => SuggestionTile,
57
58
  ThemeProvider: () => import_wdk_uikit_react_native2.ThemeProvider,
58
59
  TransactionItem: () => import_wdk_uikit_react_native2.TransactionItem,
59
60
  TransactionList: () => import_wdk_uikit_react_native2.TransactionList,
@@ -514,9 +515,10 @@ var NETWORK_GLYPH = {
514
515
  };
515
516
  var dark = {
516
517
  mode: "dark",
517
- background: "#0D1813",
518
- card: "#121C16",
519
- cardElevated: "#17231C",
518
+ // Dark-blue surface family (navy derived from the brand info blue #4290FF).
519
+ background: "#0A1326",
520
+ card: "#0F1C33",
521
+ cardElevated: "#16273F",
520
522
  // Brand primary CTA green — per DESIGN.md `brand.primary`, identical to web.
521
523
  // (#15E99A is the decorative logo brandmark, kept only in gradientBrand / QR.)
522
524
  primary: "#2BEE79",
@@ -1139,13 +1141,66 @@ var styles6 = import_react_native15.StyleSheet.create({
1139
1141
  time: { fontSize: 12, marginTop: 8, fontWeight: "500" }
1140
1142
  });
1141
1143
 
1142
- // src/native/components/mode-toggle.tsx
1144
+ // src/native/components/suggestion-tile.tsx
1143
1145
  var import_react_native16 = require("react-native");
1144
1146
  var import_jsx_runtime18 = require("react/jsx-runtime");
1147
+ function SuggestionTile({ title, subtitle, icon, accent, onPress, style }) {
1148
+ const { theme } = useKaleidoTheme();
1149
+ const chipColor = accent ?? theme.primary;
1150
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1151
+ import_react_native16.Pressable,
1152
+ {
1153
+ onPress,
1154
+ accessibilityRole: "button",
1155
+ accessibilityLabel: title,
1156
+ accessibilityHint: subtitle,
1157
+ style: ({ pressed }) => [
1158
+ styles7.card,
1159
+ {
1160
+ backgroundColor: theme.card,
1161
+ borderColor: theme.border.subtle,
1162
+ opacity: pressed ? 0.85 : 1
1163
+ },
1164
+ style
1165
+ ],
1166
+ children: [
1167
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native16.View, { style: [styles7.chip, { backgroundColor: chipColor }], children: icon(theme.text.onFill, 18) }),
1168
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react_native16.View, { style: styles7.textArea, children: [
1169
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(KText, { variant: "caption", weight: "semibold", numberOfLines: 1, children: title }),
1170
+ subtitle ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(KText, { variant: "tiny", tone: "muted", numberOfLines: 2, style: { marginTop: 2 }, children: subtitle }) : null
1171
+ ] })
1172
+ ]
1173
+ }
1174
+ );
1175
+ }
1176
+ var styles7 = import_react_native16.StyleSheet.create({
1177
+ card: {
1178
+ flex: 1,
1179
+ flexDirection: "row",
1180
+ alignItems: "center",
1181
+ gap: 10,
1182
+ paddingVertical: 12,
1183
+ paddingHorizontal: 12,
1184
+ borderRadius: 16,
1185
+ borderWidth: 1
1186
+ },
1187
+ chip: {
1188
+ width: 36,
1189
+ height: 36,
1190
+ borderRadius: 12,
1191
+ justifyContent: "center",
1192
+ alignItems: "center"
1193
+ },
1194
+ textArea: { flex: 1 }
1195
+ });
1196
+
1197
+ // src/native/components/mode-toggle.tsx
1198
+ var import_react_native17 = require("react-native");
1199
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1145
1200
  function ModeToggle({ icon, size = 40, onToggle }) {
1146
1201
  const { theme, mode, toggleMode } = useKaleidoTheme();
1147
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1148
- import_react_native16.Pressable,
1202
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1203
+ import_react_native17.Pressable,
1149
1204
  {
1150
1205
  accessibilityRole: "switch",
1151
1206
  accessibilityState: { checked: mode === "dark" },
@@ -1165,7 +1220,7 @@ function ModeToggle({ icon, size = 40, onToggle }) {
1165
1220
  justifyContent: "center",
1166
1221
  opacity: pressed ? 0.85 : 1
1167
1222
  }),
1168
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native16.View, { children: icon(mode, theme.text.primary, Math.round(size * 0.5)) })
1223
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native17.View, { children: icon(mode, theme.text.primary, Math.round(size * 0.5)) })
1169
1224
  }
1170
1225
  );
1171
1226
  }
@@ -1262,6 +1317,7 @@ var transition = {
1262
1317
  SectionLabel,
1263
1318
  SeedPhrase,
1264
1319
  StatusBadge,
1320
+ SuggestionTile,
1265
1321
  ThemeProvider,
1266
1322
  TransactionItem,
1267
1323
  TransactionList,
@@ -398,6 +398,18 @@ interface ChatBubbleProps {
398
398
  }
399
399
  declare function ChatBubble({ role, avatar, time, animateOnMount, onLongPress, maxWidth, style, children, }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
400
400
 
401
+ interface SuggestionTileProps {
402
+ title: string;
403
+ subtitle?: string;
404
+ /** Glyph renderer — receives the themed glyph color + size. */
405
+ icon: (color: string, size: number) => ReactNode;
406
+ /** Icon-chip background. Defaults to the brand green. */
407
+ accent?: string;
408
+ onPress?: () => void;
409
+ style?: ViewStyle;
410
+ }
411
+ declare function SuggestionTile({ title, subtitle, icon, accent, onPress, style }: SuggestionTileProps): react_jsx_runtime.JSX.Element;
412
+
401
413
  interface ModeToggleProps {
402
414
  icon: (mode: ThemeMode, color: string, size: number) => React.ReactNode;
403
415
  size?: number;
@@ -591,4 +603,4 @@ declare const transition: {
591
603
  readonly slow: "300ms ease-out";
592
604
  };
593
605
 
594
- export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, ChatBubble, type ChatBubbleProps, type ChatRole, 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, TypingDots, type TypingDotsProps, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };
606
+ export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, ChatBubble, type ChatBubbleProps, type ChatRole, 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, SuggestionTile, type SuggestionTileProps, type ThemeMode, TypingDots, type TypingDotsProps, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };
@@ -398,6 +398,18 @@ interface ChatBubbleProps {
398
398
  }
399
399
  declare function ChatBubble({ role, avatar, time, animateOnMount, onLongPress, maxWidth, style, children, }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
400
400
 
401
+ interface SuggestionTileProps {
402
+ title: string;
403
+ subtitle?: string;
404
+ /** Glyph renderer — receives the themed glyph color + size. */
405
+ icon: (color: string, size: number) => ReactNode;
406
+ /** Icon-chip background. Defaults to the brand green. */
407
+ accent?: string;
408
+ onPress?: () => void;
409
+ style?: ViewStyle;
410
+ }
411
+ declare function SuggestionTile({ title, subtitle, icon, accent, onPress, style }: SuggestionTileProps): react_jsx_runtime.JSX.Element;
412
+
401
413
  interface ModeToggleProps {
402
414
  icon: (mode: ThemeMode, color: string, size: number) => React.ReactNode;
403
415
  size?: number;
@@ -591,4 +603,4 @@ declare const transition: {
591
603
  readonly slow: "300ms ease-out";
592
604
  };
593
605
 
594
- export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, ChatBubble, type ChatBubbleProps, type ChatRole, 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, TypingDots, type TypingDotsProps, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };
606
+ export { ActionButton, type ActionButtonProps, AlertBanner, BalanceCard, type BalanceCardProps, ChatBubble, type ChatBubbleProps, type ChatRole, 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, SuggestionTile, type SuggestionTileProps, type ThemeMode, TypingDots, type TypingDotsProps, colors, fontFamily, fontWeight, kaleidoswapBrandConfig, kaleidoswapTokens, makeTheme, nativeType, radius, shadow, themes, transition, typeScale, useKaleidoTheme };
@@ -449,9 +449,10 @@ var NETWORK_GLYPH = {
449
449
  };
450
450
  var dark = {
451
451
  mode: "dark",
452
- background: "#0D1813",
453
- card: "#121C16",
454
- cardElevated: "#17231C",
452
+ // Dark-blue surface family (navy derived from the brand info blue #4290FF).
453
+ background: "#0A1326",
454
+ card: "#0F1C33",
455
+ cardElevated: "#16273F",
455
456
  // Brand primary CTA green — per DESIGN.md `brand.primary`, identical to web.
456
457
  // (#15E99A is the decorative logo brandmark, kept only in gradientBrand / QR.)
457
458
  primary: "#2BEE79",
@@ -1078,13 +1079,66 @@ var styles6 = StyleSheet6.create({
1078
1079
  time: { fontSize: 12, marginTop: 8, fontWeight: "500" }
1079
1080
  });
1080
1081
 
1082
+ // src/native/components/suggestion-tile.tsx
1083
+ import { Pressable as Pressable5, View as View14, StyleSheet as StyleSheet7 } from "react-native";
1084
+ import { jsx as jsx18, jsxs as jsxs10 } from "react/jsx-runtime";
1085
+ function SuggestionTile({ title, subtitle, icon, accent, onPress, style }) {
1086
+ const { theme } = useKaleidoTheme();
1087
+ const chipColor = accent ?? theme.primary;
1088
+ return /* @__PURE__ */ jsxs10(
1089
+ Pressable5,
1090
+ {
1091
+ onPress,
1092
+ accessibilityRole: "button",
1093
+ accessibilityLabel: title,
1094
+ accessibilityHint: subtitle,
1095
+ style: ({ pressed }) => [
1096
+ styles7.card,
1097
+ {
1098
+ backgroundColor: theme.card,
1099
+ borderColor: theme.border.subtle,
1100
+ opacity: pressed ? 0.85 : 1
1101
+ },
1102
+ style
1103
+ ],
1104
+ children: [
1105
+ /* @__PURE__ */ jsx18(View14, { style: [styles7.chip, { backgroundColor: chipColor }], children: icon(theme.text.onFill, 18) }),
1106
+ /* @__PURE__ */ jsxs10(View14, { style: styles7.textArea, children: [
1107
+ /* @__PURE__ */ jsx18(KText, { variant: "caption", weight: "semibold", numberOfLines: 1, children: title }),
1108
+ subtitle ? /* @__PURE__ */ jsx18(KText, { variant: "tiny", tone: "muted", numberOfLines: 2, style: { marginTop: 2 }, children: subtitle }) : null
1109
+ ] })
1110
+ ]
1111
+ }
1112
+ );
1113
+ }
1114
+ var styles7 = StyleSheet7.create({
1115
+ card: {
1116
+ flex: 1,
1117
+ flexDirection: "row",
1118
+ alignItems: "center",
1119
+ gap: 10,
1120
+ paddingVertical: 12,
1121
+ paddingHorizontal: 12,
1122
+ borderRadius: 16,
1123
+ borderWidth: 1
1124
+ },
1125
+ chip: {
1126
+ width: 36,
1127
+ height: 36,
1128
+ borderRadius: 12,
1129
+ justifyContent: "center",
1130
+ alignItems: "center"
1131
+ },
1132
+ textArea: { flex: 1 }
1133
+ });
1134
+
1081
1135
  // src/native/components/mode-toggle.tsx
1082
- import { Pressable as Pressable5, View as View14 } from "react-native";
1083
- import { jsx as jsx18 } from "react/jsx-runtime";
1136
+ import { Pressable as Pressable6, View as View15 } from "react-native";
1137
+ import { jsx as jsx19 } from "react/jsx-runtime";
1084
1138
  function ModeToggle({ icon, size = 40, onToggle }) {
1085
1139
  const { theme, mode, toggleMode } = useKaleidoTheme();
1086
- return /* @__PURE__ */ jsx18(
1087
- Pressable5,
1140
+ return /* @__PURE__ */ jsx19(
1141
+ Pressable6,
1088
1142
  {
1089
1143
  accessibilityRole: "switch",
1090
1144
  accessibilityState: { checked: mode === "dark" },
@@ -1104,7 +1158,7 @@ function ModeToggle({ icon, size = 40, onToggle }) {
1104
1158
  justifyContent: "center",
1105
1159
  opacity: pressed ? 0.85 : 1
1106
1160
  }),
1107
- children: /* @__PURE__ */ jsx18(View14, { children: icon(mode, theme.text.primary, Math.round(size * 0.5)) })
1161
+ children: /* @__PURE__ */ jsx19(View15, { children: icon(mode, theme.text.primary, Math.round(size * 0.5)) })
1108
1162
  }
1109
1163
  );
1110
1164
  }
@@ -1200,6 +1254,7 @@ export {
1200
1254
  SectionLabel,
1201
1255
  SeedPhrase,
1202
1256
  StatusBadge,
1257
+ SuggestionTile,
1203
1258
  ThemeProvider2 as ThemeProvider,
1204
1259
  TransactionItem,
1205
1260
  TransactionList,
@@ -376,9 +376,10 @@ var NETWORK_GLYPH = {
376
376
  };
377
377
  var dark = {
378
378
  mode: "dark",
379
- background: "#0D1813",
380
- card: "#121C16",
381
- cardElevated: "#17231C",
379
+ // Dark-blue surface family (navy derived from the brand info blue #4290FF).
380
+ background: "#0A1326",
381
+ card: "#0F1C33",
382
+ cardElevated: "#16273F",
382
383
  // Brand primary CTA green — per DESIGN.md `brand.primary`, identical to web.
383
384
  // (#15E99A is the decorative logo brandmark, kept only in gradientBrand / QR.)
384
385
  primary: "#2BEE79",
@@ -332,9 +332,10 @@ var NETWORK_GLYPH = {
332
332
  };
333
333
  var dark = {
334
334
  mode: "dark",
335
- background: "#0D1813",
336
- card: "#121C16",
337
- cardElevated: "#17231C",
335
+ // Dark-blue surface family (navy derived from the brand info blue #4290FF).
336
+ background: "#0A1326",
337
+ card: "#0F1C33",
338
+ cardElevated: "#16273F",
338
339
  // Brand primary CTA green — per DESIGN.md `brand.primary`, identical to web.
339
340
  // (#15E99A is the decorative logo brandmark, kept only in gradientBrand / QR.)
340
341
  primary: "#2BEE79",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaleido-ui",
3
- "version": "0.1.54",
3
+ "version": "0.1.56",
4
4
  "description": "KaleidoSwap shared UI library — design tokens, web components (Tailwind + Radix), and React Native components extending WDK UI Kit",
5
5
  "license": "MIT",
6
6
  "type": "module",