@oxyhq/services 22.6.1 → 22.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/lib/commonjs/ui/components/fileManagement/FileViewer.js +99 -77
  2. package/lib/commonjs/ui/components/fileManagement/FileViewer.js.map +1 -1
  3. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js +33 -40
  4. package/lib/commonjs/ui/components/fileManagement/UploadPreview.js.map +1 -1
  5. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js +92 -88
  6. package/lib/commonjs/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  7. package/lib/commonjs/ui/screens/FileManagementScreen.js +169 -310
  8. package/lib/commonjs/ui/screens/FileManagementScreen.js.map +1 -1
  9. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js +17 -14
  10. package/lib/commonjs/ui/screens/fileManagement/FileListSection.js.map +1 -1
  11. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js +16 -20
  12. package/lib/commonjs/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  13. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js +29 -12
  14. package/lib/commonjs/ui/screens/fileManagement/UploadBar.js.map +1 -1
  15. package/lib/commonjs/ui/server.js +1 -1
  16. package/lib/commonjs/ui/server.js.map +1 -1
  17. package/lib/module/ui/components/fileManagement/FileViewer.js +100 -78
  18. package/lib/module/ui/components/fileManagement/FileViewer.js.map +1 -1
  19. package/lib/module/ui/components/fileManagement/UploadPreview.js +34 -41
  20. package/lib/module/ui/components/fileManagement/UploadPreview.js.map +1 -1
  21. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js +94 -90
  22. package/lib/module/ui/components/photogrid/JustifiedPhotoGrid.js.map +1 -1
  23. package/lib/module/ui/screens/FileManagementScreen.js +171 -313
  24. package/lib/module/ui/screens/FileManagementScreen.js.map +1 -1
  25. package/lib/module/ui/screens/fileManagement/FileListSection.js +17 -14
  26. package/lib/module/ui/screens/fileManagement/FileListSection.js.map +1 -1
  27. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js +17 -21
  28. package/lib/module/ui/screens/fileManagement/PhotoPickerSection.js.map +1 -1
  29. package/lib/module/ui/screens/fileManagement/UploadBar.js +30 -13
  30. package/lib/module/ui/screens/fileManagement/UploadBar.js.map +1 -1
  31. package/lib/module/ui/server.js +1 -1
  32. package/lib/module/ui/server.js.map +1 -1
  33. package/lib/typescript/commonjs/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  37. package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/ui/screens/FileManagementScreen.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  41. package/lib/typescript/commonjs/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/ui/server.d.ts +1 -1
  43. package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
  44. package/lib/typescript/module/ui/components/fileManagement/FileViewer.d.ts.map +1 -1
  45. package/lib/typescript/module/ui/components/fileManagement/UploadPreview.d.ts.map +1 -1
  46. package/lib/typescript/module/ui/components/photogrid/JustifiedPhotoGrid.d.ts.map +1 -1
  47. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +2 -2
  48. package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  49. package/lib/typescript/module/ui/screens/FileManagementScreen.d.ts.map +1 -1
  50. package/lib/typescript/module/ui/screens/fileManagement/FileListSection.d.ts.map +1 -1
  51. package/lib/typescript/module/ui/screens/fileManagement/PhotoPickerSection.d.ts.map +1 -1
  52. package/lib/typescript/module/ui/screens/fileManagement/UploadBar.d.ts.map +1 -1
  53. package/lib/typescript/module/ui/server.d.ts +1 -1
  54. package/lib/typescript/module/ui/server.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/ui/components/fileManagement/FileViewer.tsx +82 -68
  57. package/src/ui/components/fileManagement/UploadPreview.tsx +34 -29
  58. package/src/ui/components/photogrid/JustifiedPhotoGrid.tsx +14 -12
  59. package/src/ui/screens/FileManagementScreen.tsx +123 -300
  60. package/src/ui/screens/fileManagement/FileListSection.tsx +10 -10
  61. package/src/ui/screens/fileManagement/PhotoPickerSection.tsx +16 -19
  62. package/src/ui/screens/fileManagement/UploadBar.tsx +29 -14
  63. package/src/ui/server.ts +1 -1
  64. package/lib/commonjs/ui/components/fileManagement/styles.js +0 -832
  65. package/lib/commonjs/ui/components/fileManagement/styles.js.map +0 -1
  66. package/lib/module/ui/components/fileManagement/styles.js +0 -828
  67. package/lib/module/ui/components/fileManagement/styles.js.map +0 -1
  68. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts +0 -825
  69. package/lib/typescript/commonjs/ui/components/fileManagement/styles.d.ts.map +0 -1
  70. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts +0 -825
  71. package/lib/typescript/module/ui/components/fileManagement/styles.d.ts.map +0 -1
  72. package/src/ui/components/fileManagement/styles.ts +0 -823
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react';
4
- import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, AccessibilityInfo } from 'react-native';
4
+ import { View, Text, TouchableOpacity, StyleSheet, ScrollView, ActivityIndicator, RefreshControl, TextInput, Image, Animated, Easing, AccessibilityInfo, useWindowDimensions } from 'react-native';
5
5
  import { Image as ExpoImage } from 'expo-image';
6
6
  import { Dialog, toast, useDialogControl } from '@oxyhq/bloom';
7
7
  import { Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';
@@ -17,15 +17,39 @@ import { useResolvedFileUrls, fileThumbSource } from "../hooks/useResolvedFileUr
17
17
  import { FileViewer } from "../components/fileManagement/FileViewer.js";
18
18
  import { FileDetailsModal } from "../components/fileManagement/FileDetailsModal.js";
19
19
  import { UploadPreview } from "../components/fileManagement/UploadPreview.js";
20
- import { fileManagementStyles } from "../components/fileManagement/styles.js";
21
20
  import { getErrorMessage } from "./fileManagement/shared.js";
22
21
  import { useFileUploadState } from "./fileManagement/hooks/useFileUploadState.js";
23
22
  import PhotoPickerView from "./fileManagement/PhotoPickerSection.js";
24
23
  import FileListSection from "./fileManagement/FileListSection.js";
25
24
  import UploadBar from "./fileManagement/UploadBar.js";
26
25
 
27
- // Animated button component for smooth transitions
26
+ // Genuinely-inline-only styles: `viewModeButton` is spread into an Animated.View
27
+ // style array (interpolated backgroundColor), and the photo tiles are
28
+ // `expo-image` (no className remap). Everything else uses NativeWind classNames.
28
29
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
30
+ const screenStyles = StyleSheet.create({
31
+ viewModeButton: {
32
+ paddingHorizontal: 10,
33
+ paddingVertical: 6,
34
+ borderRadius: 999,
35
+ minWidth: 36,
36
+ alignItems: 'center',
37
+ justifyContent: 'center',
38
+ marginHorizontal: 1
39
+ },
40
+ photoImage: {
41
+ width: '100%',
42
+ height: '100%',
43
+ borderRadius: 8
44
+ },
45
+ justifiedPhotoImage: {
46
+ width: '100%',
47
+ height: '100%',
48
+ borderRadius: 6
49
+ }
50
+ });
51
+
52
+ // Animated button component for smooth transitions
29
53
  const AnimatedButton = ({
30
54
  isSelected,
31
55
  onPress,
@@ -76,8 +100,7 @@ const FileManagementScreen = ({
76
100
  goBack,
77
101
  navigate,
78
102
  userId,
79
- containerWidth = 400,
80
- // Fallback for when not provided by the router
103
+ containerWidth,
81
104
  selectMode = false,
82
105
  multiSelect = false,
83
106
  onSelect,
@@ -108,8 +131,12 @@ const FileManagementScreen = ({
108
131
  const visibilityChangeDialog = useDialogControl();
109
132
  const [pendingDeleteFile, setPendingDeleteFile] = useState(null);
110
133
  const files = useFiles();
111
- // Ensure containerWidth is a number (TypeScript guard)
112
- const safeContainerWidth = typeof containerWidth === 'number' ? containerWidth : 400;
134
+ const {
135
+ width: windowWidth
136
+ } = useWindowDimensions();
137
+ // Prefer an explicit sheet width from the router; fall back to the window
138
+ // so photo grids never size against a hardcoded 400px default.
139
+ const safeContainerWidth = typeof containerWidth === 'number' && containerWidth > 0 ? containerWidth : windowWidth;
113
140
  const uploading = useUploadingStore();
114
141
  const uploadProgress = useUploadAggregateProgress();
115
142
  const deleting = useDeletingStore();
@@ -738,60 +765,11 @@ const FileManagementScreen = ({
738
765
  setSelectedFile(file);
739
766
  fileDetailsControl.open();
740
767
  };
741
- const renderSimplePhotoItem = useCallback((photo, index) => {
742
- const downloadUrl = thumbSourceFor(photo);
743
-
744
- // Calculate photo item width based on actual container size from bottom sheet
745
- let itemsPerRow = 3; // Default for mobile
746
- if (safeContainerWidth > 768) itemsPerRow = 4; // Desktop/tablet
747
- else if (safeContainerWidth > 480) itemsPerRow = 3; // Large mobile
748
-
749
- // Account for the photoScrollContainer padding (16px on each side = 32px total)
750
- const scrollContainerPadding = 32; // Total horizontal padding from photoScrollContainer
751
- const gaps = (itemsPerRow - 1) * 4; // Gap between items (4px)
752
- const availableWidth = safeContainerWidth - scrollContainerPadding;
753
- const itemWidth = (availableWidth - gaps) / itemsPerRow;
754
- return /*#__PURE__*/_jsx(TouchableOpacity, {
755
- style: [fileManagementStyles.simplePhotoItem, {
756
- width: itemWidth,
757
- height: itemWidth,
758
- marginRight: (index + 1) % itemsPerRow === 0 ? 0 : 4,
759
- ...(selectMode && selectedIds.has(photo.id) ? {
760
- borderWidth: 2,
761
- borderColor: colors.primary
762
- } : {})
763
- }],
764
- onPress: () => handleFileOpen(photo),
765
- activeOpacity: 0.8,
766
- children: /*#__PURE__*/_jsxs(View, {
767
- style: fileManagementStyles.simplePhotoContainer,
768
- children: [/*#__PURE__*/_jsx(ExpoImage, {
769
- source: {
770
- uri: downloadUrl
771
- },
772
- style: fileManagementStyles.simplePhotoImage,
773
- contentFit: "cover",
774
- transition: 120,
775
- cachePolicy: "memory-disk",
776
- onError: () => {
777
- // Photo failed to load, will show placeholder
778
- },
779
- accessibilityLabel: photo.filename
780
- }), selectMode && /*#__PURE__*/_jsx(View, {
781
- style: fileManagementStyles.selectionBadge,
782
- children: /*#__PURE__*/_jsx(Ionicons, {
783
- name: selectedIds.has(photo.id) ? 'checkmark-circle' : 'ellipse-outline',
784
- size: 20,
785
- color: selectedIds.has(photo.id) ? colors.primary : colors.text
786
- })
787
- })]
788
- })
789
- }, photo.id);
790
- }, [thumbSourceFor, safeContainerWidth, selectMode, selectedIds, colors.primary, colors.text]);
791
768
  const renderJustifiedPhotoItem = useCallback((photo, width, height, isLast) => {
792
769
  const downloadUrl = thumbSourceFor(photo);
793
770
  return /*#__PURE__*/_jsx(TouchableOpacity, {
794
- style: [fileManagementStyles.justifiedPhotoItem, {
771
+ className: "rounded-[6px] overflow-hidden relative",
772
+ style: {
795
773
  width,
796
774
  height,
797
775
  ...(selectMode && selectedIds.has(photo.id) ? {
@@ -801,16 +779,16 @@ const FileManagementScreen = ({
801
779
  ...(selectMode && multiSelect && selectedIds.size > 0 && !selectedIds.has(photo.id) ? {
802
780
  opacity: 0.4
803
781
  } : {})
804
- }],
782
+ },
805
783
  onPress: () => handleFileOpen(photo),
806
784
  activeOpacity: 0.8,
807
785
  children: /*#__PURE__*/_jsxs(View, {
808
- style: fileManagementStyles.justifiedPhotoContainer,
786
+ className: "w-full h-full relative rounded-[6px] overflow-hidden",
809
787
  children: [/*#__PURE__*/_jsx(ExpoImage, {
810
788
  source: {
811
789
  uri: downloadUrl
812
790
  },
813
- style: fileManagementStyles.justifiedPhotoImage,
791
+ style: screenStyles.justifiedPhotoImage,
814
792
  contentFit: "cover",
815
793
  transition: 120,
816
794
  cachePolicy: "memory-disk",
@@ -819,7 +797,10 @@ const FileManagementScreen = ({
819
797
  },
820
798
  accessibilityLabel: photo.filename
821
799
  }), selectMode && /*#__PURE__*/_jsx(View, {
822
- style: fileManagementStyles.selectionBadge,
800
+ className: "absolute top-[4px] right-[4px] rounded-[12px] p-[2px]",
801
+ style: {
802
+ backgroundColor: 'rgba(0,0,0,0.4)'
803
+ },
823
804
  children: /*#__PURE__*/_jsx(Ionicons, {
824
805
  name: selectedIds.has(photo.id) ? 'checkmark-circle' : 'ellipse-outline',
825
806
  size: 20,
@@ -840,160 +821,6 @@ const FileManagementScreen = ({
840
821
  }
841
822
  // eslint-disable-next-line react-hooks/exhaustive-deps
842
823
  }, [targetUserId]);
843
- const renderFileItem = file => {
844
- const isImage = file.contentType.startsWith('image/');
845
- const isPDF = file.contentType.includes('pdf');
846
- const isVideo = file.contentType.startsWith('video/');
847
- const isAudio = file.contentType.startsWith('audio/');
848
- const hasPreview = isImage || isPDF || isVideo;
849
- const borderColor = colors.border;
850
- return /*#__PURE__*/_jsxs(View, {
851
- style: [fileManagementStyles.fileItem, {
852
- backgroundColor: colors.backgroundSecondary,
853
- borderColor
854
- }, selectMode && selectedIds.has(file.id) && {
855
- borderColor: colors.primary,
856
- borderWidth: 2
857
- }],
858
- children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
859
- style: fileManagementStyles.fileContent,
860
- onPress: () => handleFileOpen(file),
861
- children: [/*#__PURE__*/_jsx(View, {
862
- style: fileManagementStyles.filePreviewContainer,
863
- children: hasPreview ? /*#__PURE__*/_jsxs(View, {
864
- style: fileManagementStyles.filePreview,
865
- children: [isImage && /*#__PURE__*/_jsx(ExpoImage, {
866
- source: {
867
- uri: thumbSourceFor(file)
868
- },
869
- style: fileManagementStyles.previewImage,
870
- contentFit: "cover",
871
- transition: 120,
872
- cachePolicy: "memory-disk",
873
- onError: () => {
874
- // Image preview failed to load
875
- },
876
- accessibilityLabel: file.filename
877
- }), isPDF && /*#__PURE__*/_jsxs(View, {
878
- style: fileManagementStyles.pdfPreview,
879
- children: [/*#__PURE__*/_jsx(Ionicons, {
880
- name: "document",
881
- size: 32,
882
- color: colors.primary
883
- }), /*#__PURE__*/_jsx(Text, {
884
- style: [fileManagementStyles.pdfLabel, {
885
- color: colors.primary
886
- }],
887
- children: "PDF"
888
- })]
889
- }), isVideo && /*#__PURE__*/_jsxs(View, {
890
- style: fileManagementStyles.videoPreviewWrapper,
891
- children: [/*#__PURE__*/_jsx(ExpoImage, {
892
- source: {
893
- uri: thumbSourceFor(file)
894
- },
895
- style: fileManagementStyles.videoPosterImage,
896
- contentFit: "cover",
897
- transition: 120,
898
- cachePolicy: "memory-disk",
899
- onError: _ => {
900
- // If thumbnail not available, we still show icon overlay
901
- },
902
- accessibilityLabel: `${file.filename} video thumbnail`
903
- }), /*#__PURE__*/_jsx(View, {
904
- style: fileManagementStyles.videoOverlay,
905
- children: /*#__PURE__*/_jsx(Ionicons, {
906
- name: "play",
907
- size: 24,
908
- color: "#FFFFFF"
909
- })
910
- })]
911
- }), /*#__PURE__*/_jsx(View, {
912
- style: [fileManagementStyles.fallbackIcon, {
913
- display: isImage ? 'none' : 'flex'
914
- }],
915
- children: /*#__PURE__*/_jsx(Ionicons, {
916
- name: getFileIcon(file.contentType),
917
- size: 32,
918
- color: colors.primary
919
- })
920
- }), selectMode && /*#__PURE__*/_jsx(View, {
921
- style: fileManagementStyles.selectionBadge,
922
- children: /*#__PURE__*/_jsx(Ionicons, {
923
- name: selectedIds.has(file.id) ? 'checkmark-circle' : 'ellipse-outline',
924
- size: 22,
925
- color: selectedIds.has(file.id) ? colors.primary : colors.text
926
- })
927
- })]
928
- }) : /*#__PURE__*/_jsx(View, {
929
- style: fileManagementStyles.fileIconContainer,
930
- children: /*#__PURE__*/_jsx(Ionicons, {
931
- name: getFileIcon(file.contentType),
932
- size: 32,
933
- color: colors.primary
934
- })
935
- })
936
- }), /*#__PURE__*/_jsxs(View, {
937
- style: fileManagementStyles.fileInfo,
938
- children: [/*#__PURE__*/_jsx(Text, {
939
- style: [fileManagementStyles.fileName, {
940
- color: colors.text
941
- }],
942
- numberOfLines: 1,
943
- children: file.filename
944
- }), /*#__PURE__*/_jsxs(Text, {
945
- style: [fileManagementStyles.fileDetails, {
946
- color: colors.textSecondary
947
- }],
948
- children: [formatFileSize(file.length), " \u2022 ", new Date(file.uploadDate).toLocaleDateString()]
949
- }), file.metadata?.description && /*#__PURE__*/_jsx(Text, {
950
- style: [fileManagementStyles.fileDescription, {
951
- color: colors.textTertiary
952
- }],
953
- numberOfLines: 2,
954
- children: file.metadata.description
955
- })]
956
- })]
957
- }), !selectMode && /*#__PURE__*/_jsxs(View, {
958
- style: fileManagementStyles.fileActions,
959
- children: [hasPreview && /*#__PURE__*/_jsx(TouchableOpacity, {
960
- style: [fileManagementStyles.actionButton, {
961
- backgroundColor: colors.backgroundSecondary
962
- }],
963
- onPress: () => handleFileOpen(file),
964
- children: /*#__PURE__*/_jsx(Ionicons, {
965
- name: "eye",
966
- size: 20,
967
- color: colors.primary
968
- })
969
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
970
- style: [fileManagementStyles.actionButton, {
971
- backgroundColor: colors.backgroundSecondary
972
- }],
973
- onPress: () => handleFileDownload(file.id, file.filename),
974
- children: /*#__PURE__*/_jsx(Ionicons, {
975
- name: "download",
976
- size: 20,
977
- color: colors.primary
978
- })
979
- }), /*#__PURE__*/_jsx(TouchableOpacity, {
980
- style: [fileManagementStyles.actionButton, {
981
- backgroundColor: colors.negativeSubtle
982
- }],
983
- onPress: () => confirmFileDelete(file.id, file.filename),
984
- disabled: deleting === file.id,
985
- children: deleting === file.id ? /*#__PURE__*/_jsx(ActivityIndicator, {
986
- size: "small",
987
- color: colors.error
988
- }) : /*#__PURE__*/_jsx(Ionicons, {
989
- name: "trash",
990
- size: 20,
991
- color: colors.error
992
- })
993
- })]
994
- })]
995
- }, file.id);
996
- };
997
824
 
998
825
  // SettingsListItem-based file items (for 'all' view)
999
826
  const groupedFileItems = useMemo(() => {
@@ -1115,11 +942,12 @@ const FileManagementScreen = ({
1115
942
  },
1116
943
  // Hide action buttons when selecting (in selectMode or bulk operations mode)
1117
944
  rightElement: !selectMode && selectedIds.size === 0 ? /*#__PURE__*/_jsxs(View, {
1118
- style: fileManagementStyles.groupedActions,
945
+ className: "flex-row items-center gap-[6px] ml-[12px]",
1119
946
  children: [(isImage || isVideo || file.contentType.includes('pdf')) && /*#__PURE__*/_jsx(TouchableOpacity, {
1120
- style: [fileManagementStyles.groupedActionBtn, {
947
+ className: "w-[34px] h-[34px] rounded-[8px] items-center justify-center",
948
+ style: {
1121
949
  backgroundColor: colors.backgroundSecondary
1122
- }],
950
+ },
1123
951
  onPress: () => handleFileOpen(file),
1124
952
  children: /*#__PURE__*/_jsx(Ionicons, {
1125
953
  name: "eye",
@@ -1127,9 +955,10 @@ const FileManagementScreen = ({
1127
955
  color: colors.primary
1128
956
  })
1129
957
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
1130
- style: [fileManagementStyles.groupedActionBtn, {
958
+ className: "w-[34px] h-[34px] rounded-[8px] items-center justify-center",
959
+ style: {
1131
960
  backgroundColor: colors.backgroundSecondary
1132
- }],
961
+ },
1133
962
  onPress: () => handleFileDownload(file.id, file.filename),
1134
963
  children: /*#__PURE__*/_jsx(Ionicons, {
1135
964
  name: "download",
@@ -1137,9 +966,10 @@ const FileManagementScreen = ({
1137
966
  color: colors.primary
1138
967
  })
1139
968
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
1140
- style: [fileManagementStyles.groupedActionBtn, {
969
+ className: "w-[34px] h-[34px] rounded-[8px] items-center justify-center",
970
+ style: {
1141
971
  backgroundColor: colors.negativeSubtle
1142
- }],
972
+ },
1143
973
  onPress: () => confirmFileDelete(file.id, file.filename),
1144
974
  disabled: deleting === file.id,
1145
975
  children: deleting === file.id ? /*#__PURE__*/_jsx(ActivityIndicator, {
@@ -1251,19 +1081,20 @@ const FileManagementScreen = ({
1251
1081
  const availableWidth = safeContainerWidth - scrollContainerPadding;
1252
1082
  const itemWidth = (availableWidth - gaps) / itemsPerRow;
1253
1083
  return /*#__PURE__*/_jsx(TouchableOpacity, {
1254
- style: [fileManagementStyles.photoItem, {
1084
+ className: "rounded-[8px] overflow-hidden",
1085
+ style: {
1255
1086
  width: itemWidth,
1256
1087
  height: itemWidth
1257
- }],
1088
+ },
1258
1089
  onPress: () => handleFileOpen(photo),
1259
1090
  activeOpacity: 0.8,
1260
1091
  children: /*#__PURE__*/_jsx(View, {
1261
- style: fileManagementStyles.photoContainer,
1092
+ className: "w-full h-full relative rounded-[8px] overflow-hidden",
1262
1093
  children: /*#__PURE__*/_jsx(ExpoImage, {
1263
1094
  source: {
1264
1095
  uri: downloadUrl
1265
1096
  },
1266
- style: fileManagementStyles.photoImage,
1097
+ style: screenStyles.photoImage,
1267
1098
  contentFit: "cover",
1268
1099
  transition: 120,
1269
1100
  cachePolicy: "memory-disk",
@@ -1279,25 +1110,28 @@ const FileManagementScreen = ({
1279
1110
  const photos = filteredFiles.filter(file => file.contentType.startsWith('image/'));
1280
1111
  if (photos.length === 0) {
1281
1112
  return /*#__PURE__*/_jsxs(View, {
1282
- style: fileManagementStyles.emptyState,
1113
+ className: "items-center py-[40px] px-[24px]",
1283
1114
  children: [/*#__PURE__*/_jsx(Ionicons, {
1284
1115
  name: "images-outline",
1285
1116
  size: 64,
1286
1117
  color: colors.textTertiary
1287
1118
  }), /*#__PURE__*/_jsx(Text, {
1288
- style: [fileManagementStyles.emptyStateTitle, {
1119
+ className: "text-[24px] font-bold mt-[16px] mb-[8px]",
1120
+ style: {
1289
1121
  color: colors.text
1290
- }],
1122
+ },
1291
1123
  children: t('fileManagement.emptyPhotos.title')
1292
1124
  }), /*#__PURE__*/_jsxs(Text, {
1293
- style: [fileManagementStyles.emptyStateDescription, {
1125
+ className: "text-[16px] text-center leading-[24px] mb-[32px]",
1126
+ style: {
1294
1127
  color: colors.textSecondary
1295
- }],
1128
+ },
1296
1129
  children: [" ", user?.id === targetUserId ? t('fileManagement.emptyPhotos.ownDescription') : t('fileManagement.emptyPhotos.otherDescription'), " "]
1297
1130
  }), user?.id === targetUserId && /*#__PURE__*/_jsx(TouchableOpacity, {
1298
- style: [fileManagementStyles.emptyStateButton, {
1131
+ className: "flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]",
1132
+ style: {
1299
1133
  backgroundColor: colors.primary
1300
- }],
1134
+ },
1301
1135
  onPress: handleFileUpload,
1302
1136
  disabled: uploading || isPickingDocument,
1303
1137
  children: uploading ? /*#__PURE__*/_jsx(ActivityIndicator, {
@@ -1312,7 +1146,7 @@ const FileManagementScreen = ({
1312
1146
  size: 20,
1313
1147
  color: "#FFFFFF"
1314
1148
  }), /*#__PURE__*/_jsx(Text, {
1315
- style: fileManagementStyles.emptyStateButtonText,
1149
+ className: "text-white text-[16px] font-semibold",
1316
1150
  children: t('fileManagement.uploadPhotos')
1317
1151
  })]
1318
1152
  })
@@ -1321,8 +1155,8 @@ const FileManagementScreen = ({
1321
1155
  }
1322
1156
  return /*#__PURE__*/_jsxs(ScrollView, {
1323
1157
  ref: photoScrollViewRef,
1324
- style: fileManagementStyles.scrollView,
1325
- contentContainerStyle: fileManagementStyles.photoScrollContainer,
1158
+ className: "flex-1",
1159
+ contentContainerClassName: "p-[10px]",
1326
1160
  refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
1327
1161
  refreshing: refreshing,
1328
1162
  onRefresh: () => loadFiles('refresh'),
@@ -1344,14 +1178,15 @@ const FileManagementScreen = ({
1344
1178
  },
1345
1179
  scrollEventThrottle: 250,
1346
1180
  children: [loadingDimensions && /*#__PURE__*/_jsxs(View, {
1347
- style: fileManagementStyles.dimensionsLoadingIndicator,
1181
+ className: "flex-row items-center justify-center py-[16px] gap-[8px]",
1348
1182
  children: [/*#__PURE__*/_jsx(ActivityIndicator, {
1349
1183
  size: "small",
1350
1184
  color: colors.primary
1351
1185
  }), /*#__PURE__*/_jsx(Text, {
1352
- style: [fileManagementStyles.dimensionsLoadingText, {
1186
+ className: "text-[14px] italic",
1187
+ style: {
1353
1188
  color: colors.textSecondary
1354
- }],
1189
+ },
1355
1190
  children: t('fileManagement.loadingPhotoLayout')
1356
1191
  })]
1357
1192
  }), /*#__PURE__*/_jsx(JustifiedPhotoGrid, {
@@ -1370,25 +1205,28 @@ const FileManagementScreen = ({
1370
1205
  // Inline justified grid removed (moved to components/photogrid/JustifiedPhotoGrid.tsx)
1371
1206
 
1372
1207
  const renderEmptyState = () => /*#__PURE__*/_jsxs(View, {
1373
- style: fileManagementStyles.emptyState,
1208
+ className: "items-center py-[40px] px-[24px]",
1374
1209
  children: [/*#__PURE__*/_jsx(Ionicons, {
1375
1210
  name: "folder-open-outline",
1376
1211
  size: 64,
1377
1212
  color: colors.textTertiary
1378
1213
  }), /*#__PURE__*/_jsx(Text, {
1379
- style: [fileManagementStyles.emptyStateTitle, {
1214
+ className: "text-[24px] font-bold mt-[16px] mb-[8px]",
1215
+ style: {
1380
1216
  color: colors.text
1381
- }],
1217
+ },
1382
1218
  children: t('fileManagement.emptyFiles.title')
1383
1219
  }), /*#__PURE__*/_jsx(Text, {
1384
- style: [fileManagementStyles.emptyStateDescription, {
1220
+ className: "text-[16px] text-center leading-[24px] mb-[32px]",
1221
+ style: {
1385
1222
  color: colors.textSecondary
1386
- }],
1223
+ },
1387
1224
  children: user?.id === targetUserId ? t('fileManagement.emptyFiles.ownDescription') : t('fileManagement.emptyFiles.otherDescription')
1388
1225
  }), user?.id === targetUserId && /*#__PURE__*/_jsx(TouchableOpacity, {
1389
- style: [fileManagementStyles.emptyStateButton, {
1226
+ className: "flex-row items-center px-[24px] py-[12px] rounded-[24px] gap-[8px]",
1227
+ style: {
1390
1228
  backgroundColor: colors.primary
1391
- }],
1229
+ },
1392
1230
  onPress: handleFileUpload,
1393
1231
  disabled: uploading || isPickingDocument,
1394
1232
  children: uploading ? /*#__PURE__*/_jsx(ActivityIndicator, {
@@ -1403,7 +1241,7 @@ const FileManagementScreen = ({
1403
1241
  size: 20,
1404
1242
  color: "#FFFFFF"
1405
1243
  }), /*#__PURE__*/_jsx(Text, {
1406
- style: fileManagementStyles.emptyStateButtonText,
1244
+ className: "text-white text-[16px] font-semibold",
1407
1245
  children: t('fileManagement.uploadFiles')
1408
1246
  })]
1409
1247
  })
@@ -1527,22 +1365,22 @@ const FileManagementScreen = ({
1527
1365
  })]
1528
1366
  });
1529
1367
  return /*#__PURE__*/_jsxs(View, {
1530
- style: [fileManagementStyles.container, {
1368
+ className: "flex-1",
1369
+ style: {
1531
1370
  backgroundColor
1532
- }],
1371
+ },
1533
1372
  children: [/*#__PURE__*/_jsxs(View, {
1534
- style: [fileManagementStyles.header, {
1373
+ className: "flex-row items-center justify-between px-[16px] py-[12px] relative",
1374
+ style: {
1535
1375
  borderBottomColor: colors.border,
1536
1376
  borderBottomWidth: StyleSheet.hairlineWidth
1537
- }],
1377
+ },
1538
1378
  children: [/*#__PURE__*/_jsx(SkeletonBox, {
1539
1379
  width: 44,
1540
1380
  height: 44,
1541
1381
  borderRadius: 12
1542
1382
  }), /*#__PURE__*/_jsxs(View, {
1543
- style: [fileManagementStyles.headerTitleContainer, {
1544
- flex: 1
1545
- }],
1383
+ className: "flex-1 items-center justify-center mx-[16px]",
1546
1384
  children: [/*#__PURE__*/_jsx(SkeletonBox, {
1547
1385
  width: 140,
1548
1386
  height: 20,
@@ -1559,7 +1397,7 @@ const FileManagementScreen = ({
1559
1397
  borderRadius: 12
1560
1398
  })]
1561
1399
  }), /*#__PURE__*/_jsxs(View, {
1562
- style: fileManagementStyles.controlsBar,
1400
+ className: "flex-row items-center justify-between px-[12px] py-[12px] gap-[12px]",
1563
1401
  children: [/*#__PURE__*/_jsx(SkeletonBox, {
1564
1402
  width: 100,
1565
1403
  height: 36,
@@ -1570,20 +1408,22 @@ const FileManagementScreen = ({
1570
1408
  borderRadius: 22
1571
1409
  })]
1572
1410
  }), /*#__PURE__*/_jsx(View, {
1573
- style: [fileManagementStyles.searchContainer, {
1411
+ className: "flex-row items-center px-[14px] py-[10px] mx-[12px] mb-[12px] rounded-full gap-[10px]",
1412
+ style: {
1574
1413
  backgroundColor: colors.card
1575
- }],
1414
+ },
1576
1415
  children: /*#__PURE__*/_jsx(SkeletonBox, {
1577
1416
  width: "100%",
1578
1417
  height: 44,
1579
1418
  borderRadius: 12
1580
1419
  })
1581
1420
  }), /*#__PURE__*/_jsx(View, {
1582
- style: [fileManagementStyles.statsContainer, {
1421
+ className: "flex-row px-[14px] py-[10px] mx-[12px] mb-[12px] rounded-[18px]",
1422
+ style: {
1583
1423
  backgroundColor: colors.card
1584
- }],
1424
+ },
1585
1425
  children: [1, 2, 3].map(i => /*#__PURE__*/_jsxs(View, {
1586
- style: fileManagementStyles.statItem,
1426
+ className: "flex-1 items-center py-[4px]",
1587
1427
  children: [/*#__PURE__*/_jsx(SkeletonBox, {
1588
1428
  width: 50,
1589
1429
  height: 20,
@@ -1598,8 +1438,8 @@ const FileManagementScreen = ({
1598
1438
  })]
1599
1439
  }, i))
1600
1440
  }), /*#__PURE__*/_jsx(ScrollView, {
1601
- style: fileManagementStyles.scrollView,
1602
- contentContainerStyle: fileManagementStyles.scrollContainer,
1441
+ className: "flex-1",
1442
+ contentContainerClassName: "px-[12px] pt-0 pb-[12px]",
1603
1443
  showsVerticalScrollIndicator: false,
1604
1444
  children: /*#__PURE__*/_jsx(View, {
1605
1445
  style: {
@@ -1690,7 +1530,7 @@ const FileManagementScreen = ({
1690
1530
  // If upload preview is showing, render it inline instead of the file list
1691
1531
  if (showUploadPreview) {
1692
1532
  return /*#__PURE__*/_jsxs(View, {
1693
- style: fileManagementStyles.container,
1533
+ className: "flex-1",
1694
1534
  children: [/*#__PURE__*/_jsx(Header, {
1695
1535
  title: t('fileManagement.reviewFiles'),
1696
1536
  subtitle: t('fileManagement.readyToUpload', {
@@ -1711,7 +1551,7 @@ const FileManagementScreen = ({
1711
1551
  });
1712
1552
  }
1713
1553
  return /*#__PURE__*/_jsxs(View, {
1714
- style: fileManagementStyles.container,
1554
+ className: "flex-1",
1715
1555
  children: [/*#__PURE__*/_jsx(Header, {
1716
1556
  title: selectMode ? multiSelect ? maxSelection ? t('fileManagement.selectedWithMax', {
1717
1557
  count: selectedIds.size,
@@ -1761,22 +1601,26 @@ const FileManagementScreen = ({
1761
1601
  elevation: "none",
1762
1602
  titleAlignment: "left"
1763
1603
  }), /*#__PURE__*/_jsxs(View, {
1764
- style: fileManagementStyles.controlsBar,
1604
+ className: "flex-row items-center justify-between px-[12px] py-[12px] gap-[12px]",
1765
1605
  children: [/*#__PURE__*/_jsx(ScrollView, {
1766
1606
  horizontal: true,
1767
1607
  showsHorizontalScrollIndicator: false,
1768
- style: fileManagementStyles.viewModeScroll,
1608
+ className: "flex-1",
1609
+ style: {
1610
+ maxWidth: '80%'
1611
+ },
1769
1612
  children: /*#__PURE__*/_jsxs(View, {
1770
- style: [fileManagementStyles.viewModeToggle, {
1613
+ className: "flex-row rounded-full p-[2px] overflow-hidden",
1614
+ style: {
1771
1615
  backgroundColor: colors.card
1772
- }],
1616
+ },
1773
1617
  children: [/*#__PURE__*/_jsx(AnimatedButton, {
1774
1618
  isSelected: viewMode === 'all',
1775
1619
  onPress: () => setViewMode('all'),
1776
1620
  icon: viewMode === 'all' ? 'folder' : 'folder-outline',
1777
1621
  primaryColor: colors.primary,
1778
1622
  textColor: colors.text,
1779
- style: fileManagementStyles.viewModeButton,
1623
+ style: screenStyles.viewModeButton,
1780
1624
  accessibilityLabel: t('fileManagement.a11y.viewAll') || 'Show all files'
1781
1625
  }), /*#__PURE__*/_jsx(AnimatedButton, {
1782
1626
  isSelected: viewMode === 'photos',
@@ -1784,7 +1628,7 @@ const FileManagementScreen = ({
1784
1628
  icon: viewMode === 'photos' ? 'image-multiple' : 'image-multiple-outline',
1785
1629
  primaryColor: colors.primary,
1786
1630
  textColor: colors.text,
1787
- style: fileManagementStyles.viewModeButton,
1631
+ style: screenStyles.viewModeButton,
1788
1632
  accessibilityLabel: t('fileManagement.a11y.viewPhotos') || 'Show photos only'
1789
1633
  }), !isImageOnlyPicker && /*#__PURE__*/_jsxs(_Fragment, {
1790
1634
  children: [/*#__PURE__*/_jsx(AnimatedButton, {
@@ -1793,7 +1637,7 @@ const FileManagementScreen = ({
1793
1637
  icon: viewMode === 'videos' ? 'video' : 'video-outline',
1794
1638
  primaryColor: colors.primary,
1795
1639
  textColor: colors.text,
1796
- style: fileManagementStyles.viewModeButton,
1640
+ style: screenStyles.viewModeButton,
1797
1641
  accessibilityLabel: t('fileManagement.a11y.viewVideos') || 'Show videos only'
1798
1642
  }), /*#__PURE__*/_jsx(AnimatedButton, {
1799
1643
  isSelected: viewMode === 'documents',
@@ -1801,7 +1645,7 @@ const FileManagementScreen = ({
1801
1645
  icon: viewMode === 'documents' ? 'file-document' : 'file-document-outline',
1802
1646
  primaryColor: colors.primary,
1803
1647
  textColor: colors.text,
1804
- style: fileManagementStyles.viewModeButton,
1648
+ style: screenStyles.viewModeButton,
1805
1649
  accessibilityLabel: t('fileManagement.a11y.viewDocuments') || 'Show documents only'
1806
1650
  }), /*#__PURE__*/_jsx(AnimatedButton, {
1807
1651
  isSelected: viewMode === 'audio',
@@ -1809,15 +1653,16 @@ const FileManagementScreen = ({
1809
1653
  icon: viewMode === 'audio' ? 'music-note' : 'music-note-outline',
1810
1654
  primaryColor: colors.primary,
1811
1655
  textColor: colors.text,
1812
- style: fileManagementStyles.viewModeButton,
1656
+ style: screenStyles.viewModeButton,
1813
1657
  accessibilityLabel: t('fileManagement.a11y.viewAudio') || 'Show audio only'
1814
1658
  })]
1815
1659
  })]
1816
1660
  })
1817
1661
  }), /*#__PURE__*/_jsxs(TouchableOpacity, {
1818
- style: [fileManagementStyles.sortButton, {
1662
+ className: "flex-row items-center justify-center px-[10px] py-[6px] rounded-full min-w-[36px] gap-[4px]",
1663
+ style: {
1819
1664
  backgroundColor: colors.card
1820
- }],
1665
+ },
1821
1666
  accessibilityRole: "button",
1822
1667
  accessibilityLabel: t('fileManagement.a11y.sortBy', {
1823
1668
  field: sortBy,
@@ -1844,9 +1689,10 @@ const FileManagementScreen = ({
1844
1689
  color: colors.textSecondary
1845
1690
  })]
1846
1691
  }), user?.id === targetUserId && (!selectMode || selectMode && allowUploadInSelectMode) && /*#__PURE__*/_jsx(TouchableOpacity, {
1847
- style: [fileManagementStyles.uploadButton, isImageOnlyPicker && fileManagementStyles.uploadButtonExtended, {
1692
+ className: `h-[44px] rounded-[22px] items-center justify-center ${isImageOnlyPicker ? 'w-auto min-w-[44px] px-[14px]' : 'w-[44px]'}`,
1693
+ style: {
1848
1694
  backgroundColor: colors.primary
1849
- }],
1695
+ },
1850
1696
  onPress: handleFileUpload,
1851
1697
  disabled: uploading || isPickingDocument,
1852
1698
  accessibilityRole: "button",
@@ -1855,25 +1701,25 @@ const FileManagementScreen = ({
1855
1701
  busy: uploading || isPickingDocument
1856
1702
  },
1857
1703
  children: uploading ? /*#__PURE__*/_jsxs(View, {
1858
- style: fileManagementStyles.uploadProgress,
1704
+ className: "items-center justify-center",
1859
1705
  children: [/*#__PURE__*/_jsx(ActivityIndicator, {
1860
1706
  size: "small",
1861
1707
  color: "#FFFFFF"
1862
1708
  }), uploadProgress && /*#__PURE__*/_jsxs(Text, {
1863
- style: fileManagementStyles.uploadProgressText,
1709
+ className: "text-white text-[10px] font-semibold mt-[2px]",
1864
1710
  children: [uploadProgress.current, "/", uploadProgress.total]
1865
1711
  })]
1866
1712
  }) : isPickingDocument ? /*#__PURE__*/_jsx(ActivityIndicator, {
1867
1713
  size: "small",
1868
1714
  color: "#FFFFFF"
1869
1715
  }) : isImageOnlyPicker ? /*#__PURE__*/_jsxs(View, {
1870
- style: fileManagementStyles.uploadButtonContent,
1716
+ className: "flex-row items-center gap-[6px]",
1871
1717
  children: [/*#__PURE__*/_jsx(Ionicons, {
1872
1718
  name: "cloud-upload",
1873
1719
  size: 18,
1874
1720
  color: "#FFFFFF"
1875
1721
  }), /*#__PURE__*/_jsx(Text, {
1876
- style: fileManagementStyles.uploadButtonLabel,
1722
+ className: "text-white text-[14px] font-semibold",
1877
1723
  numberOfLines: 1,
1878
1724
  children: t('fileManagement.upload') || 'Upload'
1879
1725
  })]
@@ -1884,24 +1730,26 @@ const FileManagementScreen = ({
1884
1730
  })
1885
1731
  })]
1886
1732
  }), files.length > 0 && (viewMode === 'all' || files.some(f => f.contentType.startsWith('image/'))) && /*#__PURE__*/_jsxs(View, {
1887
- style: [fileManagementStyles.searchContainer, {
1733
+ className: "flex-row items-center px-[14px] py-[10px] mx-[12px] mb-[12px] rounded-full gap-[10px]",
1734
+ style: {
1888
1735
  backgroundColor: colors.card
1889
- }],
1736
+ },
1890
1737
  children: [/*#__PURE__*/_jsx(Ionicons, {
1891
1738
  name: "search",
1892
1739
  size: 22,
1893
1740
  color: colors.icon
1894
1741
  }), /*#__PURE__*/_jsx(TextInput, {
1895
- style: [fileManagementStyles.searchInput, {
1742
+ className: "flex-1 text-[16px] leading-[20px]",
1743
+ style: {
1896
1744
  color: colors.text
1897
- }],
1745
+ },
1898
1746
  placeholder: viewMode === 'photos' ? t('fileManagement.searchPhotos') : t('fileManagement.searchFiles'),
1899
1747
  placeholderTextColor: colors.textSecondary,
1900
1748
  value: searchQuery,
1901
1749
  onChangeText: setSearchQuery
1902
1750
  }), searchQuery.length > 0 && /*#__PURE__*/_jsx(TouchableOpacity, {
1903
1751
  onPress: () => setSearchQuery(''),
1904
- style: fileManagementStyles.searchClearButton,
1752
+ className: "p-[4px] rounded-[12px] items-center justify-center",
1905
1753
  children: /*#__PURE__*/_jsx(Ionicons, {
1906
1754
  name: "close-circle",
1907
1755
  size: 22,
@@ -1909,46 +1757,59 @@ const FileManagementScreen = ({
1909
1757
  })
1910
1758
  })]
1911
1759
  }), files.length > 0 && /*#__PURE__*/_jsxs(View, {
1912
- style: [fileManagementStyles.statsContainer, {
1760
+ className: "flex-row px-[14px] py-[10px] mx-[12px] mb-[12px] rounded-[18px]",
1761
+ style: {
1913
1762
  backgroundColor: colors.card
1914
- }],
1763
+ },
1915
1764
  children: [/*#__PURE__*/_jsxs(View, {
1916
- style: fileManagementStyles.statItem,
1765
+ className: "flex-1 items-center py-[4px]",
1917
1766
  children: [/*#__PURE__*/_jsx(Text, {
1918
- style: [fileManagementStyles.statValue, {
1919
- color: colors.text
1920
- }],
1767
+ className: "text-[20px] font-extrabold leading-[24px]",
1768
+ style: {
1769
+ color: colors.text,
1770
+ letterSpacing: -0.5
1771
+ },
1921
1772
  children: filteredFiles.length
1922
1773
  }), /*#__PURE__*/_jsx(Text, {
1923
- style: [fileManagementStyles.statLabel, {
1924
- color: colors.textSecondary
1925
- }],
1774
+ className: "text-[12px] font-medium mt-[2px]",
1775
+ style: {
1776
+ color: colors.textSecondary,
1777
+ letterSpacing: 0.2
1778
+ },
1926
1779
  children: searchQuery.length > 0 ? t('fileManagement.found') : filteredFiles.length === 1 ? viewMode === 'photos' ? t('fileManagement.photo') : t('fileManagement.file') : viewMode === 'photos' ? t('fileManagement.photos_stat') : t('fileManagement.files')
1927
1780
  })]
1928
1781
  }), /*#__PURE__*/_jsxs(View, {
1929
- style: fileManagementStyles.statItem,
1782
+ className: "flex-1 items-center py-[4px]",
1930
1783
  children: [/*#__PURE__*/_jsx(Text, {
1931
- style: [fileManagementStyles.statValue, {
1932
- color: colors.text
1933
- }],
1784
+ className: "text-[20px] font-extrabold leading-[24px]",
1785
+ style: {
1786
+ color: colors.text,
1787
+ letterSpacing: -0.5
1788
+ },
1934
1789
  children: formatFileSize(filteredFiles.reduce((total, file) => total + file.length, 0))
1935
1790
  }), /*#__PURE__*/_jsx(Text, {
1936
- style: [fileManagementStyles.statLabel, {
1937
- color: colors.textSecondary
1938
- }],
1791
+ className: "text-[12px] font-medium mt-[2px]",
1792
+ style: {
1793
+ color: colors.textSecondary,
1794
+ letterSpacing: 0.2
1795
+ },
1939
1796
  children: searchQuery.length > 0 ? t('fileManagement.size') : t('fileManagement.totalSize')
1940
1797
  })]
1941
1798
  }), searchQuery.length > 0 && /*#__PURE__*/_jsxs(View, {
1942
- style: fileManagementStyles.statItem,
1799
+ className: "flex-1 items-center py-[4px]",
1943
1800
  children: [/*#__PURE__*/_jsx(Text, {
1944
- style: [fileManagementStyles.statValue, {
1945
- color: colors.text
1946
- }],
1801
+ className: "text-[20px] font-extrabold leading-[24px]",
1802
+ style: {
1803
+ color: colors.text,
1804
+ letterSpacing: -0.5
1805
+ },
1947
1806
  children: files.length
1948
1807
  }), /*#__PURE__*/_jsx(Text, {
1949
- style: [fileManagementStyles.statLabel, {
1950
- color: colors.textSecondary
1951
- }],
1808
+ className: "text-[12px] font-medium mt-[2px]",
1809
+ style: {
1810
+ color: colors.textSecondary,
1811
+ letterSpacing: 0.2
1812
+ },
1952
1813
  children: t('fileManagement.total')
1953
1814
  })]
1954
1815
  })]
@@ -2026,8 +1887,5 @@ const FileManagementScreen = ({
2026
1887
  })]
2027
1888
  });
2028
1889
  };
2029
-
2030
- // Styles have been moved to components/fileManagement/styles.ts
2031
-
2032
1890
  export default FileManagementScreen;
2033
1891
  //# sourceMappingURL=FileManagementScreen.js.map