@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.
- package/dist/index.cjs.js +895 -299
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +896 -300
- package/dist/index.esm.js.map +1 -1
- package/dist/ui/Avatar/Avatar.d.ts.map +1 -1
- package/dist/ui/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/ui/BreadcrumbNav/BreadcrumbNav.d.ts.map +1 -1
- package/dist/ui/CTASection/CTASection.d.ts.map +1 -1
- package/dist/ui/Calendar/Calendar.d.ts.map +1 -1
- package/dist/ui/ChainBadge/ChainBadge.d.ts.map +1 -1
- package/dist/ui/Checkbox/Checkbox.d.ts +0 -22
- package/dist/ui/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/ui/Code/Code.d.ts +0 -17
- package/dist/ui/Code/Code.d.ts.map +1 -1
- package/dist/ui/CodeDisplay/CodeDisplay.d.ts +0 -21
- package/dist/ui/CodeDisplay/CodeDisplay.d.ts.map +1 -1
- package/dist/ui/CollapsibleSection/CollapsibleSection.d.ts.map +1 -1
- package/dist/ui/Combobox/Combobox.d.ts.map +1 -1
- package/dist/ui/Command/Command.d.ts.map +1 -1
- package/dist/ui/DashboardStatCard/DashboardStatCard.d.ts +0 -17
- package/dist/ui/DashboardStatCard/DashboardStatCard.d.ts.map +1 -1
- package/dist/ui/DataList/DataList.d.ts.map +1 -1
- package/dist/ui/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/ui/ExternalLink/ExternalLink.d.ts.map +1 -1
- package/dist/ui/FeatureCard/FeatureCard.d.ts.map +1 -1
- package/dist/ui/FeatureGrid/FeatureGrid.d.ts.map +1 -1
- package/dist/ui/GradientIconContainer/GradientIconContainer.d.ts +0 -13
- package/dist/ui/GradientIconContainer/GradientIconContainer.d.ts.map +1 -1
- package/dist/ui/HelperText/HelperText.d.ts.map +1 -1
- package/dist/ui/IconContainer/IconContainer.d.ts +0 -13
- package/dist/ui/IconContainer/IconContainer.d.ts.map +1 -1
- package/dist/ui/IconText/IconText.d.ts.map +1 -1
- package/dist/ui/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
- package/dist/ui/KeyValuePair/KeyValuePair.d.ts.map +1 -1
- package/dist/ui/Link/Link.d.ts.map +1 -1
- package/dist/ui/ListItemWithAction/ListItemWithAction.d.ts.map +1 -1
- package/dist/ui/Modal/Modal.d.ts.map +1 -1
- package/dist/ui/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/ui/NavigationList/NavigationList.d.ts.map +1 -1
- package/dist/ui/PageSectionHeader/PageSectionHeader.d.ts.map +1 -1
- package/dist/ui/Pagination/Pagination.d.ts.map +1 -1
- package/dist/ui/PhoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/ui/PopupSelect/PopupSelect.d.ts.map +1 -1
- package/dist/ui/Progress/Progress.d.ts +0 -15
- package/dist/ui/Progress/Progress.d.ts.map +1 -1
- package/dist/ui/PromotionalBanner/PromotionalBanner.d.ts.map +1 -1
- package/dist/ui/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/ui/SectionHeader/SectionHeader.d.ts.map +1 -1
- package/dist/ui/Select/Select.d.ts.map +1 -1
- package/dist/ui/SettingsList/SettingsList.d.ts.map +1 -1
- package/dist/ui/Sheet/Sheet.d.ts.map +1 -1
- package/dist/ui/SideNav/SideNav.d.ts.map +1 -1
- package/dist/ui/SmartLink/SmartLink.d.ts.map +1 -1
- package/dist/ui/StatDisplay/StatDisplay.d.ts +0 -12
- package/dist/ui/StatDisplay/StatDisplay.d.ts.map +1 -1
- package/dist/ui/StepList/StepList.d.ts.map +1 -1
- package/dist/ui/Table/Table.d.ts.map +1 -1
- package/dist/ui/Tabs/Tabs.d.ts.map +1 -1
- package/dist/ui/TextArea/TextArea.d.ts.map +1 -1
- package/dist/ui/TextInputModal/TextInputModal.d.ts.map +1 -1
- package/dist/ui/Tooltip/Tooltip.d.ts +0 -20
- package/dist/ui/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/ui/TransferList/TransferList.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/ui/Avatar/Avatar.tsx +6 -5
- package/src/ui/Breadcrumb/Breadcrumb.tsx +8 -5
- package/src/ui/BreadcrumbNav/BreadcrumbNav.tsx +22 -3
- package/src/ui/CTASection/CTASection.tsx +8 -6
- package/src/ui/Calendar/Calendar.tsx +35 -6
- package/src/ui/ChainBadge/ChainBadge.tsx +67 -42
- package/src/ui/Checkbox/Checkbox.tsx +47 -20
- package/src/ui/Code/Code.tsx +51 -21
- package/src/ui/CodeDisplay/CodeDisplay.tsx +46 -20
- package/src/ui/CollapsibleSection/CollapsibleSection.tsx +7 -3
- package/src/ui/Combobox/Combobox.tsx +2 -1
- package/src/ui/Command/Command.tsx +2 -1
- package/src/ui/DashboardStatCard/DashboardStatCard.tsx +29 -11
- package/src/ui/DataList/DataList.tsx +23 -5
- package/src/ui/Dropdown/Dropdown.tsx +4 -1
- package/src/ui/ExternalLink/ExternalLink.tsx +5 -4
- package/src/ui/FeatureCard/FeatureCard.tsx +60 -29
- package/src/ui/FeatureGrid/FeatureGrid.tsx +7 -7
- package/src/ui/GradientIconContainer/GradientIconContainer.tsx +33 -8
- package/src/ui/HelperText/HelperText.tsx +9 -8
- package/src/ui/IconContainer/IconContainer.tsx +26 -9
- package/src/ui/IconText/IconText.tsx +6 -5
- package/src/ui/InfiniteScroll/InfiniteScroll.tsx +2 -1
- package/src/ui/KeyValuePair/KeyValuePair.tsx +12 -5
- package/src/ui/Link/Link.tsx +6 -5
- package/src/ui/ListItemWithAction/ListItemWithAction.tsx +2 -1
- package/src/ui/Modal/Modal.tsx +16 -2
- package/src/ui/MultiSelect/MultiSelect.tsx +2 -1
- package/src/ui/NavigationList/NavigationList.tsx +17 -3
- package/src/ui/PageSectionHeader/PageSectionHeader.tsx +2 -1
- package/src/ui/Pagination/Pagination.tsx +9 -6
- package/src/ui/PhoneInput/PhoneInput.tsx +3 -2
- package/src/ui/PopupSelect/PopupSelect.tsx +15 -14
- package/src/ui/Progress/Progress.tsx +63 -14
- package/src/ui/PromotionalBanner/PromotionalBanner.tsx +7 -4
- package/src/ui/SearchInput/SearchInput.tsx +3 -2
- package/src/ui/SectionHeader/SectionHeader.tsx +4 -1
- package/src/ui/Select/Select.tsx +20 -5
- package/src/ui/SettingsList/SettingsList.tsx +4 -1
- package/src/ui/Sheet/Sheet.tsx +20 -3
- package/src/ui/SideNav/SideNav.tsx +11 -2
- package/src/ui/SmartLink/SmartLink.tsx +6 -3
- package/src/ui/Spinner/Spinner.tsx +1 -1
- package/src/ui/StatDisplay/StatDisplay.tsx +59 -23
- package/src/ui/StepList/StepList.tsx +25 -3
- package/src/ui/Table/Table.tsx +22 -9
- package/src/ui/Tabs/Tabs.tsx +7 -2
- package/src/ui/TextArea/TextArea.tsx +2 -1
- package/src/ui/TextInputModal/TextInputModal.tsx +2 -1
- package/src/ui/Tooltip/Tooltip.tsx +47 -9
- package/src/ui/TransferList/TransferList.tsx +2 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1779,7 +1779,7 @@ const sizeMap = {
|
|
|
1779
1779
|
};
|
|
1780
1780
|
const colorMap = {
|
|
1781
1781
|
default: design.colors.raw.blue[600],
|
|
1782
|
-
white:
|
|
1782
|
+
white: design.colors.raw.neutral[0],
|
|
1783
1783
|
success: design.colors.raw.green[600],
|
|
1784
1784
|
warning: design.colors.raw.orange[600],
|
|
1785
1785
|
error: design.colors.raw.red[600]
|
|
@@ -2477,7 +2477,7 @@ const TextArea = ({
|
|
|
2477
2477
|
readOnly && "bg-gray-50 dark:bg-gray-900",
|
|
2478
2478
|
inputClassName
|
|
2479
2479
|
),
|
|
2480
|
-
placeholderTextColor:
|
|
2480
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
2481
2481
|
accessibilityRole: "text",
|
|
2482
2482
|
accessibilityState: { disabled },
|
|
2483
2483
|
...textInputProps
|
|
@@ -2499,6 +2499,28 @@ const TextArea = ({
|
|
|
2499
2499
|
) })
|
|
2500
2500
|
] });
|
|
2501
2501
|
};
|
|
2502
|
+
let _checkboxColors = null;
|
|
2503
|
+
function getCheckboxColors() {
|
|
2504
|
+
if (!_checkboxColors) _checkboxColors = buildCheckboxColors();
|
|
2505
|
+
return _checkboxColors;
|
|
2506
|
+
}
|
|
2507
|
+
function buildCheckboxColors() {
|
|
2508
|
+
function extractCheckedColor(base) {
|
|
2509
|
+
const parts = base.split(" ");
|
|
2510
|
+
const bg = parts.find(
|
|
2511
|
+
(c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
2512
|
+
) || "";
|
|
2513
|
+
return `${bg} ${bg.replace("bg-", "border-")}`;
|
|
2514
|
+
}
|
|
2515
|
+
const btn = design.colors.component.button;
|
|
2516
|
+
return {
|
|
2517
|
+
primary: extractCheckedColor(btn.primary.base),
|
|
2518
|
+
success: extractCheckedColor(btn.success.base),
|
|
2519
|
+
warning: "bg-yellow-600 border-yellow-600",
|
|
2520
|
+
// DS has no yellow button; local fallback
|
|
2521
|
+
error: extractCheckedColor(btn.destructive.base)
|
|
2522
|
+
};
|
|
2523
|
+
}
|
|
2502
2524
|
const Checkbox = ({
|
|
2503
2525
|
checked: controlledChecked,
|
|
2504
2526
|
defaultChecked = false,
|
|
@@ -2522,31 +2544,33 @@ const Checkbox = ({
|
|
|
2522
2544
|
sm: {
|
|
2523
2545
|
box: "w-4 h-4",
|
|
2524
2546
|
check: "w-2 h-2",
|
|
2525
|
-
text:
|
|
2526
|
-
desc:
|
|
2547
|
+
text: design.designTokens.typography.size.sm,
|
|
2548
|
+
desc: design.designTokens.typography.size.xs
|
|
2527
2549
|
},
|
|
2528
2550
|
md: {
|
|
2529
2551
|
box: "w-5 h-5",
|
|
2530
2552
|
check: "w-3 h-3",
|
|
2531
|
-
text:
|
|
2532
|
-
desc:
|
|
2553
|
+
text: design.designTokens.typography.size.base,
|
|
2554
|
+
desc: design.designTokens.typography.size.sm
|
|
2533
2555
|
},
|
|
2534
2556
|
lg: {
|
|
2535
2557
|
box: "w-6 h-6",
|
|
2536
2558
|
check: "w-4 h-4",
|
|
2537
|
-
text:
|
|
2538
|
-
desc:
|
|
2559
|
+
text: design.designTokens.typography.size.lg,
|
|
2560
|
+
desc: design.designTokens.typography.size.base
|
|
2539
2561
|
}
|
|
2540
2562
|
};
|
|
2541
2563
|
const getVariantClasses = () => {
|
|
2564
|
+
const checkedColors = getCheckboxColors();
|
|
2542
2565
|
if (error) {
|
|
2543
|
-
return checked ?
|
|
2566
|
+
return checked ? checkedColors.error : "border-red-600 dark:border-red-500";
|
|
2544
2567
|
}
|
|
2568
|
+
const unchecked = "border-gray-300 dark:border-gray-600";
|
|
2545
2569
|
const variantClasses = {
|
|
2546
|
-
primary: checked ?
|
|
2547
|
-
success: checked ?
|
|
2548
|
-
warning: checked ?
|
|
2549
|
-
error: checked ?
|
|
2570
|
+
primary: checked ? checkedColors.primary : unchecked,
|
|
2571
|
+
success: checked ? checkedColors.success : unchecked,
|
|
2572
|
+
warning: checked ? checkedColors.warning : unchecked,
|
|
2573
|
+
error: checked ? checkedColors.error : unchecked
|
|
2550
2574
|
};
|
|
2551
2575
|
return variantClasses[variant];
|
|
2552
2576
|
};
|
|
@@ -2615,7 +2639,13 @@ const Checkbox = ({
|
|
|
2615
2639
|
]
|
|
2616
2640
|
}
|
|
2617
2641
|
),
|
|
2618
|
-
errorMessage && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2642
|
+
errorMessage && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2643
|
+
reactNative.Text,
|
|
2644
|
+
{
|
|
2645
|
+
className: `mt-1 ${design.designTokens.typography.size.sm} text-red-600 dark:text-red-400`,
|
|
2646
|
+
children: errorMessage
|
|
2647
|
+
}
|
|
2648
|
+
)
|
|
2619
2649
|
] });
|
|
2620
2650
|
};
|
|
2621
2651
|
const Switch = React__namespace.forwardRef(
|
|
@@ -2711,8 +2741,8 @@ const HelperText = ({
|
|
|
2711
2741
|
...textProps
|
|
2712
2742
|
}) => {
|
|
2713
2743
|
const sizeClasses = {
|
|
2714
|
-
sm:
|
|
2715
|
-
base:
|
|
2744
|
+
sm: design.designTokens.typography.size.sm,
|
|
2745
|
+
base: design.designTokens.typography.size.base
|
|
2716
2746
|
};
|
|
2717
2747
|
const iconSize = {
|
|
2718
2748
|
sm: "w-4 h-4",
|
|
@@ -2720,19 +2750,19 @@ const HelperText = ({
|
|
|
2720
2750
|
};
|
|
2721
2751
|
const variantConfig2 = {
|
|
2722
2752
|
default: {
|
|
2723
|
-
text:
|
|
2753
|
+
text: design.colors.component.alert.info.icon,
|
|
2724
2754
|
icon: "ℹ"
|
|
2725
2755
|
},
|
|
2726
2756
|
error: {
|
|
2727
|
-
text:
|
|
2757
|
+
text: design.colors.component.alert.error.icon,
|
|
2728
2758
|
icon: "⚠"
|
|
2729
2759
|
},
|
|
2730
2760
|
success: {
|
|
2731
|
-
text:
|
|
2761
|
+
text: design.colors.component.alert.success.icon,
|
|
2732
2762
|
icon: "✓"
|
|
2733
2763
|
},
|
|
2734
2764
|
warning: {
|
|
2735
|
-
text:
|
|
2765
|
+
text: design.colors.component.alert.warning.icon,
|
|
2736
2766
|
icon: "⚠"
|
|
2737
2767
|
}
|
|
2738
2768
|
};
|
|
@@ -2742,6 +2772,7 @@ const HelperText = ({
|
|
|
2742
2772
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(sizeClasses[size], config.text), ...textProps, children })
|
|
2743
2773
|
] });
|
|
2744
2774
|
};
|
|
2775
|
+
const { typography: typography$h } = design.designTokens;
|
|
2745
2776
|
const Select = ({
|
|
2746
2777
|
value,
|
|
2747
2778
|
onValueChange,
|
|
@@ -2780,8 +2811,8 @@ const Select = ({
|
|
|
2780
2811
|
reactNative.Text,
|
|
2781
2812
|
{
|
|
2782
2813
|
className: cn(
|
|
2783
|
-
|
|
2784
|
-
item.value === value ?
|
|
2814
|
+
typography$h.size.base,
|
|
2815
|
+
item.value === value ? `text-blue-600 dark:text-blue-400 ${typography$h.weight.medium}` : "text-gray-900 dark:text-gray-100"
|
|
2785
2816
|
),
|
|
2786
2817
|
children: item.label
|
|
2787
2818
|
}
|
|
@@ -2810,7 +2841,8 @@ const Select = ({
|
|
|
2810
2841
|
reactNative.Text,
|
|
2811
2842
|
{
|
|
2812
2843
|
className: cn(
|
|
2813
|
-
|
|
2844
|
+
typography$h.size.base,
|
|
2845
|
+
"flex-1",
|
|
2814
2846
|
selectedOption ? "text-gray-900 dark:text-gray-100" : "text-gray-400 dark:text-gray-500"
|
|
2815
2847
|
),
|
|
2816
2848
|
numberOfLines: 1,
|
|
@@ -2830,8 +2862,27 @@ const Select = ({
|
|
|
2830
2862
|
onRequestClose: () => setIsOpen(false),
|
|
2831
2863
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-1 justify-end bg-black/50", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.SafeAreaView, { className: "bg-white dark:bg-gray-800 rounded-t-xl", children: [
|
|
2832
2864
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700", children: [
|
|
2833
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Pressable, { onPress: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2834
|
-
|
|
2865
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Pressable, { onPress: () => setIsOpen(false), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2866
|
+
reactNative.Text,
|
|
2867
|
+
{
|
|
2868
|
+
className: cn(
|
|
2869
|
+
"text-blue-600 dark:text-blue-400",
|
|
2870
|
+
typography$h.size.base
|
|
2871
|
+
),
|
|
2872
|
+
children: "Cancel"
|
|
2873
|
+
}
|
|
2874
|
+
) }),
|
|
2875
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2876
|
+
reactNative.Text,
|
|
2877
|
+
{
|
|
2878
|
+
className: cn(
|
|
2879
|
+
typography$h.size.base,
|
|
2880
|
+
typography$h.weight.semibold,
|
|
2881
|
+
"text-gray-900 dark:text-white"
|
|
2882
|
+
),
|
|
2883
|
+
children: title
|
|
2884
|
+
}
|
|
2885
|
+
),
|
|
2835
2886
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { style: { width: 60 } })
|
|
2836
2887
|
] }),
|
|
2837
2888
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -2967,11 +3018,11 @@ const styles$4 = reactNative.StyleSheet.create({
|
|
|
2967
3018
|
alignItems: "center",
|
|
2968
3019
|
justifyContent: "space-between",
|
|
2969
3020
|
borderWidth: 1,
|
|
2970
|
-
borderColor:
|
|
3021
|
+
borderColor: design.colors.raw.neutral[300],
|
|
2971
3022
|
borderRadius: 8,
|
|
2972
3023
|
paddingHorizontal: 12,
|
|
2973
3024
|
paddingVertical: 12,
|
|
2974
|
-
backgroundColor:
|
|
3025
|
+
backgroundColor: design.colors.raw.neutral[0]
|
|
2975
3026
|
},
|
|
2976
3027
|
triggerDisabled: {
|
|
2977
3028
|
opacity: 0.5
|
|
@@ -2979,19 +3030,19 @@ const styles$4 = reactNative.StyleSheet.create({
|
|
|
2979
3030
|
triggerText: {
|
|
2980
3031
|
flex: 1,
|
|
2981
3032
|
fontSize: 16,
|
|
2982
|
-
color:
|
|
3033
|
+
color: design.colors.raw.neutral[900]
|
|
2983
3034
|
},
|
|
2984
3035
|
triggerPlaceholder: {
|
|
2985
|
-
color:
|
|
3036
|
+
color: design.colors.raw.neutral[400]
|
|
2986
3037
|
},
|
|
2987
3038
|
triggerArrow: {
|
|
2988
3039
|
fontSize: 10,
|
|
2989
|
-
color:
|
|
3040
|
+
color: design.colors.raw.neutral[400],
|
|
2990
3041
|
marginLeft: 8
|
|
2991
3042
|
},
|
|
2992
3043
|
modalContainer: {
|
|
2993
3044
|
flex: 1,
|
|
2994
|
-
backgroundColor:
|
|
3045
|
+
backgroundColor: design.colors.raw.neutral[0]
|
|
2995
3046
|
},
|
|
2996
3047
|
modalHeader: {
|
|
2997
3048
|
flexDirection: "row",
|
|
@@ -3000,12 +3051,12 @@ const styles$4 = reactNative.StyleSheet.create({
|
|
|
3000
3051
|
paddingHorizontal: 16,
|
|
3001
3052
|
paddingVertical: 12,
|
|
3002
3053
|
borderBottomWidth: 1,
|
|
3003
|
-
borderBottomColor:
|
|
3054
|
+
borderBottomColor: design.colors.raw.neutral[200]
|
|
3004
3055
|
},
|
|
3005
3056
|
modalTitle: {
|
|
3006
3057
|
fontSize: 18,
|
|
3007
3058
|
fontWeight: "600",
|
|
3008
|
-
color:
|
|
3059
|
+
color: design.colors.raw.neutral[900]
|
|
3009
3060
|
},
|
|
3010
3061
|
closeButton: {
|
|
3011
3062
|
padding: 8
|
|
@@ -3013,7 +3064,7 @@ const styles$4 = reactNative.StyleSheet.create({
|
|
|
3013
3064
|
closeButtonText: {
|
|
3014
3065
|
fontSize: 16,
|
|
3015
3066
|
fontWeight: "600",
|
|
3016
|
-
color:
|
|
3067
|
+
color: design.colors.raw.blue[500]
|
|
3017
3068
|
},
|
|
3018
3069
|
listContent: {
|
|
3019
3070
|
padding: 16
|
|
@@ -3022,27 +3073,27 @@ const styles$4 = reactNative.StyleSheet.create({
|
|
|
3022
3073
|
flexDirection: "row",
|
|
3023
3074
|
alignItems: "center",
|
|
3024
3075
|
padding: 16,
|
|
3025
|
-
backgroundColor:
|
|
3076
|
+
backgroundColor: design.colors.raw.neutral[50],
|
|
3026
3077
|
borderRadius: 12
|
|
3027
3078
|
},
|
|
3028
3079
|
optionItemSelected: {
|
|
3029
|
-
backgroundColor:
|
|
3080
|
+
backgroundColor: design.colors.raw.blue[100]
|
|
3030
3081
|
},
|
|
3031
3082
|
optionLabel: {
|
|
3032
3083
|
flex: 1,
|
|
3033
3084
|
fontSize: 16,
|
|
3034
|
-
color:
|
|
3085
|
+
color: design.colors.raw.neutral[900]
|
|
3035
3086
|
},
|
|
3036
3087
|
optionLabelSelected: {
|
|
3037
3088
|
fontWeight: "600",
|
|
3038
|
-
color:
|
|
3089
|
+
color: design.colors.raw.blue[500]
|
|
3039
3090
|
},
|
|
3040
3091
|
optionDisabled: {
|
|
3041
3092
|
opacity: 0.5
|
|
3042
3093
|
},
|
|
3043
3094
|
checkmark: {
|
|
3044
3095
|
fontSize: 18,
|
|
3045
|
-
color:
|
|
3096
|
+
color: design.colors.raw.blue[500],
|
|
3046
3097
|
fontWeight: "bold"
|
|
3047
3098
|
},
|
|
3048
3099
|
separator: {
|
|
@@ -3128,7 +3179,7 @@ const SearchInput = ({
|
|
|
3128
3179
|
disabled && "opacity-50",
|
|
3129
3180
|
loading && "opacity-60"
|
|
3130
3181
|
),
|
|
3131
|
-
placeholderTextColor:
|
|
3182
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
3132
3183
|
accessibilityRole: "search",
|
|
3133
3184
|
accessibilityState: { disabled },
|
|
3134
3185
|
...textInputProps
|
|
@@ -3145,7 +3196,7 @@ const SearchInput = ({
|
|
|
3145
3196
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(sizeConfig2.icon, "text-gray-400"), children: "✕" })
|
|
3146
3197
|
}
|
|
3147
3198
|
),
|
|
3148
|
-
loading && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "absolute inset-y-0 right-0 flex items-center justify-center pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color:
|
|
3199
|
+
loading && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "absolute inset-y-0 right-0 flex items-center justify-center pr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color: design.colors.raw.neutral[400] }) })
|
|
3149
3200
|
] });
|
|
3150
3201
|
};
|
|
3151
3202
|
const NumberInput = ({
|
|
@@ -3349,7 +3400,7 @@ const NumberInput = ({
|
|
|
3349
3400
|
}
|
|
3350
3401
|
);
|
|
3351
3402
|
};
|
|
3352
|
-
const { typography: typography$
|
|
3403
|
+
const { typography: typography$g } = design.designTokens;
|
|
3353
3404
|
const colorClasses$1 = {
|
|
3354
3405
|
default: "text-gray-900 dark:text-gray-100",
|
|
3355
3406
|
muted: "text-gray-600 dark:text-gray-400",
|
|
@@ -3372,11 +3423,11 @@ const Text = ({
|
|
|
3372
3423
|
reactNative.Text,
|
|
3373
3424
|
{
|
|
3374
3425
|
className: cn(
|
|
3375
|
-
typography$
|
|
3376
|
-
typography$
|
|
3426
|
+
typography$g.size[size],
|
|
3427
|
+
typography$g.weight[weight],
|
|
3377
3428
|
colorClasses$1[color],
|
|
3378
|
-
align ? typography$
|
|
3379
|
-
transform !== "none" ? typography$
|
|
3429
|
+
align ? typography$g.align[align] : "",
|
|
3430
|
+
transform !== "none" ? typography$g.transform[transform] : "",
|
|
3380
3431
|
className
|
|
3381
3432
|
),
|
|
3382
3433
|
numberOfLines,
|
|
@@ -3384,7 +3435,7 @@ const Text = ({
|
|
|
3384
3435
|
}
|
|
3385
3436
|
);
|
|
3386
3437
|
};
|
|
3387
|
-
const { typography: typography$
|
|
3438
|
+
const { typography: typography$f } = design.designTokens;
|
|
3388
3439
|
const colorClasses = {
|
|
3389
3440
|
default: "text-gray-900 dark:text-gray-100",
|
|
3390
3441
|
muted: "text-gray-700 dark:text-gray-300",
|
|
@@ -3412,12 +3463,12 @@ const Heading = ({
|
|
|
3412
3463
|
reactNative.Text,
|
|
3413
3464
|
{
|
|
3414
3465
|
className: cn(
|
|
3415
|
-
typography$
|
|
3416
|
-
typography$
|
|
3417
|
-
typography$
|
|
3418
|
-
typography$
|
|
3466
|
+
typography$f.size[actualSize],
|
|
3467
|
+
typography$f.weight[weight],
|
|
3468
|
+
typography$f.leading.heading,
|
|
3469
|
+
typography$f.tracking.heading,
|
|
3419
3470
|
colorClasses[color],
|
|
3420
|
-
align ? typography$
|
|
3471
|
+
align ? typography$f.align[align] : "",
|
|
3421
3472
|
className
|
|
3422
3473
|
),
|
|
3423
3474
|
accessibilityRole: "header",
|
|
@@ -3425,6 +3476,41 @@ const Heading = ({
|
|
|
3425
3476
|
}
|
|
3426
3477
|
);
|
|
3427
3478
|
};
|
|
3479
|
+
let _codeColors = null;
|
|
3480
|
+
function getCodeColors() {
|
|
3481
|
+
if (!_codeColors) _codeColors = buildCodeColors();
|
|
3482
|
+
return _codeColors;
|
|
3483
|
+
}
|
|
3484
|
+
function buildCodeColors() {
|
|
3485
|
+
const alert2 = design.colors.component.alert;
|
|
3486
|
+
function splitClasses(base, dark) {
|
|
3487
|
+
const all = `${base} ${dark}`.split(" ");
|
|
3488
|
+
return {
|
|
3489
|
+
bg: all.filter((c) => c.includes("bg-")).join(" "),
|
|
3490
|
+
text: all.filter((c) => c.includes("text-")).join(" ")
|
|
3491
|
+
};
|
|
3492
|
+
}
|
|
3493
|
+
const info = splitClasses(alert2.info.base, alert2.info.dark);
|
|
3494
|
+
const success = splitClasses(alert2.success.base, alert2.success.dark);
|
|
3495
|
+
const warning = splitClasses(alert2.warning.base, alert2.warning.dark);
|
|
3496
|
+
const error = splitClasses(alert2.error.base, alert2.error.dark);
|
|
3497
|
+
return {
|
|
3498
|
+
bg: {
|
|
3499
|
+
default: "bg-gray-100 dark:bg-gray-800",
|
|
3500
|
+
primary: info.bg,
|
|
3501
|
+
success: success.bg,
|
|
3502
|
+
warning: warning.bg,
|
|
3503
|
+
danger: error.bg
|
|
3504
|
+
},
|
|
3505
|
+
text: {
|
|
3506
|
+
default: "text-gray-900 dark:text-gray-100",
|
|
3507
|
+
primary: info.text,
|
|
3508
|
+
success: success.text,
|
|
3509
|
+
warning: warning.text,
|
|
3510
|
+
danger: error.text
|
|
3511
|
+
}
|
|
3512
|
+
};
|
|
3513
|
+
}
|
|
3428
3514
|
const Code = ({
|
|
3429
3515
|
children,
|
|
3430
3516
|
size = "md",
|
|
@@ -3432,24 +3518,13 @@ const Code = ({
|
|
|
3432
3518
|
className
|
|
3433
3519
|
}) => {
|
|
3434
3520
|
const sizeClasses = {
|
|
3435
|
-
sm:
|
|
3436
|
-
md:
|
|
3437
|
-
lg:
|
|
3438
|
-
};
|
|
3439
|
-
const variantBgClasses = {
|
|
3440
|
-
default: "bg-gray-100 dark:bg-gray-800",
|
|
3441
|
-
primary: "bg-blue-50 dark:bg-blue-900/30",
|
|
3442
|
-
success: "bg-green-50 dark:bg-green-900/30",
|
|
3443
|
-
warning: "bg-yellow-50 dark:bg-yellow-900/30",
|
|
3444
|
-
danger: "bg-red-50 dark:bg-red-900/30"
|
|
3445
|
-
};
|
|
3446
|
-
const variantTextClasses = {
|
|
3447
|
-
default: "text-gray-900 dark:text-gray-100",
|
|
3448
|
-
primary: "text-blue-700 dark:text-blue-300",
|
|
3449
|
-
success: "text-green-700 dark:text-green-300",
|
|
3450
|
-
warning: "text-yellow-700 dark:text-yellow-300",
|
|
3451
|
-
danger: "text-red-700 dark:text-red-300"
|
|
3521
|
+
sm: `${design.designTokens.typography.size.xs} px-1 py-0.5`,
|
|
3522
|
+
md: `${design.designTokens.typography.size.sm} px-1.5 py-0.5`,
|
|
3523
|
+
lg: `${design.designTokens.typography.size.base} px-2 py-1`
|
|
3452
3524
|
};
|
|
3525
|
+
const codeColors = getCodeColors();
|
|
3526
|
+
const variantBgClasses = codeColors.bg;
|
|
3527
|
+
const variantTextClasses = codeColors.text;
|
|
3453
3528
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3454
3529
|
reactNative.View,
|
|
3455
3530
|
{
|
|
@@ -3462,7 +3537,11 @@ const Code = ({
|
|
|
3462
3537
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3463
3538
|
reactNative.Text,
|
|
3464
3539
|
{
|
|
3465
|
-
className: cn(
|
|
3540
|
+
className: cn(
|
|
3541
|
+
design.designTokens.typography.family.mono,
|
|
3542
|
+
design.designTokens.typography.weight.medium,
|
|
3543
|
+
variantTextClasses[variant]
|
|
3544
|
+
),
|
|
3466
3545
|
style: { fontFamily: "monospace" },
|
|
3467
3546
|
children
|
|
3468
3547
|
}
|
|
@@ -3521,7 +3600,7 @@ const AppVersion = ({
|
|
|
3521
3600
|
}
|
|
3522
3601
|
);
|
|
3523
3602
|
};
|
|
3524
|
-
function splitBadgeClasses(base, dark) {
|
|
3603
|
+
function splitBadgeClasses$1(base, dark) {
|
|
3525
3604
|
const all = `${base} ${dark}`.split(" ");
|
|
3526
3605
|
return {
|
|
3527
3606
|
bg: all.filter((c) => c.includes("bg-")).join(" "),
|
|
@@ -3536,11 +3615,11 @@ function getBadgeColors() {
|
|
|
3536
3615
|
function buildBadgeColors() {
|
|
3537
3616
|
const badge = design.colors.component.badge;
|
|
3538
3617
|
return {
|
|
3539
|
-
default: splitBadgeClasses(badge.default.base, badge.default.dark),
|
|
3540
|
-
primary: splitBadgeClasses(badge.primary.base, badge.primary.dark),
|
|
3541
|
-
success: splitBadgeClasses(badge.success.base, badge.success.dark),
|
|
3542
|
-
warning: splitBadgeClasses(badge.warning.base, badge.warning.dark),
|
|
3543
|
-
error: splitBadgeClasses(badge.error.base, badge.error.dark)
|
|
3618
|
+
default: splitBadgeClasses$1(badge.default.base, badge.default.dark),
|
|
3619
|
+
primary: splitBadgeClasses$1(badge.primary.base, badge.primary.dark),
|
|
3620
|
+
success: splitBadgeClasses$1(badge.success.base, badge.success.dark),
|
|
3621
|
+
warning: splitBadgeClasses$1(badge.warning.base, badge.warning.dark),
|
|
3622
|
+
error: splitBadgeClasses$1(badge.error.base, badge.error.dark)
|
|
3544
3623
|
};
|
|
3545
3624
|
}
|
|
3546
3625
|
const Badge = ({
|
|
@@ -3698,10 +3777,14 @@ const Avatar = ({
|
|
|
3698
3777
|
xl: "w-4 h-4"
|
|
3699
3778
|
};
|
|
3700
3779
|
const statusClasses = {
|
|
3701
|
-
online:
|
|
3702
|
-
|
|
3780
|
+
online: design.statusIndicatorColors.success,
|
|
3781
|
+
// bg-green-500
|
|
3782
|
+
offline: design.statusIndicatorColors.neutral,
|
|
3783
|
+
// bg-gray-500
|
|
3703
3784
|
away: "bg-yellow-500",
|
|
3704
|
-
|
|
3785
|
+
// local fallback, no DS yellow status
|
|
3786
|
+
busy: design.statusIndicatorColors.error
|
|
3787
|
+
// bg-red-500
|
|
3705
3788
|
};
|
|
3706
3789
|
const generateInitials = (name2) => {
|
|
3707
3790
|
const parts = name2.trim().split(/\s+/);
|
|
@@ -4034,10 +4117,10 @@ const IconText = ({
|
|
|
4034
4117
|
};
|
|
4035
4118
|
const variantClasses = {
|
|
4036
4119
|
default: "text-gray-700 dark:text-gray-300",
|
|
4037
|
-
primary:
|
|
4038
|
-
success:
|
|
4039
|
-
warning:
|
|
4040
|
-
danger:
|
|
4120
|
+
primary: design.colors.component.alert.info.icon,
|
|
4121
|
+
success: design.colors.component.alert.success.icon,
|
|
4122
|
+
warning: design.colors.component.alert.warning.icon,
|
|
4123
|
+
danger: design.colors.component.alert.error.icon,
|
|
4041
4124
|
muted: "text-gray-500 dark:text-gray-400"
|
|
4042
4125
|
};
|
|
4043
4126
|
const layoutClasses = {
|
|
@@ -4181,6 +4264,35 @@ const InfoBox = ({
|
|
|
4181
4264
|
}
|
|
4182
4265
|
);
|
|
4183
4266
|
};
|
|
4267
|
+
let _progressColors = null;
|
|
4268
|
+
function getProgressColors() {
|
|
4269
|
+
if (!_progressColors) _progressColors = buildProgressColors();
|
|
4270
|
+
return _progressColors;
|
|
4271
|
+
}
|
|
4272
|
+
function buildProgressColors() {
|
|
4273
|
+
function extractBg(base, darkStr) {
|
|
4274
|
+
const bg = base.split(" ").find(
|
|
4275
|
+
(c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
4276
|
+
) || "";
|
|
4277
|
+
const darkBg = darkStr.split(" ").find(
|
|
4278
|
+
(c) => c.startsWith("dark:bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
4279
|
+
) || "";
|
|
4280
|
+
return `${bg} ${darkBg}`;
|
|
4281
|
+
}
|
|
4282
|
+
const btn = design.colors.component.button;
|
|
4283
|
+
return {
|
|
4284
|
+
default: extractBg(btn.primary.base, btn.primary.dark),
|
|
4285
|
+
primary: extractBg(btn.primary.base, btn.primary.dark),
|
|
4286
|
+
success: extractBg(btn.success.base, btn.success.dark),
|
|
4287
|
+
warning: "bg-yellow-600 dark:bg-yellow-500",
|
|
4288
|
+
// DS has no yellow button; local fallback
|
|
4289
|
+
danger: extractBg(btn.destructive.base, btn.destructive.dark),
|
|
4290
|
+
purple: "bg-purple-600 dark:bg-purple-500",
|
|
4291
|
+
// DS has no purple button; local fallback
|
|
4292
|
+
gray: "bg-gray-600 dark:bg-gray-500"
|
|
4293
|
+
// local fallback
|
|
4294
|
+
};
|
|
4295
|
+
}
|
|
4184
4296
|
const Progress = ({
|
|
4185
4297
|
value = 0,
|
|
4186
4298
|
max = 100,
|
|
@@ -4211,11 +4323,12 @@ const Progress = ({
|
|
|
4211
4323
|
}
|
|
4212
4324
|
}, [indeterminate, animatedValue]);
|
|
4213
4325
|
const percentage = Math.min(Math.max(value / max * 100, 0), 100);
|
|
4326
|
+
const allColors = getProgressColors();
|
|
4214
4327
|
const colorClasses2 = {
|
|
4215
|
-
default:
|
|
4216
|
-
success:
|
|
4217
|
-
warning:
|
|
4218
|
-
danger:
|
|
4328
|
+
default: allColors.default,
|
|
4329
|
+
success: allColors.success,
|
|
4330
|
+
warning: allColors.warning,
|
|
4331
|
+
danger: allColors.danger
|
|
4219
4332
|
};
|
|
4220
4333
|
const sizeClasses = {
|
|
4221
4334
|
sm: "h-1",
|
|
@@ -4255,7 +4368,13 @@ const Progress = ({
|
|
|
4255
4368
|
)
|
|
4256
4369
|
}
|
|
4257
4370
|
),
|
|
4258
|
-
(showLabel || label) && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "mt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4371
|
+
(showLabel || label) && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "mt-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4372
|
+
reactNative.Text,
|
|
4373
|
+
{
|
|
4374
|
+
className: `${design.designTokens.typography.size.xs} text-gray-600 dark:text-gray-400 text-right`,
|
|
4375
|
+
children: label || `${Math.round(percentage)}%`
|
|
4376
|
+
}
|
|
4377
|
+
) })
|
|
4259
4378
|
] });
|
|
4260
4379
|
};
|
|
4261
4380
|
const ProgressBar = ({
|
|
@@ -4271,13 +4390,14 @@ const ProgressBar = ({
|
|
|
4271
4390
|
}) => {
|
|
4272
4391
|
const percentage = Math.min(Math.max(value / max * 100, 0), 100);
|
|
4273
4392
|
const displayLabel = label || `${Math.round(percentage)}%`;
|
|
4393
|
+
const progressColors = getProgressColors();
|
|
4274
4394
|
const variantClasses = {
|
|
4275
|
-
primary:
|
|
4276
|
-
success:
|
|
4277
|
-
warning:
|
|
4278
|
-
danger:
|
|
4279
|
-
purple:
|
|
4280
|
-
gray:
|
|
4395
|
+
primary: progressColors.primary,
|
|
4396
|
+
success: progressColors.success,
|
|
4397
|
+
warning: progressColors.warning,
|
|
4398
|
+
danger: progressColors.danger,
|
|
4399
|
+
purple: progressColors.purple,
|
|
4400
|
+
gray: progressColors.gray
|
|
4281
4401
|
};
|
|
4282
4402
|
const sizeClasses = {
|
|
4283
4403
|
sm: "h-1",
|
|
@@ -4307,9 +4427,16 @@ const ProgressBar = ({
|
|
|
4307
4427
|
)
|
|
4308
4428
|
}
|
|
4309
4429
|
),
|
|
4310
|
-
showLabel && labelPosition === "outside" && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4430
|
+
showLabel && labelPosition === "outside" && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4431
|
+
reactNative.Text,
|
|
4432
|
+
{
|
|
4433
|
+
className: `${design.designTokens.typography.size.sm} ${design.designTokens.typography.weight.medium} text-gray-600 dark:text-gray-400`,
|
|
4434
|
+
children: displayLabel
|
|
4435
|
+
}
|
|
4436
|
+
)
|
|
4311
4437
|
] }) });
|
|
4312
4438
|
};
|
|
4439
|
+
const { typography: typography$e } = design.designTokens;
|
|
4313
4440
|
const Modal = ({
|
|
4314
4441
|
isOpen,
|
|
4315
4442
|
onClose,
|
|
@@ -4360,7 +4487,17 @@ const Modal = ({
|
|
|
4360
4487
|
),
|
|
4361
4488
|
children: [
|
|
4362
4489
|
(title || showCloseButton) && /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex flex-row items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700", children: [
|
|
4363
|
-
title && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4490
|
+
title && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4491
|
+
reactNative.Text,
|
|
4492
|
+
{
|
|
4493
|
+
className: cn(
|
|
4494
|
+
typography$e.size.lg,
|
|
4495
|
+
typography$e.weight.semibold,
|
|
4496
|
+
"text-gray-900 dark:text-white flex-1"
|
|
4497
|
+
),
|
|
4498
|
+
children: title
|
|
4499
|
+
}
|
|
4500
|
+
),
|
|
4364
4501
|
showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4365
4502
|
reactNative.Pressable,
|
|
4366
4503
|
{
|
|
@@ -4368,7 +4505,16 @@ const Modal = ({
|
|
|
4368
4505
|
className: "p-1 -mr-1 rounded-full",
|
|
4369
4506
|
accessibilityRole: "button",
|
|
4370
4507
|
accessibilityLabel: "Close modal",
|
|
4371
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4508
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4509
|
+
reactNative.Text,
|
|
4510
|
+
{
|
|
4511
|
+
className: cn(
|
|
4512
|
+
typography$e.size.xl,
|
|
4513
|
+
"text-gray-500 dark:text-gray-400"
|
|
4514
|
+
),
|
|
4515
|
+
children: "✕"
|
|
4516
|
+
}
|
|
4517
|
+
)
|
|
4372
4518
|
}
|
|
4373
4519
|
)
|
|
4374
4520
|
] }),
|
|
@@ -4713,6 +4859,7 @@ const Backdrop = ({
|
|
|
4713
4859
|
}
|
|
4714
4860
|
);
|
|
4715
4861
|
};
|
|
4862
|
+
const { typography: typography$d } = design.designTokens;
|
|
4716
4863
|
const { height: SCREEN_HEIGHT, width: SCREEN_WIDTH$1 } = reactNative.Dimensions.get("window");
|
|
4717
4864
|
const Sheet = ({
|
|
4718
4865
|
isOpen,
|
|
@@ -4903,8 +5050,28 @@ const Sheet = ({
|
|
|
4903
5050
|
),
|
|
4904
5051
|
(title || description || showCloseButton) && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "px-4 py-4 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex flex-row items-start justify-between", children: [
|
|
4905
5052
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-1", children: [
|
|
4906
|
-
title && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4907
|
-
|
|
5053
|
+
title && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5054
|
+
reactNative.Text,
|
|
5055
|
+
{
|
|
5056
|
+
className: cn(
|
|
5057
|
+
typography$d.size.lg,
|
|
5058
|
+
typography$d.weight.semibold,
|
|
5059
|
+
"text-gray-900 dark:text-white"
|
|
5060
|
+
),
|
|
5061
|
+
children: title
|
|
5062
|
+
}
|
|
5063
|
+
),
|
|
5064
|
+
description && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5065
|
+
reactNative.Text,
|
|
5066
|
+
{
|
|
5067
|
+
className: cn(
|
|
5068
|
+
"mt-1",
|
|
5069
|
+
typography$d.size.sm,
|
|
5070
|
+
"text-gray-600 dark:text-gray-400"
|
|
5071
|
+
),
|
|
5072
|
+
children: description
|
|
5073
|
+
}
|
|
5074
|
+
)
|
|
4908
5075
|
] }),
|
|
4909
5076
|
showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4910
5077
|
reactNative.Pressable,
|
|
@@ -4913,7 +5080,7 @@ const Sheet = ({
|
|
|
4913
5080
|
className: "ml-4 p-1",
|
|
4914
5081
|
accessibilityRole: "button",
|
|
4915
5082
|
accessibilityLabel: "Close sheet",
|
|
4916
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className:
|
|
5083
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(typography$d.size.xl, "text-gray-400"), children: "✕" })
|
|
4917
5084
|
}
|
|
4918
5085
|
)
|
|
4919
5086
|
] }) }),
|
|
@@ -4928,6 +5095,30 @@ const Sheet = ({
|
|
|
4928
5095
|
}
|
|
4929
5096
|
);
|
|
4930
5097
|
};
|
|
5098
|
+
let _tooltipColors = null;
|
|
5099
|
+
function getTooltipColors() {
|
|
5100
|
+
if (!_tooltipColors) {
|
|
5101
|
+
let extractBg = function(base, darkStr) {
|
|
5102
|
+
const bg = base.split(" ").find(
|
|
5103
|
+
(c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
5104
|
+
) || "";
|
|
5105
|
+
const darkBg = darkStr.split(" ").find(
|
|
5106
|
+
(c) => c.startsWith("dark:bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
5107
|
+
) || "";
|
|
5108
|
+
return `${bg} ${darkBg}`;
|
|
5109
|
+
};
|
|
5110
|
+
const btn = design.colors.component.button;
|
|
5111
|
+
_tooltipColors = {
|
|
5112
|
+
default: "bg-gray-900 dark:bg-gray-700",
|
|
5113
|
+
info: extractBg(btn.primary.base, btn.primary.dark),
|
|
5114
|
+
success: extractBg(btn.success.base, btn.success.dark),
|
|
5115
|
+
warning: "bg-yellow-600 dark:bg-yellow-500",
|
|
5116
|
+
// DS has no yellow button; local fallback
|
|
5117
|
+
error: extractBg(btn.destructive.base, btn.destructive.dark)
|
|
5118
|
+
};
|
|
5119
|
+
}
|
|
5120
|
+
return _tooltipColors;
|
|
5121
|
+
}
|
|
4931
5122
|
const Tooltip = ({
|
|
4932
5123
|
content,
|
|
4933
5124
|
children,
|
|
@@ -4980,13 +5171,7 @@ const Tooltip = ({
|
|
|
4980
5171
|
}
|
|
4981
5172
|
setIsVisible(false);
|
|
4982
5173
|
};
|
|
4983
|
-
const variantClasses =
|
|
4984
|
-
default: "bg-gray-900 dark:bg-gray-700",
|
|
4985
|
-
info: "bg-blue-600 dark:bg-blue-500",
|
|
4986
|
-
success: "bg-green-600 dark:bg-green-500",
|
|
4987
|
-
warning: "bg-yellow-600 dark:bg-yellow-500",
|
|
4988
|
-
error: "bg-red-600 dark:bg-red-500"
|
|
4989
|
-
};
|
|
5174
|
+
const variantClasses = getTooltipColors();
|
|
4990
5175
|
const getTooltipPosition = () => {
|
|
4991
5176
|
const TOOLTIP_OFFSET = 8;
|
|
4992
5177
|
const TOOLTIP_HEIGHT = 32;
|
|
@@ -5052,7 +5237,13 @@ const Tooltip = ({
|
|
|
5052
5237
|
variantClasses[variant],
|
|
5053
5238
|
className
|
|
5054
5239
|
),
|
|
5055
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5240
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5241
|
+
reactNative.Text,
|
|
5242
|
+
{
|
|
5243
|
+
className: `${design.designTokens.typography.size.xs} ${design.designTokens.typography.weight.medium} text-white`,
|
|
5244
|
+
children: content
|
|
5245
|
+
}
|
|
5246
|
+
)
|
|
5056
5247
|
}
|
|
5057
5248
|
)
|
|
5058
5249
|
}
|
|
@@ -5304,7 +5495,9 @@ const TabsList = ({
|
|
|
5304
5495
|
horizontal: true,
|
|
5305
5496
|
showsHorizontalScrollIndicator: false,
|
|
5306
5497
|
className: cn(
|
|
5307
|
-
"flex-row bg-gray-100 dark:bg-gray-800
|
|
5498
|
+
"flex-row bg-gray-100 dark:bg-gray-800",
|
|
5499
|
+
design.designTokens.radius.lg,
|
|
5500
|
+
"p-1",
|
|
5308
5501
|
className
|
|
5309
5502
|
),
|
|
5310
5503
|
contentContainerStyle: { flexGrow: 1 },
|
|
@@ -5337,7 +5530,9 @@ const TabsTrigger = ({
|
|
|
5337
5530
|
reactNative.Text,
|
|
5338
5531
|
{
|
|
5339
5532
|
className: cn(
|
|
5340
|
-
|
|
5533
|
+
design.designTokens.typography.size.sm,
|
|
5534
|
+
design.designTokens.typography.weight.medium,
|
|
5535
|
+
"text-center",
|
|
5341
5536
|
isSelected ? "text-gray-900 dark:text-white" : "text-gray-600 dark:text-gray-400"
|
|
5342
5537
|
),
|
|
5343
5538
|
children
|
|
@@ -5369,11 +5564,11 @@ const Link = ({
|
|
|
5369
5564
|
}) => {
|
|
5370
5565
|
const isExternal = href.startsWith("http://") || href.startsWith("https://");
|
|
5371
5566
|
const variantClasses = {
|
|
5372
|
-
default:
|
|
5373
|
-
primary:
|
|
5374
|
-
secondary:
|
|
5567
|
+
default: design.textVariants.link.subtle(),
|
|
5568
|
+
primary: `${design.textVariants.link.default()} font-medium`,
|
|
5569
|
+
secondary: design.textVariants.link.muted(),
|
|
5375
5570
|
muted: "text-gray-500 dark:text-gray-500",
|
|
5376
|
-
underline:
|
|
5571
|
+
underline: design.textVariants.link.default()
|
|
5377
5572
|
};
|
|
5378
5573
|
const handlePress = async () => {
|
|
5379
5574
|
if (disabled) return;
|
|
@@ -5409,6 +5604,7 @@ const Link = ({
|
|
|
5409
5604
|
}
|
|
5410
5605
|
);
|
|
5411
5606
|
};
|
|
5607
|
+
const { typography: typography$c } = design.designTokens;
|
|
5412
5608
|
const Breadcrumb = ({
|
|
5413
5609
|
items,
|
|
5414
5610
|
separator = "/",
|
|
@@ -5418,9 +5614,9 @@ const Breadcrumb = ({
|
|
|
5418
5614
|
}) => {
|
|
5419
5615
|
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
5420
5616
|
const sizeClasses = {
|
|
5421
|
-
sm:
|
|
5422
|
-
md:
|
|
5423
|
-
lg:
|
|
5617
|
+
sm: typography$c.size.sm,
|
|
5618
|
+
md: typography$c.size.base,
|
|
5619
|
+
lg: typography$c.size.lg
|
|
5424
5620
|
};
|
|
5425
5621
|
const getDisplayItems = () => {
|
|
5426
5622
|
if (!maxItems || items.length <= maxItems || isExpanded) {
|
|
@@ -5441,7 +5637,7 @@ const Breadcrumb = ({
|
|
|
5441
5637
|
{
|
|
5442
5638
|
className: cn(
|
|
5443
5639
|
sizeClasses[size],
|
|
5444
|
-
|
|
5640
|
+
`text-gray-900 dark:text-white ${typography$c.weight.medium}`
|
|
5445
5641
|
),
|
|
5446
5642
|
accessibilityRole: "text",
|
|
5447
5643
|
children: item.label
|
|
@@ -5479,7 +5675,7 @@ const Breadcrumb = ({
|
|
|
5479
5675
|
{
|
|
5480
5676
|
className: cn(
|
|
5481
5677
|
sizeClasses[size],
|
|
5482
|
-
isCurrent ?
|
|
5678
|
+
isCurrent ? `text-gray-900 dark:text-white ${typography$c.weight.medium}` : "text-gray-600 dark:text-gray-400"
|
|
5483
5679
|
),
|
|
5484
5680
|
children: item.label
|
|
5485
5681
|
}
|
|
@@ -5527,6 +5723,7 @@ const Breadcrumb = ({
|
|
|
5527
5723
|
}
|
|
5528
5724
|
);
|
|
5529
5725
|
};
|
|
5726
|
+
const { typography: typography$b } = design.designTokens;
|
|
5530
5727
|
const Pagination = ({
|
|
5531
5728
|
currentPage,
|
|
5532
5729
|
totalPages,
|
|
@@ -5541,18 +5738,18 @@ const Pagination = ({
|
|
|
5541
5738
|
const sizeConfig2 = {
|
|
5542
5739
|
sm: {
|
|
5543
5740
|
button: "h-8 w-8",
|
|
5544
|
-
text:
|
|
5545
|
-
icon:
|
|
5741
|
+
text: typography$b.size.xs,
|
|
5742
|
+
icon: typography$b.size.xs
|
|
5546
5743
|
},
|
|
5547
5744
|
md: {
|
|
5548
5745
|
button: "h-10 w-10",
|
|
5549
|
-
text:
|
|
5550
|
-
icon:
|
|
5746
|
+
text: typography$b.size.sm,
|
|
5747
|
+
icon: typography$b.size.sm
|
|
5551
5748
|
},
|
|
5552
5749
|
lg: {
|
|
5553
5750
|
button: "h-12 w-12",
|
|
5554
|
-
text:
|
|
5555
|
-
icon:
|
|
5751
|
+
text: typography$b.size.base,
|
|
5752
|
+
icon: typography$b.size.base
|
|
5556
5753
|
}
|
|
5557
5754
|
};
|
|
5558
5755
|
const config = sizeConfig2[size];
|
|
@@ -5702,6 +5899,7 @@ const Pagination = ({
|
|
|
5702
5899
|
}
|
|
5703
5900
|
);
|
|
5704
5901
|
};
|
|
5902
|
+
const { typography: typography$a } = design.designTokens;
|
|
5705
5903
|
const SettingsList = ({
|
|
5706
5904
|
settings,
|
|
5707
5905
|
selectedSetting,
|
|
@@ -5734,7 +5932,7 @@ const SettingsList = ({
|
|
|
5734
5932
|
reactNative.Text,
|
|
5735
5933
|
{
|
|
5736
5934
|
className: cn(
|
|
5737
|
-
|
|
5935
|
+
typography$a.size.sm,
|
|
5738
5936
|
isSelected ? "text-orange-700 dark:text-orange-300" : "text-gray-700 dark:text-gray-300"
|
|
5739
5937
|
),
|
|
5740
5938
|
numberOfLines: 1,
|
|
@@ -5749,6 +5947,7 @@ const SettingsList = ({
|
|
|
5749
5947
|
}
|
|
5750
5948
|
);
|
|
5751
5949
|
};
|
|
5950
|
+
const { typography: typography$9 } = design.designTokens;
|
|
5752
5951
|
const NavigationList = ({
|
|
5753
5952
|
items,
|
|
5754
5953
|
selectedPath,
|
|
@@ -5790,15 +5989,34 @@ const NavigationList = ({
|
|
|
5790
5989
|
reactNative.Text,
|
|
5791
5990
|
{
|
|
5792
5991
|
className: cn(
|
|
5793
|
-
|
|
5992
|
+
typography$9.weight.medium,
|
|
5794
5993
|
isSelected ? "text-blue-600 dark:text-blue-400" : "text-gray-700 dark:text-gray-300"
|
|
5795
5994
|
),
|
|
5796
5995
|
children: item.label
|
|
5797
5996
|
}
|
|
5798
5997
|
),
|
|
5799
|
-
item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "ml-2 px-2 py-0.5 bg-blue-100 dark:bg-blue-900 rounded-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5998
|
+
item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "ml-2 px-2 py-0.5 bg-blue-100 dark:bg-blue-900 rounded-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5999
|
+
reactNative.Text,
|
|
6000
|
+
{
|
|
6001
|
+
className: cn(
|
|
6002
|
+
typography$9.size.xs,
|
|
6003
|
+
typography$9.weight.medium,
|
|
6004
|
+
"text-blue-800 dark:text-blue-200"
|
|
6005
|
+
),
|
|
6006
|
+
children: item.badge
|
|
6007
|
+
}
|
|
6008
|
+
) })
|
|
5800
6009
|
] }),
|
|
5801
|
-
item.description && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6010
|
+
item.description && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6011
|
+
reactNative.Text,
|
|
6012
|
+
{
|
|
6013
|
+
className: cn(
|
|
6014
|
+
typography$9.size.xs,
|
|
6015
|
+
"text-gray-500 dark:text-gray-400 mt-0.5"
|
|
6016
|
+
),
|
|
6017
|
+
children: item.description
|
|
6018
|
+
}
|
|
6019
|
+
)
|
|
5802
6020
|
] })
|
|
5803
6021
|
]
|
|
5804
6022
|
},
|
|
@@ -5806,6 +6024,7 @@ const NavigationList = ({
|
|
|
5806
6024
|
);
|
|
5807
6025
|
}) });
|
|
5808
6026
|
};
|
|
6027
|
+
const { typography: typography$8 } = design.designTokens;
|
|
5809
6028
|
const Dropdown = ({
|
|
5810
6029
|
trigger,
|
|
5811
6030
|
items,
|
|
@@ -5898,7 +6117,7 @@ const Dropdown = ({
|
|
|
5898
6117
|
reactNative.Text,
|
|
5899
6118
|
{
|
|
5900
6119
|
className: cn(
|
|
5901
|
-
|
|
6120
|
+
typography$8.size.sm,
|
|
5902
6121
|
item.disabled ? "text-gray-400 dark:text-gray-500" : "text-gray-700 dark:text-gray-200"
|
|
5903
6122
|
),
|
|
5904
6123
|
children: item.label
|
|
@@ -5968,7 +6187,7 @@ const AspectFitView = ({
|
|
|
5968
6187
|
}
|
|
5969
6188
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("flex-1", className), onLayout, children: size && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("items-center", innerClassName), children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ScrollView, { style: { width: innerWidth, height: innerHeight }, children }) }) });
|
|
5970
6189
|
};
|
|
5971
|
-
const { typography } = design.designTokens;
|
|
6190
|
+
const { typography: typography$7 } = design.designTokens;
|
|
5972
6191
|
const QuickActions = ({
|
|
5973
6192
|
actions,
|
|
5974
6193
|
orientation = "horizontal",
|
|
@@ -6032,7 +6251,7 @@ const QuickActions = ({
|
|
|
6032
6251
|
accessibilityState: { disabled: action.disabled },
|
|
6033
6252
|
children: [
|
|
6034
6253
|
action.icon && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "w-5 h-5", children: action.icon }),
|
|
6035
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(typography.weight.medium, styles2.text), children: action.label })
|
|
6254
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(typography$7.weight.medium, styles2.text), children: action.label })
|
|
6036
6255
|
]
|
|
6037
6256
|
},
|
|
6038
6257
|
action.id
|
|
@@ -6110,6 +6329,7 @@ const EmptyState = ({
|
|
|
6110
6329
|
}
|
|
6111
6330
|
);
|
|
6112
6331
|
};
|
|
6332
|
+
const { typography: typography$6 } = design.designTokens;
|
|
6113
6333
|
const Calendar = ({
|
|
6114
6334
|
value,
|
|
6115
6335
|
onChange,
|
|
@@ -6198,10 +6418,29 @@ const Calendar = ({
|
|
|
6198
6418
|
className: "p-2 active:bg-gray-100 dark:active:bg-gray-800 rounded-md",
|
|
6199
6419
|
accessibilityRole: "button",
|
|
6200
6420
|
accessibilityLabel: "Previous month",
|
|
6201
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6421
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6422
|
+
reactNative.Text,
|
|
6423
|
+
{
|
|
6424
|
+
className: cn(
|
|
6425
|
+
typography$6.size.lg,
|
|
6426
|
+
"text-gray-700 dark:text-gray-300"
|
|
6427
|
+
),
|
|
6428
|
+
children: "‹"
|
|
6429
|
+
}
|
|
6430
|
+
)
|
|
6431
|
+
}
|
|
6432
|
+
),
|
|
6433
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6434
|
+
reactNative.Text,
|
|
6435
|
+
{
|
|
6436
|
+
className: cn(
|
|
6437
|
+
typography$6.size.base,
|
|
6438
|
+
typography$6.weight.semibold,
|
|
6439
|
+
"text-gray-900 dark:text-white"
|
|
6440
|
+
),
|
|
6441
|
+
children: monthYear
|
|
6202
6442
|
}
|
|
6203
6443
|
),
|
|
6204
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-base font-semibold text-gray-900 dark:text-white", children: monthYear }),
|
|
6205
6444
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6206
6445
|
reactNative.Pressable,
|
|
6207
6446
|
{
|
|
@@ -6209,11 +6448,30 @@ const Calendar = ({
|
|
|
6209
6448
|
className: "p-2 active:bg-gray-100 dark:active:bg-gray-800 rounded-md",
|
|
6210
6449
|
accessibilityRole: "button",
|
|
6211
6450
|
accessibilityLabel: "Next month",
|
|
6212
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6451
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6452
|
+
reactNative.Text,
|
|
6453
|
+
{
|
|
6454
|
+
className: cn(
|
|
6455
|
+
typography$6.size.lg,
|
|
6456
|
+
"text-gray-700 dark:text-gray-300"
|
|
6457
|
+
),
|
|
6458
|
+
children: "›"
|
|
6459
|
+
}
|
|
6460
|
+
)
|
|
6213
6461
|
}
|
|
6214
6462
|
)
|
|
6215
6463
|
] }),
|
|
6216
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-row mb-2", children: weekDays.map((day) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-1 items-center py-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6464
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-row mb-2", children: weekDays.map((day) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-1 items-center py-2", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6465
|
+
reactNative.Text,
|
|
6466
|
+
{
|
|
6467
|
+
className: cn(
|
|
6468
|
+
typography$6.size.xs,
|
|
6469
|
+
typography$6.weight.medium,
|
|
6470
|
+
"text-gray-600 dark:text-gray-400"
|
|
6471
|
+
),
|
|
6472
|
+
children: day
|
|
6473
|
+
}
|
|
6474
|
+
) }, day)) }),
|
|
6217
6475
|
weeks.map((week, weekIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-row", children: week.map((date, dayIndex) => {
|
|
6218
6476
|
if (!date) {
|
|
6219
6477
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -6250,9 +6508,9 @@ const Calendar = ({
|
|
|
6250
6508
|
reactNative.Text,
|
|
6251
6509
|
{
|
|
6252
6510
|
className: cn(
|
|
6253
|
-
|
|
6511
|
+
typography$6.size.sm,
|
|
6254
6512
|
isCurrentMonth ? "text-gray-900 dark:text-white" : "text-gray-400 dark:text-gray-600",
|
|
6255
|
-
isSelected &&
|
|
6513
|
+
isSelected && `text-white ${typography$6.weight.semibold}`
|
|
6256
6514
|
),
|
|
6257
6515
|
children: date.getDate()
|
|
6258
6516
|
}
|
|
@@ -6280,18 +6538,40 @@ function DataList({
|
|
|
6280
6538
|
};
|
|
6281
6539
|
const renderHeader = () => {
|
|
6282
6540
|
if (!showHeader) return null;
|
|
6283
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6541
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6284
6542
|
reactNative.View,
|
|
6285
6543
|
{
|
|
6286
6544
|
className: cn(
|
|
6287
|
-
|
|
6288
|
-
|
|
6545
|
+
"flex-row",
|
|
6546
|
+
design.ui.table.thead,
|
|
6547
|
+
"border-b border-gray-200 dark:border-gray-700"
|
|
6289
6548
|
),
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6549
|
+
children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6550
|
+
reactNative.View,
|
|
6551
|
+
{
|
|
6552
|
+
className: cn(
|
|
6553
|
+
compact ? "px-3 py-2" : "px-4 py-3",
|
|
6554
|
+
alignClasses[column.align || "left"]
|
|
6555
|
+
),
|
|
6556
|
+
style: { flex: column.flex || 1 },
|
|
6557
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6558
|
+
reactNative.Text,
|
|
6559
|
+
{
|
|
6560
|
+
className: cn(
|
|
6561
|
+
design.designTokens.typography.size.xs,
|
|
6562
|
+
design.designTokens.typography.weight.medium,
|
|
6563
|
+
"text-gray-700 dark:text-gray-300",
|
|
6564
|
+
design.designTokens.typography.transform.uppercase,
|
|
6565
|
+
design.designTokens.typography.tracking.wider
|
|
6566
|
+
),
|
|
6567
|
+
children: column.label
|
|
6568
|
+
}
|
|
6569
|
+
)
|
|
6570
|
+
},
|
|
6571
|
+
column.key
|
|
6572
|
+
))
|
|
6573
|
+
}
|
|
6574
|
+
);
|
|
6295
6575
|
};
|
|
6296
6576
|
const renderRow = ({ item, index }) => {
|
|
6297
6577
|
const isOdd = index % 2 === 1;
|
|
@@ -6301,7 +6581,7 @@ function DataList({
|
|
|
6301
6581
|
onPress: () => onRowPress == null ? void 0 : onRowPress(item, index),
|
|
6302
6582
|
className: cn(
|
|
6303
6583
|
"flex-row border-b border-gray-200 dark:border-gray-700",
|
|
6304
|
-
isOdd &&
|
|
6584
|
+
isOdd && design.ui.table.trAlt,
|
|
6305
6585
|
onRowPress && "active:bg-gray-100 dark:active:bg-gray-800"
|
|
6306
6586
|
),
|
|
6307
6587
|
disabled: !onRowPress,
|
|
@@ -6318,7 +6598,10 @@ function DataList({
|
|
|
6318
6598
|
children: column.render ? column.render(item, index) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6319
6599
|
reactNative.Text,
|
|
6320
6600
|
{
|
|
6321
|
-
className:
|
|
6601
|
+
className: cn(
|
|
6602
|
+
design.designTokens.typography.size.sm,
|
|
6603
|
+
"text-gray-900 dark:text-white"
|
|
6604
|
+
),
|
|
6322
6605
|
numberOfLines: 1,
|
|
6323
6606
|
children: String(item[column.key] ?? "")
|
|
6324
6607
|
}
|
|
@@ -6330,7 +6613,7 @@ function DataList({
|
|
|
6330
6613
|
);
|
|
6331
6614
|
};
|
|
6332
6615
|
const renderEmpty = () => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "py-8 items-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-sm text-gray-500 dark:text-gray-400", children: emptyMessage }) });
|
|
6333
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: cn(
|
|
6616
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: cn(design.ui.table.tr, className), children: [
|
|
6334
6617
|
renderHeader(),
|
|
6335
6618
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6336
6619
|
reactNative.FlatList,
|
|
@@ -6442,7 +6725,7 @@ const MultiSelect = ({
|
|
|
6442
6725
|
value: searchQuery,
|
|
6443
6726
|
onChangeText: setSearchQuery,
|
|
6444
6727
|
placeholder: searchPlaceholder,
|
|
6445
|
-
placeholderTextColor:
|
|
6728
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
6446
6729
|
className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
|
|
6447
6730
|
}
|
|
6448
6731
|
) }),
|
|
@@ -6606,6 +6889,7 @@ const ProgressCircle = ({
|
|
|
6606
6889
|
}
|
|
6607
6890
|
);
|
|
6608
6891
|
};
|
|
6892
|
+
const { typography: typography$5 } = design.designTokens;
|
|
6609
6893
|
const SideNav = ({ items, className }) => {
|
|
6610
6894
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("gap-1", className), accessibilityRole: "list", children: items.map((item) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
6611
6895
|
reactNative.Pressable,
|
|
@@ -6624,13 +6908,23 @@ const SideNav = ({ items, className }) => {
|
|
|
6624
6908
|
reactNative.Text,
|
|
6625
6909
|
{
|
|
6626
6910
|
className: cn(
|
|
6627
|
-
"flex-1
|
|
6911
|
+
"flex-1",
|
|
6912
|
+
typography$5.weight.medium,
|
|
6628
6913
|
item.active ? "text-blue-600 dark:text-blue-400" : "text-gray-700 dark:text-gray-300"
|
|
6629
6914
|
),
|
|
6630
6915
|
children: item.label
|
|
6631
6916
|
}
|
|
6632
6917
|
),
|
|
6633
|
-
item.badge !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "px-2 py-0.5 bg-gray-200 dark:bg-gray-700 rounded", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6918
|
+
item.badge !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "px-2 py-0.5 bg-gray-200 dark:bg-gray-700 rounded", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6919
|
+
reactNative.Text,
|
|
6920
|
+
{
|
|
6921
|
+
className: cn(
|
|
6922
|
+
typography$5.size.xs,
|
|
6923
|
+
"text-gray-700 dark:text-gray-300"
|
|
6924
|
+
),
|
|
6925
|
+
children: item.badge
|
|
6926
|
+
}
|
|
6927
|
+
) })
|
|
6634
6928
|
]
|
|
6635
6929
|
},
|
|
6636
6930
|
item.id
|
|
@@ -6654,7 +6948,7 @@ const SectionHeader = ({
|
|
|
6654
6948
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-center justify-between", children: [
|
|
6655
6949
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-lg font-semibold text-gray-900 dark:text-gray-100", children: title }),
|
|
6656
6950
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-center gap-2", children: [
|
|
6657
|
-
loading && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color:
|
|
6951
|
+
loading && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color: design.colors.raw.blue[600] }),
|
|
6658
6952
|
actions,
|
|
6659
6953
|
onAdd && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
6660
6954
|
reactNative.Pressable,
|
|
@@ -6874,7 +7168,7 @@ const PhoneInput = ({
|
|
|
6874
7168
|
value,
|
|
6875
7169
|
onChangeText: handleInputChange,
|
|
6876
7170
|
placeholder,
|
|
6877
|
-
placeholderTextColor:
|
|
7171
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
6878
7172
|
keyboardType: "phone-pad",
|
|
6879
7173
|
editable: !disabled,
|
|
6880
7174
|
className: cn(
|
|
@@ -6907,7 +7201,7 @@ const PhoneInput = ({
|
|
|
6907
7201
|
value: searchQuery,
|
|
6908
7202
|
onChangeText: setSearchQuery,
|
|
6909
7203
|
placeholder: "Search countries...",
|
|
6910
|
-
placeholderTextColor:
|
|
7204
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
6911
7205
|
className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
|
|
6912
7206
|
}
|
|
6913
7207
|
) }),
|
|
@@ -7252,7 +7546,7 @@ const Combobox = ({
|
|
|
7252
7546
|
value: searchQuery,
|
|
7253
7547
|
onChangeText: setSearchQuery,
|
|
7254
7548
|
placeholder: searchPlaceholder,
|
|
7255
|
-
placeholderTextColor:
|
|
7549
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
7256
7550
|
autoFocus: true,
|
|
7257
7551
|
className: "px-3 py-2 text-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white rounded-md"
|
|
7258
7552
|
}
|
|
@@ -7515,6 +7809,32 @@ const AddressLink = ({
|
|
|
7515
7809
|
] })
|
|
7516
7810
|
] });
|
|
7517
7811
|
};
|
|
7812
|
+
let _displayColors = null;
|
|
7813
|
+
function getDisplayColors() {
|
|
7814
|
+
if (!_displayColors) _displayColors = buildDisplayColors();
|
|
7815
|
+
return _displayColors;
|
|
7816
|
+
}
|
|
7817
|
+
function buildDisplayColors() {
|
|
7818
|
+
const alert2 = design.colors.component.alert;
|
|
7819
|
+
function splitClasses(base, dark) {
|
|
7820
|
+
const all = `${base} ${dark}`.split(" ");
|
|
7821
|
+
return {
|
|
7822
|
+
text: all.filter((c) => c.includes("text-")).join(" "),
|
|
7823
|
+
bg: all.filter((c) => c.includes("bg-")).join(" ")
|
|
7824
|
+
};
|
|
7825
|
+
}
|
|
7826
|
+
const info = splitClasses(alert2.info.base, alert2.info.dark);
|
|
7827
|
+
const success = splitClasses(alert2.success.base, alert2.success.dark);
|
|
7828
|
+
const warning = splitClasses(alert2.warning.base, alert2.warning.dark);
|
|
7829
|
+
return {
|
|
7830
|
+
primary: `${info.text} ${info.bg}`,
|
|
7831
|
+
// secondary uses purple — no DS mapping, keep local
|
|
7832
|
+
secondary: "text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/30",
|
|
7833
|
+
success: `${success.text} ${success.bg}`,
|
|
7834
|
+
warning: `${warning.text} ${warning.bg}`,
|
|
7835
|
+
neutral: "text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800"
|
|
7836
|
+
};
|
|
7837
|
+
}
|
|
7518
7838
|
const CodeDisplay = ({
|
|
7519
7839
|
children,
|
|
7520
7840
|
variant = "primary",
|
|
@@ -7524,28 +7844,22 @@ const CodeDisplay = ({
|
|
|
7524
7844
|
wrap = false,
|
|
7525
7845
|
className
|
|
7526
7846
|
}) => {
|
|
7527
|
-
const variantClasses =
|
|
7528
|
-
primary: "text-blue-600 dark:text-blue-400 bg-blue-50 dark:bg-blue-900/30",
|
|
7529
|
-
secondary: "text-purple-600 dark:text-purple-400 bg-purple-50 dark:bg-purple-900/30",
|
|
7530
|
-
success: "text-green-600 dark:text-green-400 bg-green-50 dark:bg-green-900/30",
|
|
7531
|
-
warning: "text-yellow-700 dark:text-yellow-400 bg-yellow-50 dark:bg-yellow-900/30",
|
|
7532
|
-
neutral: "text-gray-700 dark:text-gray-300 bg-gray-100 dark:bg-gray-800"
|
|
7533
|
-
};
|
|
7847
|
+
const variantClasses = getDisplayColors();
|
|
7534
7848
|
const sizeClasses = {
|
|
7535
7849
|
xs: {
|
|
7536
|
-
text:
|
|
7850
|
+
text: design.designTokens.typography.size.xs,
|
|
7537
7851
|
padding: inline ? "px-1.5 py-0.5" : "px-2 py-1"
|
|
7538
7852
|
},
|
|
7539
7853
|
sm: {
|
|
7540
|
-
text:
|
|
7854
|
+
text: design.designTokens.typography.size.sm,
|
|
7541
7855
|
padding: inline ? "px-2 py-0.5" : "px-3 py-1.5"
|
|
7542
7856
|
},
|
|
7543
7857
|
md: {
|
|
7544
|
-
text:
|
|
7858
|
+
text: design.designTokens.typography.size.base,
|
|
7545
7859
|
padding: inline ? "px-2.5 py-1" : "px-4 py-2"
|
|
7546
7860
|
},
|
|
7547
7861
|
lg: {
|
|
7548
|
-
text:
|
|
7862
|
+
text: design.designTokens.typography.size.lg,
|
|
7549
7863
|
padding: inline ? "px-3 py-1" : "px-4 py-2"
|
|
7550
7864
|
}
|
|
7551
7865
|
};
|
|
@@ -7555,13 +7869,15 @@ const CodeDisplay = ({
|
|
|
7555
7869
|
right: "text-right"
|
|
7556
7870
|
};
|
|
7557
7871
|
const sizeConfig2 = sizeClasses[size];
|
|
7558
|
-
const
|
|
7872
|
+
const variantParts = variantClasses[variant].split(" ");
|
|
7873
|
+
const textColorClass = variantParts.filter((c) => c.includes("text-")).join(" ");
|
|
7874
|
+
const bgClass = variantParts.filter((c) => c.includes("bg-")).join(" ");
|
|
7559
7875
|
if (inline) {
|
|
7560
7876
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
7561
7877
|
reactNative.Text,
|
|
7562
7878
|
{
|
|
7563
7879
|
className: cn(
|
|
7564
|
-
|
|
7880
|
+
`${design.designTokens.typography.family.mono} rounded-lg`,
|
|
7565
7881
|
textColorClass,
|
|
7566
7882
|
bgClass,
|
|
7567
7883
|
sizeConfig2.text,
|
|
@@ -7576,7 +7892,7 @@ const CodeDisplay = ({
|
|
|
7576
7892
|
reactNative.Text,
|
|
7577
7893
|
{
|
|
7578
7894
|
className: cn(
|
|
7579
|
-
|
|
7895
|
+
design.designTokens.typography.family.mono,
|
|
7580
7896
|
textColorClass,
|
|
7581
7897
|
sizeConfig2.text,
|
|
7582
7898
|
!inline && alignClasses[align],
|
|
@@ -7904,7 +8220,7 @@ function InfiniteScroll({
|
|
|
7904
8220
|
const defaultEmptyComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-1 justify-center items-center py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-gray-500 dark:text-gray-400", children: "No items found" }) });
|
|
7905
8221
|
const ListFooterComponent = React.useCallback(() => {
|
|
7906
8222
|
const footerLoader = /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row justify-center items-center py-4", children: [
|
|
7907
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color:
|
|
8223
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color: design.colors.raw.blue[500] }),
|
|
7908
8224
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: "Loading..." })
|
|
7909
8225
|
] });
|
|
7910
8226
|
const footerEndMessage = /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-row justify-center items-center py-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-sm text-gray-600 dark:text-gray-400", children: "No more items to load" }) });
|
|
@@ -7972,9 +8288,9 @@ const ExternalLink = ({
|
|
|
7972
8288
|
lg: "text-base"
|
|
7973
8289
|
};
|
|
7974
8290
|
const variantClasses = {
|
|
7975
|
-
default:
|
|
7976
|
-
primary:
|
|
7977
|
-
muted:
|
|
8291
|
+
default: design.textVariants.link.external(),
|
|
8292
|
+
primary: `${design.textVariants.link.default()} font-semibold`,
|
|
8293
|
+
muted: design.textVariants.link.muted()
|
|
7978
8294
|
};
|
|
7979
8295
|
const handlePress = React.useCallback(async () => {
|
|
7980
8296
|
onPress == null ? void 0 : onPress();
|
|
@@ -8078,7 +8394,7 @@ const TextInputModal = ({
|
|
|
8078
8394
|
value,
|
|
8079
8395
|
onChangeText: setValue,
|
|
8080
8396
|
placeholder,
|
|
8081
|
-
placeholderTextColor:
|
|
8397
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
8082
8398
|
maxLength,
|
|
8083
8399
|
editable: !isLoading,
|
|
8084
8400
|
autoFocus: true,
|
|
@@ -8275,37 +8591,54 @@ const SectionBadge = ({
|
|
|
8275
8591
|
}
|
|
8276
8592
|
);
|
|
8277
8593
|
};
|
|
8278
|
-
|
|
8279
|
-
|
|
8280
|
-
|
|
8281
|
-
|
|
8282
|
-
|
|
8283
|
-
|
|
8284
|
-
|
|
8285
|
-
|
|
8286
|
-
|
|
8287
|
-
|
|
8288
|
-
|
|
8289
|
-
|
|
8594
|
+
function splitBadgeClasses(base, dark) {
|
|
8595
|
+
const all = `${base} ${dark}`.split(" ");
|
|
8596
|
+
return {
|
|
8597
|
+
bg: all.filter((c) => c.includes("bg-")).join(" "),
|
|
8598
|
+
text: all.filter((c) => c.includes("text-")).join(" ")
|
|
8599
|
+
};
|
|
8600
|
+
}
|
|
8601
|
+
let _chainColors = null;
|
|
8602
|
+
function getChainColors() {
|
|
8603
|
+
if (!_chainColors) _chainColors = buildChainColors();
|
|
8604
|
+
return _chainColors;
|
|
8605
|
+
}
|
|
8606
|
+
function buildChainColors() {
|
|
8607
|
+
const badge = design.colors.component.badge;
|
|
8608
|
+
return {
|
|
8609
|
+
evm: splitBadgeClasses(badge.ethereum.base, badge.ethereum.dark),
|
|
8610
|
+
solana: splitBadgeClasses(badge.solana.base, badge.solana.dark),
|
|
8611
|
+
bitcoin: splitBadgeClasses(badge.bitcoin.base, badge.bitcoin.dark),
|
|
8612
|
+
// DS has no cosmos badge — use local fallback (indigo)
|
|
8613
|
+
cosmos: {
|
|
8614
|
+
bg: "bg-indigo-50 dark:bg-indigo-900/20",
|
|
8615
|
+
text: "text-indigo-700 dark:text-indigo-300"
|
|
8616
|
+
}
|
|
8617
|
+
};
|
|
8618
|
+
}
|
|
8619
|
+
const chainMeta = {
|
|
8620
|
+
evm: { label: "EVM", emoji: "⟠" },
|
|
8621
|
+
solana: { label: "SOL", emoji: "◎" },
|
|
8622
|
+
bitcoin: { label: "BTC", emoji: "₿" },
|
|
8623
|
+
cosmos: { label: "ATOM", emoji: "⚛" }
|
|
8624
|
+
};
|
|
8625
|
+
const sizeConfig = {
|
|
8626
|
+
sm: {
|
|
8627
|
+
padding: "px-1.5 py-0.5",
|
|
8628
|
+
text: design.designTokens.typography.size.xs,
|
|
8629
|
+
gap: "gap-0.5"
|
|
8290
8630
|
},
|
|
8291
|
-
|
|
8292
|
-
|
|
8293
|
-
|
|
8294
|
-
|
|
8295
|
-
textColor: "text-orange-700 dark:text-orange-300"
|
|
8631
|
+
md: {
|
|
8632
|
+
padding: "px-2 py-1",
|
|
8633
|
+
text: design.designTokens.typography.size.sm,
|
|
8634
|
+
gap: "gap-1"
|
|
8296
8635
|
},
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
textColor: "text-indigo-700 dark:text-indigo-300"
|
|
8636
|
+
lg: {
|
|
8637
|
+
padding: "px-2.5 py-1.5",
|
|
8638
|
+
text: design.designTokens.typography.size.base,
|
|
8639
|
+
gap: "gap-1.5"
|
|
8302
8640
|
}
|
|
8303
8641
|
};
|
|
8304
|
-
const sizeConfig = {
|
|
8305
|
-
sm: { padding: "px-1.5 py-0.5", text: "text-xs", gap: "gap-0.5" },
|
|
8306
|
-
md: { padding: "px-2 py-1", text: "text-sm", gap: "gap-1" },
|
|
8307
|
-
lg: { padding: "px-2.5 py-1.5", text: "text-base", gap: "gap-1.5" }
|
|
8308
|
-
};
|
|
8309
8642
|
const ChainBadge = ({
|
|
8310
8643
|
chainType,
|
|
8311
8644
|
size = "md",
|
|
@@ -8313,23 +8646,34 @@ const ChainBadge = ({
|
|
|
8313
8646
|
className,
|
|
8314
8647
|
...props
|
|
8315
8648
|
}) => {
|
|
8316
|
-
const
|
|
8649
|
+
const chainColors = getChainColors()[chainType];
|
|
8650
|
+
const meta = chainMeta[chainType];
|
|
8317
8651
|
const sizeStyles = sizeConfig[size];
|
|
8318
8652
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
8319
8653
|
reactNative.View,
|
|
8320
8654
|
{
|
|
8321
8655
|
className: cn(
|
|
8322
8656
|
"flex-row items-center rounded-md border",
|
|
8323
|
-
|
|
8657
|
+
chainColors.bg,
|
|
8324
8658
|
sizeStyles.padding,
|
|
8325
8659
|
sizeStyles.gap,
|
|
8326
8660
|
className
|
|
8327
8661
|
),
|
|
8328
|
-
accessibilityLabel: `${
|
|
8662
|
+
accessibilityLabel: `${meta.label} chain`,
|
|
8329
8663
|
...props,
|
|
8330
8664
|
children: [
|
|
8331
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(sizeStyles.text,
|
|
8332
|
-
showLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
8665
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(sizeStyles.text, chainColors.text), children: meta.emoji }),
|
|
8666
|
+
showLabel && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
8667
|
+
reactNative.Text,
|
|
8668
|
+
{
|
|
8669
|
+
className: cn(
|
|
8670
|
+
design.designTokens.typography.weight.medium,
|
|
8671
|
+
sizeStyles.text,
|
|
8672
|
+
chainColors.text
|
|
8673
|
+
),
|
|
8674
|
+
children: meta.label
|
|
8675
|
+
}
|
|
8676
|
+
)
|
|
8333
8677
|
]
|
|
8334
8678
|
}
|
|
8335
8679
|
);
|
|
@@ -8376,7 +8720,7 @@ const ListItemWithAction = ({
|
|
|
8376
8720
|
reactNative.ActivityIndicator,
|
|
8377
8721
|
{
|
|
8378
8722
|
size: "small",
|
|
8379
|
-
color: destructive ?
|
|
8723
|
+
color: destructive ? design.colors.raw.red[600] : design.colors.raw.neutral[500]
|
|
8380
8724
|
}
|
|
8381
8725
|
) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
8382
8726
|
actionIcon && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "mr-1", children: actionIcon }),
|
|
@@ -8525,7 +8869,7 @@ const TransferList = ({
|
|
|
8525
8869
|
value: searchValue,
|
|
8526
8870
|
onChangeText: onSearchChange,
|
|
8527
8871
|
placeholder: searchPlaceholder,
|
|
8528
|
-
placeholderTextColor:
|
|
8872
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
8529
8873
|
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"
|
|
8530
8874
|
}
|
|
8531
8875
|
) }),
|
|
@@ -9030,6 +9374,26 @@ const Masonry = ({
|
|
|
9030
9374
|
});
|
|
9031
9375
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("flex-row", className), style: { gap }, children: columnArrays.map((column, columnIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-1", style: { gap }, children: column.map((item, itemIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { children: item }, itemIndex)) }, columnIndex)) });
|
|
9032
9376
|
};
|
|
9377
|
+
let _iconContainerColors = null;
|
|
9378
|
+
function getIconContainerColors() {
|
|
9379
|
+
if (!_iconContainerColors) {
|
|
9380
|
+
let extractBg = function(base, dark) {
|
|
9381
|
+
const all = `${base} ${dark}`.split(" ");
|
|
9382
|
+
return all.filter((c) => c.includes("bg-")).join(" ");
|
|
9383
|
+
};
|
|
9384
|
+
const badge = design.colors.component.badge;
|
|
9385
|
+
_iconContainerColors = {
|
|
9386
|
+
primary: extractBg(badge.primary.base, badge.primary.dark),
|
|
9387
|
+
secondary: "bg-purple-100 dark:bg-purple-900/30",
|
|
9388
|
+
// DS has no purple badge variant; local fallback
|
|
9389
|
+
success: extractBg(badge.success.base, badge.success.dark),
|
|
9390
|
+
warning: extractBg(badge.warning.base, badge.warning.dark),
|
|
9391
|
+
error: extractBg(badge.error.base, badge.error.dark),
|
|
9392
|
+
neutral: extractBg(badge.default.base, badge.default.dark)
|
|
9393
|
+
};
|
|
9394
|
+
}
|
|
9395
|
+
return _iconContainerColors;
|
|
9396
|
+
}
|
|
9033
9397
|
const IconContainer = ({
|
|
9034
9398
|
children,
|
|
9035
9399
|
size = "md",
|
|
@@ -9043,14 +9407,7 @@ const IconContainer = ({
|
|
|
9043
9407
|
lg: "w-16 h-16",
|
|
9044
9408
|
xl: "w-20 h-20"
|
|
9045
9409
|
};
|
|
9046
|
-
const variantClasses =
|
|
9047
|
-
primary: "bg-blue-100 dark:bg-blue-900/30",
|
|
9048
|
-
secondary: "bg-purple-100 dark:bg-purple-900/30",
|
|
9049
|
-
success: "bg-green-100 dark:bg-green-900/30",
|
|
9050
|
-
warning: "bg-yellow-100 dark:bg-yellow-900/30",
|
|
9051
|
-
error: "bg-red-100 dark:bg-red-900/30",
|
|
9052
|
-
neutral: "bg-gray-100 dark:bg-gray-800"
|
|
9053
|
-
};
|
|
9410
|
+
const variantClasses = getIconContainerColors();
|
|
9054
9411
|
const shapeClasses = {
|
|
9055
9412
|
square: "rounded-lg",
|
|
9056
9413
|
rounded: "rounded-2xl",
|
|
@@ -9070,6 +9427,27 @@ const IconContainer = ({
|
|
|
9070
9427
|
}
|
|
9071
9428
|
);
|
|
9072
9429
|
};
|
|
9430
|
+
let _gradientIconColors = null;
|
|
9431
|
+
function getGradientIconColors() {
|
|
9432
|
+
if (!_gradientIconColors) {
|
|
9433
|
+
let extractBg = function(base) {
|
|
9434
|
+
return base.split(" ").find(
|
|
9435
|
+
(c) => c.startsWith("bg-") && !c.includes("hover:") && !c.includes("active:")
|
|
9436
|
+
) || "";
|
|
9437
|
+
};
|
|
9438
|
+
const btn = design.colors.component.button;
|
|
9439
|
+
_gradientIconColors = {
|
|
9440
|
+
blue: extractBg(btn.primary.base),
|
|
9441
|
+
purple: "bg-purple-600",
|
|
9442
|
+
// DS has no purple button; local fallback
|
|
9443
|
+
green: extractBg(btn.success.base),
|
|
9444
|
+
orange: "bg-orange-600",
|
|
9445
|
+
// DS has no orange button; local fallback
|
|
9446
|
+
gray: "bg-gray-700 dark:bg-gray-600"
|
|
9447
|
+
};
|
|
9448
|
+
}
|
|
9449
|
+
return _gradientIconColors;
|
|
9450
|
+
}
|
|
9073
9451
|
const GradientIconContainer = ({
|
|
9074
9452
|
children,
|
|
9075
9453
|
size = "md",
|
|
@@ -9088,13 +9466,7 @@ const GradientIconContainer = ({
|
|
|
9088
9466
|
rounded: "rounded-xl",
|
|
9089
9467
|
circle: "rounded-full"
|
|
9090
9468
|
};
|
|
9091
|
-
const variantClasses =
|
|
9092
|
-
blue: "bg-blue-600",
|
|
9093
|
-
purple: "bg-purple-600",
|
|
9094
|
-
green: "bg-green-600",
|
|
9095
|
-
orange: "bg-orange-600",
|
|
9096
|
-
gray: "bg-gray-700 dark:bg-gray-600"
|
|
9097
|
-
};
|
|
9469
|
+
const variantClasses = getGradientIconColors();
|
|
9098
9470
|
const config = sizeConfig2[size];
|
|
9099
9471
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9100
9472
|
reactNative.View,
|
|
@@ -9175,7 +9547,7 @@ const PageSectionHeader = ({
|
|
|
9175
9547
|
}
|
|
9176
9548
|
),
|
|
9177
9549
|
loading && /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-center gap-2", children: [
|
|
9178
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color:
|
|
9550
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.ActivityIndicator, { size: "small", color: design.colors.raw.blue[500] }),
|
|
9179
9551
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9180
9552
|
reactNative.Text,
|
|
9181
9553
|
{
|
|
@@ -9227,6 +9599,7 @@ const styles = reactNative.StyleSheet.create({
|
|
|
9227
9599
|
// clipPath: 'inset(50%)', // Not supported in RN
|
|
9228
9600
|
}
|
|
9229
9601
|
});
|
|
9602
|
+
const { typography: typography$4 } = design.designTokens;
|
|
9230
9603
|
const BreadcrumbNav = ({
|
|
9231
9604
|
items,
|
|
9232
9605
|
separator = "/",
|
|
@@ -9239,14 +9612,42 @@ const BreadcrumbNav = ({
|
|
|
9239
9612
|
accessibilityRole: "none",
|
|
9240
9613
|
accessibilityLabel: "Breadcrumb navigation",
|
|
9241
9614
|
children: items.map((item, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(React__namespace.Fragment, { children: [
|
|
9242
|
-
index > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9243
|
-
|
|
9615
|
+
index > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9616
|
+
reactNative.Text,
|
|
9617
|
+
{
|
|
9618
|
+
className: cn(
|
|
9619
|
+
"text-gray-400 dark:text-gray-600",
|
|
9620
|
+
typography$4.size.sm
|
|
9621
|
+
),
|
|
9622
|
+
children: typeof separator === "string" ? separator : separator
|
|
9623
|
+
}
|
|
9624
|
+
),
|
|
9625
|
+
index === items.length - 1 ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9626
|
+
reactNative.Text,
|
|
9627
|
+
{
|
|
9628
|
+
className: cn(
|
|
9629
|
+
"text-gray-900 dark:text-white",
|
|
9630
|
+
typography$4.weight.medium,
|
|
9631
|
+
typography$4.size.sm
|
|
9632
|
+
),
|
|
9633
|
+
children: item.label
|
|
9634
|
+
}
|
|
9635
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9244
9636
|
reactNative.Pressable,
|
|
9245
9637
|
{
|
|
9246
9638
|
onPress: item.onPress,
|
|
9247
9639
|
accessibilityRole: "link",
|
|
9248
9640
|
accessibilityLabel: item.label,
|
|
9249
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9641
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9642
|
+
reactNative.Text,
|
|
9643
|
+
{
|
|
9644
|
+
className: cn(
|
|
9645
|
+
"text-blue-600 dark:text-blue-400",
|
|
9646
|
+
typography$4.size.sm
|
|
9647
|
+
),
|
|
9648
|
+
children: item.label
|
|
9649
|
+
}
|
|
9650
|
+
)
|
|
9250
9651
|
}
|
|
9251
9652
|
)
|
|
9252
9653
|
] }, index))
|
|
@@ -9325,7 +9726,8 @@ function Table({
|
|
|
9325
9726
|
reactNative.View,
|
|
9326
9727
|
{
|
|
9327
9728
|
className: cn(
|
|
9328
|
-
"flex-row
|
|
9729
|
+
"flex-row",
|
|
9730
|
+
design.ui.table.thead,
|
|
9329
9731
|
"border-b border-gray-200 dark:border-gray-700"
|
|
9330
9732
|
),
|
|
9331
9733
|
children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -9348,7 +9750,19 @@ function Table({
|
|
|
9348
9750
|
alignClasses[column.align || "left"]
|
|
9349
9751
|
),
|
|
9350
9752
|
children: [
|
|
9351
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9753
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9754
|
+
reactNative.Text,
|
|
9755
|
+
{
|
|
9756
|
+
className: cn(
|
|
9757
|
+
design.designTokens.typography.size.xs,
|
|
9758
|
+
design.designTokens.typography.weight.medium,
|
|
9759
|
+
"text-gray-700 dark:text-gray-300",
|
|
9760
|
+
design.designTokens.typography.transform.uppercase,
|
|
9761
|
+
design.designTokens.typography.tracking.wider
|
|
9762
|
+
),
|
|
9763
|
+
children: column.label
|
|
9764
|
+
}
|
|
9765
|
+
),
|
|
9352
9766
|
column.sortable && (sort == null ? void 0 : sort.column) === column.key && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-xs text-gray-500", children: sort.direction === "asc" ? "↑" : "↓" })
|
|
9353
9767
|
]
|
|
9354
9768
|
}
|
|
@@ -9358,7 +9772,7 @@ function Table({
|
|
|
9358
9772
|
))
|
|
9359
9773
|
}
|
|
9360
9774
|
),
|
|
9361
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className:
|
|
9775
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: design.ui.table.tr, children: data.length === 0 ? /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "px-4 py-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: emptyMessage }) }) : data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9362
9776
|
reactNative.Pressable,
|
|
9363
9777
|
{
|
|
9364
9778
|
onPress: () => onRowPress == null ? void 0 : onRowPress(row, rowIndex),
|
|
@@ -9366,7 +9780,7 @@ function Table({
|
|
|
9366
9780
|
className: cn(
|
|
9367
9781
|
"flex-row",
|
|
9368
9782
|
"border-b border-gray-200 dark:border-gray-700",
|
|
9369
|
-
striped && rowIndex % 2 === 1 &&
|
|
9783
|
+
striped && rowIndex % 2 === 1 && design.ui.table.trAlt
|
|
9370
9784
|
),
|
|
9371
9785
|
accessibilityRole: "button",
|
|
9372
9786
|
children: columns.map((column) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -9378,7 +9792,16 @@ function Table({
|
|
|
9378
9792
|
bordered && "border-r border-gray-200 dark:border-gray-700 last:border-r-0"
|
|
9379
9793
|
),
|
|
9380
9794
|
style: { width: column.width },
|
|
9381
|
-
children: column.render ? column.render(row, rowIndex) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9795
|
+
children: column.render ? column.render(row, rowIndex) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9796
|
+
reactNative.Text,
|
|
9797
|
+
{
|
|
9798
|
+
className: cn(
|
|
9799
|
+
design.designTokens.typography.size.sm,
|
|
9800
|
+
"text-gray-900 dark:text-white"
|
|
9801
|
+
),
|
|
9802
|
+
children: String(row[column.key] ?? "")
|
|
9803
|
+
}
|
|
9804
|
+
)
|
|
9382
9805
|
},
|
|
9383
9806
|
column.key
|
|
9384
9807
|
))
|
|
@@ -9473,7 +9896,7 @@ const Command = ({
|
|
|
9473
9896
|
value: searchQuery,
|
|
9474
9897
|
onChangeText: setSearchQuery,
|
|
9475
9898
|
placeholder,
|
|
9476
|
-
placeholderTextColor:
|
|
9899
|
+
placeholderTextColor: design.colors.raw.neutral[400],
|
|
9477
9900
|
className: "flex-1 text-gray-900 dark:text-white text-base",
|
|
9478
9901
|
autoCapitalize: "none",
|
|
9479
9902
|
autoCorrect: false,
|
|
@@ -9699,6 +10122,7 @@ const StandardPageLayout = ({
|
|
|
9699
10122
|
}) => {
|
|
9700
10123
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("flex-1", backgroundClassName), children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("flex-1", contentClassName), children }) });
|
|
9701
10124
|
};
|
|
10125
|
+
const { typography: typography$3 } = design.designTokens;
|
|
9702
10126
|
const StepList = ({
|
|
9703
10127
|
items,
|
|
9704
10128
|
type = "ordered",
|
|
@@ -9709,10 +10133,30 @@ const StepList = ({
|
|
|
9709
10133
|
const renderStepNumber = (index) => {
|
|
9710
10134
|
if (type === "ordered") {
|
|
9711
10135
|
if (variant === "enhanced") {
|
|
9712
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "w-6 h-6 bg-blue-600 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10136
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "w-6 h-6 bg-blue-600 rounded-full items-center justify-center mr-3", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10137
|
+
reactNative.Text,
|
|
10138
|
+
{
|
|
10139
|
+
className: cn(
|
|
10140
|
+
"text-white",
|
|
10141
|
+
typography$3.size.sm,
|
|
10142
|
+
typography$3.weight.medium
|
|
10143
|
+
),
|
|
10144
|
+
children: index + 1
|
|
10145
|
+
}
|
|
10146
|
+
) });
|
|
9713
10147
|
}
|
|
9714
10148
|
if (variant === "minimal") {
|
|
9715
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.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(
|
|
10149
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.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(
|
|
10150
|
+
reactNative.Text,
|
|
10151
|
+
{
|
|
10152
|
+
className: cn(
|
|
10153
|
+
"text-blue-600 dark:text-blue-400",
|
|
10154
|
+
typography$3.size.sm,
|
|
10155
|
+
typography$3.weight.medium
|
|
10156
|
+
),
|
|
10157
|
+
children: index + 1
|
|
10158
|
+
}
|
|
10159
|
+
) });
|
|
9716
10160
|
}
|
|
9717
10161
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.Text, { className: "text-gray-600 dark:text-gray-400 mr-2", children: [
|
|
9718
10162
|
index + 1,
|
|
@@ -9743,7 +10187,16 @@ const StepList = ({
|
|
|
9743
10187
|
typeof content === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-gray-600 dark:text-gray-400", children: content }) : content,
|
|
9744
10188
|
subItems && subItems.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "mt-2 ml-4 gap-1", children: subItems.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row", children: [
|
|
9745
10189
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-gray-500 dark:text-gray-500 mr-2", children: "•" }),
|
|
9746
|
-
typeof subItem === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10190
|
+
typeof subItem === "string" ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10191
|
+
reactNative.Text,
|
|
10192
|
+
{
|
|
10193
|
+
className: cn(
|
|
10194
|
+
typography$3.size.sm,
|
|
10195
|
+
"text-gray-500 dark:text-gray-500 flex-1"
|
|
10196
|
+
),
|
|
10197
|
+
children: subItem
|
|
10198
|
+
}
|
|
10199
|
+
) : subItem
|
|
9747
10200
|
] }, subIndex)) })
|
|
9748
10201
|
] })
|
|
9749
10202
|
]
|
|
@@ -9779,51 +10232,74 @@ const FeatureCard = ({
|
|
|
9779
10232
|
}) => {
|
|
9780
10233
|
const colorClasses2 = {
|
|
9781
10234
|
blue: "text-blue-600 dark:text-blue-400",
|
|
10235
|
+
// colors.raw.blue[600] / [400]
|
|
9782
10236
|
green: "text-green-600 dark:text-green-400",
|
|
10237
|
+
// colors.raw.green[600] / [400]
|
|
9783
10238
|
purple: "text-purple-600 dark:text-purple-400",
|
|
9784
10239
|
orange: "text-orange-600 dark:text-orange-400",
|
|
10240
|
+
// colors.raw.orange[600] / [400]
|
|
9785
10241
|
pink: "text-pink-600 dark:text-pink-400",
|
|
9786
10242
|
gray: "text-gray-600 dark:text-gray-400",
|
|
10243
|
+
// colors.raw.neutral[600] / [400]
|
|
9787
10244
|
red: "text-red-600 dark:text-red-400",
|
|
10245
|
+
// colors.raw.red[600] / [400]
|
|
9788
10246
|
indigo: "text-indigo-600 dark:text-indigo-400",
|
|
9789
10247
|
cyan: "text-cyan-600 dark:text-cyan-400",
|
|
9790
10248
|
emerald: "text-emerald-600 dark:text-emerald-400"
|
|
9791
10249
|
};
|
|
9792
10250
|
const borderColorClasses = {
|
|
9793
10251
|
green: "border-l-4 border-l-green-500",
|
|
10252
|
+
// colors.raw.green[500]
|
|
9794
10253
|
blue: "border-l-4 border-l-blue-500",
|
|
10254
|
+
// colors.raw.blue[500]
|
|
9795
10255
|
purple: "border-l-4 border-l-purple-500",
|
|
10256
|
+
// colors.raw.purple[500]
|
|
9796
10257
|
orange: "border-l-4 border-l-orange-500",
|
|
10258
|
+
// colors.raw.orange[500]
|
|
9797
10259
|
red: "border-l-4 border-l-red-500",
|
|
10260
|
+
// colors.raw.red[500]
|
|
9798
10261
|
indigo: "border-l-4 border-l-indigo-500",
|
|
9799
10262
|
cyan: "border-l-4 border-l-cyan-500",
|
|
9800
10263
|
emerald: "border-l-4 border-l-emerald-500",
|
|
9801
10264
|
pink: "border-l-4 border-l-pink-500",
|
|
9802
10265
|
gray: "border-l-4 border-l-gray-500"
|
|
10266
|
+
// colors.raw.neutral[500]
|
|
9803
10267
|
};
|
|
9804
10268
|
const iconBackgroundClasses = {
|
|
9805
10269
|
green: "bg-green-100 dark:bg-green-900/20",
|
|
10270
|
+
// colors.raw.green[100] / [900]
|
|
9806
10271
|
blue: "bg-blue-100 dark:bg-blue-900/20",
|
|
10272
|
+
// colors.raw.blue[100] / [900]
|
|
9807
10273
|
purple: "bg-purple-100 dark:bg-purple-900/20",
|
|
10274
|
+
// colors.raw.purple[100] / [900]
|
|
9808
10275
|
orange: "bg-orange-100 dark:bg-orange-900/20",
|
|
10276
|
+
// colors.raw.orange[100] / [900]
|
|
9809
10277
|
red: "bg-red-100 dark:bg-red-900/20",
|
|
10278
|
+
// colors.raw.red[100] / [900]
|
|
9810
10279
|
indigo: "bg-indigo-100 dark:bg-indigo-900/20",
|
|
9811
10280
|
cyan: "bg-cyan-100 dark:bg-cyan-900/20",
|
|
9812
10281
|
emerald: "bg-emerald-100 dark:bg-emerald-900/20",
|
|
9813
10282
|
pink: "bg-pink-100 dark:bg-pink-900/20",
|
|
9814
10283
|
gray: "bg-gray-100 dark:bg-gray-900/20"
|
|
10284
|
+
// colors.raw.neutral[100] / [900]
|
|
9815
10285
|
};
|
|
9816
10286
|
const bulletColorClasses = {
|
|
9817
10287
|
green: "bg-green-500",
|
|
10288
|
+
// colors.raw.green[500]
|
|
9818
10289
|
blue: "bg-blue-500",
|
|
10290
|
+
// colors.raw.blue[500]
|
|
9819
10291
|
purple: "bg-purple-500",
|
|
10292
|
+
// colors.raw.purple[500]
|
|
9820
10293
|
orange: "bg-orange-500",
|
|
10294
|
+
// colors.raw.orange[500]
|
|
9821
10295
|
red: "bg-red-500",
|
|
10296
|
+
// colors.raw.red[500]
|
|
9822
10297
|
indigo: "bg-indigo-500",
|
|
9823
10298
|
cyan: "bg-cyan-500",
|
|
9824
10299
|
emerald: "bg-emerald-500",
|
|
9825
10300
|
pink: "bg-pink-500",
|
|
9826
10301
|
gray: "bg-gray-500"
|
|
10302
|
+
// colors.raw.neutral[500]
|
|
9827
10303
|
};
|
|
9828
10304
|
const CardContent2 = () => /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
9829
10305
|
borderColor ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -9836,8 +10312,28 @@ const FeatureCard = ({
|
|
|
9836
10312
|
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: colorClasses2[color], children: icon })
|
|
9837
10313
|
}
|
|
9838
10314
|
) : /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("mb-4", colorClasses2[color]), children: icon }),
|
|
9839
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9840
|
-
|
|
10315
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10316
|
+
reactNative.Text,
|
|
10317
|
+
{
|
|
10318
|
+
className: cn(
|
|
10319
|
+
design.designTokens.typography.size.xl,
|
|
10320
|
+
design.designTokens.typography.weight.semibold,
|
|
10321
|
+
"text-gray-900 dark:text-white mb-3"
|
|
10322
|
+
),
|
|
10323
|
+
children: title
|
|
10324
|
+
}
|
|
10325
|
+
),
|
|
10326
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10327
|
+
reactNative.Text,
|
|
10328
|
+
{
|
|
10329
|
+
className: cn(
|
|
10330
|
+
design.designTokens.typography.size.base,
|
|
10331
|
+
design.designTokens.typography.leading.relaxed,
|
|
10332
|
+
"text-gray-600 dark:text-gray-300 mb-4"
|
|
10333
|
+
),
|
|
10334
|
+
children: description
|
|
10335
|
+
}
|
|
10336
|
+
),
|
|
9841
10337
|
cta && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "mt-3 mb-4", children: cta }),
|
|
9842
10338
|
benefits && benefits.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "gap-2 mb-4", children: benefits.map((benefit, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-start", children: [
|
|
9843
10339
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -9849,15 +10345,44 @@ const FeatureCard = ({
|
|
|
9849
10345
|
)
|
|
9850
10346
|
}
|
|
9851
10347
|
),
|
|
9852
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10348
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10349
|
+
reactNative.Text,
|
|
10350
|
+
{
|
|
10351
|
+
className: cn(
|
|
10352
|
+
"flex-1",
|
|
10353
|
+
design.designTokens.typography.size.sm,
|
|
10354
|
+
"text-gray-600 dark:text-gray-400"
|
|
10355
|
+
),
|
|
10356
|
+
children: benefit
|
|
10357
|
+
}
|
|
10358
|
+
)
|
|
9853
10359
|
] }, index)) }),
|
|
9854
10360
|
metrics && Object.keys(metrics).length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "flex-row flex-wrap gap-4 mt-4", children: Object.entries(metrics).map(([key, value], index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
9855
10361
|
reactNative.View,
|
|
9856
10362
|
{
|
|
9857
10363
|
className: "flex-1 min-w-[80px] items-center p-3 bg-gray-50 dark:bg-gray-700/50 rounded-lg",
|
|
9858
10364
|
children: [
|
|
9859
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
9860
|
-
|
|
10365
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10366
|
+
reactNative.Text,
|
|
10367
|
+
{
|
|
10368
|
+
className: cn(
|
|
10369
|
+
design.designTokens.typography.size.lg,
|
|
10370
|
+
design.designTokens.typography.weight.bold,
|
|
10371
|
+
colorClasses2[color]
|
|
10372
|
+
),
|
|
10373
|
+
children: value
|
|
10374
|
+
}
|
|
10375
|
+
),
|
|
10376
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10377
|
+
reactNative.Text,
|
|
10378
|
+
{
|
|
10379
|
+
className: cn(
|
|
10380
|
+
design.designTokens.typography.size.xs,
|
|
10381
|
+
"text-gray-500 dark:text-gray-400 mt-1"
|
|
10382
|
+
),
|
|
10383
|
+
children: key
|
|
10384
|
+
}
|
|
10385
|
+
)
|
|
9861
10386
|
]
|
|
9862
10387
|
},
|
|
9863
10388
|
index
|
|
@@ -9903,10 +10428,10 @@ const FeatureGrid = ({
|
|
|
9903
10428
|
lg: "w-20 h-20"
|
|
9904
10429
|
};
|
|
9905
10430
|
const badgeVariants = {
|
|
9906
|
-
success:
|
|
9907
|
-
info:
|
|
9908
|
-
warning:
|
|
9909
|
-
default:
|
|
10431
|
+
success: `${design.colors.component.badge.success.base} ${design.colors.component.badge.success.dark}`,
|
|
10432
|
+
info: `${design.colors.component.badge.primary.base} ${design.colors.component.badge.primary.dark}`,
|
|
10433
|
+
warning: `${design.colors.component.badge.attention.base} ${design.colors.component.badge.attention.dark}`,
|
|
10434
|
+
default: `${design.colors.component.badge.default.base} ${design.colors.component.badge.default.dark}`
|
|
9910
10435
|
};
|
|
9911
10436
|
const renderFeature = (feature, index) => {
|
|
9912
10437
|
const content = /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -9914,7 +10439,7 @@ const FeatureGrid = ({
|
|
|
9914
10439
|
{
|
|
9915
10440
|
className: cn(
|
|
9916
10441
|
"items-center",
|
|
9917
|
-
cardVariant === "card" && "
|
|
10442
|
+
cardVariant === "card" && `${design.getCardVariantColors("elevated")} rounded-2xl p-6`,
|
|
9918
10443
|
cardVariant === "minimal" && "gap-4"
|
|
9919
10444
|
),
|
|
9920
10445
|
children: [
|
|
@@ -9998,14 +10523,14 @@ const CTASection = ({
|
|
|
9998
10523
|
lg: "py-16 px-8"
|
|
9999
10524
|
};
|
|
10000
10525
|
const titleSizeClasses = {
|
|
10001
|
-
sm: "
|
|
10002
|
-
md: "
|
|
10003
|
-
lg: "
|
|
10526
|
+
sm: design.designTokens.typography.size["2xl"],
|
|
10527
|
+
md: design.designTokens.typography.size["3xl"],
|
|
10528
|
+
lg: design.designTokens.typography.size["4xl"]
|
|
10004
10529
|
};
|
|
10005
10530
|
const descriptionSizeClasses = {
|
|
10006
|
-
sm:
|
|
10007
|
-
md:
|
|
10008
|
-
lg:
|
|
10531
|
+
sm: design.designTokens.typography.size.base,
|
|
10532
|
+
md: design.designTokens.typography.size.lg,
|
|
10533
|
+
lg: design.designTokens.typography.size.xl
|
|
10009
10534
|
};
|
|
10010
10535
|
const textColorClass = textColor === "light" ? "text-white" : "text-gray-900";
|
|
10011
10536
|
const renderButton = (button, isPrimary) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -10085,8 +10610,10 @@ const PromotionalBanner = ({
|
|
|
10085
10610
|
reactNative.View,
|
|
10086
10611
|
{
|
|
10087
10612
|
className: cn(
|
|
10088
|
-
|
|
10089
|
-
|
|
10613
|
+
// Derive green palette from DS alert.success colors
|
|
10614
|
+
design.colors.component.alert.success.base,
|
|
10615
|
+
design.colors.component.alert.success.dark,
|
|
10616
|
+
"border-b",
|
|
10090
10617
|
isProminent && "border-b-2",
|
|
10091
10618
|
className
|
|
10092
10619
|
),
|
|
@@ -10137,6 +10664,7 @@ const PromotionalBanner = ({
|
|
|
10137
10664
|
}
|
|
10138
10665
|
);
|
|
10139
10666
|
};
|
|
10667
|
+
const { typography: typography$2 } = design.designTokens;
|
|
10140
10668
|
if (reactNative.Platform.OS === "android" && reactNative.UIManager.setLayoutAnimationEnabledExperimental) {
|
|
10141
10669
|
reactNative.UIManager.setLayoutAnimationEnabledExperimental(true);
|
|
10142
10670
|
}
|
|
@@ -10186,7 +10714,8 @@ const CollapsibleSection = ({
|
|
|
10186
10714
|
reactNative.Text,
|
|
10187
10715
|
{
|
|
10188
10716
|
className: cn(
|
|
10189
|
-
|
|
10717
|
+
typography$2.size.base,
|
|
10718
|
+
typography$2.weight.medium,
|
|
10190
10719
|
isSelected && !selectedSubsection ? "text-blue-700 dark:text-blue-300" : "text-gray-700 dark:text-gray-300"
|
|
10191
10720
|
),
|
|
10192
10721
|
children: title
|
|
@@ -10201,7 +10730,7 @@ const CollapsibleSection = ({
|
|
|
10201
10730
|
className: "p-2 rounded-md",
|
|
10202
10731
|
accessibilityRole: "button",
|
|
10203
10732
|
accessibilityLabel: isExpanded ? "Collapse" : "Expand",
|
|
10204
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Animated.View, { style: { transform: [{ rotate: rotation }] }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: "text-gray-500
|
|
10733
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Animated.View, { style: { transform: [{ rotate: rotation }] }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn("text-gray-500", typography$2.size.lg), children: "›" }) })
|
|
10205
10734
|
}
|
|
10206
10735
|
)
|
|
10207
10736
|
] }),
|
|
@@ -10221,7 +10750,7 @@ const CollapsibleSection = ({
|
|
|
10221
10750
|
reactNative.Text,
|
|
10222
10751
|
{
|
|
10223
10752
|
className: cn(
|
|
10224
|
-
|
|
10753
|
+
typography$2.size.sm,
|
|
10225
10754
|
selectedSubsection === subsection.id ? "text-blue-700 dark:text-blue-300" : "text-gray-600 dark:text-gray-400"
|
|
10226
10755
|
),
|
|
10227
10756
|
children: subsection.title
|
|
@@ -10232,6 +10761,19 @@ const CollapsibleSection = ({
|
|
|
10232
10761
|
] }, subsection.id)) })
|
|
10233
10762
|
] });
|
|
10234
10763
|
};
|
|
10764
|
+
let _cardColors = null;
|
|
10765
|
+
function getDashboardCardColors() {
|
|
10766
|
+
if (!_cardColors) {
|
|
10767
|
+
_cardColors = {
|
|
10768
|
+
default: design.getCardVariantColors("default"),
|
|
10769
|
+
primary: design.getCardVariantColors("info"),
|
|
10770
|
+
success: design.getCardVariantColors("success"),
|
|
10771
|
+
warning: design.getCardVariantColors("warning"),
|
|
10772
|
+
danger: design.getCardVariantColors("error")
|
|
10773
|
+
};
|
|
10774
|
+
}
|
|
10775
|
+
return _cardColors;
|
|
10776
|
+
}
|
|
10235
10777
|
const DashboardStatCard = ({
|
|
10236
10778
|
title,
|
|
10237
10779
|
value,
|
|
@@ -10241,13 +10783,7 @@ const DashboardStatCard = ({
|
|
|
10241
10783
|
variant = "default",
|
|
10242
10784
|
className
|
|
10243
10785
|
}) => {
|
|
10244
|
-
const variantClasses =
|
|
10245
|
-
default: "bg-white dark:bg-gray-900",
|
|
10246
|
-
primary: "bg-blue-50 dark:bg-blue-900/20",
|
|
10247
|
-
success: "bg-green-50 dark:bg-green-900/20",
|
|
10248
|
-
warning: "bg-yellow-50 dark:bg-yellow-900/20",
|
|
10249
|
-
danger: "bg-red-50 dark:bg-red-900/20"
|
|
10250
|
-
};
|
|
10786
|
+
const variantClasses = getDashboardCardColors();
|
|
10251
10787
|
const isPositive = change !== void 0 && change >= 0;
|
|
10252
10788
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
10253
10789
|
reactNative.View,
|
|
@@ -10259,16 +10795,29 @@ const DashboardStatCard = ({
|
|
|
10259
10795
|
),
|
|
10260
10796
|
children: [
|
|
10261
10797
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-start justify-between mb-2", children: [
|
|
10262
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10798
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10799
|
+
reactNative.Text,
|
|
10800
|
+
{
|
|
10801
|
+
className: `${design.designTokens.typography.size.sm} ${design.designTokens.typography.weight.medium} text-gray-600 dark:text-gray-400`,
|
|
10802
|
+
children: title
|
|
10803
|
+
}
|
|
10804
|
+
),
|
|
10263
10805
|
icon && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: "text-gray-400 dark:text-gray-600", children: icon })
|
|
10264
10806
|
] }),
|
|
10265
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10807
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10808
|
+
reactNative.Text,
|
|
10809
|
+
{
|
|
10810
|
+
className: `${design.designTokens.typography.size["3xl"]} ${design.designTokens.typography.weight.bold} text-gray-900 dark:text-white`,
|
|
10811
|
+
children: value
|
|
10812
|
+
}
|
|
10813
|
+
),
|
|
10266
10814
|
change !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: "flex-row items-center gap-1 mt-2", children: [
|
|
10267
10815
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
10268
10816
|
reactNative.Text,
|
|
10269
10817
|
{
|
|
10270
10818
|
className: cn(
|
|
10271
|
-
|
|
10819
|
+
design.designTokens.typography.size.sm,
|
|
10820
|
+
design.designTokens.typography.weight.medium,
|
|
10272
10821
|
isPositive ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400"
|
|
10273
10822
|
),
|
|
10274
10823
|
children: [
|
|
@@ -10279,37 +10828,40 @@ const DashboardStatCard = ({
|
|
|
10279
10828
|
]
|
|
10280
10829
|
}
|
|
10281
10830
|
),
|
|
10282
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10831
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10832
|
+
reactNative.Text,
|
|
10833
|
+
{
|
|
10834
|
+
className: `${design.designTokens.typography.size.xs} text-gray-500 dark:text-gray-400`,
|
|
10835
|
+
children: changePeriod
|
|
10836
|
+
}
|
|
10837
|
+
)
|
|
10283
10838
|
] })
|
|
10284
10839
|
]
|
|
10285
10840
|
}
|
|
10286
10841
|
);
|
|
10287
10842
|
};
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
className
|
|
10297
|
-
}) => {
|
|
10298
|
-
const variantClasses = {
|
|
10843
|
+
let _statColors = null;
|
|
10844
|
+
function getStatColors() {
|
|
10845
|
+
if (!_statColors) _statColors = buildStatColors();
|
|
10846
|
+
return _statColors;
|
|
10847
|
+
}
|
|
10848
|
+
function buildStatColors() {
|
|
10849
|
+
const alert2 = design.colors.component.alert;
|
|
10850
|
+
return {
|
|
10299
10851
|
primary: {
|
|
10300
|
-
value:
|
|
10852
|
+
value: `${alert2.info.icon}`,
|
|
10301
10853
|
label: "text-blue-600/70 dark:text-blue-400/70"
|
|
10302
10854
|
},
|
|
10303
10855
|
success: {
|
|
10304
|
-
value:
|
|
10856
|
+
value: `${alert2.success.icon}`,
|
|
10305
10857
|
label: "text-green-600/70 dark:text-green-400/70"
|
|
10306
10858
|
},
|
|
10307
10859
|
warning: {
|
|
10308
|
-
value:
|
|
10309
|
-
label: "text-
|
|
10860
|
+
value: `${alert2.warning.icon}`,
|
|
10861
|
+
label: "text-orange-600/70 dark:text-orange-400/70"
|
|
10310
10862
|
},
|
|
10311
10863
|
danger: {
|
|
10312
|
-
value:
|
|
10864
|
+
value: `${alert2.error.icon}`,
|
|
10313
10865
|
label: "text-red-600/70 dark:text-red-400/70"
|
|
10314
10866
|
},
|
|
10315
10867
|
neutral: {
|
|
@@ -10321,11 +10873,35 @@ const StatDisplay = ({
|
|
|
10321
10873
|
label: "text-white/70"
|
|
10322
10874
|
}
|
|
10323
10875
|
};
|
|
10876
|
+
}
|
|
10877
|
+
const StatDisplay = ({
|
|
10878
|
+
value,
|
|
10879
|
+
label,
|
|
10880
|
+
variant = "neutral",
|
|
10881
|
+
size = "md",
|
|
10882
|
+
align = "center",
|
|
10883
|
+
icon,
|
|
10884
|
+
iconPosition = "top",
|
|
10885
|
+
className
|
|
10886
|
+
}) => {
|
|
10887
|
+
const variantClasses = getStatColors();
|
|
10324
10888
|
const sizeClasses = {
|
|
10325
|
-
sm: {
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10889
|
+
sm: {
|
|
10890
|
+
value: design.designTokens.typography.size.xl,
|
|
10891
|
+
label: design.designTokens.typography.size.xs
|
|
10892
|
+
},
|
|
10893
|
+
md: {
|
|
10894
|
+
value: design.designTokens.typography.size["2xl"],
|
|
10895
|
+
label: design.designTokens.typography.size.sm
|
|
10896
|
+
},
|
|
10897
|
+
lg: {
|
|
10898
|
+
value: design.designTokens.typography.size["3xl"],
|
|
10899
|
+
label: design.designTokens.typography.size.base
|
|
10900
|
+
},
|
|
10901
|
+
xl: {
|
|
10902
|
+
value: design.designTokens.typography.size["4xl"],
|
|
10903
|
+
label: design.designTokens.typography.size.lg
|
|
10904
|
+
}
|
|
10329
10905
|
};
|
|
10330
10906
|
const alignClasses = {
|
|
10331
10907
|
left: "items-start",
|
|
@@ -10349,7 +10925,11 @@ const StatDisplay = ({
|
|
|
10349
10925
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10350
10926
|
reactNative.Text,
|
|
10351
10927
|
{
|
|
10352
|
-
className: cn(
|
|
10928
|
+
className: cn(
|
|
10929
|
+
design.designTokens.typography.weight.bold,
|
|
10930
|
+
sizeConfig2.value,
|
|
10931
|
+
variantConfig2.value
|
|
10932
|
+
),
|
|
10353
10933
|
children: value
|
|
10354
10934
|
}
|
|
10355
10935
|
),
|
|
@@ -10361,10 +10941,21 @@ const StatDisplay = ({
|
|
|
10361
10941
|
}
|
|
10362
10942
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(reactNative.View, { className: cn(alignClasses[align], className), children: [
|
|
10363
10943
|
icon && iconPosition === "top" && /* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.View, { className: cn("mb-2", variantConfig2.value), children: icon }),
|
|
10364
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10944
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
10945
|
+
reactNative.Text,
|
|
10946
|
+
{
|
|
10947
|
+
className: cn(
|
|
10948
|
+
design.designTokens.typography.weight.bold,
|
|
10949
|
+
sizeConfig2.value,
|
|
10950
|
+
variantConfig2.value
|
|
10951
|
+
),
|
|
10952
|
+
children: value
|
|
10953
|
+
}
|
|
10954
|
+
),
|
|
10365
10955
|
/* @__PURE__ */ jsxRuntimeExports.jsx(reactNative.Text, { className: cn(sizeConfig2.label, variantConfig2.label), children: label })
|
|
10366
10956
|
] });
|
|
10367
10957
|
};
|
|
10958
|
+
const { typography: typography$1 } = design.designTokens;
|
|
10368
10959
|
const KeyValuePair = ({
|
|
10369
10960
|
label,
|
|
10370
10961
|
value,
|
|
@@ -10378,9 +10969,13 @@ const KeyValuePair = ({
|
|
|
10378
10969
|
className
|
|
10379
10970
|
}) => {
|
|
10380
10971
|
const sizeClasses = {
|
|
10381
|
-
sm: { label:
|
|
10382
|
-
md: {
|
|
10383
|
-
|
|
10972
|
+
sm: { label: typography$1.size.sm, value: typography$1.size.sm, gap: "gap-1" },
|
|
10973
|
+
md: {
|
|
10974
|
+
label: typography$1.size.base,
|
|
10975
|
+
value: typography$1.size.base,
|
|
10976
|
+
gap: "gap-2"
|
|
10977
|
+
},
|
|
10978
|
+
lg: { label: typography$1.size.lg, value: typography$1.size.lg, gap: "gap-3" }
|
|
10384
10979
|
};
|
|
10385
10980
|
const labelWidthStyles = {
|
|
10386
10981
|
auto: void 0,
|
|
@@ -10396,12 +10991,12 @@ const KeyValuePair = ({
|
|
|
10396
10991
|
const labelVariantClasses = {
|
|
10397
10992
|
default: "text-gray-700 dark:text-gray-300",
|
|
10398
10993
|
muted: "text-gray-600 dark:text-gray-400",
|
|
10399
|
-
strong:
|
|
10994
|
+
strong: `text-gray-900 dark:text-gray-100 ${typography$1.weight.semibold}`
|
|
10400
10995
|
};
|
|
10401
10996
|
const valueVariantClasses = {
|
|
10402
10997
|
default: "text-gray-900 dark:text-gray-100",
|
|
10403
10998
|
muted: "text-gray-600 dark:text-gray-400",
|
|
10404
|
-
strong:
|
|
10999
|
+
strong: `text-gray-900 dark:text-gray-100 ${typography$1.weight.semibold}`,
|
|
10405
11000
|
primary: "text-blue-600 dark:text-blue-400"
|
|
10406
11001
|
};
|
|
10407
11002
|
const sizeConfig2 = sizeClasses[size];
|
|
@@ -10439,6 +11034,7 @@ const KeyValuePair = ({
|
|
|
10439
11034
|
}
|
|
10440
11035
|
);
|
|
10441
11036
|
};
|
|
11037
|
+
const { typography } = design.designTokens;
|
|
10442
11038
|
const SmartLink = ({
|
|
10443
11039
|
to,
|
|
10444
11040
|
href,
|
|
@@ -10459,9 +11055,9 @@ const SmartLink = ({
|
|
|
10459
11055
|
inherit: "text-inherit"
|
|
10460
11056
|
};
|
|
10461
11057
|
const sizeClasses = {
|
|
10462
|
-
sm:
|
|
10463
|
-
default:
|
|
10464
|
-
lg:
|
|
11058
|
+
sm: typography.size.sm,
|
|
11059
|
+
default: typography.size.base,
|
|
11060
|
+
lg: typography.size.lg
|
|
10465
11061
|
};
|
|
10466
11062
|
const handlePress = async () => {
|
|
10467
11063
|
if (disabled || !destination) return;
|