@beyondcorp/beyond-ui-native 0.1.0 → 0.1.1

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.js CHANGED
@@ -67,6 +67,7 @@ __export(src_exports, {
67
67
  Dialog: () => Dialog,
68
68
  DialogClose: () => DialogClose,
69
69
  DialogContent: () => DialogContent,
70
+ DialogContext: () => DialogContext,
70
71
  DialogDescription: () => DialogDescription,
71
72
  DialogFooter: () => DialogFooter,
72
73
  DialogHeader: () => DialogHeader,
@@ -95,6 +96,7 @@ __export(src_exports, {
95
96
  Switch: () => Switch,
96
97
  Tabs: () => Tabs,
97
98
  TabsContent: () => TabsContent,
99
+ TabsContext: () => TabsContext,
98
100
  TabsList: () => TabsList,
99
101
  TabsTrigger: () => TabsTrigger,
100
102
  Text: () => Text2,
@@ -121,6 +123,8 @@ __export(src_exports, {
121
123
  textVariants: () => textVariants,
122
124
  tokens: () => tokens,
123
125
  useBeyondUI: () => useBeyondUI,
126
+ useDialogContext: () => useDialogContext,
127
+ useTabsContext: () => useTabsContext,
124
128
  useToast: () => useToast
125
129
  });
126
130
  module.exports = __toCommonJS(src_exports);
@@ -819,29 +823,53 @@ AvatarFallback.displayName = "Avatar.Fallback";
819
823
 
820
824
  // src/components/switch/switch.tsx
821
825
  var React10 = __toESM(require("react"));
822
- var SwitchPrimitive = __toESM(require("@rn-primitives/switch"));
826
+ var import_react_native11 = require("react-native");
823
827
  var import_jsx_runtime11 = require("react/jsx-runtime");
824
- var Switch = React10.forwardRef(function Switch2({ className, thumbClassName, onCheckedChange, ...props }, ref) {
828
+ var Switch = React10.forwardRef(function Switch2({
829
+ checked: controlledChecked,
830
+ defaultChecked = false,
831
+ onCheckedChange,
832
+ disabled = false,
833
+ className,
834
+ thumbClassName,
835
+ onPress,
836
+ ...props
837
+ }, ref) {
838
+ const [uncontrolledChecked, setUncontrolledChecked] = React10.useState(defaultChecked);
839
+ const isControlled = controlledChecked !== void 0;
840
+ const isChecked = isControlled ? controlledChecked : uncontrolledChecked;
841
+ const handlePress = (e) => {
842
+ if (disabled) return;
843
+ const nextChecked = !isChecked;
844
+ if (!isControlled) {
845
+ setUncontrolledChecked(nextChecked);
846
+ }
847
+ onCheckedChange?.(nextChecked);
848
+ onPress?.(e);
849
+ };
825
850
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
826
- SwitchPrimitive.Root,
851
+ import_react_native11.Pressable,
827
852
  {
828
853
  ref,
829
- onCheckedChange: onCheckedChange ?? (() => {
830
- }),
854
+ role: "switch",
855
+ accessibilityRole: "switch",
856
+ accessibilityState: { checked: isChecked, disabled: !!disabled },
857
+ disabled,
858
+ onPress: handlePress,
831
859
  className: cn(
832
860
  "h-7 w-12 shrink-0 flex-row items-center rounded-full p-0.5 transition-colors",
833
- "bg-neutral-300 dark:bg-neutral-700 web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-primary-500",
834
- props.checked ? "bg-primary-600 dark:bg-primary-600" : "bg-neutral-300 dark:bg-neutral-700",
835
- props.disabled && "opacity-50",
861
+ isChecked ? "bg-primary-600 dark:bg-primary-600" : "bg-neutral-300 dark:bg-neutral-700",
862
+ disabled && "opacity-50",
836
863
  className
837
864
  ),
838
865
  ...props,
839
866
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
840
- SwitchPrimitive.Thumb,
867
+ import_react_native11.View,
841
868
  {
869
+ role: "presentation",
842
870
  className: cn(
843
- "h-6 w-6 rounded-full bg-white shadow-md transition-transform",
844
- props.checked ? "translate-x-5" : "translate-x-0",
871
+ "h-6 w-6 rounded-full bg-white shadow-sm transition-transform",
872
+ isChecked ? "translate-x-5" : "translate-x-0",
845
873
  thumbClassName
846
874
  )
847
875
  }
@@ -853,42 +881,63 @@ Switch.displayName = "Switch";
853
881
 
854
882
  // src/components/checkbox/checkbox.tsx
855
883
  var React11 = __toESM(require("react"));
856
- var import_react_native11 = require("react-native");
857
- var CheckboxPrimitive = __toESM(require("@rn-primitives/checkbox"));
884
+ var import_react_native12 = require("react-native");
858
885
  var import_jsx_runtime12 = require("react/jsx-runtime");
859
- var Checkbox = React11.forwardRef(function Checkbox2({ className, indicatorClassName, label, labelClassName, ...props }, ref) {
886
+ var Checkbox = React11.forwardRef(function Checkbox2({
887
+ checked: controlledChecked,
888
+ defaultChecked = false,
889
+ onCheckedChange,
890
+ disabled = false,
891
+ className,
892
+ indicatorClassName,
893
+ label,
894
+ labelClassName,
895
+ onPress,
896
+ ...props
897
+ }, ref) {
898
+ const [uncontrolledChecked, setUncontrolledChecked] = React11.useState(defaultChecked);
899
+ const isControlled = controlledChecked !== void 0;
900
+ const isChecked = isControlled ? controlledChecked : uncontrolledChecked;
901
+ const handlePress = (e) => {
902
+ if (disabled) return;
903
+ const nextChecked = !isChecked;
904
+ if (!isControlled) {
905
+ setUncontrolledChecked(nextChecked);
906
+ }
907
+ onCheckedChange?.(nextChecked);
908
+ onPress?.(e);
909
+ };
860
910
  const content = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
861
- CheckboxPrimitive.Root,
911
+ import_react_native12.Pressable,
862
912
  {
863
913
  ref,
914
+ role: "checkbox",
915
+ accessibilityRole: "checkbox",
916
+ accessibilityState: { checked: isChecked, disabled: !!disabled },
917
+ disabled,
918
+ onPress: handlePress,
864
919
  className: cn(
865
920
  "h-6 w-6 shrink-0 items-center justify-center rounded-md border border-neutral-300 dark:border-neutral-700 bg-white dark:bg-neutral-900",
866
- props.checked && "bg-primary-600 border-primary-600 dark:bg-primary-600 dark:border-primary-600",
867
- props.disabled && "opacity-50",
921
+ isChecked && "bg-primary-600 border-primary-600 dark:bg-primary-600 dark:border-primary-600",
922
+ disabled && "opacity-50",
868
923
  className
869
924
  ),
870
925
  ...props,
871
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
872
- CheckboxPrimitive.Indicator,
873
- {
874
- className: cn("items-center justify-center", indicatorClassName),
875
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native11.Text, { className: "text-white text-xs font-bold leading-none", children: "\u2713" })
876
- }
877
- )
926
+ children: isChecked ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native12.View, { className: cn("items-center justify-center", indicatorClassName), children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_react_native12.Text, { className: "text-white text-xs font-bold leading-none", children: "\u2713" }) }) : null
878
927
  }
879
928
  );
880
929
  if (!label) {
881
930
  return content;
882
931
  }
883
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native11.View, { className: "flex-row items-center gap-2.5", children: [
932
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_react_native12.View, { className: "flex-row items-center gap-2.5", children: [
884
933
  content,
885
934
  /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
886
- import_react_native11.Text,
935
+ import_react_native12.Text,
887
936
  {
888
- onPress: props.onCheckedChange ? () => props.onCheckedChange(!props.checked) : void 0,
937
+ onPress: !disabled ? handlePress : void 0,
889
938
  className: cn(
890
939
  "text-sm font-medium text-neutral-800 dark:text-neutral-200",
891
- props.disabled && "opacity-50",
940
+ disabled && "opacity-50",
892
941
  labelClassName
893
942
  ),
894
943
  children: label
@@ -900,7 +949,7 @@ Checkbox.displayName = "Checkbox";
900
949
 
901
950
  // src/components/radio/radio.tsx
902
951
  var React12 = __toESM(require("react"));
903
- var import_react_native12 = require("react-native");
952
+ var import_react_native13 = require("react-native");
904
953
  var import_jsx_runtime13 = require("react/jsx-runtime");
905
954
  var RadioGroupContext = React12.createContext({});
906
955
  function RadioGroup({
@@ -927,7 +976,7 @@ function RadioGroup({
927
976
  onValueChange: handleValueChange,
928
977
  disabled
929
978
  },
930
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native12.View, { className: cn("gap-3", className), ...props, children })
979
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_react_native13.View, { className: cn("gap-3", className), ...props, children })
931
980
  }
932
981
  );
933
982
  }
@@ -948,7 +997,7 @@ function Radio({
948
997
  }
949
998
  };
950
999
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
951
- import_react_native12.Pressable,
1000
+ import_react_native13.Pressable,
952
1001
  {
953
1002
  onPress: handlePress,
954
1003
  disabled: isDisabled,
@@ -957,7 +1006,7 @@ function Radio({
957
1006
  className: cn("flex-row items-center gap-2.5", isDisabled && "opacity-50"),
958
1007
  children: [
959
1008
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
960
- import_react_native12.View,
1009
+ import_react_native13.View,
961
1010
  {
962
1011
  className: cn(
963
1012
  "h-5 w-5 rounded-full border border-neutral-300 dark:border-neutral-700 items-center justify-center bg-white dark:bg-neutral-900",
@@ -965,7 +1014,7 @@ function Radio({
965
1014
  className
966
1015
  ),
967
1016
  children: isSelected ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
968
- import_react_native12.View,
1017
+ import_react_native13.View,
969
1018
  {
970
1019
  className: cn(
971
1020
  "h-2.5 w-2.5 rounded-full bg-primary-600 dark:bg-primary-600",
@@ -976,7 +1025,7 @@ function Radio({
976
1025
  }
977
1026
  ),
978
1027
  label ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
979
- import_react_native12.Text,
1028
+ import_react_native13.Text,
980
1029
  {
981
1030
  className: cn(
982
1031
  "text-sm font-medium text-neutral-800 dark:text-neutral-200",
@@ -991,7 +1040,7 @@ function Radio({
991
1040
  }
992
1041
 
993
1042
  // src/components/spinner/spinner.tsx
994
- var import_react_native13 = require("react-native");
1043
+ var import_react_native14 = require("react-native");
995
1044
  var import_jsx_runtime14 = require("react/jsx-runtime");
996
1045
  var colorMap = {
997
1046
  primary: "#2563eb",
@@ -1010,25 +1059,25 @@ function Spinner({
1010
1059
  }) {
1011
1060
  const nativeSize = size === "lg" ? "large" : "small";
1012
1061
  const hexColor = colorMap[color] ?? colorMap.primary;
1013
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native13.View, { className: cn("items-center justify-center", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native13.ActivityIndicator, { size: nativeSize, color: hexColor }) });
1062
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.View, { className: cn("items-center justify-center", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react_native14.ActivityIndicator, { size: nativeSize, color: hexColor }) });
1014
1063
  }
1015
1064
  Spinner.displayName = "Spinner";
1016
1065
 
1017
1066
  // src/components/skeleton/skeleton.tsx
1018
1067
  var React13 = __toESM(require("react"));
1019
- var import_react_native14 = require("react-native");
1068
+ var import_react_native15 = require("react-native");
1020
1069
  var import_jsx_runtime15 = require("react/jsx-runtime");
1021
1070
  function Skeleton({ className, style, ...props }) {
1022
- const pulseAnim = React13.useRef(new import_react_native14.Animated.Value(0.4)).current;
1071
+ const pulseAnim = React13.useRef(new import_react_native15.Animated.Value(0.4)).current;
1023
1072
  React13.useEffect(() => {
1024
- const animation = import_react_native14.Animated.loop(
1025
- import_react_native14.Animated.sequence([
1026
- import_react_native14.Animated.timing(pulseAnim, {
1073
+ const animation = import_react_native15.Animated.loop(
1074
+ import_react_native15.Animated.sequence([
1075
+ import_react_native15.Animated.timing(pulseAnim, {
1027
1076
  toValue: 1,
1028
1077
  duration: 900,
1029
1078
  useNativeDriver: true
1030
1079
  }),
1031
- import_react_native14.Animated.timing(pulseAnim, {
1080
+ import_react_native15.Animated.timing(pulseAnim, {
1032
1081
  toValue: 0.4,
1033
1082
  duration: 900,
1034
1083
  useNativeDriver: true
@@ -1039,7 +1088,7 @@ function Skeleton({ className, style, ...props }) {
1039
1088
  return () => animation.stop();
1040
1089
  }, [pulseAnim]);
1041
1090
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1042
- import_react_native14.Animated.View,
1091
+ import_react_native15.Animated.View,
1043
1092
  {
1044
1093
  style: [{ opacity: pulseAnim }, style],
1045
1094
  className: cn(
@@ -1054,7 +1103,7 @@ Skeleton.displayName = "Skeleton";
1054
1103
 
1055
1104
  // src/components/alert/alert.tsx
1056
1105
  var React14 = __toESM(require("react"));
1057
- var import_react_native15 = require("react-native");
1106
+ var import_react_native16 = require("react-native");
1058
1107
  var import_class_variance_authority8 = require("class-variance-authority");
1059
1108
  var import_jsx_runtime16 = require("react/jsx-runtime");
1060
1109
  var alertVariants = (0, import_class_variance_authority8.cva)(
@@ -1107,7 +1156,7 @@ function Alert({
1107
1156
  ...props
1108
1157
  }) {
1109
1158
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertContext.Provider, { value: { variant }, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1110
- import_react_native15.View,
1159
+ import_react_native16.View,
1111
1160
  {
1112
1161
  accessibilityRole: "alert",
1113
1162
  className: cn(alertVariants({ variant }), className),
@@ -1124,7 +1173,7 @@ function AlertTitle({
1124
1173
  }) {
1125
1174
  const { variant } = React14.useContext(AlertContext);
1126
1175
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1127
- import_react_native15.Text,
1176
+ import_react_native16.Text,
1128
1177
  {
1129
1178
  className: cn(alertTitleVariants({ variant }), className),
1130
1179
  ...props,
@@ -1140,7 +1189,7 @@ function AlertDescription({
1140
1189
  }) {
1141
1190
  const { variant } = React14.useContext(AlertContext);
1142
1191
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1143
- import_react_native15.Text,
1192
+ import_react_native16.Text,
1144
1193
  {
1145
1194
  className: cn(alertDescriptionVariants({ variant }), className),
1146
1195
  ...props,
@@ -1151,7 +1200,7 @@ function AlertDescription({
1151
1200
  AlertDescription.displayName = "Alert.Description";
1152
1201
 
1153
1202
  // src/components/separator/separator.tsx
1154
- var import_react_native16 = require("react-native");
1203
+ var import_react_native17 = require("react-native");
1155
1204
  var import_jsx_runtime17 = require("react/jsx-runtime");
1156
1205
  function Separator({
1157
1206
  orientation = "horizontal",
@@ -1159,7 +1208,7 @@ function Separator({
1159
1208
  ...props
1160
1209
  }) {
1161
1210
  return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1162
- import_react_native16.View,
1211
+ import_react_native17.View,
1163
1212
  {
1164
1213
  accessibilityRole: "none",
1165
1214
  className: cn(
@@ -1175,60 +1224,131 @@ Separator.displayName = "Separator";
1175
1224
 
1176
1225
  // src/components/dialog/dialog.tsx
1177
1226
  var React15 = __toESM(require("react"));
1178
- var import_react_native17 = require("react-native");
1179
- var DialogPrimitive = __toESM(require("@rn-primitives/dialog"));
1227
+ var import_react_native18 = require("react-native");
1180
1228
  var import_jsx_runtime18 = require("react/jsx-runtime");
1181
- var Dialog = DialogPrimitive.Root;
1182
- var DialogTrigger = DialogPrimitive.Trigger;
1183
- var DialogPortal = DialogPrimitive.Portal;
1184
- var DialogClose = DialogPrimitive.Close;
1185
- var DialogOverlay = React15.forwardRef(function DialogOverlay2({ className, ...props }, ref) {
1229
+ var DialogContext = React15.createContext(null);
1230
+ function useDialogContext() {
1231
+ const context = React15.useContext(DialogContext);
1232
+ if (!context) {
1233
+ throw new Error("Dialog compound components must be used within a Dialog component");
1234
+ }
1235
+ return context;
1236
+ }
1237
+ function Dialog({
1238
+ open: controlledOpen,
1239
+ defaultOpen = false,
1240
+ onOpenChange,
1241
+ children
1242
+ }) {
1243
+ const [uncontrolledOpen, setUncontrolledOpen] = React15.useState(defaultOpen);
1244
+ const isControlled = controlledOpen !== void 0;
1245
+ const open = isControlled ? controlledOpen : uncontrolledOpen;
1246
+ const handleOpenChange = React15.useCallback(
1247
+ (nextOpen) => {
1248
+ if (!isControlled) {
1249
+ setUncontrolledOpen(nextOpen);
1250
+ }
1251
+ onOpenChange?.(nextOpen);
1252
+ },
1253
+ [isControlled, onOpenChange]
1254
+ );
1255
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogContext.Provider, { value: { open, onOpenChange: handleOpenChange }, children });
1256
+ }
1257
+ Dialog.displayName = "Dialog";
1258
+ var DialogTrigger = React15.forwardRef(
1259
+ function DialogTrigger2({ asChild, children, onPress, ...props }, ref) {
1260
+ const { open, onOpenChange } = useDialogContext();
1261
+ const handlePress = (e) => {
1262
+ onOpenChange(!open);
1263
+ onPress?.(e);
1264
+ };
1265
+ if (asChild && React15.isValidElement(children)) {
1266
+ return React15.cloneElement(children, {
1267
+ ref,
1268
+ onPress: (e) => {
1269
+ children.props?.onPress?.(e);
1270
+ handlePress(e);
1271
+ }
1272
+ });
1273
+ }
1274
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native18.Pressable, { ref, onPress: handlePress, role: "button", ...props, children });
1275
+ }
1276
+ );
1277
+ DialogTrigger.displayName = "DialogTrigger";
1278
+ function DialogPortal({ children, forceMount }) {
1279
+ const { open, onOpenChange } = useDialogContext();
1280
+ if (!open && !forceMount) {
1281
+ return null;
1282
+ }
1186
1283
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1187
- DialogPrimitive.Overlay,
1284
+ import_react_native18.Modal,
1188
1285
  {
1189
- ref,
1190
- style: import_react_native17.StyleSheet.absoluteFill,
1191
- className: cn(
1192
- "z-50 bg-black/60",
1193
- className
1194
- ),
1195
- ...props
1286
+ transparent: true,
1287
+ visible: open,
1288
+ animationType: "fade",
1289
+ onRequestClose: () => onOpenChange(false),
1290
+ statusBarTranslucent: true,
1291
+ children
1196
1292
  }
1197
1293
  );
1198
- });
1294
+ }
1295
+ DialogPortal.displayName = "DialogPortal";
1296
+ var DialogOverlay = React15.forwardRef(
1297
+ function DialogOverlay2({ className, closeOnPress = true, ...props }, ref) {
1298
+ const { onOpenChange } = useDialogContext();
1299
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1300
+ import_react_native18.Pressable,
1301
+ {
1302
+ ref,
1303
+ style: import_react_native18.StyleSheet.absoluteFill,
1304
+ className: cn("z-50 bg-black/60", className),
1305
+ onPress: () => {
1306
+ if (closeOnPress) {
1307
+ onOpenChange(false);
1308
+ }
1309
+ },
1310
+ ...props
1311
+ }
1312
+ );
1313
+ }
1314
+ );
1199
1315
  DialogOverlay.displayName = "DialogOverlay";
1200
- var DialogContent = React15.forwardRef(function DialogContent2({ className, children, ...props }, ref) {
1201
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(DialogPortal, { children: [
1202
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogOverlay, {}),
1203
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1204
- import_react_native17.View,
1316
+ var DialogContent = React15.forwardRef(
1317
+ function DialogContent2({ className, overlayClassName, children, ...props }, ref) {
1318
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1319
+ import_react_native18.View,
1205
1320
  {
1206
1321
  pointerEvents: "box-none",
1207
- style: import_react_native17.StyleSheet.absoluteFill,
1322
+ style: import_react_native18.StyleSheet.absoluteFill,
1208
1323
  className: "z-50 items-center justify-center p-4",
1209
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1210
- DialogPrimitive.Content,
1211
- {
1212
- ref,
1213
- className: cn(
1214
- "w-full max-w-lg rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 p-6 shadow-2xl",
1215
- className
1216
- ),
1217
- ...props,
1218
- children
1219
- }
1220
- )
1324
+ children: [
1325
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DialogOverlay, { className: overlayClassName }),
1326
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1327
+ import_react_native18.View,
1328
+ {
1329
+ ref,
1330
+ role: "dialog",
1331
+ "aria-modal": true,
1332
+ className: cn(
1333
+ "z-50 w-full max-w-lg rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 p-6 shadow-2xl",
1334
+ className
1335
+ ),
1336
+ ...props,
1337
+ children
1338
+ }
1339
+ )
1340
+ ]
1221
1341
  }
1222
- )
1223
- ] });
1224
- });
1342
+ ) });
1343
+ }
1344
+ );
1225
1345
  DialogContent.displayName = "DialogContent";
1226
1346
  function DialogHeader({
1227
1347
  className,
1228
1348
  ...props
1229
1349
  }) {
1230
1350
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1231
- import_react_native17.View,
1351
+ import_react_native18.View,
1232
1352
  {
1233
1353
  className: cn("flex-col space-y-2 text-center sm:text-left", className),
1234
1354
  ...props
@@ -1236,77 +1356,108 @@ function DialogHeader({
1236
1356
  );
1237
1357
  }
1238
1358
  DialogHeader.displayName = "DialogHeader";
1239
- var DialogTitle = React15.forwardRef(function DialogTitle2({ className, ...props }, ref) {
1240
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1241
- DialogPrimitive.Title,
1242
- {
1243
- ref,
1244
- className: cn(
1245
- "text-xl font-bold tracking-tight text-neutral-900 dark:text-neutral-50",
1246
- className
1247
- ),
1248
- ...props
1249
- }
1250
- );
1251
- });
1359
+ var DialogTitle = React15.forwardRef(
1360
+ function DialogTitle2({ className, ...props }, ref) {
1361
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1362
+ import_react_native18.Text,
1363
+ {
1364
+ ref,
1365
+ role: "heading",
1366
+ "aria-level": 2,
1367
+ className: cn(
1368
+ "text-xl font-bold tracking-tight text-neutral-900 dark:text-neutral-50",
1369
+ className
1370
+ ),
1371
+ ...props
1372
+ }
1373
+ );
1374
+ }
1375
+ );
1252
1376
  DialogTitle.displayName = "DialogTitle";
1253
- var DialogDescription = React15.forwardRef(function DialogDescription2({ className, ...props }, ref) {
1254
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1255
- DialogPrimitive.Description,
1256
- {
1257
- ref,
1258
- className: cn("text-sm text-neutral-500 dark:text-neutral-400 mt-1", className),
1259
- ...props
1260
- }
1261
- );
1262
- });
1377
+ var DialogDescription = React15.forwardRef(
1378
+ function DialogDescription2({ className, ...props }, ref) {
1379
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1380
+ import_react_native18.Text,
1381
+ {
1382
+ ref,
1383
+ className: cn(
1384
+ "text-sm text-neutral-500 dark:text-neutral-400 mt-1",
1385
+ className
1386
+ ),
1387
+ ...props
1388
+ }
1389
+ );
1390
+ }
1391
+ );
1263
1392
  DialogDescription.displayName = "DialogDescription";
1264
1393
  function DialogFooter({
1265
1394
  className,
1266
1395
  ...props
1267
1396
  }) {
1268
1397
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1269
- import_react_native17.View,
1398
+ import_react_native18.View,
1270
1399
  {
1271
- className: cn(
1272
- "flex-row justify-end space-x-2 mt-6",
1273
- className
1274
- ),
1400
+ className: cn("flex-row justify-end space-x-2 mt-6", className),
1275
1401
  ...props
1276
1402
  }
1277
1403
  );
1278
1404
  }
1279
1405
  DialogFooter.displayName = "DialogFooter";
1406
+ var DialogClose = React15.forwardRef(
1407
+ function DialogClose2({ asChild, children, onPress, ...props }, ref) {
1408
+ const { onOpenChange } = useDialogContext();
1409
+ const handlePress = (e) => {
1410
+ onOpenChange(false);
1411
+ onPress?.(e);
1412
+ };
1413
+ if (asChild && React15.isValidElement(children)) {
1414
+ return React15.cloneElement(children, {
1415
+ ref,
1416
+ onPress: (e) => {
1417
+ children.props?.onPress?.(e);
1418
+ handlePress(e);
1419
+ }
1420
+ });
1421
+ }
1422
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native18.Pressable, { ref, onPress: handlePress, role: "button", ...props, children });
1423
+ }
1424
+ );
1425
+ DialogClose.displayName = "DialogClose";
1280
1426
 
1281
1427
  // src/components/tabs/tabs.tsx
1282
1428
  var React16 = __toESM(require("react"));
1283
- var import_react_native18 = require("react-native");
1284
- var TabsPrimitive = __toESM(require("@rn-primitives/tabs"));
1429
+ var import_react_native19 = require("react-native");
1285
1430
  var import_jsx_runtime19 = require("react/jsx-runtime");
1286
- var Tabs = React16.forwardRef(function Tabs2({ value: controlledValue, defaultValue = "", onValueChange, ...props }, ref) {
1431
+ var TabsContext = React16.createContext(null);
1432
+ function useTabsContext() {
1433
+ const context = React16.useContext(TabsContext);
1434
+ if (!context) {
1435
+ throw new Error("Tabs compound components must be rendered inside a Tabs component");
1436
+ }
1437
+ return context;
1438
+ }
1439
+ var Tabs = React16.forwardRef(function Tabs2({ value: controlledValue, defaultValue = "", onValueChange, className, children, ...props }, ref) {
1287
1440
  const [internalValue, setInternalValue] = React16.useState(defaultValue);
1288
1441
  const isControlled = controlledValue !== void 0;
1289
1442
  const currentValue = isControlled ? controlledValue : internalValue;
1290
- const handleValueChange = (val) => {
1291
- if (!isControlled) setInternalValue(val);
1292
- onValueChange?.(val);
1293
- };
1294
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1295
- TabsPrimitive.Root,
1296
- {
1297
- ref,
1298
- value: currentValue,
1299
- onValueChange: handleValueChange,
1300
- ...props
1301
- }
1443
+ const handleValueChange = React16.useCallback(
1444
+ (val) => {
1445
+ if (!isControlled) {
1446
+ setInternalValue(val);
1447
+ }
1448
+ onValueChange?.(val);
1449
+ },
1450
+ [isControlled, onValueChange]
1302
1451
  );
1452
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(TabsContext.Provider, { value: { value: currentValue, onValueChange: handleValueChange }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native19.View, { ref, className, ...props, children }) });
1303
1453
  });
1304
1454
  Tabs.displayName = "Tabs";
1305
1455
  var TabsList = React16.forwardRef(function TabsList2({ className, ...props }, ref) {
1306
1456
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1307
- TabsPrimitive.List,
1457
+ import_react_native19.View,
1308
1458
  {
1309
1459
  ref,
1460
+ role: "tablist",
1310
1461
  className: cn(
1311
1462
  "flex-row items-center justify-center rounded-xl bg-neutral-100 dark:bg-neutral-800 p-1",
1312
1463
  className
@@ -1316,22 +1467,32 @@ var TabsList = React16.forwardRef(function TabsList2({ className, ...props }, re
1316
1467
  );
1317
1468
  });
1318
1469
  TabsList.displayName = "TabsList";
1319
- var TabsTrigger = React16.forwardRef(function TabsTrigger2({ className, textClassName, children, ...props }, ref) {
1320
- const { value } = TabsPrimitive.useRootContext();
1321
- const isSelected = value === props.value;
1470
+ var TabsTrigger = React16.forwardRef(function TabsTrigger2({ value, className, textClassName, children, onPress, disabled, ...props }, ref) {
1471
+ const { value: selectedValue, onValueChange } = useTabsContext();
1472
+ const isSelected = selectedValue === value;
1473
+ const handlePress = (e) => {
1474
+ if (disabled) return;
1475
+ onValueChange(value);
1476
+ onPress?.(e);
1477
+ };
1322
1478
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1323
- TabsPrimitive.Trigger,
1479
+ import_react_native19.Pressable,
1324
1480
  {
1325
1481
  ref,
1482
+ role: "tab",
1483
+ accessibilityRole: "tab",
1484
+ accessibilityState: { selected: isSelected, disabled: !!disabled },
1485
+ disabled,
1486
+ onPress: handlePress,
1326
1487
  className: cn(
1327
1488
  "flex-1 items-center justify-center rounded-lg py-2 px-3 transition-all",
1328
1489
  isSelected ? "bg-white dark:bg-neutral-900 shadow-sm" : "bg-transparent opacity-70",
1329
- props.disabled && "opacity-40",
1490
+ disabled && "opacity-40",
1330
1491
  className
1331
1492
  ),
1332
1493
  ...props,
1333
1494
  children: typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1334
- import_react_native18.Text,
1495
+ import_react_native19.Text,
1335
1496
  {
1336
1497
  className: cn(
1337
1498
  "text-sm font-semibold",
@@ -1345,13 +1506,21 @@ var TabsTrigger = React16.forwardRef(function TabsTrigger2({ className, textClas
1345
1506
  );
1346
1507
  });
1347
1508
  TabsTrigger.displayName = "TabsTrigger";
1348
- var TabsContent = React16.forwardRef(function TabsContent2({ className, ...props }, ref) {
1509
+ var TabsContent = React16.forwardRef(function TabsContent2({ value, className, forceMount, children, ...props }, ref) {
1510
+ const { value: selectedValue } = useTabsContext();
1511
+ const isSelected = selectedValue === value;
1512
+ if (!isSelected && !forceMount) {
1513
+ return null;
1514
+ }
1349
1515
  return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1350
- TabsPrimitive.Content,
1516
+ import_react_native19.View,
1351
1517
  {
1352
1518
  ref,
1519
+ role: "tabpanel",
1520
+ accessibilityElementsHidden: !isSelected,
1353
1521
  className: cn("mt-3", className),
1354
- ...props
1522
+ ...props,
1523
+ children
1355
1524
  }
1356
1525
  );
1357
1526
  });
@@ -1359,7 +1528,7 @@ TabsContent.displayName = "TabsContent";
1359
1528
 
1360
1529
  // src/components/toast/toast.tsx
1361
1530
  var React17 = __toESM(require("react"));
1362
- var import_react_native19 = require("react-native");
1531
+ var import_react_native20 = require("react-native");
1363
1532
  var import_class_variance_authority9 = require("class-variance-authority");
1364
1533
  var import_jsx_runtime20 = require("react/jsx-runtime");
1365
1534
  var toastVariants = (0, import_class_variance_authority9.cva)(
@@ -1394,16 +1563,16 @@ var toastTitleVariants = (0, import_class_variance_authority9.cva)("text-sm font
1394
1563
  }
1395
1564
  });
1396
1565
  function ToastBanner({ toast, onDismiss }) {
1397
- const opacity = React17.useRef(new import_react_native19.Animated.Value(0)).current;
1398
- const translateY = React17.useRef(new import_react_native19.Animated.Value(-16)).current;
1566
+ const opacity = React17.useRef(new import_react_native20.Animated.Value(0)).current;
1567
+ const translateY = React17.useRef(new import_react_native20.Animated.Value(-16)).current;
1399
1568
  React17.useEffect(() => {
1400
- import_react_native19.Animated.parallel([
1401
- import_react_native19.Animated.timing(opacity, {
1569
+ import_react_native20.Animated.parallel([
1570
+ import_react_native20.Animated.timing(opacity, {
1402
1571
  toValue: 1,
1403
1572
  duration: 200,
1404
1573
  useNativeDriver: true
1405
1574
  }),
1406
- import_react_native19.Animated.timing(translateY, {
1575
+ import_react_native20.Animated.timing(translateY, {
1407
1576
  toValue: 0,
1408
1577
  duration: 200,
1409
1578
  useNativeDriver: true
@@ -1415,13 +1584,13 @@ function ToastBanner({ toast, onDismiss }) {
1415
1584
  return () => clearTimeout(timer);
1416
1585
  }, []);
1417
1586
  const handleDismiss = () => {
1418
- import_react_native19.Animated.parallel([
1419
- import_react_native19.Animated.timing(opacity, {
1587
+ import_react_native20.Animated.parallel([
1588
+ import_react_native20.Animated.timing(opacity, {
1420
1589
  toValue: 0,
1421
1590
  duration: 200,
1422
1591
  useNativeDriver: true
1423
1592
  }),
1424
- import_react_native19.Animated.timing(translateY, {
1593
+ import_react_native20.Animated.timing(translateY, {
1425
1594
  toValue: -16,
1426
1595
  duration: 200,
1427
1596
  useNativeDriver: true
@@ -1432,7 +1601,7 @@ function ToastBanner({ toast, onDismiss }) {
1432
1601
  };
1433
1602
  const variant = toast.variant || "default";
1434
1603
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1435
- import_react_native19.Animated.View,
1604
+ import_react_native20.Animated.View,
1436
1605
  {
1437
1606
  style: {
1438
1607
  opacity,
@@ -1440,16 +1609,16 @@ function ToastBanner({ toast, onDismiss }) {
1440
1609
  },
1441
1610
  className: "w-full items-center px-4",
1442
1611
  children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1443
- import_react_native19.Pressable,
1612
+ import_react_native20.Pressable,
1444
1613
  {
1445
1614
  onPress: handleDismiss,
1446
1615
  className: cn(toastVariants({ variant })),
1447
1616
  children: [
1448
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native19.View, { className: "flex-1 pr-2", children: [
1449
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native19.Text, { className: cn(toastTitleVariants({ variant })), children: toast.title }),
1450
- toast.description ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native19.Text, { className: "text-xs text-neutral-600 dark:text-neutral-400 mt-0.5", children: toast.description }) : null
1617
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_react_native20.View, { className: "flex-1 pr-2", children: [
1618
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native20.Text, { className: cn(toastTitleVariants({ variant })), children: toast.title }),
1619
+ toast.description ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native20.Text, { className: "text-xs text-neutral-600 dark:text-neutral-400 mt-0.5", children: toast.description }) : null
1451
1620
  ] }),
1452
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native19.Text, { className: "text-xs text-neutral-400", children: "\u2715" })
1621
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_native20.Text, { className: "text-xs text-neutral-400", children: "\u2715" })
1453
1622
  ]
1454
1623
  }
1455
1624
  )
@@ -1462,7 +1631,7 @@ function ToastContainer({
1462
1631
  }) {
1463
1632
  if (toasts.length === 0) return null;
1464
1633
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1465
- import_react_native19.View,
1634
+ import_react_native20.View,
1466
1635
  {
1467
1636
  pointerEvents: "box-none",
1468
1637
  className: "absolute top-12 left-0 right-0 z-50 items-center",
@@ -1483,7 +1652,7 @@ function useToast() {
1483
1652
  }
1484
1653
 
1485
1654
  // src/components/stats-card/stats-card.tsx
1486
- var import_react_native20 = require("react-native");
1655
+ var import_react_native21 = require("react-native");
1487
1656
  var import_jsx_runtime21 = require("react/jsx-runtime");
1488
1657
  function StatsCard({
1489
1658
  title,
@@ -1496,14 +1665,14 @@ function StatsCard({
1496
1665
  const isUp = trend?.direction === "up";
1497
1666
  const isDown = trend?.direction === "down";
1498
1667
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Card, { className: cn("w-full shadow-sm", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(CardContent, { className: "p-4", children: [
1499
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native20.View, { className: "flex-row items-center justify-between mb-2", children: [
1500
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native20.Text, { className: "text-sm font-medium text-neutral-500 dark:text-neutral-400", children: title }),
1501
- icon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native20.View, { className: "h-9 w-9 rounded-xl bg-neutral-100 dark:bg-neutral-800 items-center justify-center", children: icon }) : null
1668
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native21.View, { className: "flex-row items-center justify-between mb-2", children: [
1669
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native21.Text, { className: "text-sm font-medium text-neutral-500 dark:text-neutral-400", children: title }),
1670
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native21.View, { className: "h-9 w-9 rounded-xl bg-neutral-100 dark:bg-neutral-800 items-center justify-center", children: icon }) : null
1502
1671
  ] }),
1503
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native20.Text, { className: "text-2xl font-extrabold tracking-tight text-neutral-900 dark:text-neutral-50 mb-2", children: value }),
1504
- trend ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native20.View, { className: "flex-row items-center gap-1.5 flex-wrap", children: [
1672
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native21.Text, { className: "text-2xl font-extrabold tracking-tight text-neutral-900 dark:text-neutral-50 mb-2", children: value }),
1673
+ trend ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react_native21.View, { className: "flex-row items-center gap-1.5 flex-wrap", children: [
1505
1674
  /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1506
- import_react_native20.View,
1675
+ import_react_native21.View,
1507
1676
  {
1508
1677
  className: cn(
1509
1678
  "flex-row items-center rounded-md px-1.5 py-0.5",
@@ -1513,7 +1682,7 @@ function StatsCard({
1513
1682
  ),
1514
1683
  children: [
1515
1684
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1516
- import_react_native20.Text,
1685
+ import_react_native21.Text,
1517
1686
  {
1518
1687
  className: cn(
1519
1688
  "text-xs font-bold mr-1",
@@ -1525,7 +1694,7 @@ function StatsCard({
1525
1694
  }
1526
1695
  ),
1527
1696
  /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1528
- import_react_native20.Text,
1697
+ import_react_native21.Text,
1529
1698
  {
1530
1699
  className: cn(
1531
1700
  "text-xs font-semibold",
@@ -1539,7 +1708,7 @@ function StatsCard({
1539
1708
  ]
1540
1709
  }
1541
1710
  ),
1542
- trend.label ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native20.Text, { className: "text-xs text-neutral-500 dark:text-neutral-400", children: trend.label }) : null
1711
+ trend.label ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native21.Text, { className: "text-xs text-neutral-500 dark:text-neutral-400", children: trend.label }) : null
1543
1712
  ] }) : null
1544
1713
  ] }) });
1545
1714
  }
@@ -1547,7 +1716,7 @@ StatsCard.displayName = "StatsCard";
1547
1716
 
1548
1717
  // src/components/accordion/accordion.tsx
1549
1718
  var React19 = __toESM(require("react"));
1550
- var import_react_native21 = require("react-native");
1719
+ var import_react_native22 = require("react-native");
1551
1720
  var import_jsx_runtime22 = require("react/jsx-runtime");
1552
1721
  var AccordionContext = React19.createContext(null);
1553
1722
  function useAccordionContext() {
@@ -1613,7 +1782,7 @@ var Accordion = React19.forwardRef(
1613
1782
  collapsible
1614
1783
  },
1615
1784
  children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1616
- import_react_native21.View,
1785
+ import_react_native22.View,
1617
1786
  {
1618
1787
  ref,
1619
1788
  className: cn("w-full divide-y divide-border", className),
@@ -1639,7 +1808,7 @@ var AccordionItem = React19.forwardRef(
1639
1808
  const { value: selectedValues } = useAccordionContext();
1640
1809
  const isOpen = selectedValues.includes(value);
1641
1810
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(AccordionItemContext.Provider, { value: { value, isOpen }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1642
- import_react_native21.View,
1811
+ import_react_native22.View,
1643
1812
  {
1644
1813
  ref,
1645
1814
  className: cn("border-b border-border py-1", className),
@@ -1654,9 +1823,9 @@ var AccordionTrigger = React19.forwardRef(
1654
1823
  ({ className, children, ...props }, ref) => {
1655
1824
  const { toggleItem } = useAccordionContext();
1656
1825
  const { value, isOpen } = useAccordionItemContext();
1657
- const rotationAnim = React19.useRef(new import_react_native21.Animated.Value(isOpen ? 1 : 0)).current;
1826
+ const rotationAnim = React19.useRef(new import_react_native22.Animated.Value(isOpen ? 1 : 0)).current;
1658
1827
  React19.useEffect(() => {
1659
- import_react_native21.Animated.timing(rotationAnim, {
1828
+ import_react_native22.Animated.timing(rotationAnim, {
1660
1829
  toValue: isOpen ? 1 : 0,
1661
1830
  duration: 200,
1662
1831
  useNativeDriver: true
@@ -1667,7 +1836,7 @@ var AccordionTrigger = React19.forwardRef(
1667
1836
  outputRange: ["0deg", "180deg"]
1668
1837
  });
1669
1838
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1670
- import_react_native21.Pressable,
1839
+ import_react_native22.Pressable,
1671
1840
  {
1672
1841
  ref,
1673
1842
  onPress: () => toggleItem(value),
@@ -1679,8 +1848,8 @@ var AccordionTrigger = React19.forwardRef(
1679
1848
  ),
1680
1849
  ...props,
1681
1850
  children: [
1682
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native21.View, { className: "flex-1 pr-2", children: typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text2, { className: "text-base font-medium text-foreground", children }) : children }),
1683
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native21.Animated.View, { style: { transform: [{ rotate }] }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text2, { className: "text-muted text-base font-semibold", children: "\u25BC" }) })
1851
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native22.View, { className: "flex-1 pr-2", children: typeof children === "string" ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text2, { className: "text-base font-medium text-foreground", children }) : children }),
1852
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_react_native22.Animated.View, { style: { transform: [{ rotate }] }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Text2, { className: "text-muted text-base font-semibold", children: "\u25BC" }) })
1684
1853
  ]
1685
1854
  }
1686
1855
  );
@@ -1692,7 +1861,7 @@ var AccordionContent = React19.forwardRef(
1692
1861
  const { isOpen } = useAccordionItemContext();
1693
1862
  if (!isOpen) return null;
1694
1863
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1695
- import_react_native21.View,
1864
+ import_react_native22.View,
1696
1865
  {
1697
1866
  ref,
1698
1867
  className: cn("pt-1 pb-3 px-1 text-sm text-muted", className),
@@ -1706,7 +1875,7 @@ AccordionContent.displayName = "AccordionContent";
1706
1875
 
1707
1876
  // src/components/bottom-sheet/bottom-sheet.tsx
1708
1877
  var React20 = __toESM(require("react"));
1709
- var import_react_native22 = require("react-native");
1878
+ var import_react_native23 = require("react-native");
1710
1879
  var import_jsx_runtime23 = require("react/jsx-runtime");
1711
1880
  var BottomSheetContext = React20.createContext(null);
1712
1881
  function useBottomSheetContext() {
@@ -1752,38 +1921,38 @@ var BottomSheetTrigger = React20.forwardRef(
1752
1921
  onPress: handlePress
1753
1922
  });
1754
1923
  }
1755
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.Pressable, { ref, onPress: handlePress, ...props, children });
1924
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.Pressable, { ref, onPress: handlePress, ...props, children });
1756
1925
  }
1757
1926
  );
1758
1927
  BottomSheetTrigger.displayName = "BottomSheetTrigger";
1759
1928
  var BottomSheetContent = React20.forwardRef(
1760
1929
  ({ className, children, ...props }, ref) => {
1761
1930
  const { open, closeSheet } = useBottomSheetContext();
1762
- const screenHeight = import_react_native22.Dimensions.get("window").height;
1763
- const translateY = React20.useRef(new import_react_native22.Animated.Value(screenHeight)).current;
1764
- const backdropOpacity = React20.useRef(new import_react_native22.Animated.Value(0)).current;
1931
+ const screenHeight = import_react_native23.Dimensions.get("window").height;
1932
+ const translateY = React20.useRef(new import_react_native23.Animated.Value(screenHeight)).current;
1933
+ const backdropOpacity = React20.useRef(new import_react_native23.Animated.Value(0)).current;
1765
1934
  React20.useEffect(() => {
1766
1935
  if (open) {
1767
- import_react_native22.Animated.parallel([
1768
- import_react_native22.Animated.spring(translateY, {
1936
+ import_react_native23.Animated.parallel([
1937
+ import_react_native23.Animated.spring(translateY, {
1769
1938
  toValue: 0,
1770
1939
  useNativeDriver: true,
1771
1940
  bounciness: 4
1772
1941
  }),
1773
- import_react_native22.Animated.timing(backdropOpacity, {
1942
+ import_react_native23.Animated.timing(backdropOpacity, {
1774
1943
  toValue: 1,
1775
1944
  duration: 250,
1776
1945
  useNativeDriver: true
1777
1946
  })
1778
1947
  ]).start();
1779
1948
  } else {
1780
- import_react_native22.Animated.parallel([
1781
- import_react_native22.Animated.timing(translateY, {
1949
+ import_react_native23.Animated.parallel([
1950
+ import_react_native23.Animated.timing(translateY, {
1782
1951
  toValue: screenHeight,
1783
1952
  duration: 200,
1784
1953
  useNativeDriver: true
1785
1954
  }),
1786
- import_react_native22.Animated.timing(backdropOpacity, {
1955
+ import_react_native23.Animated.timing(backdropOpacity, {
1787
1956
  toValue: 0,
1788
1957
  duration: 200,
1789
1958
  useNativeDriver: true
@@ -1792,7 +1961,7 @@ var BottomSheetContent = React20.forwardRef(
1792
1961
  }
1793
1962
  }, [open, translateY, backdropOpacity, screenHeight]);
1794
1963
  const panResponder = React20.useRef(
1795
- import_react_native22.PanResponder.create({
1964
+ import_react_native23.PanResponder.create({
1796
1965
  onStartShouldSetPanResponder: () => true,
1797
1966
  onMoveShouldSetPanResponder: (_, gestureState) => gestureState.dy > 5,
1798
1967
  onPanResponderMove: (_, gestureState) => {
@@ -1804,7 +1973,7 @@ var BottomSheetContent = React20.forwardRef(
1804
1973
  if (gestureState.dy > 120 || gestureState.vy > 0.8) {
1805
1974
  closeSheet();
1806
1975
  } else {
1807
- import_react_native22.Animated.spring(translateY, {
1976
+ import_react_native23.Animated.spring(translateY, {
1808
1977
  toValue: 0,
1809
1978
  useNativeDriver: true,
1810
1979
  bounciness: 4
@@ -1815,24 +1984,24 @@ var BottomSheetContent = React20.forwardRef(
1815
1984
  ).current;
1816
1985
  if (!open) return null;
1817
1986
  return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1818
- import_react_native22.Modal,
1987
+ import_react_native23.Modal,
1819
1988
  {
1820
1989
  transparent: true,
1821
1990
  visible: open,
1822
1991
  animationType: "none",
1823
1992
  onRequestClose: closeSheet,
1824
1993
  statusBarTranslucent: true,
1825
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react_native22.View, { className: "flex-1 justify-end", children: [
1994
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react_native23.View, { className: "flex-1 justify-end", children: [
1826
1995
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1827
- import_react_native22.Animated.View,
1996
+ import_react_native23.Animated.View,
1828
1997
  {
1829
1998
  style: { opacity: backdropOpacity },
1830
1999
  className: "absolute inset-0 bg-black/60",
1831
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.Pressable, { className: "flex-1", onPress: closeSheet })
2000
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.Pressable, { className: "flex-1", onPress: closeSheet })
1832
2001
  }
1833
2002
  ),
1834
2003
  /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1835
- import_react_native22.Animated.View,
2004
+ import_react_native23.Animated.View,
1836
2005
  {
1837
2006
  ref,
1838
2007
  style: { transform: [{ translateY }] },
@@ -1842,7 +2011,7 @@ var BottomSheetContent = React20.forwardRef(
1842
2011
  ),
1843
2012
  ...props,
1844
2013
  children: [
1845
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.View, { ...panResponder.panHandlers, className: "w-full py-2 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.View, { className: "w-12 h-1.5 rounded-full bg-muted/40" }) }),
2014
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.View, { ...panResponder.panHandlers, className: "w-full py-2 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.View, { className: "w-12 h-1.5 rounded-full bg-muted/40" }) }),
1846
2015
  children
1847
2016
  ]
1848
2017
  }
@@ -1854,7 +2023,7 @@ var BottomSheetContent = React20.forwardRef(
1854
2023
  );
1855
2024
  BottomSheetContent.displayName = "BottomSheetContent";
1856
2025
  var BottomSheetHeader = React20.forwardRef(
1857
- ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.View, { ref, className: cn("mb-4 gap-1", className), ...props, children })
2026
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.View, { ref, className: cn("mb-4 gap-1", className), ...props, children })
1858
2027
  );
1859
2028
  BottomSheetHeader.displayName = "BottomSheetHeader";
1860
2029
  var BottomSheetTitle = ({
@@ -1872,12 +2041,12 @@ var BottomSheetDescription = ({
1872
2041
  };
1873
2042
  BottomSheetDescription.displayName = "BottomSheetDescription";
1874
2043
  var BottomSheetBody = React20.forwardRef(
1875
- ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.View, { ref, className: cn("py-2", className), ...props, children })
2044
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.View, { ref, className: cn("py-2", className), ...props, children })
1876
2045
  );
1877
2046
  BottomSheetBody.displayName = "BottomSheetBody";
1878
2047
  var BottomSheetFooter = React20.forwardRef(
1879
2048
  ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1880
- import_react_native22.View,
2049
+ import_react_native23.View,
1881
2050
  {
1882
2051
  ref,
1883
2052
  className: cn("mt-6 flex-row items-center justify-end gap-3", className),
@@ -1900,14 +2069,14 @@ var BottomSheetClose = React20.forwardRef(
1900
2069
  onPress: handlePress
1901
2070
  });
1902
2071
  }
1903
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native22.Pressable, { ref, onPress: handlePress, ...props, children });
2072
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_native23.Pressable, { ref, onPress: handlePress, ...props, children });
1904
2073
  }
1905
2074
  );
1906
2075
  BottomSheetClose.displayName = "BottomSheetClose";
1907
2076
 
1908
2077
  // src/components/select/select.tsx
1909
2078
  var React21 = __toESM(require("react"));
1910
- var import_react_native23 = require("react-native");
2079
+ var import_react_native24 = require("react-native");
1911
2080
  var import_class_variance_authority10 = require("class-variance-authority");
1912
2081
  var import_jsx_runtime24 = require("react/jsx-runtime");
1913
2082
  var selectTriggerVariants = (0, import_class_variance_authority10.cva)(
@@ -1990,10 +2159,10 @@ var Select = ({
1990
2159
  value: currentValue,
1991
2160
  onSelect: handleSelect
1992
2161
  },
1993
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: cn("w-full gap-1.5", className), children: [
2162
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: cn("w-full gap-1.5", className), children: [
1994
2163
  label && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-sm font-medium text-foreground", children: label }),
1995
2164
  children ? children : /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
1996
- import_react_native23.Pressable,
2165
+ import_react_native24.Pressable,
1997
2166
  {
1998
2167
  disabled,
1999
2168
  onPress: () => setOpen(true),
@@ -2020,22 +2189,22 @@ var Select = ({
2020
2189
  ),
2021
2190
  error ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-xs text-danger font-medium", children: error }) : helperText ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-xs text-muted", children: helperText }) : null,
2022
2191
  options && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2023
- import_react_native23.Modal,
2192
+ import_react_native24.Modal,
2024
2193
  {
2025
2194
  transparent: true,
2026
2195
  visible: open,
2027
2196
  animationType: "fade",
2028
2197
  onRequestClose: () => setOpen(false),
2029
2198
  statusBarTranslucent: true,
2030
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "flex-1 justify-end bg-black/60", children: [
2031
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.Pressable, { className: "flex-1", onPress: () => setOpen(false) }),
2032
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "w-full bg-card rounded-t-3xl border-t border-border p-6 max-h-[75%]", children: [
2033
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "flex-row items-center justify-between pb-4 border-b border-border mb-3", children: [
2199
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "flex-1 justify-end bg-black/60", children: [
2200
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.Pressable, { className: "flex-1", onPress: () => setOpen(false) }),
2201
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "w-full bg-card rounded-t-3xl border-t border-border p-6 max-h-[75%]", children: [
2202
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "flex-row items-center justify-between pb-4 border-b border-border mb-3", children: [
2034
2203
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-lg font-bold text-foreground", children: label || placeholder }),
2035
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.Pressable, { onPress: () => setOpen(false), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-lg font-semibold", children: "\u2715" }) })
2204
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.Pressable, { onPress: () => setOpen(false), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-lg font-semibold", children: "\u2715" }) })
2036
2205
  ] }),
2037
- searchable && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.View, { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2038
- import_react_native23.TextInput,
2206
+ searchable && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.View, { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2207
+ import_react_native24.TextInput,
2039
2208
  {
2040
2209
  value: searchQuery,
2041
2210
  onChangeText: setSearchQuery,
@@ -2044,10 +2213,10 @@ var Select = ({
2044
2213
  className: "h-11 px-4 rounded-xl border border-border bg-background text-foreground text-base"
2045
2214
  }
2046
2215
  ) }),
2047
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.ScrollView, { className: "max-h-80", showsVerticalScrollIndicator: false, children: filteredOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.View, { className: "py-8 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-sm", children: "No options found" }) }) : filteredOptions.map((opt) => {
2216
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.ScrollView, { className: "max-h-80", showsVerticalScrollIndicator: false, children: filteredOptions.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.View, { className: "py-8 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-sm", children: "No options found" }) }) : filteredOptions.map((opt) => {
2048
2217
  const isSelected = opt.value === currentValue;
2049
2218
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2050
- import_react_native23.Pressable,
2219
+ import_react_native24.Pressable,
2051
2220
  {
2052
2221
  disabled: opt.disabled,
2053
2222
  onPress: () => handleSelect(opt.value),
@@ -2089,7 +2258,7 @@ var SelectTrigger = ({
2089
2258
  }) => {
2090
2259
  const { setOpen, open } = useSelectContext();
2091
2260
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2092
- import_react_native23.Pressable,
2261
+ import_react_native24.Pressable,
2093
2262
  {
2094
2263
  onPress: () => setOpen(true),
2095
2264
  accessibilityRole: "combobox",
@@ -2129,21 +2298,21 @@ var SelectContent = ({ title, children }) => {
2129
2298
  const { open, setOpen } = useSelectContext();
2130
2299
  if (!open) return null;
2131
2300
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2132
- import_react_native23.Modal,
2301
+ import_react_native24.Modal,
2133
2302
  {
2134
2303
  transparent: true,
2135
2304
  visible: open,
2136
2305
  animationType: "fade",
2137
2306
  onRequestClose: () => setOpen(false),
2138
2307
  statusBarTranslucent: true,
2139
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "flex-1 justify-end bg-black/60", children: [
2140
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.Pressable, { className: "flex-1", onPress: () => setOpen(false) }),
2141
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "w-full bg-card rounded-t-3xl border-t border-border p-6 max-h-[75%]", children: [
2142
- /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native23.View, { className: "flex-row items-center justify-between pb-3 border-b border-border mb-3", children: [
2308
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "flex-1 justify-end bg-black/60", children: [
2309
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.Pressable, { className: "flex-1", onPress: () => setOpen(false) }),
2310
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "w-full bg-card rounded-t-3xl border-t border-border p-6 max-h-[75%]", children: [
2311
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_react_native24.View, { className: "flex-row items-center justify-between pb-3 border-b border-border mb-3", children: [
2143
2312
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-lg font-bold text-foreground", children: title || "Select" }),
2144
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.Pressable, { onPress: () => setOpen(false), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-lg font-semibold", children: "\u2715" }) })
2313
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.Pressable, { onPress: () => setOpen(false), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text2, { className: "text-muted text-lg font-semibold", children: "\u2715" }) })
2145
2314
  ] }),
2146
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native23.ScrollView, { className: "max-h-80", children })
2315
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_react_native24.ScrollView, { className: "max-h-80", children })
2147
2316
  ] })
2148
2317
  ] })
2149
2318
  }
@@ -2158,7 +2327,7 @@ var SelectItem = ({
2158
2327
  const { value: selectedValue, onSelect } = useSelectContext();
2159
2328
  const isSelected = selectedValue === itemValue;
2160
2329
  return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2161
- import_react_native23.Pressable,
2330
+ import_react_native24.Pressable,
2162
2331
  {
2163
2332
  onPress: () => onSelect(itemValue),
2164
2333
  className: cn(
@@ -2186,7 +2355,7 @@ SelectItem.displayName = "SelectItem";
2186
2355
 
2187
2356
  // src/components/data-table/data-table.tsx
2188
2357
  var React22 = __toESM(require("react"));
2189
- var import_react_native24 = require("react-native");
2358
+ var import_react_native25 = require("react-native");
2190
2359
  var import_jsx_runtime25 = require("react/jsx-runtime");
2191
2360
  function DataTable({
2192
2361
  columns,
@@ -2253,7 +2422,7 @@ function DataTable({
2253
2422
  setSortDirection("asc");
2254
2423
  }
2255
2424
  };
2256
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native24.View, { className: cn("w-full gap-4", className), ...props, children: [
2425
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native25.View, { className: cn("w-full gap-4", className), ...props, children: [
2257
2426
  searchable && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2258
2427
  Input,
2259
2428
  {
@@ -2266,10 +2435,10 @@ function DataTable({
2266
2435
  className: "bg-card"
2267
2436
  }
2268
2437
  ),
2269
- loading ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native24.View, { className: "gap-3", children: [1, 2, 3].map((idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Skeleton, { className: "h-20 w-full rounded-2xl" }, idx)) }) : paginatedData.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Card, { className: "items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text2, { className: "text-muted text-base", children: emptyText }) }) : mode === "card" ? (
2438
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native25.View, { className: "gap-3", children: [1, 2, 3].map((idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Skeleton, { className: "h-20 w-full rounded-2xl" }, idx)) }) : paginatedData.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Card, { className: "items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text2, { className: "text-muted text-base", children: emptyText }) }) : mode === "card" ? (
2270
2439
  /* Mobile Card Mode */
2271
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native24.View, { className: "gap-3", children: paginatedData.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2272
- import_react_native24.Pressable,
2440
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native25.View, { className: "gap-3", children: paginatedData.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2441
+ import_react_native25.Pressable,
2273
2442
  {
2274
2443
  disabled: !onRowPress,
2275
2444
  onPress: () => onRowPress?.(item),
@@ -2278,12 +2447,12 @@ function DataTable({
2278
2447
  const rawVal = item[col.key];
2279
2448
  const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? "\u2014");
2280
2449
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2281
- import_react_native24.View,
2450
+ import_react_native25.View,
2282
2451
  {
2283
2452
  className: "flex-row items-center justify-between py-1 border-b border-border/40 last:border-b-0",
2284
2453
  children: [
2285
2454
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text2, { className: "text-xs font-semibold text-muted uppercase tracking-wider", children: col.title }),
2286
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native24.View, { className: "shrink", children: typeof renderedVal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text2, { className: "text-sm font-medium text-foreground", children: renderedVal }) : renderedVal })
2455
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native25.View, { className: "shrink", children: typeof renderedVal === "string" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Text2, { className: "text-sm font-medium text-foreground", children: renderedVal }) : renderedVal })
2287
2456
  ]
2288
2457
  },
2289
2458
  String(col.key)
@@ -2294,9 +2463,9 @@ function DataTable({
2294
2463
  )) })
2295
2464
  ) : (
2296
2465
  /* Horizontal Table Mode */
2297
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native24.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native24.View, { className: "rounded-2xl border border-border bg-card overflow-hidden", children: [
2298
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native24.View, { className: "flex-row bg-muted/10 border-b border-border", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2299
- import_react_native24.Pressable,
2466
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native25.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native25.View, { className: "rounded-2xl border border-border bg-card overflow-hidden", children: [
2467
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_react_native25.View, { className: "flex-row bg-muted/10 border-b border-border", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2468
+ import_react_native25.Pressable,
2300
2469
  {
2301
2470
  disabled: !col.sortable,
2302
2471
  onPress: () => handleSort(String(col.key)),
@@ -2310,7 +2479,7 @@ function DataTable({
2310
2479
  String(col.key)
2311
2480
  )) }),
2312
2481
  paginatedData.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2313
- import_react_native24.Pressable,
2482
+ import_react_native25.Pressable,
2314
2483
  {
2315
2484
  disabled: !onRowPress,
2316
2485
  onPress: () => onRowPress?.(item),
@@ -2319,7 +2488,7 @@ function DataTable({
2319
2488
  const rawVal = item[col.key];
2320
2489
  const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? "\u2014");
2321
2490
  return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2322
- import_react_native24.View,
2491
+ import_react_native25.View,
2323
2492
  {
2324
2493
  style: { width: col.width || 120 },
2325
2494
  className: "px-4 py-3 justify-center",
@@ -2333,7 +2502,7 @@ function DataTable({
2333
2502
  ))
2334
2503
  ] }) })
2335
2504
  ),
2336
- totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native24.View, { className: "flex-row items-center justify-between pt-2", children: [
2505
+ totalPages > 1 && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native25.View, { className: "flex-row items-center justify-between pt-2", children: [
2337
2506
  /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(Text2, { className: "text-xs text-muted", children: [
2338
2507
  "Showing ",
2339
2508
  (currentPage - 1) * pageSize + 1,
@@ -2344,7 +2513,7 @@ function DataTable({
2344
2513
  " ",
2345
2514
  sortedData.length
2346
2515
  ] }),
2347
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native24.View, { className: "flex-row items-center gap-2", children: [
2516
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_react_native25.View, { className: "flex-row items-center gap-2", children: [
2348
2517
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2349
2518
  Button,
2350
2519
  {
@@ -2377,7 +2546,7 @@ function DataTable({
2377
2546
 
2378
2547
  // src/templates/auth/SignInTemplate.tsx
2379
2548
  var React23 = __toESM(require("react"));
2380
- var import_react_native25 = require("react-native");
2549
+ var import_react_native26 = require("react-native");
2381
2550
  var import_jsx_runtime26 = require("react/jsx-runtime");
2382
2551
  var SignInTemplate = ({
2383
2552
  title = "Welcome Back",
@@ -2415,25 +2584,25 @@ var SignInTemplate = ({
2415
2584
  }
2416
2585
  };
2417
2586
  return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2418
- import_react_native25.KeyboardAvoidingView,
2587
+ import_react_native26.KeyboardAvoidingView,
2419
2588
  {
2420
- behavior: import_react_native25.Platform.OS === "ios" ? "padding" : "height",
2589
+ behavior: import_react_native26.Platform.OS === "ios" ? "padding" : "height",
2421
2590
  className: cn("flex-1 bg-background", className),
2422
2591
  children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2423
- import_react_native25.ScrollView,
2592
+ import_react_native26.ScrollView,
2424
2593
  {
2425
2594
  contentContainerStyle: { flexGrow: 1, justifyContent: "center" },
2426
2595
  className: "px-6 py-8",
2427
2596
  keyboardShouldPersistTaps: "handled",
2428
2597
  showsVerticalScrollIndicator: false,
2429
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2430
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "items-center gap-2", children: [
2431
- logo && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native25.View, { className: "mb-2", children: logo }),
2598
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2599
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "items-center gap-2", children: [
2600
+ logo && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native26.View, { className: "mb-2", children: logo }),
2432
2601
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Heading, { level: 2, className: "text-3xl font-extrabold text-foreground text-center", children: title }),
2433
2602
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-muted text-center text-base", children: subtitle })
2434
2603
  ] }),
2435
2604
  error && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Alert, { variant: "danger", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(AlertDescription, { children: error }) }),
2436
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "gap-4", children: [
2605
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "gap-4", children: [
2437
2606
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2438
2607
  Input,
2439
2608
  {
@@ -2450,7 +2619,7 @@ var SignInTemplate = ({
2450
2619
  error: emailError
2451
2620
  }
2452
2621
  ),
2453
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native25.View, { className: "gap-1", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2622
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native26.View, { className: "gap-1", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2454
2623
  Input,
2455
2624
  {
2456
2625
  label: "Password",
@@ -2462,15 +2631,15 @@ var SignInTemplate = ({
2462
2631
  if (passwordError) setPasswordError(void 0);
2463
2632
  },
2464
2633
  error: passwordError,
2465
- rightElement: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native25.Pressable, { onPress: () => setShowPassword((p) => !p), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-xs text-muted font-semibold", children: showPassword ? "HIDE" : "SHOW" }) })
2634
+ rightElement: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native26.Pressable, { onPress: () => setShowPassword((p) => !p), className: "p-1", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-xs text-muted font-semibold", children: showPassword ? "HIDE" : "SHOW" }) })
2466
2635
  }
2467
2636
  ) }),
2468
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "flex-row items-center justify-between py-1", children: [
2469
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "flex-row items-center gap-2", children: [
2637
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "flex-row items-center justify-between py-1", children: [
2638
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "flex-row items-center gap-2", children: [
2470
2639
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Checkbox, { checked: rememberMe, onCheckedChange: setRememberMe }),
2471
2640
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm text-foreground", children: "Remember me" })
2472
2641
  ] }),
2473
- onForgotPassword && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native25.Pressable, { onPress: onForgotPassword, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm font-semibold text-primary", children: "Forgot password?" }) })
2642
+ onForgotPassword && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native26.Pressable, { onPress: onForgotPassword, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm font-semibold text-primary", children: "Forgot password?" }) })
2474
2643
  ] }),
2475
2644
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2476
2645
  Button,
@@ -2484,13 +2653,13 @@ var SignInTemplate = ({
2484
2653
  }
2485
2654
  )
2486
2655
  ] }),
2487
- (onGooglePress || onApplePress) && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "gap-4", children: [
2488
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "flex-row items-center gap-3", children: [
2656
+ (onGooglePress || onApplePress) && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "gap-4", children: [
2657
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "flex-row items-center gap-3", children: [
2489
2658
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Separator, { className: "flex-1" }),
2490
2659
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-xs text-muted uppercase", children: "or continue with" }),
2491
2660
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Separator, { className: "flex-1" })
2492
2661
  ] }),
2493
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "flex-row gap-3", children: [
2662
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "flex-row gap-3", children: [
2494
2663
  onGooglePress && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2495
2664
  Button,
2496
2665
  {
@@ -2511,9 +2680,9 @@ var SignInTemplate = ({
2511
2680
  )
2512
2681
  ] })
2513
2682
  ] }),
2514
- onSignUpPress && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native25.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: [
2683
+ onSignUpPress && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react_native26.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: [
2515
2684
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm text-muted", children: "Don't have an account?" }),
2516
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native25.Pressable, { onPress: onSignUpPress, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm font-bold text-primary", children: "Sign Up" }) })
2685
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react_native26.Pressable, { onPress: onSignUpPress, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text2, { className: "text-sm font-bold text-primary", children: "Sign Up" }) })
2517
2686
  ] })
2518
2687
  ] })
2519
2688
  }
@@ -2524,7 +2693,7 @@ var SignInTemplate = ({
2524
2693
 
2525
2694
  // src/templates/auth/SignUpTemplate.tsx
2526
2695
  var React24 = __toESM(require("react"));
2527
- var import_react_native26 = require("react-native");
2696
+ var import_react_native27 = require("react-native");
2528
2697
  var import_jsx_runtime27 = require("react/jsx-runtime");
2529
2698
  var SignUpTemplate = ({
2530
2699
  title = "Create Account",
@@ -2573,25 +2742,25 @@ var SignUpTemplate = ({
2573
2742
  }
2574
2743
  };
2575
2744
  return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2576
- import_react_native26.KeyboardAvoidingView,
2745
+ import_react_native27.KeyboardAvoidingView,
2577
2746
  {
2578
- behavior: import_react_native26.Platform.OS === "ios" ? "padding" : "height",
2747
+ behavior: import_react_native27.Platform.OS === "ios" ? "padding" : "height",
2579
2748
  className: cn("flex-1 bg-background", className),
2580
2749
  children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2581
- import_react_native26.ScrollView,
2750
+ import_react_native27.ScrollView,
2582
2751
  {
2583
2752
  contentContainerStyle: { flexGrow: 1, justifyContent: "center" },
2584
2753
  className: "px-6 py-8",
2585
2754
  keyboardShouldPersistTaps: "handled",
2586
2755
  showsVerticalScrollIndicator: false,
2587
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2588
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "items-center gap-2", children: [
2589
- logo && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native26.View, { className: "mb-2", children: logo }),
2756
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2757
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "items-center gap-2", children: [
2758
+ logo && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native27.View, { className: "mb-2", children: logo }),
2590
2759
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Heading, { level: 2, className: "text-3xl font-extrabold text-foreground text-center", children: title }),
2591
2760
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text2, { className: "text-muted text-center text-base", children: subtitle })
2592
2761
  ] }),
2593
2762
  error && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Alert, { variant: "danger", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AlertDescription, { children: error }) }),
2594
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "gap-4", children: [
2763
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "gap-4", children: [
2595
2764
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2596
2765
  Input,
2597
2766
  {
@@ -2634,8 +2803,8 @@ var SignUpTemplate = ({
2634
2803
  error: passwordError
2635
2804
  }
2636
2805
  ),
2637
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "gap-1", children: [
2638
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "flex-row items-center gap-2 pt-1", children: [
2806
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "gap-1", children: [
2807
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "flex-row items-center gap-2 pt-1", children: [
2639
2808
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2640
2809
  Checkbox,
2641
2810
  {
@@ -2662,13 +2831,13 @@ var SignUpTemplate = ({
2662
2831
  }
2663
2832
  )
2664
2833
  ] }),
2665
- (onGooglePress || onApplePress) && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "gap-4", children: [
2666
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "flex-row items-center gap-3", children: [
2834
+ (onGooglePress || onApplePress) && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "gap-4", children: [
2835
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "flex-row items-center gap-3", children: [
2667
2836
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Separator, { className: "flex-1" }),
2668
2837
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text2, { className: "text-xs text-muted uppercase", children: "or continue with" }),
2669
2838
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Separator, { className: "flex-1" })
2670
2839
  ] }),
2671
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "flex-row gap-3", children: [
2840
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "flex-row gap-3", children: [
2672
2841
  onGooglePress && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2673
2842
  Button,
2674
2843
  {
@@ -2689,9 +2858,9 @@ var SignUpTemplate = ({
2689
2858
  )
2690
2859
  ] })
2691
2860
  ] }),
2692
- onSignInPress && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native26.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: [
2861
+ onSignInPress && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_react_native27.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: [
2693
2862
  /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text2, { className: "text-sm text-muted", children: "Already have an account?" }),
2694
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native26.Pressable, { onPress: onSignInPress, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text2, { className: "text-sm font-bold text-primary", children: "Sign In" }) })
2863
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_react_native27.Pressable, { onPress: onSignInPress, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Text2, { className: "text-sm font-bold text-primary", children: "Sign In" }) })
2695
2864
  ] })
2696
2865
  ] })
2697
2866
  }
@@ -2702,7 +2871,7 @@ var SignUpTemplate = ({
2702
2871
 
2703
2872
  // src/templates/auth/ForgotPasswordTemplate.tsx
2704
2873
  var React25 = __toESM(require("react"));
2705
- var import_react_native27 = require("react-native");
2874
+ var import_react_native28 = require("react-native");
2706
2875
  var import_jsx_runtime28 = require("react/jsx-runtime");
2707
2876
  var ForgotPasswordTemplate = ({
2708
2877
  title = "Reset Password",
@@ -2725,27 +2894,27 @@ var ForgotPasswordTemplate = ({
2725
2894
  onSubmit?.({ email });
2726
2895
  };
2727
2896
  return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2728
- import_react_native27.KeyboardAvoidingView,
2897
+ import_react_native28.KeyboardAvoidingView,
2729
2898
  {
2730
- behavior: import_react_native27.Platform.OS === "ios" ? "padding" : "height",
2899
+ behavior: import_react_native28.Platform.OS === "ios" ? "padding" : "height",
2731
2900
  className: cn("flex-1 bg-background", className),
2732
2901
  children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2733
- import_react_native27.ScrollView,
2902
+ import_react_native28.ScrollView,
2734
2903
  {
2735
2904
  contentContainerStyle: { flexGrow: 1, justifyContent: "center" },
2736
2905
  className: "px-6 py-8",
2737
2906
  keyboardShouldPersistTaps: "handled",
2738
2907
  showsVerticalScrollIndicator: false,
2739
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native27.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2740
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native27.View, { className: "items-center gap-2", children: [
2908
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native28.View, { className: "w-full max-w-md mx-auto gap-6", children: [
2909
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native28.View, { className: "items-center gap-2", children: [
2741
2910
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Heading, { level: 2, className: "text-3xl font-extrabold text-foreground text-center", children: title }),
2742
2911
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text2, { className: "text-muted text-center text-base", children: subtitle })
2743
2912
  ] }),
2744
2913
  error && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Alert, { variant: "danger", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(AlertDescription, { children: error }) }),
2745
- isSuccess ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native27.View, { className: "gap-4", children: [
2914
+ isSuccess ? /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native28.View, { className: "gap-4", children: [
2746
2915
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Alert, { variant: "success", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(AlertDescription, { children: "Password reset link sent! Check your email inbox." }) }),
2747
2916
  onBackToSignIn && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Button, { variant: "primary", size: "lg", onPress: onBackToSignIn, children: "Back to Sign In" })
2748
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native27.View, { className: "gap-4", children: [
2917
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native28.View, { className: "gap-4", children: [
2749
2918
  /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2750
2919
  Input,
2751
2920
  {
@@ -2772,7 +2941,7 @@ var ForgotPasswordTemplate = ({
2772
2941
  children: "Send Reset Link"
2773
2942
  }
2774
2943
  ),
2775
- onBackToSignIn && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native27.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native27.Pressable, { onPress: onBackToSignIn, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text2, { className: "text-sm font-semibold text-primary", children: "Back to Sign In" }) }) })
2944
+ onBackToSignIn && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native28.View, { className: "flex-row justify-center items-center gap-1.5 pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native28.Pressable, { onPress: onBackToSignIn, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Text2, { className: "text-sm font-semibold text-primary", children: "Back to Sign In" }) }) })
2776
2945
  ] })
2777
2946
  ] })
2778
2947
  }
@@ -2782,7 +2951,7 @@ var ForgotPasswordTemplate = ({
2782
2951
  };
2783
2952
 
2784
2953
  // src/templates/dashboard/DashboardTemplate.tsx
2785
- var import_react_native28 = require("react-native");
2954
+ var import_react_native29 = require("react-native");
2786
2955
  var import_jsx_runtime29 = require("react/jsx-runtime");
2787
2956
  var DashboardTemplate = ({
2788
2957
  userName,
@@ -2798,20 +2967,20 @@ var DashboardTemplate = ({
2798
2967
  ...props
2799
2968
  }) => {
2800
2969
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2801
- import_react_native28.ScrollView,
2970
+ import_react_native29.ScrollView,
2802
2971
  {
2803
2972
  className: cn("flex-1 bg-background", className),
2804
2973
  contentContainerStyle: { paddingBottom: 40 },
2805
2974
  showsVerticalScrollIndicator: false,
2806
2975
  ...props,
2807
2976
  children: [
2808
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "px-6 pt-6 pb-4 flex-row items-center justify-between border-b border-border/40", children: [
2809
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "flex-row items-center gap-3", children: [
2977
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "px-6 pt-6 pb-4 flex-row items-center justify-between border-b border-border/40", children: [
2978
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "flex-row items-center gap-3", children: [
2810
2979
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Avatar, { size: "lg", children: [
2811
2980
  userAvatarUrl && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AvatarImage, { source: { uri: userAvatarUrl } }),
2812
2981
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AvatarFallback, { text: userName.slice(0, 2).toUpperCase() })
2813
2982
  ] }),
2814
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { children: [
2983
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { children: [
2815
2984
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-xs text-muted font-medium uppercase tracking-wider", children: userRole }),
2816
2985
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Heading, { level: 3, className: "text-xl font-bold text-foreground", children: [
2817
2986
  "Hello, ",
@@ -2821,27 +2990,27 @@ var DashboardTemplate = ({
2821
2990
  ] })
2822
2991
  ] }),
2823
2992
  onNotificationPress && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2824
- import_react_native28.Pressable,
2993
+ import_react_native29.Pressable,
2825
2994
  {
2826
2995
  onPress: onNotificationPress,
2827
2996
  className: "w-10 h-10 rounded-full border border-border bg-card items-center justify-center relative active:opacity-70",
2828
2997
  children: [
2829
2998
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-base text-foreground", children: "\u{1F514}" }),
2830
- unreadNotificationsCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { className: "absolute -top-1 -right-1 w-5 h-5 rounded-full bg-danger items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-[10px] font-bold text-white", children: unreadNotificationsCount > 9 ? "9+" : unreadNotificationsCount }) })
2999
+ unreadNotificationsCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native29.View, { className: "absolute -top-1 -right-1 w-5 h-5 rounded-full bg-danger items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-[10px] font-bold text-white", children: unreadNotificationsCount > 9 ? "9+" : unreadNotificationsCount }) })
2831
3000
  ]
2832
3001
  }
2833
3002
  )
2834
3003
  ] }),
2835
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "px-6 pt-6 gap-6", children: [
2836
- quickActions && quickActions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "gap-2", children: [
3004
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "px-6 pt-6 gap-6", children: [
3005
+ quickActions && quickActions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "gap-2", children: [
2837
3006
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-xs font-bold text-muted uppercase tracking-wider", children: "Quick Actions" }),
2838
3007
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2839
- import_react_native28.ScrollView,
3008
+ import_react_native29.ScrollView,
2840
3009
  {
2841
3010
  horizontal: true,
2842
3011
  showsHorizontalScrollIndicator: false,
2843
3012
  className: "-mx-6 px-6",
2844
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { className: "flex-row gap-3", children: quickActions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3013
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native29.View, { className: "flex-row gap-3", children: quickActions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2845
3014
  Button,
2846
3015
  {
2847
3016
  variant: "outline",
@@ -2855,21 +3024,21 @@ var DashboardTemplate = ({
2855
3024
  }
2856
3025
  )
2857
3026
  ] }),
2858
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "gap-3", children: [
3027
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "gap-3", children: [
2859
3028
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-xs font-bold text-muted uppercase tracking-wider", children: "Overview Performance" }),
2860
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.View, { className: "gap-3", children: metrics.map((metric) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(StatsCard, { ...metric }, metric.id)) })
3029
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native29.View, { className: "gap-3", children: metrics.map((metric) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(StatsCard, { ...metric }, metric.id)) })
2861
3030
  ] }),
2862
3031
  recentActivities && recentActivities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Card, { className: "gap-2", children: [
2863
3032
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(CardHeader, { className: "flex-row items-center justify-between pb-2", children: [
2864
3033
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CardTitle, { className: "text-base font-bold", children: "Recent Activity" }),
2865
- onViewAllActivities && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native28.Pressable, { onPress: onViewAllActivities, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-xs font-semibold text-primary", children: "View all" }) })
3034
+ onViewAllActivities && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native29.Pressable, { onPress: onViewAllActivities, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-xs font-semibold text-primary", children: "View all" }) })
2866
3035
  ] }),
2867
3036
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CardContent, { className: "gap-3 pt-0", children: recentActivities.map((act) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2868
- import_react_native28.View,
3037
+ import_react_native29.View,
2869
3038
  {
2870
3039
  className: "flex-row items-center justify-between py-2 border-b border-border/40 last:border-b-0",
2871
3040
  children: [
2872
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "flex-row items-center gap-3 flex-1 pr-2", children: [
3041
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "flex-row items-center gap-3 flex-1 pr-2", children: [
2873
3042
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Avatar, { size: "sm", children: [
2874
3043
  act.avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AvatarImage, { source: { uri: act.avatarUrl } }),
2875
3044
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
@@ -2879,7 +3048,7 @@ var DashboardTemplate = ({
2879
3048
  }
2880
3049
  )
2881
3050
  ] }),
2882
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "flex-1", children: [
3051
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "flex-1", children: [
2883
3052
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-sm font-semibold text-foreground", numberOfLines: 1, children: act.title }),
2884
3053
  /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Text2, { className: "text-xs text-muted", numberOfLines: 1, children: [
2885
3054
  act.subtitle,
@@ -2888,7 +3057,7 @@ var DashboardTemplate = ({
2888
3057
  ] })
2889
3058
  ] })
2890
3059
  ] }),
2891
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native28.View, { className: "items-end gap-1", children: [
3060
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_react_native29.View, { className: "items-end gap-1", children: [
2892
3061
  act.amount && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Text2, { className: "text-sm font-bold text-foreground", children: act.amount }),
2893
3062
  act.status && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Badge, { variant: act.status.variant, size: "sm", children: act.status.label })
2894
3063
  ] })
@@ -2904,7 +3073,7 @@ var DashboardTemplate = ({
2904
3073
  };
2905
3074
 
2906
3075
  // src/templates/settings/SettingsTemplate.tsx
2907
- var import_react_native29 = require("react-native");
3076
+ var import_react_native30 = require("react-native");
2908
3077
  var import_jsx_runtime30 = require("react/jsx-runtime");
2909
3078
  var SettingsTemplate = ({
2910
3079
  user,
@@ -2926,21 +3095,21 @@ var SettingsTemplate = ({
2926
3095
  ...props
2927
3096
  }) => {
2928
3097
  return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2929
- import_react_native29.ScrollView,
3098
+ import_react_native30.ScrollView,
2930
3099
  {
2931
3100
  className: cn("flex-1 bg-background", className),
2932
3101
  contentContainerStyle: { paddingBottom: 40 },
2933
3102
  showsVerticalScrollIndicator: false,
2934
3103
  ...props,
2935
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "px-6 pt-6 gap-6", children: [
3104
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "px-6 pt-6 gap-6", children: [
2936
3105
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Heading, { level: 2, className: "text-2xl font-bold text-foreground", children: "Settings & Profile" }),
2937
3106
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Card, { className: "p-4 flex-row items-center gap-4", children: [
2938
3107
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Avatar, { size: "lg", children: [
2939
3108
  user.avatarUrl && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AvatarImage, { source: { uri: user.avatarUrl } }),
2940
3109
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(AvatarFallback, { text: user.name.slice(0, 2).toUpperCase() })
2941
3110
  ] }),
2942
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "flex-1", children: [
2943
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "flex-row items-center gap-2", children: [
3111
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "flex-1", children: [
3112
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "flex-row items-center gap-2", children: [
2944
3113
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-base font-bold text-foreground", children: user.name }),
2945
3114
  user.plan && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Badge, { variant: "primary", size: "sm", children: user.plan })
2946
3115
  ] }),
@@ -2948,11 +3117,11 @@ var SettingsTemplate = ({
2948
3117
  ] }),
2949
3118
  onEditProfile && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Button, { variant: "outline", size: "sm", onPress: onEditProfile, children: "Edit" })
2950
3119
  ] }),
2951
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "gap-2", children: [
3120
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "gap-2", children: [
2952
3121
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs font-bold text-muted uppercase tracking-wider px-1", children: "Preferences" }),
2953
3122
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Card, { className: "divide-y divide-border/50", children: [
2954
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "p-4 flex-row items-center justify-between", children: [
2955
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "pr-4 flex-1", children: [
3123
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "p-4 flex-row items-center justify-between", children: [
3124
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "pr-4 flex-1", children: [
2956
3125
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-sm font-semibold text-foreground", children: "Push Notifications" }),
2957
3126
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs text-muted", children: "Receive real-time alerts on your mobile device" })
2958
3127
  ] }),
@@ -2964,8 +3133,8 @@ var SettingsTemplate = ({
2964
3133
  }
2965
3134
  )
2966
3135
  ] }),
2967
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "p-4 flex-row items-center justify-between", children: [
2968
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "pr-4 flex-1", children: [
3136
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "p-4 flex-row items-center justify-between", children: [
3137
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "pr-4 flex-1", children: [
2969
3138
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-sm font-semibold text-foreground", children: "Email Notifications" }),
2970
3139
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs text-muted", children: "Weekly digests and activity summaries" })
2971
3140
  ] }),
@@ -2977,15 +3146,15 @@ var SettingsTemplate = ({
2977
3146
  }
2978
3147
  )
2979
3148
  ] }),
2980
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "p-4 flex-row items-center justify-between", children: [
2981
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "pr-4 flex-1", children: [
3149
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "p-4 flex-row items-center justify-between", children: [
3150
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "pr-4 flex-1", children: [
2982
3151
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-sm font-semibold text-foreground", children: "Dark Theme" }),
2983
3152
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs text-muted", children: "Enable high contrast dark mode appearance" })
2984
3153
  ] }),
2985
3154
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Switch, { checked: isDarkMode, onCheckedChange: onToggleDarkMode })
2986
3155
  ] }),
2987
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "p-4 flex-row items-center justify-between", children: [
2988
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "pr-4 flex-1", children: [
3156
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "p-4 flex-row items-center justify-between", children: [
3157
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "pr-4 flex-1", children: [
2989
3158
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-sm font-semibold text-foreground", children: "Biometric Login" }),
2990
3159
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs text-muted", children: "Use Face ID or fingerprint to authenticate" })
2991
3160
  ] }),
@@ -2999,11 +3168,11 @@ var SettingsTemplate = ({
2999
3168
  ] })
3000
3169
  ] })
3001
3170
  ] }),
3002
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "gap-2", children: [
3171
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "gap-2", children: [
3003
3172
  /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text2, { className: "text-xs font-bold text-muted uppercase tracking-wider px-1", children: "Account & Security" }),
3004
3173
  /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(Card, { className: "divide-y divide-border/50", children: [
3005
3174
  onChangePassword && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3006
- import_react_native29.Pressable,
3175
+ import_react_native30.Pressable,
3007
3176
  {
3008
3177
  onPress: onChangePassword,
3009
3178
  className: "p-4 flex-row items-center justify-between active:bg-muted/10",
@@ -3014,7 +3183,7 @@ var SettingsTemplate = ({
3014
3183
  }
3015
3184
  ),
3016
3185
  onViewTerms && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3017
- import_react_native29.Pressable,
3186
+ import_react_native30.Pressable,
3018
3187
  {
3019
3188
  onPress: onViewTerms,
3020
3189
  className: "p-4 flex-row items-center justify-between active:bg-muted/10",
@@ -3025,7 +3194,7 @@ var SettingsTemplate = ({
3025
3194
  }
3026
3195
  ),
3027
3196
  onViewPrivacy && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3028
- import_react_native29.Pressable,
3197
+ import_react_native30.Pressable,
3029
3198
  {
3030
3199
  onPress: onViewPrivacy,
3031
3200
  className: "p-4 flex-row items-center justify-between active:bg-muted/10",
@@ -3037,7 +3206,7 @@ var SettingsTemplate = ({
3037
3206
  )
3038
3207
  ] })
3039
3208
  ] }),
3040
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native29.View, { className: "gap-3 pt-2", children: [
3209
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(import_react_native30.View, { className: "gap-3 pt-2", children: [
3041
3210
  onLogout && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Button, { variant: "outline", size: "lg", onPress: onLogout, children: "Log Out" }),
3042
3211
  onDeleteAccount && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3043
3212
  Button,
@@ -3056,7 +3225,7 @@ var SettingsTemplate = ({
3056
3225
 
3057
3226
  // src/providers/BeyondUIProvider.tsx
3058
3227
  var React26 = __toESM(require("react"));
3059
- var import_react_native30 = require("react-native");
3228
+ var import_react_native31 = require("react-native");
3060
3229
  var import_portal = require("@rn-primitives/portal");
3061
3230
  var import_jsx_runtime31 = require("react/jsx-runtime");
3062
3231
  var BeyondUIContext = React26.createContext({
@@ -3073,7 +3242,7 @@ function BeyondUIProvider({
3073
3242
  children,
3074
3243
  defaultColorScheme = "system"
3075
3244
  }) {
3076
- const systemScheme = (0, import_react_native30.useColorScheme)() ?? "light";
3245
+ const systemScheme = (0, import_react_native31.useColorScheme)() ?? "light";
3077
3246
  const [selectedScheme, setSelectedScheme] = React26.useState(defaultColorScheme);
3078
3247
  const [toasts, setToasts] = React26.useState([]);
3079
3248
  const activeScheme = selectedScheme === "system" ? systemScheme : selectedScheme;
@@ -3112,7 +3281,7 @@ function BeyondUIProvider({
3112
3281
  }),
3113
3282
  [activeScheme, toggleColorScheme]
3114
3283
  );
3115
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BeyondUIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ToastContext.Provider, { value: toastContextValue, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native30.View, { className: activeScheme === "dark" ? "dark flex-1" : "flex-1", children: [
3284
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BeyondUIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ToastContext.Provider, { value: toastContextValue, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_react_native31.View, { className: activeScheme === "dark" ? "dark flex-1" : "flex-1", children: [
3116
3285
  children,
3117
3286
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_portal.PortalHost, {}),
3118
3287
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ToastContainer, { toasts, onDismiss: dismissToast })
@@ -3351,6 +3520,7 @@ function joinA11yLabels(...parts) {
3351
3520
  Dialog,
3352
3521
  DialogClose,
3353
3522
  DialogContent,
3523
+ DialogContext,
3354
3524
  DialogDescription,
3355
3525
  DialogFooter,
3356
3526
  DialogHeader,
@@ -3379,6 +3549,7 @@ function joinA11yLabels(...parts) {
3379
3549
  Switch,
3380
3550
  Tabs,
3381
3551
  TabsContent,
3552
+ TabsContext,
3382
3553
  TabsList,
3383
3554
  TabsTrigger,
3384
3555
  Text,
@@ -3405,6 +3576,8 @@ function joinA11yLabels(...parts) {
3405
3576
  textVariants,
3406
3577
  tokens,
3407
3578
  useBeyondUI,
3579
+ useDialogContext,
3580
+ useTabsContext,
3408
3581
  useToast
3409
3582
  });
3410
3583
  //# sourceMappingURL=index.js.map