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