@sudobility/components-rn 1.0.42 → 1.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/dist/index.cjs.js +895 -299
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +896 -300
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/ui/Avatar/Avatar.d.ts.map +1 -1
  6. package/dist/ui/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  7. package/dist/ui/BreadcrumbNav/BreadcrumbNav.d.ts.map +1 -1
  8. package/dist/ui/CTASection/CTASection.d.ts.map +1 -1
  9. package/dist/ui/Calendar/Calendar.d.ts.map +1 -1
  10. package/dist/ui/ChainBadge/ChainBadge.d.ts.map +1 -1
  11. package/dist/ui/Checkbox/Checkbox.d.ts +0 -22
  12. package/dist/ui/Checkbox/Checkbox.d.ts.map +1 -1
  13. package/dist/ui/Code/Code.d.ts +0 -17
  14. package/dist/ui/Code/Code.d.ts.map +1 -1
  15. package/dist/ui/CodeDisplay/CodeDisplay.d.ts +0 -21
  16. package/dist/ui/CodeDisplay/CodeDisplay.d.ts.map +1 -1
  17. package/dist/ui/CollapsibleSection/CollapsibleSection.d.ts.map +1 -1
  18. package/dist/ui/Combobox/Combobox.d.ts.map +1 -1
  19. package/dist/ui/Command/Command.d.ts.map +1 -1
  20. package/dist/ui/DashboardStatCard/DashboardStatCard.d.ts +0 -17
  21. package/dist/ui/DashboardStatCard/DashboardStatCard.d.ts.map +1 -1
  22. package/dist/ui/DataList/DataList.d.ts.map +1 -1
  23. package/dist/ui/Dropdown/Dropdown.d.ts.map +1 -1
  24. package/dist/ui/ExternalLink/ExternalLink.d.ts.map +1 -1
  25. package/dist/ui/FeatureCard/FeatureCard.d.ts.map +1 -1
  26. package/dist/ui/FeatureGrid/FeatureGrid.d.ts.map +1 -1
  27. package/dist/ui/GradientIconContainer/GradientIconContainer.d.ts +0 -13
  28. package/dist/ui/GradientIconContainer/GradientIconContainer.d.ts.map +1 -1
  29. package/dist/ui/HelperText/HelperText.d.ts.map +1 -1
  30. package/dist/ui/IconContainer/IconContainer.d.ts +0 -13
  31. package/dist/ui/IconContainer/IconContainer.d.ts.map +1 -1
  32. package/dist/ui/IconText/IconText.d.ts.map +1 -1
  33. package/dist/ui/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
  34. package/dist/ui/KeyValuePair/KeyValuePair.d.ts.map +1 -1
  35. package/dist/ui/Link/Link.d.ts.map +1 -1
  36. package/dist/ui/ListItemWithAction/ListItemWithAction.d.ts.map +1 -1
  37. package/dist/ui/Modal/Modal.d.ts.map +1 -1
  38. package/dist/ui/MultiSelect/MultiSelect.d.ts.map +1 -1
  39. package/dist/ui/NavigationList/NavigationList.d.ts.map +1 -1
  40. package/dist/ui/PageSectionHeader/PageSectionHeader.d.ts.map +1 -1
  41. package/dist/ui/Pagination/Pagination.d.ts.map +1 -1
  42. package/dist/ui/PhoneInput/PhoneInput.d.ts.map +1 -1
  43. package/dist/ui/PopupSelect/PopupSelect.d.ts.map +1 -1
  44. package/dist/ui/Progress/Progress.d.ts +0 -15
  45. package/dist/ui/Progress/Progress.d.ts.map +1 -1
  46. package/dist/ui/PromotionalBanner/PromotionalBanner.d.ts.map +1 -1
  47. package/dist/ui/SearchInput/SearchInput.d.ts.map +1 -1
  48. package/dist/ui/SectionHeader/SectionHeader.d.ts.map +1 -1
  49. package/dist/ui/Select/Select.d.ts.map +1 -1
  50. package/dist/ui/SettingsList/SettingsList.d.ts.map +1 -1
  51. package/dist/ui/Sheet/Sheet.d.ts.map +1 -1
  52. package/dist/ui/SideNav/SideNav.d.ts.map +1 -1
  53. package/dist/ui/SmartLink/SmartLink.d.ts.map +1 -1
  54. package/dist/ui/StatDisplay/StatDisplay.d.ts +0 -12
  55. package/dist/ui/StatDisplay/StatDisplay.d.ts.map +1 -1
  56. package/dist/ui/StepList/StepList.d.ts.map +1 -1
  57. package/dist/ui/Table/Table.d.ts.map +1 -1
  58. package/dist/ui/Tabs/Tabs.d.ts.map +1 -1
  59. package/dist/ui/TextArea/TextArea.d.ts.map +1 -1
  60. package/dist/ui/TextInputModal/TextInputModal.d.ts.map +1 -1
  61. package/dist/ui/Tooltip/Tooltip.d.ts +0 -20
  62. package/dist/ui/Tooltip/Tooltip.d.ts.map +1 -1
  63. package/dist/ui/TransferList/TransferList.d.ts.map +1 -1
  64. package/package.json +3 -3
  65. package/src/ui/Avatar/Avatar.tsx +6 -5
  66. package/src/ui/Breadcrumb/Breadcrumb.tsx +8 -5
  67. package/src/ui/BreadcrumbNav/BreadcrumbNav.tsx +22 -3
  68. package/src/ui/CTASection/CTASection.tsx +8 -6
  69. package/src/ui/Calendar/Calendar.tsx +35 -6
  70. package/src/ui/ChainBadge/ChainBadge.tsx +67 -42
  71. package/src/ui/Checkbox/Checkbox.tsx +47 -20
  72. package/src/ui/Code/Code.tsx +51 -21
  73. package/src/ui/CodeDisplay/CodeDisplay.tsx +46 -20
  74. package/src/ui/CollapsibleSection/CollapsibleSection.tsx +7 -3
  75. package/src/ui/Combobox/Combobox.tsx +2 -1
  76. package/src/ui/Command/Command.tsx +2 -1
  77. package/src/ui/DashboardStatCard/DashboardStatCard.tsx +29 -11
  78. package/src/ui/DataList/DataList.tsx +23 -5
  79. package/src/ui/Dropdown/Dropdown.tsx +4 -1
  80. package/src/ui/ExternalLink/ExternalLink.tsx +5 -4
  81. package/src/ui/FeatureCard/FeatureCard.tsx +60 -29
  82. package/src/ui/FeatureGrid/FeatureGrid.tsx +7 -7
  83. package/src/ui/GradientIconContainer/GradientIconContainer.tsx +33 -8
  84. package/src/ui/HelperText/HelperText.tsx +9 -8
  85. package/src/ui/IconContainer/IconContainer.tsx +26 -9
  86. package/src/ui/IconText/IconText.tsx +6 -5
  87. package/src/ui/InfiniteScroll/InfiniteScroll.tsx +2 -1
  88. package/src/ui/KeyValuePair/KeyValuePair.tsx +12 -5
  89. package/src/ui/Link/Link.tsx +6 -5
  90. package/src/ui/ListItemWithAction/ListItemWithAction.tsx +2 -1
  91. package/src/ui/Modal/Modal.tsx +16 -2
  92. package/src/ui/MultiSelect/MultiSelect.tsx +2 -1
  93. package/src/ui/NavigationList/NavigationList.tsx +17 -3
  94. package/src/ui/PageSectionHeader/PageSectionHeader.tsx +2 -1
  95. package/src/ui/Pagination/Pagination.tsx +9 -6
  96. package/src/ui/PhoneInput/PhoneInput.tsx +3 -2
  97. package/src/ui/PopupSelect/PopupSelect.tsx +15 -14
  98. package/src/ui/Progress/Progress.tsx +63 -14
  99. package/src/ui/PromotionalBanner/PromotionalBanner.tsx +7 -4
  100. package/src/ui/SearchInput/SearchInput.tsx +3 -2
  101. package/src/ui/SectionHeader/SectionHeader.tsx +4 -1
  102. package/src/ui/Select/Select.tsx +20 -5
  103. package/src/ui/SettingsList/SettingsList.tsx +4 -1
  104. package/src/ui/Sheet/Sheet.tsx +20 -3
  105. package/src/ui/SideNav/SideNav.tsx +11 -2
  106. package/src/ui/SmartLink/SmartLink.tsx +6 -3
  107. package/src/ui/Spinner/Spinner.tsx +1 -1
  108. package/src/ui/StatDisplay/StatDisplay.tsx +59 -23
  109. package/src/ui/StepList/StepList.tsx +25 -3
  110. package/src/ui/Table/Table.tsx +22 -9
  111. package/src/ui/Tabs/Tabs.tsx +7 -2
  112. package/src/ui/TextArea/TextArea.tsx +2 -1
  113. package/src/ui/TextInputModal/TextInputModal.tsx +2 -1
  114. package/src/ui/Tooltip/Tooltip.tsx +47 -9
  115. package/src/ui/TransferList/TransferList.tsx +2 -1
package/dist/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import { clsx } from "clsx";
2
2
  import * as React from "react";
3
3
  import React__default, { useState, useRef, useCallback, useEffect, createContext, useContext } from "react";
4
4
  import { Animated, View, Text as Text$1, Pressable, ActivityIndicator, TextInput, Dimensions, Modal as Modal$1, SafeAreaView, FlatList, StyleSheet, TouchableOpacity, Image, KeyboardAvoidingView, ScrollView, Platform, PanResponder, Linking, TouchableWithoutFeedback, useWindowDimensions, RefreshControl, UIManager, LayoutAnimation, Alert as Alert$1 } from "react-native";
5
- import { colors, variants, getCardVariantColors, textVariants, designTokens } from "@sudobility/design";
5
+ import { colors, variants, getCardVariantColors, textVariants, designTokens, statusIndicatorColors, ui } from "@sudobility/design";
6
6
  import { colors as colors2, designTokens as designTokens2, textVariants as textVariants2, variants as variants2 } from "@sudobility/design";
7
7
  import { cva } from "class-variance-authority";
8
8
  import { useSafeAreaInsets } from "react-native-safe-area-context";
@@ -1762,7 +1762,7 @@ const sizeMap = {
1762
1762
  };
1763
1763
  const colorMap = {
1764
1764
  default: colors.raw.blue[600],
1765
- white: "#ffffff",
1765
+ white: colors.raw.neutral[0],
1766
1766
  success: colors.raw.green[600],
1767
1767
  warning: colors.raw.orange[600],
1768
1768
  error: colors.raw.red[600]
@@ -2460,7 +2460,7 @@ const TextArea = ({
2460
2460
  readOnly && "bg-gray-50 dark:bg-gray-900",
2461
2461
  inputClassName
2462
2462
  ),
2463
- placeholderTextColor: "#9CA3AF",
2463
+ placeholderTextColor: colors.raw.neutral[400],
2464
2464
  accessibilityRole: "text",
2465
2465
  accessibilityState: { disabled },
2466
2466
  ...textInputProps
@@ -2482,6 +2482,28 @@ const TextArea = ({
2482
2482
  ) })
2483
2483
  ] });
2484
2484
  };
2485
+ let _checkboxColors = null;
2486
+ function getCheckboxColors() {
2487
+ if (!_checkboxColors) _checkboxColors = buildCheckboxColors();
2488
+ return _checkboxColors;
2489
+ }
2490
+ function buildCheckboxColors() {
2491
+ function extractCheckedColor(base) {
2492
+ const parts = base.split(" ");
2493
+ const bg = parts.find(
2494
+ (c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
2495
+ ) || "";
2496
+ return `${bg} ${bg.replace("bg-", "border-")}`;
2497
+ }
2498
+ const btn = colors.component.button;
2499
+ return {
2500
+ primary: extractCheckedColor(btn.primary.base),
2501
+ success: extractCheckedColor(btn.success.base),
2502
+ warning: "bg-yellow-600 border-yellow-600",
2503
+ // DS has no yellow button; local fallback
2504
+ error: extractCheckedColor(btn.destructive.base)
2505
+ };
2506
+ }
2485
2507
  const Checkbox = ({
2486
2508
  checked: controlledChecked,
2487
2509
  defaultChecked = false,
@@ -2505,31 +2527,33 @@ const Checkbox = ({
2505
2527
  sm: {
2506
2528
  box: "w-4 h-4",
2507
2529
  check: "w-2 h-2",
2508
- text: "text-sm",
2509
- desc: "text-xs"
2530
+ text: designTokens.typography.size.sm,
2531
+ desc: designTokens.typography.size.xs
2510
2532
  },
2511
2533
  md: {
2512
2534
  box: "w-5 h-5",
2513
2535
  check: "w-3 h-3",
2514
- text: "text-base",
2515
- desc: "text-sm"
2536
+ text: designTokens.typography.size.base,
2537
+ desc: designTokens.typography.size.sm
2516
2538
  },
2517
2539
  lg: {
2518
2540
  box: "w-6 h-6",
2519
2541
  check: "w-4 h-4",
2520
- text: "text-lg",
2521
- desc: "text-base"
2542
+ text: designTokens.typography.size.lg,
2543
+ desc: designTokens.typography.size.base
2522
2544
  }
2523
2545
  };
2524
2546
  const getVariantClasses = () => {
2547
+ const checkedColors = getCheckboxColors();
2525
2548
  if (error) {
2526
- return checked ? "bg-red-600 border-red-600" : "border-red-600 dark:border-red-500";
2549
+ return checked ? checkedColors.error : "border-red-600 dark:border-red-500";
2527
2550
  }
2551
+ const unchecked = "border-gray-300 dark:border-gray-600";
2528
2552
  const variantClasses = {
2529
- primary: checked ? "bg-blue-600 border-blue-600" : "border-gray-300 dark:border-gray-600",
2530
- success: checked ? "bg-green-600 border-green-600" : "border-gray-300 dark:border-gray-600",
2531
- warning: checked ? "bg-yellow-600 border-yellow-600" : "border-gray-300 dark:border-gray-600",
2532
- error: checked ? "bg-red-600 border-red-600" : "border-gray-300 dark:border-gray-600"
2553
+ primary: checked ? checkedColors.primary : unchecked,
2554
+ success: checked ? checkedColors.success : unchecked,
2555
+ warning: checked ? checkedColors.warning : unchecked,
2556
+ error: checked ? checkedColors.error : unchecked
2533
2557
  };
2534
2558
  return variantClasses[variant];
2535
2559
  };
@@ -2598,7 +2622,13 @@ const Checkbox = ({
2598
2622
  ]
2599
2623
  }
2600
2624
  ),
2601
- errorMessage && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "mt-1 text-sm text-red-600 dark:text-red-400", children: errorMessage })
2625
+ errorMessage && /* @__PURE__ */ jsxRuntimeExports.jsx(
2626
+ Text$1,
2627
+ {
2628
+ className: `mt-1 ${designTokens.typography.size.sm} text-red-600 dark:text-red-400`,
2629
+ children: errorMessage
2630
+ }
2631
+ )
2602
2632
  ] });
2603
2633
  };
2604
2634
  const Switch = React.forwardRef(
@@ -2694,8 +2724,8 @@ const HelperText = ({
2694
2724
  ...textProps
2695
2725
  }) => {
2696
2726
  const sizeClasses = {
2697
- sm: "text-sm",
2698
- base: "text-base"
2727
+ sm: designTokens.typography.size.sm,
2728
+ base: designTokens.typography.size.base
2699
2729
  };
2700
2730
  const iconSize = {
2701
2731
  sm: "w-4 h-4",
@@ -2703,19 +2733,19 @@ const HelperText = ({
2703
2733
  };
2704
2734
  const variantConfig2 = {
2705
2735
  default: {
2706
- text: "text-gray-600 dark:text-gray-400",
2736
+ text: colors.component.alert.info.icon,
2707
2737
  icon: "ℹ"
2708
2738
  },
2709
2739
  error: {
2710
- text: "text-red-600 dark:text-red-400",
2740
+ text: colors.component.alert.error.icon,
2711
2741
  icon: "⚠"
2712
2742
  },
2713
2743
  success: {
2714
- text: "text-green-600 dark:text-green-400",
2744
+ text: colors.component.alert.success.icon,
2715
2745
  icon: "✓"
2716
2746
  },
2717
2747
  warning: {
2718
- text: "text-yellow-600 dark:text-yellow-400",
2748
+ text: colors.component.alert.warning.icon,
2719
2749
  icon: "⚠"
2720
2750
  }
2721
2751
  };
@@ -2725,6 +2755,7 @@ const HelperText = ({
2725
2755
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeClasses[size], config.text), ...textProps, children })
2726
2756
  ] });
2727
2757
  };
2758
+ const { typography: typography$h } = designTokens;
2728
2759
  const Select = ({
2729
2760
  value,
2730
2761
  onValueChange,
@@ -2763,8 +2794,8 @@ const Select = ({
2763
2794
  Text$1,
2764
2795
  {
2765
2796
  className: cn(
2766
- "text-base",
2767
- item.value === value ? "text-blue-600 dark:text-blue-400 font-medium" : "text-gray-900 dark:text-gray-100"
2797
+ typography$h.size.base,
2798
+ item.value === value ? `text-blue-600 dark:text-blue-400 ${typography$h.weight.medium}` : "text-gray-900 dark:text-gray-100"
2768
2799
  ),
2769
2800
  children: item.label
2770
2801
  }
@@ -2793,7 +2824,8 @@ const Select = ({
2793
2824
  Text$1,
2794
2825
  {
2795
2826
  className: cn(
2796
- "text-base flex-1",
2827
+ typography$h.size.base,
2828
+ "flex-1",
2797
2829
  selectedOption ? "text-gray-900 dark:text-gray-100" : "text-gray-400 dark:text-gray-500"
2798
2830
  ),
2799
2831
  numberOfLines: 1,
@@ -2813,8 +2845,27 @@ const Select = ({
2813
2845
  onRequestClose: () => setIsOpen(false),
2814
2846
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1 justify-end bg-black/50", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(SafeAreaView, { className: "bg-white dark:bg-gray-800 rounded-t-xl", children: [
2815
2847
  /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700", children: [
2816
- /* @__PURE__ */ jsxRuntimeExports.jsx(Pressable, { onPress: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-blue-600 dark:text-blue-400 text-base", children: "Cancel" }) }),
2817
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-base font-semibold text-gray-900 dark:text-white", children: title }),
2848
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Pressable, { onPress: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
2849
+ Text$1,
2850
+ {
2851
+ className: cn(
2852
+ "text-blue-600 dark:text-blue-400",
2853
+ typography$h.size.base
2854
+ ),
2855
+ children: "Cancel"
2856
+ }
2857
+ ) }),
2858
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
2859
+ Text$1,
2860
+ {
2861
+ className: cn(
2862
+ typography$h.size.base,
2863
+ typography$h.weight.semibold,
2864
+ "text-gray-900 dark:text-white"
2865
+ ),
2866
+ children: title
2867
+ }
2868
+ ),
2818
2869
  /* @__PURE__ */ jsxRuntimeExports.jsx(View, { style: { width: 60 } })
2819
2870
  ] }),
2820
2871
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -2950,11 +3001,11 @@ const styles$4 = StyleSheet.create({
2950
3001
  alignItems: "center",
2951
3002
  justifyContent: "space-between",
2952
3003
  borderWidth: 1,
2953
- borderColor: "#d1d5db",
3004
+ borderColor: colors.raw.neutral[300],
2954
3005
  borderRadius: 8,
2955
3006
  paddingHorizontal: 12,
2956
3007
  paddingVertical: 12,
2957
- backgroundColor: "#ffffff"
3008
+ backgroundColor: colors.raw.neutral[0]
2958
3009
  },
2959
3010
  triggerDisabled: {
2960
3011
  opacity: 0.5
@@ -2962,19 +3013,19 @@ const styles$4 = StyleSheet.create({
2962
3013
  triggerText: {
2963
3014
  flex: 1,
2964
3015
  fontSize: 16,
2965
- color: "#1a1a1a"
3016
+ color: colors.raw.neutral[900]
2966
3017
  },
2967
3018
  triggerPlaceholder: {
2968
- color: "#9ca3af"
3019
+ color: colors.raw.neutral[400]
2969
3020
  },
2970
3021
  triggerArrow: {
2971
3022
  fontSize: 10,
2972
- color: "#9ca3af",
3023
+ color: colors.raw.neutral[400],
2973
3024
  marginLeft: 8
2974
3025
  },
2975
3026
  modalContainer: {
2976
3027
  flex: 1,
2977
- backgroundColor: "#ffffff"
3028
+ backgroundColor: colors.raw.neutral[0]
2978
3029
  },
2979
3030
  modalHeader: {
2980
3031
  flexDirection: "row",
@@ -2983,12 +3034,12 @@ const styles$4 = StyleSheet.create({
2983
3034
  paddingHorizontal: 16,
2984
3035
  paddingVertical: 12,
2985
3036
  borderBottomWidth: 1,
2986
- borderBottomColor: "#e9ecef"
3037
+ borderBottomColor: colors.raw.neutral[200]
2987
3038
  },
2988
3039
  modalTitle: {
2989
3040
  fontSize: 18,
2990
3041
  fontWeight: "600",
2991
- color: "#1a1a1a"
3042
+ color: colors.raw.neutral[900]
2992
3043
  },
2993
3044
  closeButton: {
2994
3045
  padding: 8
@@ -2996,7 +3047,7 @@ const styles$4 = StyleSheet.create({
2996
3047
  closeButtonText: {
2997
3048
  fontSize: 16,
2998
3049
  fontWeight: "600",
2999
- color: "#3b82f6"
3050
+ color: colors.raw.blue[500]
3000
3051
  },
3001
3052
  listContent: {
3002
3053
  padding: 16
@@ -3005,27 +3056,27 @@ const styles$4 = StyleSheet.create({
3005
3056
  flexDirection: "row",
3006
3057
  alignItems: "center",
3007
3058
  padding: 16,
3008
- backgroundColor: "#f8f9fa",
3059
+ backgroundColor: colors.raw.neutral[50],
3009
3060
  borderRadius: 12
3010
3061
  },
3011
3062
  optionItemSelected: {
3012
- backgroundColor: "#e0f2fe"
3063
+ backgroundColor: colors.raw.blue[100]
3013
3064
  },
3014
3065
  optionLabel: {
3015
3066
  flex: 1,
3016
3067
  fontSize: 16,
3017
- color: "#1a1a1a"
3068
+ color: colors.raw.neutral[900]
3018
3069
  },
3019
3070
  optionLabelSelected: {
3020
3071
  fontWeight: "600",
3021
- color: "#3b82f6"
3072
+ color: colors.raw.blue[500]
3022
3073
  },
3023
3074
  optionDisabled: {
3024
3075
  opacity: 0.5
3025
3076
  },
3026
3077
  checkmark: {
3027
3078
  fontSize: 18,
3028
- color: "#3b82f6",
3079
+ color: colors.raw.blue[500],
3029
3080
  fontWeight: "bold"
3030
3081
  },
3031
3082
  separator: {
@@ -3111,7 +3162,7 @@ const SearchInput = ({
3111
3162
  disabled && "opacity-50",
3112
3163
  loading && "opacity-60"
3113
3164
  ),
3114
- placeholderTextColor: "#9CA3AF",
3165
+ placeholderTextColor: colors.raw.neutral[400],
3115
3166
  accessibilityRole: "search",
3116
3167
  accessibilityState: { disabled },
3117
3168
  ...textInputProps
@@ -3128,7 +3179,7 @@ const SearchInput = ({
3128
3179
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.icon, "text-gray-400"), children: "✕" })
3129
3180
  }
3130
3181
  ),
3131
- loading && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "absolute inset-y-0 right-0 flex items-center justify-center pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: "#9CA3AF" }) })
3182
+ loading && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "absolute inset-y-0 right-0 flex items-center justify-center pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: colors.raw.neutral[400] }) })
3132
3183
  ] });
3133
3184
  };
3134
3185
  const NumberInput = ({
@@ -3332,7 +3383,7 @@ const NumberInput = ({
3332
3383
  }
3333
3384
  );
3334
3385
  };
3335
- const { typography: typography$2 } = designTokens;
3386
+ const { typography: typography$g } = designTokens;
3336
3387
  const colorClasses$1 = {
3337
3388
  default: "text-gray-900 dark:text-gray-100",
3338
3389
  muted: "text-gray-600 dark:text-gray-400",
@@ -3355,11 +3406,11 @@ const Text = ({
3355
3406
  Text$1,
3356
3407
  {
3357
3408
  className: cn(
3358
- typography$2.size[size],
3359
- typography$2.weight[weight],
3409
+ typography$g.size[size],
3410
+ typography$g.weight[weight],
3360
3411
  colorClasses$1[color],
3361
- align ? typography$2.align[align] : "",
3362
- transform !== "none" ? typography$2.transform[transform] : "",
3412
+ align ? typography$g.align[align] : "",
3413
+ transform !== "none" ? typography$g.transform[transform] : "",
3363
3414
  className
3364
3415
  ),
3365
3416
  numberOfLines,
@@ -3367,7 +3418,7 @@ const Text = ({
3367
3418
  }
3368
3419
  );
3369
3420
  };
3370
- const { typography: typography$1 } = designTokens;
3421
+ const { typography: typography$f } = designTokens;
3371
3422
  const colorClasses = {
3372
3423
  default: "text-gray-900 dark:text-gray-100",
3373
3424
  muted: "text-gray-700 dark:text-gray-300",
@@ -3395,12 +3446,12 @@ const Heading = ({
3395
3446
  Text$1,
3396
3447
  {
3397
3448
  className: cn(
3398
- typography$1.size[actualSize],
3399
- typography$1.weight[weight],
3400
- typography$1.leading.heading,
3401
- typography$1.tracking.heading,
3449
+ typography$f.size[actualSize],
3450
+ typography$f.weight[weight],
3451
+ typography$f.leading.heading,
3452
+ typography$f.tracking.heading,
3402
3453
  colorClasses[color],
3403
- align ? typography$1.align[align] : "",
3454
+ align ? typography$f.align[align] : "",
3404
3455
  className
3405
3456
  ),
3406
3457
  accessibilityRole: "header",
@@ -3408,6 +3459,41 @@ const Heading = ({
3408
3459
  }
3409
3460
  );
3410
3461
  };
3462
+ let _codeColors = null;
3463
+ function getCodeColors() {
3464
+ if (!_codeColors) _codeColors = buildCodeColors();
3465
+ return _codeColors;
3466
+ }
3467
+ function buildCodeColors() {
3468
+ const alert2 = colors.component.alert;
3469
+ function splitClasses(base, dark) {
3470
+ const all = `${base} ${dark}`.split(" ");
3471
+ return {
3472
+ bg: all.filter((c) => c.includes("bg-")).join(" "),
3473
+ text: all.filter((c) => c.includes("text-")).join(" ")
3474
+ };
3475
+ }
3476
+ const info = splitClasses(alert2.info.base, alert2.info.dark);
3477
+ const success = splitClasses(alert2.success.base, alert2.success.dark);
3478
+ const warning = splitClasses(alert2.warning.base, alert2.warning.dark);
3479
+ const error = splitClasses(alert2.error.base, alert2.error.dark);
3480
+ return {
3481
+ bg: {
3482
+ default: "bg-gray-100 dark:bg-gray-800",
3483
+ primary: info.bg,
3484
+ success: success.bg,
3485
+ warning: warning.bg,
3486
+ danger: error.bg
3487
+ },
3488
+ text: {
3489
+ default: "text-gray-900 dark:text-gray-100",
3490
+ primary: info.text,
3491
+ success: success.text,
3492
+ warning: warning.text,
3493
+ danger: error.text
3494
+ }
3495
+ };
3496
+ }
3411
3497
  const Code = ({
3412
3498
  children,
3413
3499
  size = "md",
@@ -3415,24 +3501,13 @@ const Code = ({
3415
3501
  className
3416
3502
  }) => {
3417
3503
  const sizeClasses = {
3418
- sm: "text-xs px-1 py-0.5",
3419
- md: "text-sm px-1.5 py-0.5",
3420
- lg: "text-base px-2 py-1"
3421
- };
3422
- const variantBgClasses = {
3423
- default: "bg-gray-100 dark:bg-gray-800",
3424
- primary: "bg-blue-50 dark:bg-blue-900/30",
3425
- success: "bg-green-50 dark:bg-green-900/30",
3426
- warning: "bg-yellow-50 dark:bg-yellow-900/30",
3427
- danger: "bg-red-50 dark:bg-red-900/30"
3428
- };
3429
- const variantTextClasses = {
3430
- default: "text-gray-900 dark:text-gray-100",
3431
- primary: "text-blue-700 dark:text-blue-300",
3432
- success: "text-green-700 dark:text-green-300",
3433
- warning: "text-yellow-700 dark:text-yellow-300",
3434
- danger: "text-red-700 dark:text-red-300"
3504
+ sm: `${designTokens.typography.size.xs} px-1 py-0.5`,
3505
+ md: `${designTokens.typography.size.sm} px-1.5 py-0.5`,
3506
+ lg: `${designTokens.typography.size.base} px-2 py-1`
3435
3507
  };
3508
+ const codeColors = getCodeColors();
3509
+ const variantBgClasses = codeColors.bg;
3510
+ const variantTextClasses = codeColors.text;
3436
3511
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
3437
3512
  View,
3438
3513
  {
@@ -3445,7 +3520,11 @@ const Code = ({
3445
3520
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
3446
3521
  Text$1,
3447
3522
  {
3448
- className: cn("font-mono font-medium", variantTextClasses[variant]),
3523
+ className: cn(
3524
+ designTokens.typography.family.mono,
3525
+ designTokens.typography.weight.medium,
3526
+ variantTextClasses[variant]
3527
+ ),
3449
3528
  style: { fontFamily: "monospace" },
3450
3529
  children
3451
3530
  }
@@ -3504,7 +3583,7 @@ const AppVersion = ({
3504
3583
  }
3505
3584
  );
3506
3585
  };
3507
- function splitBadgeClasses(base, dark) {
3586
+ function splitBadgeClasses$1(base, dark) {
3508
3587
  const all = `${base} ${dark}`.split(" ");
3509
3588
  return {
3510
3589
  bg: all.filter((c) => c.includes("bg-")).join(" "),
@@ -3519,11 +3598,11 @@ function getBadgeColors() {
3519
3598
  function buildBadgeColors() {
3520
3599
  const badge = colors.component.badge;
3521
3600
  return {
3522
- default: splitBadgeClasses(badge.default.base, badge.default.dark),
3523
- primary: splitBadgeClasses(badge.primary.base, badge.primary.dark),
3524
- success: splitBadgeClasses(badge.success.base, badge.success.dark),
3525
- warning: splitBadgeClasses(badge.warning.base, badge.warning.dark),
3526
- error: splitBadgeClasses(badge.error.base, badge.error.dark)
3601
+ default: splitBadgeClasses$1(badge.default.base, badge.default.dark),
3602
+ primary: splitBadgeClasses$1(badge.primary.base, badge.primary.dark),
3603
+ success: splitBadgeClasses$1(badge.success.base, badge.success.dark),
3604
+ warning: splitBadgeClasses$1(badge.warning.base, badge.warning.dark),
3605
+ error: splitBadgeClasses$1(badge.error.base, badge.error.dark)
3527
3606
  };
3528
3607
  }
3529
3608
  const Badge = ({
@@ -3681,10 +3760,14 @@ const Avatar = ({
3681
3760
  xl: "w-4 h-4"
3682
3761
  };
3683
3762
  const statusClasses = {
3684
- online: "bg-green-500",
3685
- offline: "bg-gray-400",
3763
+ online: statusIndicatorColors.success,
3764
+ // bg-green-500
3765
+ offline: statusIndicatorColors.neutral,
3766
+ // bg-gray-500
3686
3767
  away: "bg-yellow-500",
3687
- busy: "bg-red-500"
3768
+ // local fallback, no DS yellow status
3769
+ busy: statusIndicatorColors.error
3770
+ // bg-red-500
3688
3771
  };
3689
3772
  const generateInitials = (name2) => {
3690
3773
  const parts = name2.trim().split(/\s+/);
@@ -4017,10 +4100,10 @@ const IconText = ({
4017
4100
  };
4018
4101
  const variantClasses = {
4019
4102
  default: "text-gray-700 dark:text-gray-300",
4020
- primary: "text-blue-600 dark:text-blue-400",
4021
- success: "text-green-600 dark:text-green-400",
4022
- warning: "text-yellow-600 dark:text-yellow-400",
4023
- danger: "text-red-600 dark:text-red-400",
4103
+ primary: colors.component.alert.info.icon,
4104
+ success: colors.component.alert.success.icon,
4105
+ warning: colors.component.alert.warning.icon,
4106
+ danger: colors.component.alert.error.icon,
4024
4107
  muted: "text-gray-500 dark:text-gray-400"
4025
4108
  };
4026
4109
  const layoutClasses = {
@@ -4164,6 +4247,35 @@ const InfoBox = ({
4164
4247
  }
4165
4248
  );
4166
4249
  };
4250
+ let _progressColors = null;
4251
+ function getProgressColors() {
4252
+ if (!_progressColors) _progressColors = buildProgressColors();
4253
+ return _progressColors;
4254
+ }
4255
+ function buildProgressColors() {
4256
+ function extractBg(base, darkStr) {
4257
+ const bg = base.split(" ").find(
4258
+ (c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
4259
+ ) || "";
4260
+ const darkBg = darkStr.split(" ").find(
4261
+ (c) => c.startsWith("dark:bg-") && !c.includes("hover:") && !c.includes("active:")
4262
+ ) || "";
4263
+ return `${bg} ${darkBg}`;
4264
+ }
4265
+ const btn = colors.component.button;
4266
+ return {
4267
+ default: extractBg(btn.primary.base, btn.primary.dark),
4268
+ primary: extractBg(btn.primary.base, btn.primary.dark),
4269
+ success: extractBg(btn.success.base, btn.success.dark),
4270
+ warning: "bg-yellow-600 dark:bg-yellow-500",
4271
+ // DS has no yellow button; local fallback
4272
+ danger: extractBg(btn.destructive.base, btn.destructive.dark),
4273
+ purple: "bg-purple-600 dark:bg-purple-500",
4274
+ // DS has no purple button; local fallback
4275
+ gray: "bg-gray-600 dark:bg-gray-500"
4276
+ // local fallback
4277
+ };
4278
+ }
4167
4279
  const Progress = ({
4168
4280
  value = 0,
4169
4281
  max = 100,
@@ -4194,11 +4306,12 @@ const Progress = ({
4194
4306
  }
4195
4307
  }, [indeterminate, animatedValue]);
4196
4308
  const percentage = Math.min(Math.max(value / max * 100, 0), 100);
4309
+ const allColors = getProgressColors();
4197
4310
  const colorClasses2 = {
4198
- default: "bg-blue-600 dark:bg-blue-500",
4199
- success: "bg-green-600 dark:bg-green-500",
4200
- warning: "bg-yellow-600 dark:bg-yellow-500",
4201
- danger: "bg-red-600 dark:bg-red-500"
4311
+ default: allColors.default,
4312
+ success: allColors.success,
4313
+ warning: allColors.warning,
4314
+ danger: allColors.danger
4202
4315
  };
4203
4316
  const sizeClasses = {
4204
4317
  sm: "h-1",
@@ -4238,7 +4351,13 @@ const Progress = ({
4238
4351
  )
4239
4352
  }
4240
4353
  ),
4241
- (showLabel || label) && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "mt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-600 dark:text-gray-400 text-right", children: label || `${Math.round(percentage)}%` }) })
4354
+ (showLabel || label) && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "mt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4355
+ Text$1,
4356
+ {
4357
+ className: `${designTokens.typography.size.xs} text-gray-600 dark:text-gray-400 text-right`,
4358
+ children: label || `${Math.round(percentage)}%`
4359
+ }
4360
+ ) })
4242
4361
  ] });
4243
4362
  };
4244
4363
  const ProgressBar = ({
@@ -4254,13 +4373,14 @@ const ProgressBar = ({
4254
4373
  }) => {
4255
4374
  const percentage = Math.min(Math.max(value / max * 100, 0), 100);
4256
4375
  const displayLabel = label || `${Math.round(percentage)}%`;
4376
+ const progressColors = getProgressColors();
4257
4377
  const variantClasses = {
4258
- primary: "bg-blue-600 dark:bg-blue-500",
4259
- success: "bg-green-600 dark:bg-green-500",
4260
- warning: "bg-yellow-600 dark:bg-yellow-500",
4261
- danger: "bg-red-600 dark:bg-red-500",
4262
- purple: "bg-purple-600 dark:bg-purple-500",
4263
- gray: "bg-gray-600 dark:bg-gray-500"
4378
+ primary: progressColors.primary,
4379
+ success: progressColors.success,
4380
+ warning: progressColors.warning,
4381
+ danger: progressColors.danger,
4382
+ purple: progressColors.purple,
4383
+ gray: progressColors.gray
4264
4384
  };
4265
4385
  const sizeClasses = {
4266
4386
  sm: "h-1",
@@ -4290,9 +4410,16 @@ const ProgressBar = ({
4290
4410
  )
4291
4411
  }
4292
4412
  ),
4293
- showLabel && labelPosition === "outside" && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm font-medium text-gray-600 dark:text-gray-400", children: displayLabel })
4413
+ showLabel && labelPosition === "outside" && /* @__PURE__ */ jsxRuntimeExports.jsx(
4414
+ Text$1,
4415
+ {
4416
+ className: `${designTokens.typography.size.sm} ${designTokens.typography.weight.medium} text-gray-600 dark:text-gray-400`,
4417
+ children: displayLabel
4418
+ }
4419
+ )
4294
4420
  ] }) });
4295
4421
  };
4422
+ const { typography: typography$e } = designTokens;
4296
4423
  const Modal = ({
4297
4424
  isOpen,
4298
4425
  onClose,
@@ -4343,7 +4470,17 @@ const Modal = ({
4343
4470
  ),
4344
4471
  children: [
4345
4472
  (title || showCloseButton) && /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700", children: [
4346
- title && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-lg font-semibold text-gray-900 dark:text-white flex-1", children: title }),
4473
+ title && /* @__PURE__ */ jsxRuntimeExports.jsx(
4474
+ Text$1,
4475
+ {
4476
+ className: cn(
4477
+ typography$e.size.lg,
4478
+ typography$e.weight.semibold,
4479
+ "text-gray-900 dark:text-white flex-1"
4480
+ ),
4481
+ children: title
4482
+ }
4483
+ ),
4347
4484
  showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsx(
4348
4485
  Pressable,
4349
4486
  {
@@ -4351,7 +4488,16 @@ const Modal = ({
4351
4488
  className: "p-1 -mr-1 rounded-full",
4352
4489
  accessibilityRole: "button",
4353
4490
  accessibilityLabel: "Close modal",
4354
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xl text-gray-500 dark:text-gray-400", children: "✕" })
4491
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
4492
+ Text$1,
4493
+ {
4494
+ className: cn(
4495
+ typography$e.size.xl,
4496
+ "text-gray-500 dark:text-gray-400"
4497
+ ),
4498
+ children: "✕"
4499
+ }
4500
+ )
4355
4501
  }
4356
4502
  )
4357
4503
  ] }),
@@ -4696,6 +4842,7 @@ const Backdrop = ({
4696
4842
  }
4697
4843
  );
4698
4844
  };
4845
+ const { typography: typography$d } = designTokens;
4699
4846
  const { height: SCREEN_HEIGHT, width: SCREEN_WIDTH$1 } = Dimensions.get("window");
4700
4847
  const Sheet = ({
4701
4848
  isOpen,
@@ -4886,8 +5033,28 @@ const Sheet = ({
4886
5033
  ),
4887
5034
  (title || description || showCloseButton) && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "px-4 py-4 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex flex-row items-start justify-between", children: [
4888
5035
  /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-1", children: [
4889
- title && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-lg font-semibold text-gray-900 dark:text-white", children: title }),
4890
- description && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "mt-1 text-sm text-gray-600 dark:text-gray-400", children: description })
5036
+ title && /* @__PURE__ */ jsxRuntimeExports.jsx(
5037
+ Text$1,
5038
+ {
5039
+ className: cn(
5040
+ typography$d.size.lg,
5041
+ typography$d.weight.semibold,
5042
+ "text-gray-900 dark:text-white"
5043
+ ),
5044
+ children: title
5045
+ }
5046
+ ),
5047
+ description && /* @__PURE__ */ jsxRuntimeExports.jsx(
5048
+ Text$1,
5049
+ {
5050
+ className: cn(
5051
+ "mt-1",
5052
+ typography$d.size.sm,
5053
+ "text-gray-600 dark:text-gray-400"
5054
+ ),
5055
+ children: description
5056
+ }
5057
+ )
4891
5058
  ] }),
4892
5059
  showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsx(
4893
5060
  Pressable,
@@ -4896,7 +5063,7 @@ const Sheet = ({
4896
5063
  className: "ml-4 p-1",
4897
5064
  accessibilityRole: "button",
4898
5065
  accessibilityLabel: "Close sheet",
4899
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xl text-gray-400", children: "✕" })
5066
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(typography$d.size.xl, "text-gray-400"), children: "✕" })
4900
5067
  }
4901
5068
  )
4902
5069
  ] }) }),
@@ -4911,6 +5078,30 @@ const Sheet = ({
4911
5078
  }
4912
5079
  );
4913
5080
  };
5081
+ let _tooltipColors = null;
5082
+ function getTooltipColors() {
5083
+ if (!_tooltipColors) {
5084
+ let extractBg = function(base, darkStr) {
5085
+ const bg = base.split(" ").find(
5086
+ (c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
5087
+ ) || "";
5088
+ const darkBg = darkStr.split(" ").find(
5089
+ (c) => c.startsWith("dark:bg-") && !c.includes("hover:") && !c.includes("active:")
5090
+ ) || "";
5091
+ return `${bg} ${darkBg}`;
5092
+ };
5093
+ const btn = colors.component.button;
5094
+ _tooltipColors = {
5095
+ default: "bg-gray-900 dark:bg-gray-700",
5096
+ info: extractBg(btn.primary.base, btn.primary.dark),
5097
+ success: extractBg(btn.success.base, btn.success.dark),
5098
+ warning: "bg-yellow-600 dark:bg-yellow-500",
5099
+ // DS has no yellow button; local fallback
5100
+ error: extractBg(btn.destructive.base, btn.destructive.dark)
5101
+ };
5102
+ }
5103
+ return _tooltipColors;
5104
+ }
4914
5105
  const Tooltip = ({
4915
5106
  content,
4916
5107
  children,
@@ -4963,13 +5154,7 @@ const Tooltip = ({
4963
5154
  }
4964
5155
  setIsVisible(false);
4965
5156
  };
4966
- const variantClasses = {
4967
- default: "bg-gray-900 dark:bg-gray-700",
4968
- info: "bg-blue-600 dark:bg-blue-500",
4969
- success: "bg-green-600 dark:bg-green-500",
4970
- warning: "bg-yellow-600 dark:bg-yellow-500",
4971
- error: "bg-red-600 dark:bg-red-500"
4972
- };
5157
+ const variantClasses = getTooltipColors();
4973
5158
  const getTooltipPosition = () => {
4974
5159
  const TOOLTIP_OFFSET = 8;
4975
5160
  const TOOLTIP_HEIGHT = 32;
@@ -5035,7 +5220,13 @@ const Tooltip = ({
5035
5220
  variantClasses[variant],
5036
5221
  className
5037
5222
  ),
5038
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-white", children: content })
5223
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
5224
+ Text$1,
5225
+ {
5226
+ className: `${designTokens.typography.size.xs} ${designTokens.typography.weight.medium} text-white`,
5227
+ children: content
5228
+ }
5229
+ )
5039
5230
  }
5040
5231
  )
5041
5232
  }
@@ -5287,7 +5478,9 @@ const TabsList = ({
5287
5478
  horizontal: true,
5288
5479
  showsHorizontalScrollIndicator: false,
5289
5480
  className: cn(
5290
- "flex-row bg-gray-100 dark:bg-gray-800 rounded-lg p-1",
5481
+ "flex-row bg-gray-100 dark:bg-gray-800",
5482
+ designTokens.radius.lg,
5483
+ "p-1",
5291
5484
  className
5292
5485
  ),
5293
5486
  contentContainerStyle: { flexGrow: 1 },
@@ -5320,7 +5513,9 @@ const TabsTrigger = ({
5320
5513
  Text$1,
5321
5514
  {
5322
5515
  className: cn(
5323
- "text-sm font-medium text-center",
5516
+ designTokens.typography.size.sm,
5517
+ designTokens.typography.weight.medium,
5518
+ "text-center",
5324
5519
  isSelected ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"
5325
5520
  ),
5326
5521
  children
@@ -5352,11 +5547,11 @@ const Link = ({
5352
5547
  }) => {
5353
5548
  const isExternal = href.startsWith("http://") || href.startsWith("https://");
5354
5549
  const variantClasses = {
5355
- default: "text-blue-600 dark:text-blue-400",
5356
- primary: "text-blue-600 dark:text-blue-400 font-medium",
5357
- secondary: "text-gray-600 dark:text-gray-400",
5550
+ default: textVariants.link.subtle(),
5551
+ primary: `${textVariants.link.default()} font-medium`,
5552
+ secondary: textVariants.link.muted(),
5358
5553
  muted: "text-gray-500 dark:text-gray-500",
5359
- underline: "text-blue-600 dark:text-blue-400 underline"
5554
+ underline: textVariants.link.default()
5360
5555
  };
5361
5556
  const handlePress = async () => {
5362
5557
  if (disabled) return;
@@ -5392,6 +5587,7 @@ const Link = ({
5392
5587
  }
5393
5588
  );
5394
5589
  };
5590
+ const { typography: typography$c } = designTokens;
5395
5591
  const Breadcrumb = ({
5396
5592
  items,
5397
5593
  separator = "/",
@@ -5401,9 +5597,9 @@ const Breadcrumb = ({
5401
5597
  }) => {
5402
5598
  const [isExpanded, setIsExpanded] = useState(false);
5403
5599
  const sizeClasses = {
5404
- sm: "text-sm",
5405
- md: "text-base",
5406
- lg: "text-lg"
5600
+ sm: typography$c.size.sm,
5601
+ md: typography$c.size.base,
5602
+ lg: typography$c.size.lg
5407
5603
  };
5408
5604
  const getDisplayItems = () => {
5409
5605
  if (!maxItems || items.length <= maxItems || isExpanded) {
@@ -5424,7 +5620,7 @@ const Breadcrumb = ({
5424
5620
  {
5425
5621
  className: cn(
5426
5622
  sizeClasses[size],
5427
- "text-gray-900 dark:text-white font-medium"
5623
+ `text-gray-900 dark:text-white ${typography$c.weight.medium}`
5428
5624
  ),
5429
5625
  accessibilityRole: "text",
5430
5626
  children: item.label
@@ -5462,7 +5658,7 @@ const Breadcrumb = ({
5462
5658
  {
5463
5659
  className: cn(
5464
5660
  sizeClasses[size],
5465
- isCurrent ? "text-gray-900 dark:text-white font-medium" : "text-gray-600 dark:text-gray-400"
5661
+ isCurrent ? `text-gray-900 dark:text-white ${typography$c.weight.medium}` : "text-gray-600 dark:text-gray-400"
5466
5662
  ),
5467
5663
  children: item.label
5468
5664
  }
@@ -5510,6 +5706,7 @@ const Breadcrumb = ({
5510
5706
  }
5511
5707
  );
5512
5708
  };
5709
+ const { typography: typography$b } = designTokens;
5513
5710
  const Pagination = ({
5514
5711
  currentPage,
5515
5712
  totalPages,
@@ -5524,18 +5721,18 @@ const Pagination = ({
5524
5721
  const sizeConfig2 = {
5525
5722
  sm: {
5526
5723
  button: "h-8 w-8",
5527
- text: "text-xs",
5528
- icon: "text-xs"
5724
+ text: typography$b.size.xs,
5725
+ icon: typography$b.size.xs
5529
5726
  },
5530
5727
  md: {
5531
5728
  button: "h-10 w-10",
5532
- text: "text-sm",
5533
- icon: "text-sm"
5729
+ text: typography$b.size.sm,
5730
+ icon: typography$b.size.sm
5534
5731
  },
5535
5732
  lg: {
5536
5733
  button: "h-12 w-12",
5537
- text: "text-base",
5538
- icon: "text-base"
5734
+ text: typography$b.size.base,
5735
+ icon: typography$b.size.base
5539
5736
  }
5540
5737
  };
5541
5738
  const config = sizeConfig2[size];
@@ -5685,6 +5882,7 @@ const Pagination = ({
5685
5882
  }
5686
5883
  );
5687
5884
  };
5885
+ const { typography: typography$a } = designTokens;
5688
5886
  const SettingsList = ({
5689
5887
  settings,
5690
5888
  selectedSetting,
@@ -5717,7 +5915,7 @@ const SettingsList = ({
5717
5915
  Text$1,
5718
5916
  {
5719
5917
  className: cn(
5720
- "text-sm",
5918
+ typography$a.size.sm,
5721
5919
  isSelected ? "text-orange-700 dark:text-orange-300" : "text-gray-700 dark:text-gray-300"
5722
5920
  ),
5723
5921
  numberOfLines: 1,
@@ -5732,6 +5930,7 @@ const SettingsList = ({
5732
5930
  }
5733
5931
  );
5734
5932
  };
5933
+ const { typography: typography$9 } = designTokens;
5735
5934
  const NavigationList = ({
5736
5935
  items,
5737
5936
  selectedPath,
@@ -5773,15 +5972,34 @@ const NavigationList = ({
5773
5972
  Text$1,
5774
5973
  {
5775
5974
  className: cn(
5776
- "font-medium",
5975
+ typography$9.weight.medium,
5777
5976
  isSelected ? "text-blue-600 dark:text-blue-400" : "text-gray-700 dark:text-gray-300"
5778
5977
  ),
5779
5978
  children: item.label
5780
5979
  }
5781
5980
  ),
5782
- item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "ml-2 px-2 py-0.5 bg-blue-100 dark:bg-blue-900 rounded-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-blue-800 dark:text-blue-200", children: item.badge }) })
5981
+ item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "ml-2 px-2 py-0.5 bg-blue-100 dark:bg-blue-900 rounded-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
5982
+ Text$1,
5983
+ {
5984
+ className: cn(
5985
+ typography$9.size.xs,
5986
+ typography$9.weight.medium,
5987
+ "text-blue-800 dark:text-blue-200"
5988
+ ),
5989
+ children: item.badge
5990
+ }
5991
+ ) })
5783
5992
  ] }),
5784
- item.description && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-500 dark:text-gray-400 mt-0.5", children: item.description })
5993
+ item.description && /* @__PURE__ */ jsxRuntimeExports.jsx(
5994
+ Text$1,
5995
+ {
5996
+ className: cn(
5997
+ typography$9.size.xs,
5998
+ "text-gray-500 dark:text-gray-400 mt-0.5"
5999
+ ),
6000
+ children: item.description
6001
+ }
6002
+ )
5785
6003
  ] })
5786
6004
  ]
5787
6005
  },
@@ -5789,6 +6007,7 @@ const NavigationList = ({
5789
6007
  );
5790
6008
  }) });
5791
6009
  };
6010
+ const { typography: typography$8 } = designTokens;
5792
6011
  const Dropdown = ({
5793
6012
  trigger,
5794
6013
  items,
@@ -5881,7 +6100,7 @@ const Dropdown = ({
5881
6100
  Text$1,
5882
6101
  {
5883
6102
  className: cn(
5884
- "text-sm",
6103
+ typography$8.size.sm,
5885
6104
  item.disabled ? "text-gray-400 dark:text-gray-500" : "text-gray-700 dark:text-gray-200"
5886
6105
  ),
5887
6106
  children: item.label
@@ -5951,7 +6170,7 @@ const AspectFitView = ({
5951
6170
  }
5952
6171
  return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("flex-1", className), onLayout, children: size && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("items-center", innerClassName), children: /* @__PURE__ */ jsxRuntimeExports.jsx(ScrollView, { style: { width: innerWidth, height: innerHeight }, children }) }) });
5953
6172
  };
5954
- const { typography } = designTokens;
6173
+ const { typography: typography$7 } = designTokens;
5955
6174
  const QuickActions = ({
5956
6175
  actions,
5957
6176
  orientation = "horizontal",
@@ -6015,7 +6234,7 @@ const QuickActions = ({
6015
6234
  accessibilityState: { disabled: action.disabled },
6016
6235
  children: [
6017
6236
  action.icon && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "w-5 h-5", children: action.icon }),
6018
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(typography.weight.medium, styles2.text), children: action.label })
6237
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(typography$7.weight.medium, styles2.text), children: action.label })
6019
6238
  ]
6020
6239
  },
6021
6240
  action.id
@@ -6093,6 +6312,7 @@ const EmptyState = ({
6093
6312
  }
6094
6313
  );
6095
6314
  };
6315
+ const { typography: typography$6 } = designTokens;
6096
6316
  const Calendar = ({
6097
6317
  value,
6098
6318
  onChange,
@@ -6181,10 +6401,29 @@ const Calendar = ({
6181
6401
  className: "p-2 active:bg-gray-100 dark:active:bg-gray-800 rounded-md",
6182
6402
  accessibilityRole: "button",
6183
6403
  accessibilityLabel: "Previous month",
6184
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-lg text-gray-700 dark:text-gray-300", children: "‹" })
6404
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6405
+ Text$1,
6406
+ {
6407
+ className: cn(
6408
+ typography$6.size.lg,
6409
+ "text-gray-700 dark:text-gray-300"
6410
+ ),
6411
+ children: "‹"
6412
+ }
6413
+ )
6414
+ }
6415
+ ),
6416
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
6417
+ Text$1,
6418
+ {
6419
+ className: cn(
6420
+ typography$6.size.base,
6421
+ typography$6.weight.semibold,
6422
+ "text-gray-900 dark:text-white"
6423
+ ),
6424
+ children: monthYear
6185
6425
  }
6186
6426
  ),
6187
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-base font-semibold text-gray-900 dark:text-white", children: monthYear }),
6188
6427
  /* @__PURE__ */ jsxRuntimeExports.jsx(
6189
6428
  Pressable,
6190
6429
  {
@@ -6192,11 +6431,30 @@ const Calendar = ({
6192
6431
  className: "p-2 active:bg-gray-100 dark:active:bg-gray-800 rounded-md",
6193
6432
  accessibilityRole: "button",
6194
6433
  accessibilityLabel: "Next month",
6195
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-lg text-gray-700 dark:text-gray-300", children: "›" })
6434
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6435
+ Text$1,
6436
+ {
6437
+ className: cn(
6438
+ typography$6.size.lg,
6439
+ "text-gray-700 dark:text-gray-300"
6440
+ ),
6441
+ children: "›"
6442
+ }
6443
+ )
6196
6444
  }
6197
6445
  )
6198
6446
  ] }),
6199
- /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row mb-2", children: weekDays.map((day) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1 items-center py-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-gray-600 dark:text-gray-400", children: day }) }, day)) }),
6447
+ /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row mb-2", children: weekDays.map((day) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1 items-center py-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6448
+ Text$1,
6449
+ {
6450
+ className: cn(
6451
+ typography$6.size.xs,
6452
+ typography$6.weight.medium,
6453
+ "text-gray-600 dark:text-gray-400"
6454
+ ),
6455
+ children: day
6456
+ }
6457
+ ) }, day)) }),
6200
6458
  weeks.map((week, weekIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row", children: week.map((date, dayIndex) => {
6201
6459
  if (!date) {
6202
6460
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -6233,9 +6491,9 @@ const Calendar = ({
6233
6491
  Text$1,
6234
6492
  {
6235
6493
  className: cn(
6236
- "text-sm",
6494
+ typography$6.size.sm,
6237
6495
  isCurrentMonth ? "text-gray-900 dark:text-white" : "text-gray-400 dark:text-gray-600",
6238
- isSelected && "text-white font-semibold"
6496
+ isSelected && `text-white ${typography$6.weight.semibold}`
6239
6497
  ),
6240
6498
  children: date.getDate()
6241
6499
  }
@@ -6263,18 +6521,40 @@ function DataList({
6263
6521
  };
6264
6522
  const renderHeader = () => {
6265
6523
  if (!showHeader) return null;
6266
- return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
6524
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
6267
6525
  View,
6268
6526
  {
6269
6527
  className: cn(
6270
- compact ? "px-3 py-2" : "px-4 py-3",
6271
- alignClasses[column.align || "left"]
6528
+ "flex-row",
6529
+ ui.table.thead,
6530
+ "border-b border-gray-200 dark:border-gray-700"
6272
6531
  ),
6273
- style: { flex: column.flex || 1 },
6274
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider", children: column.label })
6275
- },
6276
- column.key
6277
- )) });
6532
+ children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
6533
+ View,
6534
+ {
6535
+ className: cn(
6536
+ compact ? "px-3 py-2" : "px-4 py-3",
6537
+ alignClasses[column.align || "left"]
6538
+ ),
6539
+ style: { flex: column.flex || 1 },
6540
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6541
+ Text$1,
6542
+ {
6543
+ className: cn(
6544
+ designTokens.typography.size.xs,
6545
+ designTokens.typography.weight.medium,
6546
+ "text-gray-700 dark:text-gray-300",
6547
+ designTokens.typography.transform.uppercase,
6548
+ designTokens.typography.tracking.wider
6549
+ ),
6550
+ children: column.label
6551
+ }
6552
+ )
6553
+ },
6554
+ column.key
6555
+ ))
6556
+ }
6557
+ );
6278
6558
  };
6279
6559
  const renderRow = ({ item, index }) => {
6280
6560
  const isOdd = index % 2 === 1;
@@ -6284,7 +6564,7 @@ function DataList({
6284
6564
  onPress: () => onRowPress == null ? void 0 : onRowPress(item, index),
6285
6565
  className: cn(
6286
6566
  "flex-row border-b border-gray-200 dark:border-gray-700",
6287
- isOdd && "bg-gray-50 dark:bg-gray-800/50",
6567
+ isOdd && ui.table.trAlt,
6288
6568
  onRowPress && "active:bg-gray-100 dark:active:bg-gray-800"
6289
6569
  ),
6290
6570
  disabled: !onRowPress,
@@ -6301,7 +6581,10 @@ function DataList({
6301
6581
  children: column.render ? column.render(item, index) : /* @__PURE__ */ jsxRuntimeExports.jsx(
6302
6582
  Text$1,
6303
6583
  {
6304
- className: "text-sm text-gray-900 dark:text-white",
6584
+ className: cn(
6585
+ designTokens.typography.size.sm,
6586
+ "text-gray-900 dark:text-white"
6587
+ ),
6305
6588
  numberOfLines: 1,
6306
6589
  children: String(item[column.key] ?? "")
6307
6590
  }
@@ -6313,7 +6596,7 @@ function DataList({
6313
6596
  );
6314
6597
  };
6315
6598
  const renderEmpty = () => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "py-8 items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm text-gray-500 dark:text-gray-400", children: emptyMessage }) });
6316
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: cn("bg-white dark:bg-gray-900", className), children: [
6599
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: cn(ui.table.tr, className), children: [
6317
6600
  renderHeader(),
6318
6601
  /* @__PURE__ */ jsxRuntimeExports.jsx(
6319
6602
  FlatList,
@@ -6425,7 +6708,7 @@ const MultiSelect = ({
6425
6708
  value: searchQuery,
6426
6709
  onChangeText: setSearchQuery,
6427
6710
  placeholder: searchPlaceholder,
6428
- placeholderTextColor: "#9ca3af",
6711
+ placeholderTextColor: colors.raw.neutral[400],
6429
6712
  className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
6430
6713
  }
6431
6714
  ) }),
@@ -6589,6 +6872,7 @@ const ProgressCircle = ({
6589
6872
  }
6590
6873
  );
6591
6874
  };
6875
+ const { typography: typography$5 } = designTokens;
6592
6876
  const SideNav = ({ items, className }) => {
6593
6877
  return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("gap-1", className), accessibilityRole: "list", children: items.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
6594
6878
  Pressable,
@@ -6607,13 +6891,23 @@ const SideNav = ({ items, className }) => {
6607
6891
  Text$1,
6608
6892
  {
6609
6893
  className: cn(
6610
- "flex-1 font-medium",
6894
+ "flex-1",
6895
+ typography$5.weight.medium,
6611
6896
  item.active ? "text-blue-600 dark:text-blue-400" : "text-gray-700 dark:text-gray-300"
6612
6897
  ),
6613
6898
  children: item.label
6614
6899
  }
6615
6900
  ),
6616
- item.badge !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "px-2 py-0.5 bg-gray-200 dark:bg-gray-700 rounded", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-700 dark:text-gray-300", children: item.badge }) })
6901
+ item.badge !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "px-2 py-0.5 bg-gray-200 dark:bg-gray-700 rounded", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
6902
+ Text$1,
6903
+ {
6904
+ className: cn(
6905
+ typography$5.size.xs,
6906
+ "text-gray-700 dark:text-gray-300"
6907
+ ),
6908
+ children: item.badge
6909
+ }
6910
+ ) })
6617
6911
  ]
6618
6912
  },
6619
6913
  item.id
@@ -6637,7 +6931,7 @@ const SectionHeader = ({
6637
6931
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-center justify-between", children: [
6638
6932
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: title }),
6639
6933
  /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-center gap-2", children: [
6640
- loading && /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: "#2563eb" }),
6934
+ loading && /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: colors.raw.blue[600] }),
6641
6935
  actions,
6642
6936
  onAdd && /* @__PURE__ */ jsxRuntimeExports.jsx(
6643
6937
  Pressable,
@@ -6857,7 +7151,7 @@ const PhoneInput = ({
6857
7151
  value,
6858
7152
  onChangeText: handleInputChange,
6859
7153
  placeholder,
6860
- placeholderTextColor: "#9ca3af",
7154
+ placeholderTextColor: colors.raw.neutral[400],
6861
7155
  keyboardType: "phone-pad",
6862
7156
  editable: !disabled,
6863
7157
  className: cn(
@@ -6890,7 +7184,7 @@ const PhoneInput = ({
6890
7184
  value: searchQuery,
6891
7185
  onChangeText: setSearchQuery,
6892
7186
  placeholder: "Search countries...",
6893
- placeholderTextColor: "#9ca3af",
7187
+ placeholderTextColor: colors.raw.neutral[400],
6894
7188
  className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
6895
7189
  }
6896
7190
  ) }),
@@ -7235,7 +7529,7 @@ const Combobox = ({
7235
7529
  value: searchQuery,
7236
7530
  onChangeText: setSearchQuery,
7237
7531
  placeholder: searchPlaceholder,
7238
- placeholderTextColor: "#9ca3af",
7532
+ placeholderTextColor: colors.raw.neutral[400],
7239
7533
  autoFocus: true,
7240
7534
  className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
7241
7535
  }
@@ -7498,6 +7792,32 @@ const AddressLink = ({
7498
7792
  ] })
7499
7793
  ] });
7500
7794
  };
7795
+ let _displayColors = null;
7796
+ function getDisplayColors() {
7797
+ if (!_displayColors) _displayColors = buildDisplayColors();
7798
+ return _displayColors;
7799
+ }
7800
+ function buildDisplayColors() {
7801
+ const alert2 = colors.component.alert;
7802
+ function splitClasses(base, dark) {
7803
+ const all = `${base} ${dark}`.split(" ");
7804
+ return {
7805
+ text: all.filter((c) => c.includes("text-")).join(" "),
7806
+ bg: all.filter((c) => c.includes("bg-")).join(" ")
7807
+ };
7808
+ }
7809
+ const info = splitClasses(alert2.info.base, alert2.info.dark);
7810
+ const success = splitClasses(alert2.success.base, alert2.success.dark);
7811
+ const warning = splitClasses(alert2.warning.base, alert2.warning.dark);
7812
+ return {
7813
+ primary: `${info.text} ${info.bg}`,
7814
+ // secondary uses purple — no DS mapping, keep local
7815
+ secondary: "text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/30",
7816
+ success: `${success.text} ${success.bg}`,
7817
+ warning: `${warning.text} ${warning.bg}`,
7818
+ neutral: "text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800"
7819
+ };
7820
+ }
7501
7821
  const CodeDisplay = ({
7502
7822
  children,
7503
7823
  variant = "primary",
@@ -7507,28 +7827,22 @@ const CodeDisplay = ({
7507
7827
  wrap = false,
7508
7828
  className
7509
7829
  }) => {
7510
- const variantClasses = {
7511
- primary: "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30",
7512
- secondary: "text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/30",
7513
- success: "text-green-600 dark:text-green-400 bg-green-50 dark:bg-green-900/30",
7514
- warning: "text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-900/30",
7515
- neutral: "text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800"
7516
- };
7830
+ const variantClasses = getDisplayColors();
7517
7831
  const sizeClasses = {
7518
7832
  xs: {
7519
- text: "text-xs",
7833
+ text: designTokens.typography.size.xs,
7520
7834
  padding: inline ? "px-1.5 py-0.5" : "px-2 py-1"
7521
7835
  },
7522
7836
  sm: {
7523
- text: "text-sm",
7837
+ text: designTokens.typography.size.sm,
7524
7838
  padding: inline ? "px-2 py-0.5" : "px-3 py-1.5"
7525
7839
  },
7526
7840
  md: {
7527
- text: "text-base",
7841
+ text: designTokens.typography.size.base,
7528
7842
  padding: inline ? "px-2.5 py-1" : "px-4 py-2"
7529
7843
  },
7530
7844
  lg: {
7531
- text: "text-lg",
7845
+ text: designTokens.typography.size.lg,
7532
7846
  padding: inline ? "px-3 py-1" : "px-4 py-2"
7533
7847
  }
7534
7848
  };
@@ -7538,13 +7852,15 @@ const CodeDisplay = ({
7538
7852
  right: "text-right"
7539
7853
  };
7540
7854
  const sizeConfig2 = sizeClasses[size];
7541
- const [textColorClass, bgClass] = variantClasses[variant].split(" ");
7855
+ const variantParts = variantClasses[variant].split(" ");
7856
+ const textColorClass = variantParts.filter((c) => c.includes("text-")).join(" ");
7857
+ const bgClass = variantParts.filter((c) => c.includes("bg-")).join(" ");
7542
7858
  if (inline) {
7543
7859
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
7544
7860
  Text$1,
7545
7861
  {
7546
7862
  className: cn(
7547
- "font-mono rounded-lg",
7863
+ `${designTokens.typography.family.mono} rounded-lg`,
7548
7864
  textColorClass,
7549
7865
  bgClass,
7550
7866
  sizeConfig2.text,
@@ -7559,7 +7875,7 @@ const CodeDisplay = ({
7559
7875
  Text$1,
7560
7876
  {
7561
7877
  className: cn(
7562
- "font-mono",
7878
+ designTokens.typography.family.mono,
7563
7879
  textColorClass,
7564
7880
  sizeConfig2.text,
7565
7881
  !inline && alignClasses[align],
@@ -7887,7 +8203,7 @@ function InfiniteScroll({
7887
8203
  const defaultEmptyComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1 justify-center items-center py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-500 dark:text-gray-400", children: "No items found" }) });
7888
8204
  const ListFooterComponent = useCallback(() => {
7889
8205
  const footerLoader = /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row justify-center items-center py-4", children: [
7890
- /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: "#3b82f6" }),
8206
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: colors.raw.blue[500] }),
7891
8207
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: "Loading..." })
7892
8208
  ] });
7893
8209
  const footerEndMessage = /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row justify-center items-center py-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm text-gray-600 dark:text-gray-400", children: "No more items to load" }) });
@@ -7955,9 +8271,9 @@ const ExternalLink = ({
7955
8271
  lg: "text-base"
7956
8272
  };
7957
8273
  const variantClasses = {
7958
- default: "text-blue-600 dark:text-blue-400",
7959
- primary: "text-blue-700 dark:text-blue-300 font-semibold",
7960
- muted: "text-gray-600 dark:text-gray-400"
8274
+ default: textVariants.link.external(),
8275
+ primary: `${textVariants.link.default()} font-semibold`,
8276
+ muted: textVariants.link.muted()
7961
8277
  };
7962
8278
  const handlePress = useCallback(async () => {
7963
8279
  onPress == null ? void 0 : onPress();
@@ -8061,7 +8377,7 @@ const TextInputModal = ({
8061
8377
  value,
8062
8378
  onChangeText: setValue,
8063
8379
  placeholder,
8064
- placeholderTextColor: "#9ca3af",
8380
+ placeholderTextColor: colors.raw.neutral[400],
8065
8381
  maxLength,
8066
8382
  editable: !isLoading,
8067
8383
  autoFocus: true,
@@ -8258,37 +8574,54 @@ const SectionBadge = ({
8258
8574
  }
8259
8575
  );
8260
8576
  };
8261
- const chainConfig = {
8262
- evm: {
8263
- label: "EVM",
8264
- emoji: "",
8265
- bgColor: "bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800",
8266
- textColor: "text-blue-700 dark:text-blue-300"
8267
- },
8268
- solana: {
8269
- label: "SOL",
8270
- emoji: "◎",
8271
- bgColor: "bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800",
8272
- textColor: "text-purple-700 dark:text-purple-300"
8577
+ function splitBadgeClasses(base, dark) {
8578
+ const all = `${base} ${dark}`.split(" ");
8579
+ return {
8580
+ bg: all.filter((c) => c.includes("bg-")).join(" "),
8581
+ text: all.filter((c) => c.includes("text-")).join(" ")
8582
+ };
8583
+ }
8584
+ let _chainColors = null;
8585
+ function getChainColors() {
8586
+ if (!_chainColors) _chainColors = buildChainColors();
8587
+ return _chainColors;
8588
+ }
8589
+ function buildChainColors() {
8590
+ const badge = colors.component.badge;
8591
+ return {
8592
+ evm: splitBadgeClasses(badge.ethereum.base, badge.ethereum.dark),
8593
+ solana: splitBadgeClasses(badge.solana.base, badge.solana.dark),
8594
+ bitcoin: splitBadgeClasses(badge.bitcoin.base, badge.bitcoin.dark),
8595
+ // DS has no cosmos badge — use local fallback (indigo)
8596
+ cosmos: {
8597
+ bg: "bg-indigo-50 dark:bg-indigo-900/20",
8598
+ text: "text-indigo-700 dark:text-indigo-300"
8599
+ }
8600
+ };
8601
+ }
8602
+ const chainMeta = {
8603
+ evm: { label: "EVM", emoji: "⟠" },
8604
+ solana: { label: "SOL", emoji: "◎" },
8605
+ bitcoin: { label: "BTC", emoji: "₿" },
8606
+ cosmos: { label: "ATOM", emoji: "⚛" }
8607
+ };
8608
+ const sizeConfig = {
8609
+ sm: {
8610
+ padding: "px-1.5 py-0.5",
8611
+ text: designTokens.typography.size.xs,
8612
+ gap: "gap-0.5"
8273
8613
  },
8274
- bitcoin: {
8275
- label: "BTC",
8276
- emoji: "₿",
8277
- bgColor: "bg-orange-50 dark:bg-orange-900/20 border-orange-200 dark:border-orange-800",
8278
- textColor: "text-orange-700 dark:text-orange-300"
8614
+ md: {
8615
+ padding: "px-2 py-1",
8616
+ text: designTokens.typography.size.sm,
8617
+ gap: "gap-1"
8279
8618
  },
8280
- cosmos: {
8281
- label: "ATOM",
8282
- emoji: "⚛",
8283
- bgColor: "bg-indigo-50 dark:bg-indigo-900/20 border-indigo-200 dark:border-indigo-800",
8284
- textColor: "text-indigo-700 dark:text-indigo-300"
8619
+ lg: {
8620
+ padding: "px-2.5 py-1.5",
8621
+ text: designTokens.typography.size.base,
8622
+ gap: "gap-1.5"
8285
8623
  }
8286
8624
  };
8287
- const sizeConfig = {
8288
- sm: { padding: "px-1.5 py-0.5", text: "text-xs", gap: "gap-0.5" },
8289
- md: { padding: "px-2 py-1", text: "text-sm", gap: "gap-1" },
8290
- lg: { padding: "px-2.5 py-1.5", text: "text-base", gap: "gap-1.5" }
8291
- };
8292
8625
  const ChainBadge = ({
8293
8626
  chainType,
8294
8627
  size = "md",
@@ -8296,23 +8629,34 @@ const ChainBadge = ({
8296
8629
  className,
8297
8630
  ...props
8298
8631
  }) => {
8299
- const chain = chainConfig[chainType];
8632
+ const chainColors = getChainColors()[chainType];
8633
+ const meta = chainMeta[chainType];
8300
8634
  const sizeStyles = sizeConfig[size];
8301
8635
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
8302
8636
  View,
8303
8637
  {
8304
8638
  className: cn(
8305
8639
  "flex-row items-center rounded-md border",
8306
- chain.bgColor,
8640
+ chainColors.bg,
8307
8641
  sizeStyles.padding,
8308
8642
  sizeStyles.gap,
8309
8643
  className
8310
8644
  ),
8311
- accessibilityLabel: `${chain.label} chain`,
8645
+ accessibilityLabel: `${meta.label} chain`,
8312
8646
  ...props,
8313
8647
  children: [
8314
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeStyles.text, chain.textColor), children: chain.emoji }),
8315
- showLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-medium", sizeStyles.text, chain.textColor), children: chain.label })
8648
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeStyles.text, chainColors.text), children: meta.emoji }),
8649
+ showLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(
8650
+ Text$1,
8651
+ {
8652
+ className: cn(
8653
+ designTokens.typography.weight.medium,
8654
+ sizeStyles.text,
8655
+ chainColors.text
8656
+ ),
8657
+ children: meta.label
8658
+ }
8659
+ )
8316
8660
  ]
8317
8661
  }
8318
8662
  );
@@ -8359,7 +8703,7 @@ const ListItemWithAction = ({
8359
8703
  ActivityIndicator,
8360
8704
  {
8361
8705
  size: "small",
8362
- color: destructive ? "#dc2626" : "#6b7280"
8706
+ color: destructive ? colors.raw.red[600] : colors.raw.neutral[500]
8363
8707
  }
8364
8708
  ) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
8365
8709
  actionIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "mr-1", children: actionIcon }),
@@ -8508,7 +8852,7 @@ const TransferList = ({
8508
8852
  value: searchValue,
8509
8853
  onChangeText: onSearchChange,
8510
8854
  placeholder: searchPlaceholder,
8511
- placeholderTextColor: "#9ca3af",
8855
+ placeholderTextColor: colors.raw.neutral[400],
8512
8856
  className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white border border-gray-300 dark:border-gray-700 rounded-md"
8513
8857
  }
8514
8858
  ) }),
@@ -9013,6 +9357,26 @@ const Masonry = ({
9013
9357
  });
9014
9358
  return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("flex-row", className), style: { gap }, children: columnArrays.map((column, columnIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-1", style: { gap }, children: column.map((item, itemIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(View, { children: item }, itemIndex)) }, columnIndex)) });
9015
9359
  };
9360
+ let _iconContainerColors = null;
9361
+ function getIconContainerColors() {
9362
+ if (!_iconContainerColors) {
9363
+ let extractBg = function(base, dark) {
9364
+ const all = `${base} ${dark}`.split(" ");
9365
+ return all.filter((c) => c.includes("bg-")).join(" ");
9366
+ };
9367
+ const badge = colors.component.badge;
9368
+ _iconContainerColors = {
9369
+ primary: extractBg(badge.primary.base, badge.primary.dark),
9370
+ secondary: "bg-purple-100 dark:bg-purple-900/30",
9371
+ // DS has no purple badge variant; local fallback
9372
+ success: extractBg(badge.success.base, badge.success.dark),
9373
+ warning: extractBg(badge.warning.base, badge.warning.dark),
9374
+ error: extractBg(badge.error.base, badge.error.dark),
9375
+ neutral: extractBg(badge.default.base, badge.default.dark)
9376
+ };
9377
+ }
9378
+ return _iconContainerColors;
9379
+ }
9016
9380
  const IconContainer = ({
9017
9381
  children,
9018
9382
  size = "md",
@@ -9026,14 +9390,7 @@ const IconContainer = ({
9026
9390
  lg: "w-16 h-16",
9027
9391
  xl: "w-20 h-20"
9028
9392
  };
9029
- const variantClasses = {
9030
- primary: "bg-blue-100 dark:bg-blue-900/30",
9031
- secondary: "bg-purple-100 dark:bg-purple-900/30",
9032
- success: "bg-green-100 dark:bg-green-900/30",
9033
- warning: "bg-yellow-100 dark:bg-yellow-900/30",
9034
- error: "bg-red-100 dark:bg-red-900/30",
9035
- neutral: "bg-gray-100 dark:bg-gray-800"
9036
- };
9393
+ const variantClasses = getIconContainerColors();
9037
9394
  const shapeClasses = {
9038
9395
  square: "rounded-lg",
9039
9396
  rounded: "rounded-2xl",
@@ -9053,6 +9410,27 @@ const IconContainer = ({
9053
9410
  }
9054
9411
  );
9055
9412
  };
9413
+ let _gradientIconColors = null;
9414
+ function getGradientIconColors() {
9415
+ if (!_gradientIconColors) {
9416
+ let extractBg = function(base) {
9417
+ return base.split(" ").find(
9418
+ (c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
9419
+ ) || "";
9420
+ };
9421
+ const btn = colors.component.button;
9422
+ _gradientIconColors = {
9423
+ blue: extractBg(btn.primary.base),
9424
+ purple: "bg-purple-600",
9425
+ // DS has no purple button; local fallback
9426
+ green: extractBg(btn.success.base),
9427
+ orange: "bg-orange-600",
9428
+ // DS has no orange button; local fallback
9429
+ gray: "bg-gray-700 dark:bg-gray-600"
9430
+ };
9431
+ }
9432
+ return _gradientIconColors;
9433
+ }
9056
9434
  const GradientIconContainer = ({
9057
9435
  children,
9058
9436
  size = "md",
@@ -9071,13 +9449,7 @@ const GradientIconContainer = ({
9071
9449
  rounded: "rounded-xl",
9072
9450
  circle: "rounded-full"
9073
9451
  };
9074
- const variantClasses = {
9075
- blue: "bg-blue-600",
9076
- purple: "bg-purple-600",
9077
- green: "bg-green-600",
9078
- orange: "bg-orange-600",
9079
- gray: "bg-gray-700 dark:bg-gray-600"
9080
- };
9452
+ const variantClasses = getGradientIconColors();
9081
9453
  const config = sizeConfig2[size];
9082
9454
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
9083
9455
  View,
@@ -9158,7 +9530,7 @@ const PageSectionHeader = ({
9158
9530
  }
9159
9531
  ),
9160
9532
  loading && /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-center gap-2", children: [
9161
- /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: "#3b82f6" }),
9533
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ActivityIndicator, { size: "small", color: colors.raw.blue[500] }),
9162
9534
  /* @__PURE__ */ jsxRuntimeExports.jsx(
9163
9535
  Text$1,
9164
9536
  {
@@ -9210,6 +9582,7 @@ const styles = StyleSheet.create({
9210
9582
  // clipPath: 'inset(50%)', // Not supported in RN
9211
9583
  }
9212
9584
  });
9585
+ const { typography: typography$4 } = designTokens;
9213
9586
  const BreadcrumbNav = ({
9214
9587
  items,
9215
9588
  separator = "/",
@@ -9222,14 +9595,42 @@ const BreadcrumbNav = ({
9222
9595
  accessibilityRole: "none",
9223
9596
  accessibilityLabel: "Breadcrumb navigation",
9224
9597
  children: items.map((item, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(React.Fragment, { children: [
9225
- index > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-400 dark:text-gray-600 text-sm", children: typeof separator === "string" ? separator : separator }),
9226
- index === items.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-900 dark:text-white font-medium text-sm", children: item.label }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
9598
+ index > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
9599
+ Text$1,
9600
+ {
9601
+ className: cn(
9602
+ "text-gray-400 dark:text-gray-600",
9603
+ typography$4.size.sm
9604
+ ),
9605
+ children: typeof separator === "string" ? separator : separator
9606
+ }
9607
+ ),
9608
+ index === items.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
9609
+ Text$1,
9610
+ {
9611
+ className: cn(
9612
+ "text-gray-900 dark:text-white",
9613
+ typography$4.weight.medium,
9614
+ typography$4.size.sm
9615
+ ),
9616
+ children: item.label
9617
+ }
9618
+ ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
9227
9619
  Pressable,
9228
9620
  {
9229
9621
  onPress: item.onPress,
9230
9622
  accessibilityRole: "link",
9231
9623
  accessibilityLabel: item.label,
9232
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-blue-600 dark:text-blue-400 text-sm", children: item.label })
9624
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
9625
+ Text$1,
9626
+ {
9627
+ className: cn(
9628
+ "text-blue-600 dark:text-blue-400",
9629
+ typography$4.size.sm
9630
+ ),
9631
+ children: item.label
9632
+ }
9633
+ )
9233
9634
  }
9234
9635
  )
9235
9636
  ] }, index))
@@ -9308,7 +9709,8 @@ function Table({
9308
9709
  View,
9309
9710
  {
9310
9711
  className: cn(
9311
- "flex-row bg-gray-50 dark:bg-gray-800",
9712
+ "flex-row",
9713
+ ui.table.thead,
9312
9714
  "border-b border-gray-200 dark:border-gray-700"
9313
9715
  ),
9314
9716
  children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -9331,7 +9733,19 @@ function Table({
9331
9733
  alignClasses[column.align || "left"]
9332
9734
  ),
9333
9735
  children: [
9334
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs font-medium text-gray-700 dark:text-gray-300 uppercase tracking-wider", children: column.label }),
9736
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
9737
+ Text$1,
9738
+ {
9739
+ className: cn(
9740
+ designTokens.typography.size.xs,
9741
+ designTokens.typography.weight.medium,
9742
+ "text-gray-700 dark:text-gray-300",
9743
+ designTokens.typography.transform.uppercase,
9744
+ designTokens.typography.tracking.wider
9745
+ ),
9746
+ children: column.label
9747
+ }
9748
+ ),
9335
9749
  column.sortable && (sort == null ? void 0 : sort.column) === column.key && /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-500", children: sort.direction === "asc" ? "↑" : "↓" })
9336
9750
  ]
9337
9751
  }
@@ -9341,7 +9755,7 @@ function Table({
9341
9755
  ))
9342
9756
  }
9343
9757
  ),
9344
- /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "bg-white dark:bg-gray-900", children: data.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "px-4 py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: emptyMessage }) }) : data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(
9758
+ /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: ui.table.tr, children: data.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "px-4 py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: emptyMessage }) }) : data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(
9345
9759
  Pressable,
9346
9760
  {
9347
9761
  onPress: () => onRowPress == null ? void 0 : onRowPress(row, rowIndex),
@@ -9349,7 +9763,7 @@ function Table({
9349
9763
  className: cn(
9350
9764
  "flex-row",
9351
9765
  "border-b border-gray-200 dark:border-gray-700",
9352
- striped && rowIndex % 2 === 1 && "bg-gray-50 dark:bg-gray-800/50"
9766
+ striped && rowIndex % 2 === 1 && ui.table.trAlt
9353
9767
  ),
9354
9768
  accessibilityRole: "button",
9355
9769
  children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -9361,7 +9775,16 @@ function Table({
9361
9775
  bordered && "border-r border-gray-200 dark:border-gray-700 last:border-r-0"
9362
9776
  ),
9363
9777
  style: { width: column.width },
9364
- children: column.render ? column.render(row, rowIndex) : /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm text-gray-900 dark:text-white", children: String(row[column.key] ?? "") })
9778
+ children: column.render ? column.render(row, rowIndex) : /* @__PURE__ */ jsxRuntimeExports.jsx(
9779
+ Text$1,
9780
+ {
9781
+ className: cn(
9782
+ designTokens.typography.size.sm,
9783
+ "text-gray-900 dark:text-white"
9784
+ ),
9785
+ children: String(row[column.key] ?? "")
9786
+ }
9787
+ )
9365
9788
  },
9366
9789
  column.key
9367
9790
  ))
@@ -9456,7 +9879,7 @@ const Command = ({
9456
9879
  value: searchQuery,
9457
9880
  onChangeText: setSearchQuery,
9458
9881
  placeholder,
9459
- placeholderTextColor: "#9ca3af",
9882
+ placeholderTextColor: colors.raw.neutral[400],
9460
9883
  className: "flex-1 text-gray-900 dark:text-white text-base",
9461
9884
  autoCapitalize: "none",
9462
9885
  autoCorrect: false,
@@ -9682,6 +10105,7 @@ const StandardPageLayout = ({
9682
10105
  }) => {
9683
10106
  return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("flex-1", backgroundClassName), children: /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("flex-1", contentClassName), children }) });
9684
10107
  };
10108
+ const { typography: typography$3 } = designTokens;
9685
10109
  const StepList = ({
9686
10110
  items,
9687
10111
  type = "ordered",
@@ -9692,10 +10116,30 @@ const StepList = ({
9692
10116
  const renderStepNumber = (index) => {
9693
10117
  if (type === "ordered") {
9694
10118
  if (variant === "enhanced") {
9695
- return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "w-6 h-6 bg-blue-600 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-white text-sm font-medium", children: index + 1 }) });
10119
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "w-6 h-6 bg-blue-600 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
10120
+ Text$1,
10121
+ {
10122
+ className: cn(
10123
+ "text-white",
10124
+ typography$3.size.sm,
10125
+ typography$3.weight.medium
10126
+ ),
10127
+ children: index + 1
10128
+ }
10129
+ ) });
9696
10130
  }
9697
10131
  if (variant === "minimal") {
9698
- return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "w-6 h-6 bg-blue-100 dark:bg-blue-900/20 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-blue-600 dark:text-blue-400 text-sm font-medium", children: index + 1 }) });
10132
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "w-6 h-6 bg-blue-100 dark:bg-blue-900/20 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
10133
+ Text$1,
10134
+ {
10135
+ className: cn(
10136
+ "text-blue-600 dark:text-blue-400",
10137
+ typography$3.size.sm,
10138
+ typography$3.weight.medium
10139
+ ),
10140
+ children: index + 1
10141
+ }
10142
+ ) });
9699
10143
  }
9700
10144
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(Text$1, { className: "text-gray-600 dark:text-gray-400 mr-2", children: [
9701
10145
  index + 1,
@@ -9726,7 +10170,16 @@ const StepList = ({
9726
10170
  typeof content === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-600 dark:text-gray-400", children: content }) : content,
9727
10171
  subItems && subItems.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "mt-2 ml-4 gap-1", children: subItems.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row", children: [
9728
10172
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-500 dark:text-gray-500 mr-2", children: "•" }),
9729
- typeof subItem === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm text-gray-500 dark:text-gray-500 flex-1", children: subItem }) : subItem
10173
+ typeof subItem === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
10174
+ Text$1,
10175
+ {
10176
+ className: cn(
10177
+ typography$3.size.sm,
10178
+ "text-gray-500 dark:text-gray-500 flex-1"
10179
+ ),
10180
+ children: subItem
10181
+ }
10182
+ ) : subItem
9730
10183
  ] }, subIndex)) })
9731
10184
  ] })
9732
10185
  ]
@@ -9762,51 +10215,74 @@ const FeatureCard = ({
9762
10215
  }) => {
9763
10216
  const colorClasses2 = {
9764
10217
  blue: "text-blue-600 dark:text-blue-400",
10218
+ // colors.raw.blue[600] / [400]
9765
10219
  green: "text-green-600 dark:text-green-400",
10220
+ // colors.raw.green[600] / [400]
9766
10221
  purple: "text-purple-600 dark:text-purple-400",
9767
10222
  orange: "text-orange-600 dark:text-orange-400",
10223
+ // colors.raw.orange[600] / [400]
9768
10224
  pink: "text-pink-600 dark:text-pink-400",
9769
10225
  gray: "text-gray-600 dark:text-gray-400",
10226
+ // colors.raw.neutral[600] / [400]
9770
10227
  red: "text-red-600 dark:text-red-400",
10228
+ // colors.raw.red[600] / [400]
9771
10229
  indigo: "text-indigo-600 dark:text-indigo-400",
9772
10230
  cyan: "text-cyan-600 dark:text-cyan-400",
9773
10231
  emerald: "text-emerald-600 dark:text-emerald-400"
9774
10232
  };
9775
10233
  const borderColorClasses = {
9776
10234
  green: "border-l-4 border-l-green-500",
10235
+ // colors.raw.green[500]
9777
10236
  blue: "border-l-4 border-l-blue-500",
10237
+ // colors.raw.blue[500]
9778
10238
  purple: "border-l-4 border-l-purple-500",
10239
+ // colors.raw.purple[500]
9779
10240
  orange: "border-l-4 border-l-orange-500",
10241
+ // colors.raw.orange[500]
9780
10242
  red: "border-l-4 border-l-red-500",
10243
+ // colors.raw.red[500]
9781
10244
  indigo: "border-l-4 border-l-indigo-500",
9782
10245
  cyan: "border-l-4 border-l-cyan-500",
9783
10246
  emerald: "border-l-4 border-l-emerald-500",
9784
10247
  pink: "border-l-4 border-l-pink-500",
9785
10248
  gray: "border-l-4 border-l-gray-500"
10249
+ // colors.raw.neutral[500]
9786
10250
  };
9787
10251
  const iconBackgroundClasses = {
9788
10252
  green: "bg-green-100 dark:bg-green-900/20",
10253
+ // colors.raw.green[100] / [900]
9789
10254
  blue: "bg-blue-100 dark:bg-blue-900/20",
10255
+ // colors.raw.blue[100] / [900]
9790
10256
  purple: "bg-purple-100 dark:bg-purple-900/20",
10257
+ // colors.raw.purple[100] / [900]
9791
10258
  orange: "bg-orange-100 dark:bg-orange-900/20",
10259
+ // colors.raw.orange[100] / [900]
9792
10260
  red: "bg-red-100 dark:bg-red-900/20",
10261
+ // colors.raw.red[100] / [900]
9793
10262
  indigo: "bg-indigo-100 dark:bg-indigo-900/20",
9794
10263
  cyan: "bg-cyan-100 dark:bg-cyan-900/20",
9795
10264
  emerald: "bg-emerald-100 dark:bg-emerald-900/20",
9796
10265
  pink: "bg-pink-100 dark:bg-pink-900/20",
9797
10266
  gray: "bg-gray-100 dark:bg-gray-900/20"
10267
+ // colors.raw.neutral[100] / [900]
9798
10268
  };
9799
10269
  const bulletColorClasses = {
9800
10270
  green: "bg-green-500",
10271
+ // colors.raw.green[500]
9801
10272
  blue: "bg-blue-500",
10273
+ // colors.raw.blue[500]
9802
10274
  purple: "bg-purple-500",
10275
+ // colors.raw.purple[500]
9803
10276
  orange: "bg-orange-500",
10277
+ // colors.raw.orange[500]
9804
10278
  red: "bg-red-500",
10279
+ // colors.raw.red[500]
9805
10280
  indigo: "bg-indigo-500",
9806
10281
  cyan: "bg-cyan-500",
9807
10282
  emerald: "bg-emerald-500",
9808
10283
  pink: "bg-pink-500",
9809
10284
  gray: "bg-gray-500"
10285
+ // colors.raw.neutral[500]
9810
10286
  };
9811
10287
  const CardContent2 = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
9812
10288
  borderColor ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -9819,8 +10295,28 @@ const FeatureCard = ({
9819
10295
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: colorClasses2[color], children: icon })
9820
10296
  }
9821
10297
  ) : /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("mb-4", colorClasses2[color]), children: icon }),
9822
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xl font-semibold text-gray-900 dark:text-white mb-3", children: title }),
9823
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-600 dark:text-gray-300 mb-4 leading-relaxed", children: description }),
10298
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10299
+ Text$1,
10300
+ {
10301
+ className: cn(
10302
+ designTokens.typography.size.xl,
10303
+ designTokens.typography.weight.semibold,
10304
+ "text-gray-900 dark:text-white mb-3"
10305
+ ),
10306
+ children: title
10307
+ }
10308
+ ),
10309
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10310
+ Text$1,
10311
+ {
10312
+ className: cn(
10313
+ designTokens.typography.size.base,
10314
+ designTokens.typography.leading.relaxed,
10315
+ "text-gray-600 dark:text-gray-300 mb-4"
10316
+ ),
10317
+ children: description
10318
+ }
10319
+ ),
9824
10320
  cta && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "mt-3 mb-4", children: cta }),
9825
10321
  benefits && benefits.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "gap-2 mb-4", children: benefits.map((benefit, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-start", children: [
9826
10322
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -9832,15 +10328,44 @@ const FeatureCard = ({
9832
10328
  )
9833
10329
  }
9834
10330
  ),
9835
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "flex-1 text-sm text-gray-600 dark:text-gray-400", children: benefit })
10331
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10332
+ Text$1,
10333
+ {
10334
+ className: cn(
10335
+ "flex-1",
10336
+ designTokens.typography.size.sm,
10337
+ "text-gray-600 dark:text-gray-400"
10338
+ ),
10339
+ children: benefit
10340
+ }
10341
+ )
9836
10342
  ] }, index)) }),
9837
10343
  metrics && Object.keys(metrics).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "flex-row flex-wrap gap-4 mt-4", children: Object.entries(metrics).map(([key, value], index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
9838
10344
  View,
9839
10345
  {
9840
10346
  className: "flex-1 min-w-[80px] items-center p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg",
9841
10347
  children: [
9842
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("text-lg font-bold", colorClasses2[color]), children: value }),
9843
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: key })
10348
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10349
+ Text$1,
10350
+ {
10351
+ className: cn(
10352
+ designTokens.typography.size.lg,
10353
+ designTokens.typography.weight.bold,
10354
+ colorClasses2[color]
10355
+ ),
10356
+ children: value
10357
+ }
10358
+ ),
10359
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10360
+ Text$1,
10361
+ {
10362
+ className: cn(
10363
+ designTokens.typography.size.xs,
10364
+ "text-gray-500 dark:text-gray-400 mt-1"
10365
+ ),
10366
+ children: key
10367
+ }
10368
+ )
9844
10369
  ]
9845
10370
  },
9846
10371
  index
@@ -9886,10 +10411,10 @@ const FeatureGrid = ({
9886
10411
  lg: "w-20 h-20"
9887
10412
  };
9888
10413
  const badgeVariants = {
9889
- success: "bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300",
9890
- info: "bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300",
9891
- warning: "bg-amber-100 dark:bg-amber-900/30 text-amber-800 dark:text-amber-300",
9892
- default: "bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-300"
10414
+ success: `${colors.component.badge.success.base} ${colors.component.badge.success.dark}`,
10415
+ info: `${colors.component.badge.primary.base} ${colors.component.badge.primary.dark}`,
10416
+ warning: `${colors.component.badge.attention.base} ${colors.component.badge.attention.dark}`,
10417
+ default: `${colors.component.badge.default.base} ${colors.component.badge.default.dark}`
9893
10418
  };
9894
10419
  const renderFeature = (feature, index) => {
9895
10420
  const content = /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -9897,7 +10422,7 @@ const FeatureGrid = ({
9897
10422
  {
9898
10423
  className: cn(
9899
10424
  "items-center",
9900
- cardVariant === "card" && "bg-white dark:bg-gray-800 rounded-2xl p-6 shadow-lg",
10425
+ cardVariant === "card" && `${getCardVariantColors("elevated")} rounded-2xl p-6`,
9901
10426
  cardVariant === "minimal" && "gap-4"
9902
10427
  ),
9903
10428
  children: [
@@ -9981,14 +10506,14 @@ const CTASection = ({
9981
10506
  lg: "py-16 px-8"
9982
10507
  };
9983
10508
  const titleSizeClasses = {
9984
- sm: "text-2xl",
9985
- md: "text-3xl",
9986
- lg: "text-4xl"
10509
+ sm: designTokens.typography.size["2xl"],
10510
+ md: designTokens.typography.size["3xl"],
10511
+ lg: designTokens.typography.size["4xl"]
9987
10512
  };
9988
10513
  const descriptionSizeClasses = {
9989
- sm: "text-base",
9990
- md: "text-lg",
9991
- lg: "text-xl"
10514
+ sm: designTokens.typography.size.base,
10515
+ md: designTokens.typography.size.lg,
10516
+ lg: designTokens.typography.size.xl
9992
10517
  };
9993
10518
  const textColorClass = textColor === "light" ? "text-white" : "text-gray-900";
9994
10519
  const renderButton = (button, isPrimary) => /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -10068,8 +10593,10 @@ const PromotionalBanner = ({
10068
10593
  View,
10069
10594
  {
10070
10595
  className: cn(
10071
- "bg-green-50 dark:bg-green-900/20",
10072
- "border-b border-green-200 dark:border-green-700",
10596
+ // Derive green palette from DS alert.success colors
10597
+ colors.component.alert.success.base,
10598
+ colors.component.alert.success.dark,
10599
+ "border-b",
10073
10600
  isProminent && "border-b-2",
10074
10601
  className
10075
10602
  ),
@@ -10120,6 +10647,7 @@ const PromotionalBanner = ({
10120
10647
  }
10121
10648
  );
10122
10649
  };
10650
+ const { typography: typography$2 } = designTokens;
10123
10651
  if (Platform.OS === "android" && UIManager.setLayoutAnimationEnabledExperimental) {
10124
10652
  UIManager.setLayoutAnimationEnabledExperimental(true);
10125
10653
  }
@@ -10169,7 +10697,8 @@ const CollapsibleSection = ({
10169
10697
  Text$1,
10170
10698
  {
10171
10699
  className: cn(
10172
- "text-base font-medium",
10700
+ typography$2.size.base,
10701
+ typography$2.weight.medium,
10173
10702
  isSelected && !selectedSubsection ? "text-blue-700 dark:text-blue-300" : "text-gray-700 dark:text-gray-300"
10174
10703
  ),
10175
10704
  children: title
@@ -10184,7 +10713,7 @@ const CollapsibleSection = ({
10184
10713
  className: "p-2 rounded-md",
10185
10714
  accessibilityRole: "button",
10186
10715
  accessibilityLabel: isExpanded ? "Collapse" : "Expand",
10187
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(Animated.View, { style: { transform: [{ rotate: rotation }] }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-gray-500 text-lg", children: "›" }) })
10716
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(Animated.View, { style: { transform: [{ rotate: rotation }] }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("text-gray-500", typography$2.size.lg), children: "›" }) })
10188
10717
  }
10189
10718
  )
10190
10719
  ] }),
@@ -10204,7 +10733,7 @@ const CollapsibleSection = ({
10204
10733
  Text$1,
10205
10734
  {
10206
10735
  className: cn(
10207
- "text-sm",
10736
+ typography$2.size.sm,
10208
10737
  selectedSubsection === subsection.id ? "text-blue-700 dark:text-blue-300" : "text-gray-600 dark:text-gray-400"
10209
10738
  ),
10210
10739
  children: subsection.title
@@ -10215,6 +10744,19 @@ const CollapsibleSection = ({
10215
10744
  ] }, subsection.id)) })
10216
10745
  ] });
10217
10746
  };
10747
+ let _cardColors = null;
10748
+ function getDashboardCardColors() {
10749
+ if (!_cardColors) {
10750
+ _cardColors = {
10751
+ default: getCardVariantColors("default"),
10752
+ primary: getCardVariantColors("info"),
10753
+ success: getCardVariantColors("success"),
10754
+ warning: getCardVariantColors("warning"),
10755
+ danger: getCardVariantColors("error")
10756
+ };
10757
+ }
10758
+ return _cardColors;
10759
+ }
10218
10760
  const DashboardStatCard = ({
10219
10761
  title,
10220
10762
  value,
@@ -10224,13 +10766,7 @@ const DashboardStatCard = ({
10224
10766
  variant = "default",
10225
10767
  className
10226
10768
  }) => {
10227
- const variantClasses = {
10228
- default: "bg-white dark:bg-gray-900",
10229
- primary: "bg-blue-50 dark:bg-blue-900/20",
10230
- success: "bg-green-50 dark:bg-green-900/20",
10231
- warning: "bg-yellow-50 dark:bg-yellow-900/20",
10232
- danger: "bg-red-50 dark:bg-red-900/20"
10233
- };
10769
+ const variantClasses = getDashboardCardColors();
10234
10770
  const isPositive = change !== void 0 && change >= 0;
10235
10771
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
10236
10772
  View,
@@ -10242,16 +10778,29 @@ const DashboardStatCard = ({
10242
10778
  ),
10243
10779
  children: [
10244
10780
  /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-start justify-between mb-2", children: [
10245
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-sm font-medium text-gray-600 dark:text-gray-400", children: title }),
10781
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10782
+ Text$1,
10783
+ {
10784
+ className: `${designTokens.typography.size.sm} ${designTokens.typography.weight.medium} text-gray-600 dark:text-gray-400`,
10785
+ children: title
10786
+ }
10787
+ ),
10246
10788
  icon && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: "text-gray-400 dark:text-gray-600", children: icon })
10247
10789
  ] }),
10248
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-3xl font-bold text-gray-900 dark:text-white", children: value }),
10790
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10791
+ Text$1,
10792
+ {
10793
+ className: `${designTokens.typography.size["3xl"]} ${designTokens.typography.weight.bold} text-gray-900 dark:text-white`,
10794
+ children: value
10795
+ }
10796
+ ),
10249
10797
  change !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: "flex-row items-center gap-1 mt-2", children: [
10250
10798
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
10251
10799
  Text$1,
10252
10800
  {
10253
10801
  className: cn(
10254
- "text-sm font-medium",
10802
+ designTokens.typography.size.sm,
10803
+ designTokens.typography.weight.medium,
10255
10804
  isPositive ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400"
10256
10805
  ),
10257
10806
  children: [
@@ -10262,37 +10811,40 @@ const DashboardStatCard = ({
10262
10811
  ]
10263
10812
  }
10264
10813
  ),
10265
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: "text-xs text-gray-500 dark:text-gray-400", children: changePeriod })
10814
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10815
+ Text$1,
10816
+ {
10817
+ className: `${designTokens.typography.size.xs} text-gray-500 dark:text-gray-400`,
10818
+ children: changePeriod
10819
+ }
10820
+ )
10266
10821
  ] })
10267
10822
  ]
10268
10823
  }
10269
10824
  );
10270
10825
  };
10271
- const StatDisplay = ({
10272
- value,
10273
- label,
10274
- variant = "neutral",
10275
- size = "md",
10276
- align = "center",
10277
- icon,
10278
- iconPosition = "top",
10279
- className
10280
- }) => {
10281
- const variantClasses = {
10826
+ let _statColors = null;
10827
+ function getStatColors() {
10828
+ if (!_statColors) _statColors = buildStatColors();
10829
+ return _statColors;
10830
+ }
10831
+ function buildStatColors() {
10832
+ const alert2 = colors.component.alert;
10833
+ return {
10282
10834
  primary: {
10283
- value: "text-blue-600 dark:text-blue-400",
10835
+ value: `${alert2.info.icon}`,
10284
10836
  label: "text-blue-600/70 dark:text-blue-400/70"
10285
10837
  },
10286
10838
  success: {
10287
- value: "text-green-600 dark:text-green-400",
10839
+ value: `${alert2.success.icon}`,
10288
10840
  label: "text-green-600/70 dark:text-green-400/70"
10289
10841
  },
10290
10842
  warning: {
10291
- value: "text-yellow-600 dark:text-yellow-400",
10292
- label: "text-yellow-600/70 dark:text-yellow-400/70"
10843
+ value: `${alert2.warning.icon}`,
10844
+ label: "text-orange-600/70 dark:text-orange-400/70"
10293
10845
  },
10294
10846
  danger: {
10295
- value: "text-red-600 dark:text-red-400",
10847
+ value: `${alert2.error.icon}`,
10296
10848
  label: "text-red-600/70 dark:text-red-400/70"
10297
10849
  },
10298
10850
  neutral: {
@@ -10304,11 +10856,35 @@ const StatDisplay = ({
10304
10856
  label: "text-white/70"
10305
10857
  }
10306
10858
  };
10859
+ }
10860
+ const StatDisplay = ({
10861
+ value,
10862
+ label,
10863
+ variant = "neutral",
10864
+ size = "md",
10865
+ align = "center",
10866
+ icon,
10867
+ iconPosition = "top",
10868
+ className
10869
+ }) => {
10870
+ const variantClasses = getStatColors();
10307
10871
  const sizeClasses = {
10308
- sm: { value: "text-xl", label: "text-xs" },
10309
- md: { value: "text-2xl", label: "text-sm" },
10310
- lg: { value: "text-3xl", label: "text-base" },
10311
- xl: { value: "text-4xl", label: "text-lg" }
10872
+ sm: {
10873
+ value: designTokens.typography.size.xl,
10874
+ label: designTokens.typography.size.xs
10875
+ },
10876
+ md: {
10877
+ value: designTokens.typography.size["2xl"],
10878
+ label: designTokens.typography.size.sm
10879
+ },
10880
+ lg: {
10881
+ value: designTokens.typography.size["3xl"],
10882
+ label: designTokens.typography.size.base
10883
+ },
10884
+ xl: {
10885
+ value: designTokens.typography.size["4xl"],
10886
+ label: designTokens.typography.size.lg
10887
+ }
10312
10888
  };
10313
10889
  const alignClasses = {
10314
10890
  left: "items-start",
@@ -10332,7 +10908,11 @@ const StatDisplay = ({
10332
10908
  /* @__PURE__ */ jsxRuntimeExports.jsx(
10333
10909
  Text$1,
10334
10910
  {
10335
- className: cn("font-bold", sizeConfig2.value, variantConfig2.value),
10911
+ className: cn(
10912
+ designTokens.typography.weight.bold,
10913
+ sizeConfig2.value,
10914
+ variantConfig2.value
10915
+ ),
10336
10916
  children: value
10337
10917
  }
10338
10918
  ),
@@ -10344,10 +10924,21 @@ const StatDisplay = ({
10344
10924
  }
10345
10925
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(View, { className: cn(alignClasses[align], className), children: [
10346
10926
  icon && iconPosition === "top" && /* @__PURE__ */ jsxRuntimeExports.jsx(View, { className: cn("mb-2", variantConfig2.value), children: icon }),
10347
- /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn("font-bold", sizeConfig2.value, variantConfig2.value), children: value }),
10927
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
10928
+ Text$1,
10929
+ {
10930
+ className: cn(
10931
+ designTokens.typography.weight.bold,
10932
+ sizeConfig2.value,
10933
+ variantConfig2.value
10934
+ ),
10935
+ children: value
10936
+ }
10937
+ ),
10348
10938
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { className: cn(sizeConfig2.label, variantConfig2.label), children: label })
10349
10939
  ] });
10350
10940
  };
10941
+ const { typography: typography$1 } = designTokens;
10351
10942
  const KeyValuePair = ({
10352
10943
  label,
10353
10944
  value,
@@ -10361,9 +10952,13 @@ const KeyValuePair = ({
10361
10952
  className
10362
10953
  }) => {
10363
10954
  const sizeClasses = {
10364
- sm: { label: "text-sm", value: "text-sm", gap: "gap-1" },
10365
- md: { label: "text-base", value: "text-base", gap: "gap-2" },
10366
- lg: { label: "text-lg", value: "text-lg", gap: "gap-3" }
10955
+ sm: { label: typography$1.size.sm, value: typography$1.size.sm, gap: "gap-1" },
10956
+ md: {
10957
+ label: typography$1.size.base,
10958
+ value: typography$1.size.base,
10959
+ gap: "gap-2"
10960
+ },
10961
+ lg: { label: typography$1.size.lg, value: typography$1.size.lg, gap: "gap-3" }
10367
10962
  };
10368
10963
  const labelWidthStyles = {
10369
10964
  auto: void 0,
@@ -10379,12 +10974,12 @@ const KeyValuePair = ({
10379
10974
  const labelVariantClasses = {
10380
10975
  default: "text-gray-700 dark:text-gray-300",
10381
10976
  muted: "text-gray-600 dark:text-gray-400",
10382
- strong: "text-gray-900 dark:text-gray-100 font-semibold"
10977
+ strong: `text-gray-900 dark:text-gray-100 ${typography$1.weight.semibold}`
10383
10978
  };
10384
10979
  const valueVariantClasses = {
10385
10980
  default: "text-gray-900 dark:text-gray-100",
10386
10981
  muted: "text-gray-600 dark:text-gray-400",
10387
- strong: "text-gray-900 dark:text-gray-100 font-semibold",
10982
+ strong: `text-gray-900 dark:text-gray-100 ${typography$1.weight.semibold}`,
10388
10983
  primary: "text-blue-600 dark:text-blue-400"
10389
10984
  };
10390
10985
  const sizeConfig2 = sizeClasses[size];
@@ -10422,6 +11017,7 @@ const KeyValuePair = ({
10422
11017
  }
10423
11018
  );
10424
11019
  };
11020
+ const { typography } = designTokens;
10425
11021
  const SmartLink = ({
10426
11022
  to,
10427
11023
  href,
@@ -10442,9 +11038,9 @@ const SmartLink = ({
10442
11038
  inherit: "text-inherit"
10443
11039
  };
10444
11040
  const sizeClasses = {
10445
- sm: "text-sm",
10446
- default: "text-base",
10447
- lg: "text-lg"
11041
+ sm: typography.size.sm,
11042
+ default: typography.size.base,
11043
+ lg: typography.size.lg
10448
11044
  };
10449
11045
  const handlePress = async () => {
10450
11046
  if (disabled || !destination) return;